vivado verilog [Synth 8-153] case item x will never be executed
有?用casez
有x用casex
当用case时,3’b1xx,只有当1后面的两位真的是在xx状态才会激活
在100,101,110,111的时候都不符合1xx的case设定。。。
说白了不是systemverilog的问题是你对verilog的理解不够。。。
建议搜下case casex casez之间的区别
case | 0 | 1 | x | z | casez | 0 | 1 | x | z | casex | 0 | 1 | x | z |
0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 |
1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 |
x | 0 | 0 | 1 | 0 | x | 0 | 0 | 1 | 1 | x | 1 | 1 | 1 | 1 |
z | 0 | 0 | 0 | 1 | z | 1 | 1 | 1 | 1 | z | 1 | 1 | 1 | 1 |
z高阻值通常在写作?,比如1‘b?,一般是未连接状态
x是未知状态
casez高阻值z的比较过程
casex将高阻值z和未知状态都视为不关心
推荐阅读:
扫描二维码,在手机上阅读