Verilog状态机

Posted cstdio1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Verilog状态机相关的知识,希望对你有一定的参考价值。

以1011为例

代码如下:

//1011(Meay型)
module state1(clk,in,rst_n,out);
    input clk;
    input rst_n;
    input in;
    output reg out;
    reg [1:0] state;
    reg[1:0] s0=2'b00,s1=2'b01,s2=2'b10,s3=2'b11;
    always@(posedge clk or negedge rst_n)
        if(!rst_n) 
            begin
                state<=2'b00;
                out<=1'b0;
            end
        else
            begin
                case(state)
                    s0:
                        begin
                            state<=(in==0)? s0:s1;
                            out<=0;
                        end
                    s1:
                        begin
                            state<=(in==0)? s2:s1;
                            out<=0;
                        end
                    s2:
                        begin
                            state<=(in==0)? s0:s3;
                            out<=0;
                        end
                    s3:
                        if(in)
                            begin
                                state<=s1;
                                out<=1;
                            end
                        else
                            begin
                                state<=s2;
                                out<=0;
                            end
                    default:
                            begin
                                state<=s0;
                                out<=1;
                            end

                endcase
            end
endmodule

以上是关于Verilog状态机的主要内容,如果未能解决你的问题,请参考以下文章

三段式有限状态机Verilog代码

verilog状态机检测110序列,急救!!!!!!!!!

如何写好Verilog状态机

Verilog状态机

verilog中的隐式状态机和显示状态机?

Verilog三段式状态机描述