我有一个输入说,其中有4位,定义为: 输入[3:0] in;
和另一个输入说使能,它是1位,定义为: 输入使能; 导线定义为: 电线[3:0] out_int;
我想将它们的布尔AND运算为:
out_int [3:0] =输入[3:0] && enable;
我无法获得所需的输出, 我要建模的是 如果enable hv为1或0,则out_int(所有4位)应等于in(所有4位);当enable为X或Z时,out_int的所有4位应为4'bx。
答案 0 :(得分:0)
您正在使用逻辑和运算符&&
,其结果为1位。要检查z或x,您需要在Verilog中使用===
运算符,或者在SystemVerilog中使用$isunkown()
。
您似乎想要的是条件运算符? :
。
// condition true false
out_int[3:0] = (enable ===1'bx || enable === 1'bz) ? 4'bx : in[3:0];