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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3726|回复: 9

[讨论] 怎样统计输入端‘1’的个数

[复制链接]
发表于 2010-9-29 13:18:41 | 显示全部楼层 |阅读模式

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

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

x
现在有一个问题,假设有32位的输入,怎样统计‘1’的个数和‘0’的个数,要求在1~3个周期内搞定?
请大牛指点一下,急用,谢谢了!!!
发表于 2010-9-29 14:41:49 | 显示全部楼层
把32bit的数据每个bit相加应该可以统计“1”和“0”的个数吧,data[0]+data[1]+data[2]...+data[31]
 楼主| 发表于 2010-9-29 16:04:37 | 显示全部楼层
这个可以统计,但是无法在一个时钟周期内搞定啊!!!!!
发表于 2010-9-29 16:26:27 | 显示全部楼层
为什么不能在一个cycle内完成呢,我觉得可以完成的。
发表于 2010-9-29 16:28:33 | 显示全部楼层
发表于 2010-9-29 22:46:48 | 显示全部楼层
上述的方法理论上可行,但是加法器太多,而时钟速度太快的话,会有亚稳态的出现。可以采用RAM查找表来实现,或者CASE语句
发表于 2010-9-30 08:50:42 | 显示全部楼层
查表的方法可以在1个时钟周期内实现,不过表会比较大。也可以考虑将输入分成4个8比特,分别查表,再将查表结果分两个时钟周期加起来得到结果
发表于 2010-9-30 09:21:03 | 显示全部楼层
楼上AmoiBB的思路不错,可以实行
发表于 2010-9-30 10:04:24 | 显示全部楼层
可以理解为这是一个多路译码器、编码器,只是因为输入太多,所以可能比较占用资源。如果非要做LUT,用CASE在语句中例化,用RAM可能比较慢,但节省LE。
发表于 2010-9-30 13:35:54 | 显示全部楼层
两种方法:
1.  case语句:这个比较容易实现,而且占用资源少。推荐。
2.  RAM查表:资源消耗大,而且繁琐。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-8 08:15 , Processed in 0.027642 second(s), 6 queries , Gzip On, Redis On.

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