高性能定点DSP位处理单元BMU的设计
1 功能概述
位处理单元(Bit ManipulatiON unit,BMU)主要由取指电路、移位数据处理电路、移位选择处理电路、桶形移位电路和输出电路等几部分组成。BMU的输入数据是36位的BMUi,经过处理后输出36位的数据BMUo作为DSP的一次运算结果。
本文设计的BMU是36位的,主要功能包括逻辑/算术移位、取指、归一化等,以下是对控制信号及相关功能较为详细的描述。
逻辑/算术左移 相应的控制信号是in arithshf,inleftshf,in_shift。将36位数据左移,低位补0;
逻辑右移 控制信号同上,他执行的是低32位数据右移,同时高位补0;
算术右移 控制信号如上,36位数据右移,高位由原最高位填充;
取指 控制信号是in_exp,取36位数据的指数,也即冗余的符号位的个数;
归一化 控制信号是in_norm,将输入数据进行归一化,得到去除冗余符号位后的结果。
指数提取的目的是进行类似于定点到浮点的数据转换。一个定点数可以用一个包含尾数和指数的浮点数来表示,这样可以提高数据的表示范围,同时使得定点DSP具有某种浮点运算的能力。取指的结果相当于浮点数的指数,而归一化的结果可以看成浮点数的尾数。这使得定点DSP能在不增加浮点算法开销的情况下获得某些浮点DSP的能力。
2 单元电路设计
2.1 桶形移位器的设计
移位和归一化操作都需要用到桶形移位器,因此桶形移位器是BMU的核心单元。通常,桶形移位器可以实现逻辑左移、右移,算术左移、右移等,一般为了减少晶体管和连线的数目以节省面积,通常只实现左移或右移中的一种。本文中只采用左移操作来实现桶形移位。设36位移位数据为BMUi,36位移位选择信号为shfsel,当shfsel[i]为1时,桶形移位器的输入数据(即经过移位数据处理后得到的数据)左移i位。
下面是实现右移的原理:
BMUi从高位到低位依次是BMUi[35],BMUi[34],…,BMUi[1],BMUi[0],BMUi重复排列两次构成72位数据BMUi[35],BMUi[34],…,BMUi[1],BMUi[0],BMUi[35],BMUi[34],…,BMUi[1],BMUi[0],将72位数据经过移位(左移)后的高36位作为桶形移位器的输出。当要求桶形移位器实现右移shfnum位时,只要将该72位数据左移(36-shfnum)位即可实现。当然在实现移位操作时,必须对72位数据的高36位(右移时)或低36位(左移时)进行处理,这个处理过程在移位数据处理电路中将会介绍。同时由于36位的shfsel最多只能选择左移35位(shfsel[35]=1时),所以72位桶形移位器的输入数据的中间2位可以合并成1位,成为71位输入数据(此时实现右移操作时应该将71位数据左移35-shfnum位)。
移位的实现主要通过移位开关网络来实现。移位网络(以8位移位数据为例,则移位器的输入数据需要处理成15位)的结构如图2所示,他是一个NMOS传输管阵列,行数等于数据字长,列数等于最大的移位数。这个移位器结构的主要优点是数据信号至多只经过一个传输管,移位的传输延时理论上是一个常数,并且与移位位数及移位器大小无关,同时结构比较规整,利于后端版图实现。但是NMOS传输管在传输高电平时有一个阈值电压损耗,降低了电路的噪声容限,因此需要在输出端增加电平提升电路。
2.2 取指电路的设计
指数(exp)指的是冗余符号位的个数,他对于二进制补码数的归一化是十分重要的,归一化是将原二进制补码左移exp位(也就是将冗余的符号位移出),例如对于二进制补码00001100,他冗余的符号位个数是3,所以exp=3,归一化就是将00001100左移3位的过程,即变成01100000。对于本文设计的BMU,符号位是BMui[31],如果高5位不完全相同,则exp为负值。表1列举了几个数据的例子。
指数的提取过程分成两步:
(1)找出从BMUi[34]到BMUi[0]第一个与BMUi[35]不同的位i。
(2)对i进行编码,得到指数值。
第一步可以通过BMUi[35]与BMUi[34-i](i=0,1,…,33,34)异或来实现,找出第一个与BMUi[35]相异的位。同时本级产生的移位选择信号必须能够屏蔽下一级的移位选择信号信号。设BMUi[34-i]位与.BMUi[35]异或的结果记为XOR[i](i=0,1,2,…,33,34),前一级产生的屏蔽信号为C[i-1],这样第i位(i=0,1,2,…,33,34)的移位选择信号可以表示成XOR[i]和C[i-1]的函数,指数选择信号的最高位exp sel[35]可以表示成C[34]的反信号,这表示如果前35位屏蔽信号都为0,则屏蔽信号C[34]无效,此时exp sel[35]=1;如果前35位已经有一个为1,则说明36位二进制位中存在与BMUi[35]相异的位,此时屏蔽信号C[34]有效,exp-sel[35]被屏蔽。
屏蔽信号最多将会
- 第1天-ARM汇编指令ADD/SUB/MUL(11-26)
- 基于FPGA的DSP设计方法(08-26)
- 电力电子装置控制系统的DSP设计方案(04-08)
- 基于DSP Builder的VGA接口设计(04-10)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)
- 数字信号处理(DSP)应用系统中的低功耗设计(05-02)