打印

DSP硬件实现有符号数做累加运算

[复制链接]
1015|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Peonys|  楼主 | 2018-12-15 15:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DSP硬件实现有符号数做累加运算


      在通信系统中,经常会遇到多个数进行累加的情况。一般情况下,在更好的掌控时序的目标下,我们会选择用基于CSA结构的Wallace tree进行加法树压缩。基本上,参加运算的数都是有符号数,在这种情况下,不论进行累加的方法是选用Wallace tree也好,还是普通的两两相加也好,都会遇到相加过程中符号位扩展的问题,该问题不仅让设计很繁琐且易出错,而且带符号的移位也增加了加法器的位宽,增加了设计的总资源。那么可不可以在运算的过程中把有符号数也看成是无符号数,让其遵循跟无符号数做Wallace tree压缩或者普通的两两相加一样的规则呢?答案是肯定的。

一个M+1比特的有符号数的表示方法为:

其中ai表示A的二进制表示时的第i位。
则当N个同样位宽都为M+1比特的有符号数相加时.


       其中ki表示为每个进行累加时的操作数的符号位,一共有N个,所以i从1到N。a1i表示为第一个操作数的非符号位,a2i表示为第二个操作数的非符号位,。。。。一直到第N个aNi,i从0到M-1。由上式可知,右边的连加可以作为无符号数处理,同样,我们可以处理等号右边的第一个算式,这个算式就是符号位。


       在这种情况下,符号位的相加就可以拆分成两个部分,其中N*2M 是定值,ki上加一上划线代表ki的取反。因此符号位的累加结果可以提前知道,拆解成两部分,一部分是定值,一部分是每个有符号操作数的符号位取反的累加再移M位,然后就可以跟各操作数的非符号位一起进行累加运算,同时该运算遵循无符号位的加法树原则,节省了运算过程中进行带符号位扩展的资源。

相关帖子

沙发
zhangmangui| | 2018-12-17 20:52 | 只看该作者
我好像都是直接写的。编译器处理的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

640

主题

901

帖子

5

粉丝