Exams/ece241 2013 q4:水位问题

  • Post author:
  • Post category:其他



原题链接

这是一个水位控制系统,S1,S2,S3是三个水位传感器。FR3,FR2,FR1为三个控制水流量的开关,开得越多流量越大。ΔFR是检测水位变化的标志,若前一时间的水位高于当前时间的水位就置1.

一共四种状态低于s1,s1与s2之间,s2与s3之间,超过s3.

dfr还没想到怎么处理。。。

module top_module (
    input clk,
    input reset,
    input [3:1] s,
    output fr3,
    output fr2,
    output fr1,
    output dfr
); 
	parameter A=0,B=1,C=2,D=3;
    reg [1:0] state,next;
    always @(*) begin
        case(state)
            A: next = s[1] ? B : A;
            B: next = s[2] ? C : (s[1] ? B : A);
            C: next = s[3] ? D : (s[2] ? C : B);
            D: next = s[3] ? D : C;
        endcase
    end
    always @(posedge clk) begin
        if(reset)
            state <= A;
        else
            state <= next;
    end
    assign
        fr3 = state==A,
        fr2 = state==B | state==A,
        fr1 = state==C | state==B | state==A,
        dfr = (state<next);//dfr不对未找到解决办法
    
endmodule



版权声明:本文为weixin_43291010原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。