作用:
- 提供了一种描述真值表的描述方式
- 可以描述有限状态机
区别:
- 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中所有表达式的位宽必须相等;