aspcms网站地图生成,广西建设网官网办事大厅桂建云,成都网站设计公司官网,网站建设培训证书本题是一个实际的应用问题#xff0c;一个水库#xff0c;有三个传感器S1、S2、S3提供输入#xff0c;经过控制电路#xff0c;四个输出给到四个流量阀。也就是说#xff0c;本题想让我们根据水位去控制流量阀。
问题的关键在于把什么抽象成state#xff0c;答案是…本题是一个实际的应用问题一个水库有三个传感器S1、S2、S3提供输入经过控制电路四个输出给到四个流量阀。也就是说本题想让我们根据水位去控制流量阀。
问题的关键在于把什么抽象成state答案是水位的高低。根据题意我们知道水位高低有四种状态可以用传感器检测。
在第一个always块中把三个传感器输入的值作为next_state。
在第二个always块中用next_state判断输出什么信号给四个流量阀。
在第三个always块中把next_state赋给state。
在第四个always块中给dfr赋值。因为dfr第四个水阀判断条件比较特殊所以不跟另外三个水阀写在一起判断。
module top_module (input clk,input reset,input [3:1] s,output fr3,output fr2,output fr1,output dfr
); reg [2:0] state, next_state;parameter A3b111, B3b011, C3b001, D3b000;//根据输入决定下一个状态always(*)begincase(s)A: next_state A;B: next_state B;C: next_state C;D: next_state D;default: next_state D;endcaseendalways(posedge clk)beginif(reset){fr3,fr2,fr1} 3b111;elsecase(next_state) //这里要想清楚判断条件是state还是next_stateA : {fr3,fr2,fr1} 3b000;B : {fr3,fr2,fr1} 3b001;C : {fr3,fr2,fr1} 3b011;D : {fr3,fr2,fr1} 3b111;endcaseendalways(posedge clk)beginif(reset)state D;elsestate next_state;endalways(posedge clk)beginif(reset)dfr 1;else if(next_state state)dfr 1;else if(next_state state)dfr 0;elsedfr dfr;endendmodule