reg[3:0] old_mcnt;
wire[3:0] difval;
reg si;
reg[3:0] mcnt;
always @(si or rst)
begin
if(!rst)
begin
old_mcnt<=4'd0;
mcnt<=4'd0;
end
else
begin
if(!si)
begin
mcnt<=mcnt+4'd1;
old_mcnt<=mcnt;
end
else if(si)
begin
mcnt<=mcnt-4'd1;
old_mcnt<=mcnt;
end
end
end
assign difval=mcnt-old_mcnt;
assign led=(difval==4'd1) 1'b1:1'b0;
就这一段代码在仿真中led脚有波形产生了,可是烧到芯片中后led对应的指示灯确没有闪亮,一直是灭的
对于mcnt和old_mcnt 有点象移位寄存器这样处理了
请大侠帮我分析一下这代码,要如何实现这个功能?
仿真图片在附件中 |