网站数据统计怎么做,做卖东西的网站,做搜狗pc网站优化首,wordpress注册弹出框根据状态转移表实现时序电路
某同步时序电路转换表如下#xff0c;请使用D触发器和必要的逻辑门实现此同步时序电路 电路的接口如下图所示 A表示输入#xff0c;Y 表示输出
理解状态转移表#xff0c;画成状态转移图
timescale 1ns/1nsmodule seq_circuit(input …根据状态转移表实现时序电路
某同步时序电路转换表如下请使用D触发器和必要的逻辑门实现此同步时序电路 电路的接口如下图所示 A表示输入Y 表示输出
理解状态转移表画成状态转移图
timescale 1ns/1nsmodule seq_circuit(input A ,input clk ,input rst_n,output wire Y
);parameter state1 2b00;parameter state2 2b01;parameter state3 2b10;parameter state4 2b11;reg [1:0] c_state;reg [1:0] n_state;//第一段状态转移次态给现态always(posedge clk or negedge rst_n)beginif(!rst_n)c_state state1;elsec_state n_state;end//第二段现态和输入决定次态always(*)begincase(c_state)state1:beginif(A 0)n_state state2;elsen_state state4;endstate2:beginif(A 0)n_state state3;elsen_state state1;endstate3:beginif(A 0)n_state state4;elsen_state state2;endstate4:beginif(A 0)n_state state1;elsen_state state3;enddefault:n_state state1;endcaseend//第三段输出赋值
// reg Y_reg;
// always(posedge clk or negedge rst_n)
// begin
// if(!rst_n)
// Y_reg 1b0;
// else if(c_state state4 c_state ! n_state)
// Y_reg 1;
// end// assign Y Y_reg;assign Y (c_state state4)?1:0;
endmodule知识点
三段式状态机 第一段时序逻辑主要实现状态转换次态赋给现态
//第一段
always(posedge clk or negedge rst_n)
beginif(!rst_n)curr_state 2b00;elsecurr_state next_state;
end第二段组合逻辑主要是实现现态和输入决定次态
//第二段
always(*)
begincase(curr_state)2b00:net_state (A 1b1)?2b11:2b01;2b01:net_state (A 1b1)?2b00:2b10;2b10:net_state (A 1b1)?2b01:2b11;2b11:net_state (A 1b1)?2b10:2b00;default:next_state 2b00;
end第三段时序逻辑主要是实现输出判断
//第三段
always(posedge clk or negedge rst_n)
beginif(!rst_n)Y 1b0;else if(next_state ...)Y 1b1;
end