This is a Moore state machine with two states, two inputs, and one output. Implement this state machine.
This exercise is the same as fsm2, but using synchronous reset.
前言
四个输入,包括一个时钟clk,一个高电平有效的同步置位信号reset,两个输入信号 j 和 k ;一个输出信号out。
代码
module top_module(
input clk,
input reset,
input j,
input k,
output out);
parameter OFF=1'b0, ON=1'b1;
reg state, next_state;
always @(*) begin
if(state==OFF) next_state=j?ON:OFF;
else next_state=k?OFF:ON;
end
always @(posedge clk) begin
if(reset) state<=OFF;
else state<=next_state;
end
assign out=state;
endmodule
总结
由于next_state由state、j 和 k共同决定,根据状态机示意图,使用 if 语句加一个判断语句就能实现,详细可见组合逻辑段落。