A.19 时序逻辑实例四:状态机(两段式描述-行为级)
这里依然采用两段式描述,即:
(1)第一个always程序块
采用同步时序逻辑电路描述状态转移。
(2)第二个always程序块
采用组合逻辑电路判断状态转移条件并描述状态转移规律,同时组合逻辑输出结果。
但是,这一次,我们不用像之前那样,又画状态转移图,又画卡诺图真值表的,这次我们简单点。
设计模块
这里的组合逻辑看起来更容易理解一点,写起来相对也更快。
但是传统的卡诺图化简公式的方式和这里的按照行为逻辑来实现的方式都要掌握,两种方法结合才能解决实际工作中更多的问题。
//文件路径:a.19/src/sell.v
module sell(clk,rst_n,a,b,y,z);
parameter S0 = 1'b0;
parameter S1 = 1'b1;
input clk;
input rst_n;
input a,b;
output reg y,z;
reg current_state;
reg next_state;
always@(posedge clk or negedge rst_n)begin
if(!rst_n)
current_state <= S0;
else
current_state <= next_state;
end
always@(current_state or a or b)be