给定如下所示的状态分配表,实现有限状态机。 重置应该将 FSM 重置为状态 000。

module top_module (
input clk,
input reset, // Synchronous reset
input x,
output z
);
parameter
y0=3'b000,
y1=3'b001,
y2=3'b010,
y3=3'b011,
y4=3'b100;
reg [2:0]state,nstate;
always@(*)
case(state)
y0:nstate=x?y1:y0;
y1:nstate=x?y4:y1;
y2:nstate=x?y1:y2;
y3:nstate=x?y2:y1;
y4:nstate=x?y4:y3;
default:nstate=y0;
endcase
always@(posedge clk)
if(reset)
state<=y0;
else
state<=nstate;
assign z=(state==y3||state==y4);
endmodule
浙公网安备 33010602011771号