考虑如下所示的状态机,它有一个输入 w 和一个输出 z
假设您希望使用三个触发器和状态码 y[3:1] = 000, 001, ... , 101 分别表示状态 A, B, ... , F。 显示此 FSM 的状态分配表。 导出触发器 y[2] 。
实现下一个状态逻辑 y[2] 。 (这更像是一个 FSM 问题,而不是 Verilog 编码问题。哦,好吧。)
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;
wire [3:1]nstate;
always@(*)
case(y)
A:nstate=w?A:B;
B:nstate=w?D:C;
C:nstate=w?D:E;
D:nstate=w?A:F;
E:nstate=w?D:E;
F:nstate=w?D:C;
endcase
assign Y2=nstate[2];
endmodule