这是我写的流水灯一部分,共有8个灯,从左往右依次亮,一次只有一个亮。我是用8位2进制表示的,1就表示那个灯亮,
可是我这样写,仿真时rst=0,就不动了,请问这是什么原因,这个问题困扰好久了,希望好xin人能回答一下,真的十分感谢您!
module FlowingWaterLamp(
input clk,rst,
input [2:0] C,
output reg[7:0] led
);
//dir确定方向
reg dir=1;
reg[7:0] start=8'b0000_0000;
reg[7:0] state;
reg[7:0] nextstate;
always @(*) begin
if(rst)
state<=start;
else
state<=nextstate;
end
always @(*) begin
case(C)
//单灯:从左向右
3'b000:
begin
//由start过度
if(state==8'b0000_0000) nextstate=8'b1000_0000;
//每次右移一位
else nextstate=nextstate>>1;
end
endcase
end
always @(*) begin
led<=state;
end
endmodule