Exams/ece241 2013 q4
题目分析:
1.s=000时,打开fr1,fr2,fr3和补充水dfr
2.s=001时,打开fr1,fr2
3.s=011时,打开fr1
4.s=111时,关闭
5.当水位下降时,打开dfr
代码:
`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)//水位下降和s==000时打开dfr
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;
endmodule
`