假设您希望使用三个触发器和状态代码 y[3:1] = 000, 001, ..., 101 分别用于状态 A、B、...、F 来实现 FSM。显示此 FSM 的状态分配表。 为触发器 y[2] 派生下一个状态表达式。
module top_module (
input [3:1] y,
input w,
output Y2);
parameter A=3'b000,B=3'b001,C=3'b010,D=3'b011,E=3'b100,F=3'b101;
reg [2:0] state;
always @ (*) begin
case (y)
A: state = w ? A : B;
B: state = w ? D : C;
C: state = w ? D : E;
D: state = w ? A : F;
E: state = w ? D : E;
F: state = w ? D : C;
endcase
end
assign Y2 = (state==C)|(state==D);
endmodule