我写的这个程序,想让数码管个位到九之后,产生一个脉冲,然后十位+1,但是板子上显示个位到九之后,然后个位数变到0之后,十位才+1,不知道是上面原因,哪位大佬指导一下,谢谢!
看时序啊,你的pulse10s是在 counter1s等于9的时候加置1的,而counter10s是在pulse10s置1后的下一个时钟周期才加1的,所以就出现了你说的情况啊。
那怎么能把脉冲提前一个时钟呢?或者还有上面改进的办法,求指导,谢谢
给你参考下:
always @(posedge clk_1hz)//秒功能进程
begin
if(ge==4'b1001)
begin
ge=4'b0000;
if(shi==3'b101)
shi=3'b000;
else
shi=shi+1'b1;
end
else
ge=ge+1'b1;
end
你把你的10s的计数器和1s计数器分成两个process就好了
改到两个进程中,这个pulse10s会持续两个时钟周期,十位会从零变到1之后,下个时钟还会+1,怎么让这个pulse10s只持续一个时钟呢?让他+1之后瞬间变到0
自己弄明白了,自己解答一下吧,在counter1=9的时候,脉冲并没有置0,所以在后面加个脉冲置0的语句就OK了!
首先你在等于各位计数到9的时候拉高脉冲,其次是,十位清零的时候不是十位等于6,而是十位等于5,个位等于9的时候