zoukankan      html  css  js  c++  java
  • 检测串行序列10010

    module check10010(
    input clk,din,rstn,
    output reg dout);

    reg [2:0] state;
    reg [2:0] nextstate;

    parameter state0 = 3'b000,
    state1 = 3'b001,
    state2 = 3'b010,
    state3 = 3'b011,
    state4 = 3'b100,
    state5 = 3'b101;

    always@ (posedge clk)
    if (!rstn)
    state <= state0;
    else
    state <= nextstate;


    always@ (state or din) begin
    case (state)
    state0: if(din) nextstate = state1;
    else nextstate = state0;

    state1: if(din) nextstate = state1;
    else nextstate = state2;

    state2: if(din) nextstate = state1;
    else nextstate = state3;

    state3: if(din) nextstate = state4;
    else nextstate = state0;

    state4: if(din) nextstate = state1;
    else nextstate = state5;

    state5: if(din) nextstate = state1;
    else nextstate = state3;

    default: nextstate = state0;
    endcase
    end

    always@ (*)
    if (rstn==1 && state == state4 && (!din))
    dout = 1;
    else
    dout = 0;

    endmodule

    quartus prime波形仿真:

    内部结构图:

    状态机state图:

  • 相关阅读:
    shell 参数个数
    小坑也难受
    MaHua简介
    airflow Operators
    datax
    T-SQL 更新表操作
    T-SQL时间函数
    linux学习网站
    好看的页面
    函数-1
  • 原文地址:https://www.cnblogs.com/cuiyq19/p/13534160.html
Copyright © 2011-2022 走看看