序列检测器verilog代码.txt

来自「序列检测器」· 文本 代码 · 共 70 行

TXT
70
字号
module seqdet(x,z,clk,rst,state);
input x,clk,rst;
output z;
output [2:0] state;
reg [2:0] state;
wire z;

parameter IDLE='d0,A='d1,B='d2,C='d3,D='d4,E='d5;

 assign z=(state==E && x==0)?1:0;

always @(posedge clk)
      if(!rst)
        begin
          state<=IDLE;
         end
      else
          casex(state)
              IDLE:if(x==1)
                    begin
                       state<=A;
                    end
                   else
                      begin
                        state<=IDLE;
                      end
                  A: if(x==0)
                        begin
                          state<=B;
                        end
                     else
                        begin
                          state<=A;
                        end

                  B:if(x==0)
                      begin
                         state<=C;
                       end
                     else
                        begin
                          state<=A;
                        end
                   C:if(x==1)
                        begin
                           state<=D;
                        end
                      else
                        begin
                           state<=IDLE;
                        end
                    D:if(x==0)
                        begin
                          state<=E;
                        end
                       else
                          begin
                             state<=A;
                          end
                     E: if(x==0)
                         begin
                            state<=C;
                         end
                        else
                           begin
                              state<=A;
                           end
               default:state<=IDLE;
                endcase
endmodule

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?