case、casex、casez的区别 — Verilog

作用:

  • 提供了一种描述真值表的描述方式
  • 可以描述有限状态机

区别:

  • case是一一对应,即0、1、x、z分别对应0、1、x、z;当执行到对应项后,case就会退出
  • casex是将高阻值(z)和不定值(x)都视为不关心的状态,即出现x或z会匹配任意0、1、x、z状态;
  • casez是将高阻值(z)视为不关心的状态,即出现z会匹配任意0、1、x、z状态;

真值表如下:

case 0 1 x z
0 1 0 0 0
1 0 1 0 0
x 0 0 1 0
z 0 0 0 1
casex 0 1 x z
0 1 0 1 1
1 0 1 1 1
x 1 1 1 1
z 1 1 1 1
casez 0 1 x z
0 1 0 0 1
1 0 1 0 1
x 0 0 1 1
z 1 1 1 1

注意:

  • 使用case语句时,必须包含所有的状态。如果没有包含全,那么缺省项必须要用default项包括,否则会综合处出锁存器(latch) ;
  • case中所有表达式的位宽必须相等;

你可能感兴趣的:(verilog,芯片,verilog)