这是书上的一个例子,怎么模仿这个例子,根据下图完成代码呢?
FSM_EXP(clk,reset,state_inputs,comb_outputs);
input clk,reset;
input[0:1]state_inputs;
output[3:0]comb_outputs;
reg[3:0]comb_outputs;
parameter s0=0,s1=1,s2=2,s3=3,s4=4;
reg[4:0]c_st,next_state;
always@(posedge clk, negedge reset)begin
if(!reset) c_st<=s0;
else c_st<=next_state; end
always@(c_st,state_inputs)begin
case(c_st)
s0:begin comb_outputs<=5;
if (state_inputs==2'b00) next_state<=s0;
else next_state<=s1;end
s1:begin comb_outputs<=8;
if (state_inputs==2'b01) next_state<=s1;
else next_state<=s2;end
s2:begin comb_outputs<=12;
if (state_inputs==2'b10) next_state<=s0;
else next_state<=s3;end
s3:begin comb_outputs<=14;
if (state_inputs==2'b11) next_state<=s3;
else next_state<=s4;end
s4:begin comb_outputs<=9; next_state<=s0;end
default: next_state<=s0;
endcase
end
endmodule
这是要完成的题目:
书上的那个代码有点没看懂,
s0:begin comb_outputs<=5;
if (state_inputs==2'b00) next_state<=s0;
else next_state<=s1;end
这一段为什么s0的下一个状态就是5了,怎么得到的啊?