微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 如何在5个时钟周期内实现150个10位二进制数的累加,时钟频率为100M

如何在5个时钟周期内实现150个10位二进制数的累加,时钟频率为100M

时间:10-02 整理:3721RD 点击:
如何在5个时钟周期内实现150个10位二进制数的累加,时钟频率为100M,FPAG为spartan6系列的。感谢大侠



   加法器树?

1、建一个表
2、150个数,每个对应的位分一组,10bit位共10组
3、每组组成一个序列,查表,表中返回的是值是该组中1的个数,作为该组的和值
   (现在知道这个表怎么做了吧?)
4、10组中高n位的组左移n位,得到10个数
5、预计前面也就需要查表一个周期,剩下的就是4个周期这10个数的加法,好搞多了吧?


  请问这个查找表的表怎么做,难道是做成地址宽度为150,深度为2^150的一个ROM表吗?这个深度也太大了吧,



    额, 写的时候没仔细去想这个表,要是没有个好办法统计这150个bit位的和,这个方法就不可行了

3~4个数并行加呗,分5级做,不过输入数据够宽的,这150个数从哪里来?带宽够吗?


目前来看只有这种方法可行了。谢谢

还可以考虑 直接用assign把所有的加了,也就是直接组合运算,等3~4周期时间直接去读取结果
板子上跑起来,用signalTap抓取个数验证一下,如果结果对的,那第5个周期的结果应该可以得到稳定的正确的结果

使用DSP48,如果你没有资源限制的话



   旁观一下

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top