1、这个题是独热码检测,如果用之前状态逻辑进行检测的话,如果跳到不是上述状态的就会报错。
2、总感觉我的独热码检测有点问题,以及 那个always有没有都没必要啊。
完整代码如下:
module top_module (
input [6:1] y,
input w,
output Y2,
output Y4);
reg[6:1] state;
always@(*)begin
case(y)
6'b000_001:state=w?6'b000_001:6'b000_010;
6'b000_010:state=w?6'b001_000:6'b000_100;
6'b000_100:state=w?6'b001_000:6'b010_000;
6'b001_000:state=w?6'b000_001:6'b100_000;
6'b010_000:state=w?6'b001_000:6'b010_000;
6'b100_000:state=w?6'b001_000:6'b000_100;
default:state=6'b000_001;
endcase
end
assign Y2=!w&(y[1]==1);
assign Y4=w&(y[2]==1||y[3]==1||y[5]==1||y[6]==1);
endmodule