Verilog案例忽略条件

时间:2018-11-20 04:30:21

标签: verilog intel state-machine

EDIT:我似乎已经通过始终在if语句之后添加else而不是例如使'Y = Y'来使原始程序正常工作。因此,在这种情况下将是B:Y = B。

我不确定它现在起作用的原因,似乎是我没有正确的经验要理解。

我正在尝试在verilog中模拟状态机,但是在理解特定问题时遇到了问题。原始代码要大得多,但是我将其缩减为产生无法解释的效果的原因。 (不是实际的实现,仅是显示我的问题的示例)

我让“ Y”存储“状态”即时消息,并将根据其状态和条件对其进行更改。我的问题是,情况A:的行忽略条件,使Y = B,即使enter总是很低。无论是否实际上处于状态B,我都有“ ts”输出。

如果我将'enter == 1'替换为'0 == 1',我将得到相同的输出。

module ComboCheckF(Clock,enter,ts); 

    input Clock, enter;
    output ts;
    reg[3:0] Y;
    parameter A = 4'b0000, B = 4'b0001;

    initial Y = A;

    always @(enter,Y)
    begin
        case(Y)
            A: if (enter == 1) Y = B;
                else Y = Y;
            B: Y = Y;
            default: Y = 4'bxxxx;
        endcase 
    end


    assign ts=(Y==B);


endmodule 

和输出(可以忽略时钟,剩余)

enter image description here

0 个答案:

没有答案