这个问题的状态图再次显示在下面。
假设在状态分配中使用了 one-hot 代码 y[5:0] = 000001(A)、000010(B)、000100(C)、001000(D)、010000(E)、100000(F)
写一个逻辑表达式 Y1 ,它是状态触发器 y[1] 。
写一个逻辑表达式 Y3 ,它是状态触发器 y[3] 。
(通过假设 one-hot 编码的检查推导出逻辑方程。测试台将使用非 one hot 输入进行测试,以确保您不会尝试做更复杂的事情)。
module top_module (
input [5:0] y,
input w,
output Y1,
output Y3
);
parameter A=6'b000001,B=6'b000010,C=6'b000100,D=6'b001000,E=6'b010000,F=6'b100000;
reg [5:0] nstate;
always@(*) begin
case(y)
A: nstate = w?B:A;
B: nstate = w?C:D;
C: nstate = w?E:D;
D: nstate = w?F:A;
E: nstate = w?E:D;
F: nstate = w?C:D;
default: nstate = A;
endcase
end
assign Y1=y[0]&w;
assign Y3=(y[1]|y[2]|y[4]|y[5])&~w;
endmodule