cpld 计数器 从0开始计数记到16停止, 上电之后计数器不工作

2019-03-25 09:29发布

always@(posedge clk or negedge rst)
if(!rst)
cont1<=5'b0000;
else if (cont1==16)
cont1<=16;
else
cont1<=cont1+1;
时钟复位信号都正常,上电之后计数器马上变为16.没有中间计数的过程。哪位知道是什么问题? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
ssawee
1楼-- · 2019-03-25 18:05
< / 这种问题要自己检查出错误才能学到经验。才能学到如何差错

这么明显的,你直接就赋值的16当然永远都是16
十字星1986
2楼-- · 2019-03-25 19:38

循环没跑起来

eeleader
3楼-- · 2019-03-25 23:52

这是非常简单的问题:

     如果你要周期计数:正确写法应该是:

always@(posedge clk or negedge rst)
if(!rst)
cont1<=5'b0000;
else if (cont1==16)
cont1<=0; 而不是 cont1<=16;
else
cont1<=cont1+1;

chenzhufly
4楼-- · 2019-03-26 02:11
 精彩回答 2  元偷偷看……
marco515
5楼-- · 2019-03-26 07:53
做事要细心点好
else if (cont1==16)
cont1<=16;

else if (cont1==16)
cont1<=0;
看看有没有区别
eezhangasian
6楼-- · 2019-03-26 13:34
还有就是在相应的周期内,计数是相当快的,人眼分辨不出来。if(Count1 == 16) Count1 <= 0;

一周热门 更多>