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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
12
返回列表 发新帖
楼主: 星若天空

[求助] 用verilog写计数器

[复制链接]
发表于 2014-4-5 08:16:12 | 显示全部楼层
回复 10# bu2zhouzhu


   对两个不同宽度的高电平分别计数
发表于 2014-4-5 17:58:42 | 显示全部楼层
回复 11# mqlitong



我感觉,signal_wire刚刚从1变到0的那个下降沿,count会是任意值,跟signal_reg为1的时间长度有关,比如某次signal_reg持续为1的时间是100个clk周期,根据37-41行,count为100.假设然后signal信号从1变到0,45-52行激活,47行的if和49行的if else都不满足(此时count==100, !signal_wire==1, count不满足),cnt_1和cnt_2没有变化。
发表于 2014-4-5 18:24:08 | 显示全部楼层
只要有足够快的时钟,这个问题应该很简单!
发表于 2014-4-5 20:49:18 | 显示全部楼层
回复 12# bu2zhouzhu


   额,我忘记说了。。补充一下,我仿真时用的clk为50MHz的,一个周期为20ns,可能没说清楚
发表于 2014-4-6 11:18:21 | 显示全部楼层
回复 8# mqlitong


You code has some mistake of the line from 45 to 52.The combination circuit can't use the none-blocking assignment.
I modify the code shows below.

  • always@*
  • begin
  •         if ((count == 8'd50) && (!signal_wire))
  •                 cnt_1 = cnt_1 + 1'b1;
  •         else if ((count == 8'd25)  && (!signal_wire))
  •                 cnt_2 = cnt_2 +1'b1;
  • end
发表于 2014-4-7 09:22:35 | 显示全部楼层
回复 15# wh1105


   谢谢,想请教一下为什么非阻塞赋值用在这里不合适呀?才自学Verilog一个月多点,有些细节可能掌握的不太好,给讲解下吧,谢谢。
发表于 2014-4-7 20:21:51 | 显示全部楼层
回复 16# mqlitong


You write the RTL code that has two concepts one is the combination circuit the other is the sequence circuit.The combination circuit are used the blocking assignment.
The sequence circuit are used the non-blocking assignment
发表于 2014-4-7 22:57:39 | 显示全部楼层
niuren
发表于 2014-4-8 15:13:55 | 显示全部楼层
回复 17# wh1105


   谢谢了~
发表于 2014-5-11 15:06:15 | 显示全部楼层
学习学习下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-14 23:46 , Processed in 0.021812 second(s), 7 queries , Gzip On, Redis On.

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