我正在尝试为iverilog设置我的测试平台,以便每当某个错误位设置为“x”时,模块会将一些名为“state_string”的字符串设置为“START”,并将“state_string”设置为其他值。错误位是1'b0或1'b1。
我已经尝试使用casex,我用波形查看器对其进行了分析,但我仍然对这里的幕后情况感到困惑。这是我看到的波形......
波形
我的期望是,只要错误是“x”,'state_string'就不会是一系列的x。
此外,这是我的测试平台内的代码,它应该控制这种行为......
always @(*) begin
if (error === 1'bx) begin
state_string = "START";
end
if (error === 1'b0) begin
state_string = "RUNNING";
end
if (error === 1'b1) begin
state_string = "ERROR";
end
end
我知道我可以再做一点来处理更多的状态,但是我想知道为什么这种方式不起作用,或者我能做些什么来使这种方式起作用。