当前位置: 代码迷 >> 综合 >> hdlbits Design a Moore FSM 设计有限状态机
  详细解决方案

hdlbits Design a Moore FSM 设计有限状态机

热度:67   发布时间:2024-01-03 23:47:18.0

Design a Moore FSM

一个巨大的水库服务几个用户。为了保持水位足够高,三个传感器以5英寸的间距水平放置。当水位超过最高水位线S3,输入水流速度应该为0。当水位线小于最低水位线S1,流速应该开到最大,标称流量阀和补充流量阀都应该打开。当水位线在高和低传感器之间时,水流速度被以下两个因素影响:1.现在水位线2.水位线前于最后传感器的改变。每一个水位线有一个标称流速,在下表展示。如果传感器变化表明 上一时刻水位线比当前水位线更低,标称流速应该发生。如果前一水位线高于现在水位线,这一流量应该是由补充流速阀打开导致的。

module top_module (

    input clk,

    input reset,

    input [3:1] s,

    output fr3,

    output fr2,

    output fr1,

    output dfr

); 

   

    reg [3:1] state, next_state;

    reg flag, next_flag;

    always @(*) begin

            next_state = s;

            if(s == state) next_flag <= flag;

            else if(s < state || s == 0) next_flag <= 1;

            else next_flag <= 0;

            

    end

    always @(posedge clk) begin

        if(reset) begin   

            state <= 0; flag <= 1;

        end

        else begin 

            state <= next_state; flag <= next_flag;

        end

    end

    assign fr1 = ~state[3];

    assign fr2 = ~state[2];

    assign fr3 = ~state[1];

    assign dfr = (flag == 1);

endmodule

  相关解决方案