对于这部分,假设一个独热代码与状态赋值 'y[6:1] = 000001、000010、000100、001000、010000、100000、<> 分别用于状态 A、B,..., F。
为下一个状态信号 Y2 和 Y4 编写逻辑表达式
module top_module (
input [6:1] y,
input w,
output Y2,
output Y4);
/*
parameter A=6'b000001,B=6'b000010,C=6'b000100,D=6'b001000,E=6'b010000,F=6'b100000;
reg [5: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[1];
assign Y4 = state[3];
*/
assign Y2 = y[1]&~w;
assign Y4 = (y[2]|y[3]|y[5]|y[6])&w;
endmodule
这里使用组合逻辑会出现部分点不对的问题,不知道为什么。