一种高性能非精确冗余二进制乘法器及其设计方法与流程

文档序号:12462841阅读:352来源:国知局
一种高性能非精确冗余二进制乘法器及其设计方法与流程

本发明涉及基于非精确电路设计领域,尤其涉及一种高性能非精确冗余二进制乘法器及其设计方法。



背景技术:

随着各种移动设备终端的功能体验不断丰富和发展,功耗已经成为制约数字集成电路设计发展的一个关键问题。工业界对于芯片设计的要求已经从追求高性能和小面积转变为对性能、面积和功耗的综合要求。

大量研究表明数字集成电路计算的精确度和功耗呈现出正比的关系,降低计算精确度能达到降低功耗的效果,同时这种能量的节省和功耗的降低是非常明显的。通过降低计算精确度来实现低功耗的方法和设计理念被称为非精确计算,非精确计算与现有精确计算系统的最大不同在于:非精确计算系统可以将错误限定在可允许的范围内,并且不需要添加任何错误纠正或者补偿措施。

现有的精确乘法器面临着日益严峻的实时和低功耗运算的要求,目前已有的普通二进制非精确乘法器由于在高位部分积压缩的过程中仍需精确压缩,因而依然存在连续进位的问题,这不利于设计高速并行的乘法器,迫切需要设计新型的高速并行的非精确乘法器来进一步地提高性能并降低功耗。

冗余二进制数是一种有符号数的表示方法,附图3给出了由普通二进制数生成冗余二进制数的编码方式。冗余二进制加法器具有连续进位无关的特性和规整的互连结构,冗余二进制加法器的连续进位无关规则保证了冗余二进制数加法运算的时间是一个定值,该值只取决于电路结构本身,而与操作数字长无关。由冗余二进制加法器构成的压缩器因其进位无关、并行压缩的特性在乘法器设计的部分积压缩过程中有很大优势,在32位以及64位等较大位宽的非精确乘法器设计中非精确的冗余二进制乘法器速度高、面积小、功耗低的优势将会体现出来。



技术实现要素:

本发明所要解决的技术问题是针对嵌入式实时低功耗应用,提供一种高性能非精确冗余二进制乘法器及其设计方法,该乘法器面积小、速度高、功耗低。

本发明采用如下技术方案:

一种高性能非精确冗余二进制乘法器,其特征在于所述乘法器包括:非精确Booth编码单元、精确Booth编码单元、非精确冗余4-2压缩器单元、精确冗余4-2压缩器单元、精确压缩树形结构单元以及冗余二进制数到普通二进制数转换单元;该乘法器为N bit的乘法器,最终的乘积结果为2N bit位,乘积结果的H bit高位由精确Booth编码单元和精确冗余4-2压缩器单元生成;乘积结果的L bit低位由非精确Booth编码单元和非精确冗余4-2压缩器单元生成;2N=H+L,N为乘数和被乘数的位宽;

精确Booth编码单元根据乘数和被乘数生成普通二进制形式的精确部分积,并将生成的普通二进制精确部分积转换为冗余二进制精确部分积后传递给精确冗余4-2压缩器单元;

非精确Booth编码单元根据乘数和被乘数生成非精确部分积,并将生成的普通二进制非精确部分积转换为冗余二进制非精确部分积后传递给非精确冗余4-2压缩器单元;

精确压缩树形结构单元用于消除在普通二进制精确部分积转换为冗余二进制精确部分积和普通二进制非精确部分积转换为冗余二进制非精确部分积的过程中,由最后两行普通二进制部分积转换为冗余二进制部分积时产生的多余修正序列;

精确冗余4-2压缩器单元和非精确冗余4-2压缩器单元分别将冗余二进制精确部分积和冗余二进制非精确部分积压缩至一行并传递给冗余二进制数到普通二进制数转换单元;冗余二进制数到普通二进制数转换单元将压缩至仅剩一行的冗余二进制部分积转换为普通二进制数,得到最终乘积结果。

本发明还提出一种高性能非精确冗余二进制乘法器的设计方法,其特征在于,包括步骤:

(1)构建如权利要求1所述的高性能非精确冗余二进制乘法器;

(2)通过精确Booth编码单元和非精确Booth编码单元产生N/2行普通二进制部分积并将普通二进制部分积转换为冗余二进制形式的部分积;每行普通二进制形式的部分积分为精确部分积和非精确部分积;普通二进制精确部分积由精确Booth编码单元产生,普通二进制非精确部分积由非精确Booth编码单元产生;

第i行普通二进制部分积中精确部分积的表达式为:

精确Booth编码单元产生的纠错字为:

第i行普通二进制部分积中非精确部分积的表达式为:

非精确Booth编码单元产生的纠错字为:ECWi'=b2i+1

式中,b2i表示乘数中第2i位的权值系数,aj表示被乘数中第j位的权值系数;其中i取整数,当i=0时,b2i-1=b-1=0;0≤j<N,j取整数;当j=0时,aj-1=a-1=0;

将普通二进制形式的部分积转换为冗余二进制形式的部分积,转换的方法为:

当i为偶数时,即时,令当i为奇数时,即时,令相邻的两行构成一行冗余二进制部分积pk

(3)通过精确压缩树形结构单元消除普通二进制部分积转换为冗余二进制形式部分积过程中产生的多余修正序列;并将修正后的冗余进制形式部分积发送给精确冗余4-2压缩器单元和非精确冗余4-2压缩器单元;

(4)通过精确冗余4-2压缩器单元和非精确冗余4-2压缩器单元将冗余二进制形式的部分积压缩至一行;精确冗余4-2压缩器单元压缩冗余二进制形式的部分积中的精确部分积,非精确冗余4-2压缩器单元压缩冗余二进制形式的部分积中的非精确部分积;

(5)通过冗余二进制数到普通二进制数转换单元将步骤(4)中压缩至一行的冗余二进制部分积转换为普通二进制数,得到最终普通二进制形式的乘积结果。

进一步的,所述精确冗余4-2压缩器单元包括一组精确冗余4-2压缩器,每个精确冗余4-2压缩器的输入为权值相同的四个数输出为精确冗余4-2压缩器输入与输出值之间的逻辑关系表达式为:

所述非精确4-2压缩器单元包括一组非精确4-2压缩器,每个非精确4-2压缩器输入为输出为非精确冗余4-2压缩器单元输入与输出值之间的逻辑关系表达式为:

当k=0时,

进一步的,所述步骤(3)中通过精确压缩树形结构单元消除多余修正序列的方法为:

分别用替代用替代令其中:

进一步的,所述步骤(5)中,通过冗余二进制数到普通二进制数转换单元将冗余二进制部分积转换为普通二进制数的方法为:

定义任意一位冗余二进制部分积为Xi对应的编码为Si为补码位,Ci为低位送来的进位,C0=0,Ci+1为向高位的进位;对冗余二进制部分积中的每一位执行以下步骤:以为输入,计算:

本发明具有如下有益效果:

1.与之前的乘法器相比,需要更少的硬件资源;

2.与之前的乘法器相比,功耗更低,速度更快,应用效果更好。

附图说明:

图1为以N=8,L=4,H=12的非精确冗余二进制乘法器的原理实现图;

图2为8位普通二进制乘法器部分积产生原理图;

图3为8位冗余二进制乘法器部分积产生原理图;

图4为普通二进制数到冗余二进制数转换方式图;

图5为电路中的门符号含义图;

图6为非精确Booth编码单元的门级实现电路图;

图7为精确冗余4-2压缩器单元中的的门级实现电路图;

图8为精确冗余4-2压缩器单元中的的门级实现电路图;

图9为非精确冗余4-2压缩器单元中的门级实现电路图;

图10为非精确冗余4-2压缩器单元中的门级实现电路图;

图11为冗余二进制数到普通二进制数转换方式图。

具体实施方式:

下面以N=8,H=12,L=4,即以乘积结果的高12位为精确设计,而低4位为非精确设计的8位非精确冗余二进制乘法器为例,结合附图对本发明的技术方案做进一步的详细说明:

如图1所示为本发明的,本发明高性能非精确冗余二进制乘法器包括非精确Booth编码单元、精确Booth编码单元、非精确冗余4-2压缩器单元、精确冗余4-2压缩器单元、精确压缩树形结构单元以及冗余二进制数到普通二进制数转换单元。各单元电路如图5至10所示。

其中精确Booth编码单元是用于两个操作数生成精确的高12位部分积,将部分积的行数减少至4行并且将部分积传递给精确压缩器单元使用。

高12位使用精确Booth编码单元产生部分积的表达式为:

纠错字为:

式中,b2i表示乘数中第2i位的权值系数,aj表示被乘数中第j位的权值系数。其中0≤i<4,i取整数;0≤j<8,j取整数。

其中非精确Booth编码单元是用于两个操作数生成非精确的低4位部分积,将部分积的行数减少至4行并且将部分积传递给非精确压缩器单元使用。

而非精确Booth编码单元中部分积产生的表达式为:

纠错字为:ECWi′=b2i+1

式中,b2i表示乘数中第2i位的权值系数,aj表示被乘数中第j位的权值系数。其中0≤i<4,i取整数;0≤j<8,j取整数。

精确Booth编码单元和非精确Booth编码单元产生的均为普通二进制形式部分积,普通二进制的部分积产生原理图如图2所示。

图3为8位冗余二进制乘法器部分积产生原理图。其中a8等于符号位a7,由于被乘数A需要与进行Booth编码的乘数B相乘,当部分积结果为2A时需要A向左移1位,这使得低位向左移位占据符号位的位置,导致符号位丢失产生错误,因此将a8作为a7的扩展位,在仅增加少量硬件复杂度的情况下可以解决这一错误。

即第0行普通二进制部分积的P04,P05,……P07由精确Booth编码生成,例如而P00,P01,……P03及ECW0′=b1均由非精确Booth编码及对应的纠错字生成,例如P00=P′00=(b0·0)+(b1⊕a0)。

第1行普通二进制部分积的P12,P13,……P17由精确Booth编码生成,而P10,P11及纠错字ECW1'=b3均由非精确Booth编码及对应的纠错字产生方式生成。

第2行普通二进制部分积的P20,P21,……P27及由精确Booth编码及对应的纠错字产生方式生成。

第3行普通二进制部分积的P30,P31,……P37及由精确Booth编码及对应的纠错字产生方式生成。

将上述通过精确与非精确Booth编码方式产生的普通二进制部分积做如下变换,当i为偶数(即i=0,2)时,将P0j变换为将P2j变换为当i为奇数时(即i=1,3),将P1j转换为将P3j转换为这样相邻的两行普通二进制部分积就可以用来构成一行冗余二进制部分积p0,就可以用来构成一行冗余二进制部分积p1

两个M位普通二进制部分积A和B相加可以表示为:

因此一个冗余二进制部分积可以表示为它由数集构成,这里的图4给出了一种由普通二进制数到冗余二进制数的编码方式。根据这种编码方式,对于8位冗余二进制乘法器而言,这两行普通二进制部分积的最高2位为符号扩展位,该2位由符号位确定并互为反函数,同时将最高位取反,并产生一个修正值-1,即可将普通二进制数部分积转化为冗余二进制部分积。

利用具有进位无关特性的冗余二进制加法器将转换得到的冗余二进制部分积进行压缩,即可得到冗余二进制形式的积。

其中精确冗余4-2压缩器的输入为权值相同的四个数输出为表达式为:

非精确4-2压缩器输入为输出为表达式为:

当k=0时,

作为本发明高性能非精确冗余二进制乘法器进一步的优化方案,对于8位乘法器而言,通过逻辑化简分别用替代用替代令进而可以在减少一级压缩的前提下仍然可以实现精确的压缩树形结构单元,相比于忽略多余纠错序列的压缩树形结构单元提高了压缩精度。其中:

将压缩至仅剩一行的冗余二进制部分积,通过冗余二进制数到普通二进制数转换单元得到最终乘积结果。根据图11的冗余二进制数到普通二进数转换方式图,由构成的Xi为冗余二进制数位,Si为二进制数的补码输出,Ci为低位送来的进位,C0=0,Ci+1为向高位的进位输出。可以得到Si和Ci+1的逻辑表达式为:

本发明还给出了8位高性能非精确冗余二进制乘法器的应用方法。其中使用精确Booth编码单元、精确冗余4-2压缩器单元和非精确Booth编码单元、非精确冗余4-2压缩器单元的位数确定包含以下步骤:

步骤1),将非精确冗余二进制乘法器中使用非精确Booth编码单元和非精确冗余4-2压缩器单元的位数L设为非精确因子p,而使用精确Booth编码单元和精确冗余4-2压缩器单元的位数H则为H=16-p;

步骤2),对非精确冗余二进制乘法器进行建模;

步骤3),根据具体的应用数据确定非精确因子p,并对建模后的非精确冗余二进制乘法器进行仿真;

步骤4),根据应用的要求评估仿真结果,如果仿真的结果不符合应用的要求,则令非精确因子p=p-1;

步骤5),重复步骤3)和步骤4),直至仿真的结果符合应用的要求。此时p值即为L的取值,对应的H的取值为H=16-L;

以上只是对本发明的优选实施方式进行了描述。对该技术领域的普通技术人员来说,根据以上实施方式可以很容易地联想到其它的优点和变形。因此,本发明并不局限于上述实施方式,其仅仅作为例子对本发明的一种形态进行详细、示范性的说明。在不背离本发明宗旨的范围内,本领域普通技术人员在本发明技术的方案范围内进行的通常变化和替换,都应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1