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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 4967|回复: 4

[求助] 倍数以及计数器

[复制链接]
发表于 2012-10-9 16:21:52 | 显示全部楼层 |阅读模式

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

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

×
有两个计数器,cnt1和cnt2,cnt1从0一直到很大很大,cnt2在cnt1为500倍数的时候依次加一,这个该怎么实现,请大家帮忙、、、
发表于 2012-10-9 23:06:39 | 显示全部楼层
一,首先这个很大很大,一定要确定是多大,对资源有影响,不可能给你做到无穷大;
二,500的倍数用一个条件判断就可以吧,用求余数的%操作试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-10 09:13:24 | 显示全部楼层
谢谢了,那我这样写可以吗?
always()
   if  (~(cnt1 % 500))
        cnt2 <= cnt + 1'b1;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-14 21:43:46 | 显示全部楼层
回复 2# gaurson


    谢谢了,那我这样写可以吗?
always()
  begin
      if  (~(cnt1 % 500))
          cnt2 <= cnt2 + 1'b1;
  end

貌似算术运算符两边的操作数都要是确定的数,如果有一个不确定的话,好像结果是不确定的。
回复 支持 反对

使用道具 举报

发表于 2012-10-15 00:00:03 | 显示全部楼层
没用过,但应该不需要都是确定的,你的cnt1本来就是不确定的,得到不确定的结果,是可想而知的呀,按照你的描述。主要500不是2的n次方,所以部分比特位判断不好实现,只能用求余数的方式了。要不然就cnt1单独累加计数,因为你说是一直加下去(但这个终究要有一个尽头,资源不会无限大),然后在cnt1清零的时刻触发一个模为500的计数器cnt3,当cnt3到500时,让cnt2加一,cnt3清零重新计数,下一次500时再加一次cnt2,就和cnt1无关,因为只要cnt1和cnt3都从0开始,那么cnt2就是500的倍数时加一。可能算法说的复杂了点,你可以仔细考虑看看。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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


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

GMT+8, 2025-10-9 01:04 , Processed in 0.015398 second(s), 5 queries , Gzip On, Redis On.

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