
这个题表基本上给了状态和输出的FR1,2,3的思路,即input [3:1]s,output [3:1]fr。
简单的说就是水位在S1以下全开阀门,随着逐渐升高减少阀门用量。虽然提到了一嘴当当前水量大于之前的水量才用FR1,2,3但是其实只用考虑反向的dfr就行。
Dfr的用法这道题少说了一句当水量变化不足以改变状态s的时候,DFR保持不变。
其他情况的DFR无非 1、直接reset 2、小于最低点位 3、之前的水量大于现在的水量
上代码的话就是:
module top_module (
input clk,
input reset,
input [3:1] s,
output fr3,
output fr2,
output fr1,
output dfr
);
wire [1:0]state;
wire [1:0]next_state;
wire [1:0]p_state;
parameter A=0, B=1, C=2, D=3;
always@(*)
begin
casez(s)
3'b zz0:next_state=A;
3'b z01:next_state=B;
3'b 011:next_state=C;
3'b 111:next_state=D;
endcase
end
always@(posedge clk)
begin
if(r

本文介绍了一种基于水位状态的阀门控制系统设计思路。系统通过监测水位高低来控制不同数量的阀门开启,确保水位稳定。文章详细描述了状态转移逻辑及DFR(阀门调整标志)的更新规则,并提供了具体的Verilog实现代码。
最低0.47元/天 解锁文章
266

被折叠的 条评论
为什么被折叠?



