Verilog中的Casex vs Casez

Verilog中的Casex vs Casez,verilog,Verilog,Verilog中的casex和casez有什么区别? 我搜索了一下,找到了这句话: casez处理案例备选方案或案例中的所有z值 表达为不在乎。带z的所有位位置也可以 代表人?在那个位置上 casex处理所有x和z值 在case项或case表达式中设置为“不” 关心 例如,第一个和第二个的区别是什么: 1- 二,- Verilog语言参考手册(现在被替换)对此进行了详细解释。关键区别在于大小写表达式instr包含x或z值时。请记住,casex和casez都会查看x和z值的case项和case表达

Verilog
中的
casex
casez
有什么区别? 我搜索了一下,找到了这句话:

casez处理案例备选方案或案例中的所有z值 表达为不在乎。带z的所有位位置也可以 代表人?在那个位置上

casex处理所有x和z值 在case项或case表达式中设置为“不”

关心

例如,第一个和第二个的区别是什么:

1-

二,-


Verilog语言参考手册(现在被替换)对此进行了详细解释。关键区别在于大小写表达式
instr
包含x或z值时。请记住,
casex
casez
都会查看x和z值的case项和case表达式。我们称之为对称比较,因为无关紧要的值可以显示在任意位置

因此,如果
instr
都是x,那么
casez
中的所有项目都不会匹配,但是
casex
中的所有项目都会匹配,模拟器会选择第一个项目。同样,如果
instr
都是z,那么所有项目都将匹配。我认为<代码> CASEX < /代码>是一个无用的构造。


SystemVerilog用语句中的
case()替换这两条语句。它使用了一个非对称比较运算符
=?
,该运算符只将案例项中的x或z视为不在乎。

谢谢您的回答。:“类似地,如果instr都是z,那么所有项目都会匹配。”它是否同时发生在casex和casez中?@dave;是的,这两种情况都会发生。
casez (instr)
7'b1zzzzzzz: // arithmetic
7'b01zzzzzz: // load-reg
7'b00zzzzzz: // store-reg
endcase
 casex (instr)
    7'b1zxxxxzz: // arithmetic
    7'b01zzxxxx: // load-reg
    7'b00xxxzzz: // store-reg
    endcase