在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 5501|回复: 13

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

[复制链接]
发表于 2012-2-7 15:55:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
always@(posedge clk or negedge rst)
if(!rst)
cont1<=4'b0000;
else if (cont1==16)
cont1<=16;
else
cont1<=cont1+1;
发表于 2012-2-17 20:34:44 | 显示全部楼层
直接先仿真就知道有没有问题了。 估计是有,你没有抓到而已
回复 支持 反对

使用道具 举报

发表于 2012-2-17 19:20:47 | 显示全部楼层
我感觉他是FPGA里面 的计数clock频率太高了。他的示波器可分辨的频率又太低。其实rst解除后是从
0到16计数的,只是他看不出来
回复 支持 反对

使用道具 举报

发表于 2012-2-17 19:15:50 | 显示全部楼层
我感觉他是FPGA里面 的计数clock频率太高了。他的示波器可分辨的频率又太低。其实rst解除后是从
0到16计数的,只是他看不出来
回复 支持 反对

使用道具 举报

发表于 2012-2-14 14:54:42 | 显示全部楼层
用综合软件看下你代码最终实现的硬件是什么样子的,这样就可以分析为什么没实现预期的功能了。
有时候这是最方便的方法。
回复 支持 反对

使用道具 举报

发表于 2012-2-8 09:22:19 | 显示全部楼层
回复 1# bwl19881019


没有计数过程是不太可能的,除非是你没有抓到,如果DUMP FSDB就可以看到了。另外建议将else if(cnt1 == 16)改为 else if(cnt1 >= 5'd16)增强电路的健壮性
回复 支持 反对

使用道具 举报

发表于 2012-2-8 08:19:48 | 显示全部楼层




    因为不是循环计数,计数器时钟频率高,上电后计数器很快就计满16了
所以此时再去测量,是不能观察到计数器各比特位有变化的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-2-7 17:31:12 | 显示全部楼层
回复 7# pontiff


    你这个代码是计数器记到16时计数器清零。如果这样编写,我试过计数器是可以工作的。但是我要的是计数器记到16就停止了。不在计数了。
回复 支持 反对

使用道具 举报

发表于 2012-2-7 17:21:51 | 显示全部楼层
改下代码:
  if(!reset)
       cont1 <= 5'b00;
    else if(reset && cont1==5'd16)
           cont1 <= 4'b0;
    else if (reset && cont1< 5'd16)
       cont1 <= cont1 + 1'b1;
end
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-2-7 17:10:34 | 显示全部楼层
回复 4# skytang007

记到16是有意义的。设计需要。我写错了。计数器是5bit的。实际测量的也是5bit的计数器。但是实际测量中,计数器在复位的时候是零,复位信号去掉后直接变为16了。cont[0],cont[1],cont[2].这3个脚我都测量了。没有电平的高低变化。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 ) |网站地图

GMT+8, 2025-10-18 20:36 , Processed in 0.026965 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表