我正在尝试为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
我知道我可以花一点时间来处理更多的状态,但是我想知道为什么这种方式行不通,或者我可以做些什么来使这种方式行得通。