关于Verilog中case casex casez
- UID
- 1029342
- 性别
- 男
|
关于Verilog中case casex casez
在case语句中,敏感表达式与各项值之间的比较,是一种全等比较。
casez与casex语句是case语句的两种变体,三者的表示形式中唯一的区别是三个关键词case、casez、casex的不同。
在casez语句中,如果分支表达式某些位的值为高阻z,那么对这些位的比较就会忽略,不予考虑,而只关注其他位的比较结果。(casez会把z/?匹配成任意,也会把任意匹配成z/?)
在casex语句中,则把这种处理方式进一步扩展到对x的处理,即如果比较双方有一方的某些位的值是z或x,那么这些位的比较就不予考虑。(casex会把z/?x匹配成任意,也会把任意匹配成z/?/x,即直接忽略z/?/x)
使用case时候,'?'代表的不是don't care,而是'z'。
并且case/casez/casex其实都是可综合的。
例如
case (sel)
'b00: y = a;
'b01: y = b;
'bx0: y = c;
'b1x: y = d;
'bz0: y = e;
'b1?: y = f;
default : y = g; endcase不同的sel对应不同的值Result: sel y case item 00 a 00 11 g default xx g default x0 c x0 1z f 1? z1 g default |
|
|
|
|
|