CN105183424B - 一种具有高精度低能耗特性的固定位宽乘法器 - Google Patents
一种具有高精度低能耗特性的固定位宽乘法器 Download PDFInfo
- Publication number
- CN105183424B CN105183424B CN201510518528.2A CN201510518528A CN105183424B CN 105183424 B CN105183424 B CN 105183424B CN 201510518528 A CN201510518528 A CN 201510518528A CN 105183424 B CN105183424 B CN 105183424B
- Authority
- CN
- China
- Prior art keywords
- input
- mrow
- msub
- output
- csd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及集成电路技术领域,特别涉及一种高精度低能耗固定位宽乘法器。本发明的高精度固定位宽乘法器,包括CSD编码电路、高位部分积产生电路、低位补偿电路和部分积压缩电路,所述CSD编码电路的输入端接外部输入数据,其输出端接高位部分积产生电路和低位补偿电路;所述高位部分积产生电路接外部输入数据,其输出端接部分积压缩电路;所述低位补偿电路接外部输入数据,其输出端接部分积压缩电路;所述部分积压缩电路的输出端接外部输出数据。本发明的有益效果为,实现了具有低功耗和较高速度的固定位宽CSD乘法器,实现了具有高精度、低能耗的实用固定位宽乘法器设计。本发明尤其适用于低能耗固定位宽的高精度乘法实现。
Description
技术领域
本发明属于集成电路技术领域,具体的说涉及一种具有高精度低能耗特性的固定位宽乘法器。
背景技术
乘法器是数字集成电路中一种非常重要的基本单元。在数字系统设计中,乘法器的性能和功耗很大程度上影响着整个数字系统。
在乘法器设计中,一般采用编码电路对乘数进行编码,以减少乘数中非零位的数量从而减少部分积的产生,进而减少用以累加部分积的加法器的数量,达到简化硬件、减小功耗、提升乘法运算速度的目的。其中CSD(Canonical Signed Digit)编码器就是一种应用于乘法运算的冗余带符号数编码方式,其优势在于可将乘数中非零位的数量减少到最小,并且满足编码后任何两个非零数不相邻。
在实际应用中,在需要反复迭代运算或需要限制存储长度的场合,通常采用固定位宽乘法器设计。固定位宽乘法器是一种使得乘法运算结果保持与被乘数位宽相同的乘法器,它通过采用某些补偿结构来实现对精确输出结果的近似。在传统全精度CSD乘法器的基础上,采用固定位宽乘法器设计,可以进一步简化乘法运算,实现更低的功耗和更高的运算速度。
传统的固定位宽CSD乘法器采用了比较简单的补偿方式,通常包括了全精度运算再截断和直接截断两种方式。全精度运算再截断方式是在全精度运算的结果上截断权重较低的位数,再采用常数补偿方式,实现了较高的精度,但是其功耗和速度相对全精度的设计并不具有优势;直接截断方式虽然具有较低的功耗和较快的速度,但运算结果和精确结果相比误差较大,因而应用价值较低。传统的固定位宽CSD乘法器在补偿方式的设计上比较明显的缺点,极大的制约了固定位宽CSD乘法器的应用范围。
发明内容
本发明所要解决的,就是针对上述问题,提出一种具有高精度低能耗特性的固定位宽乘法器。
为实现上述目的,本发明采用如下技术方案:
一种具有高精度低能耗特性的固定位宽乘法器,包括CSD编码电路、高位部分积产生电路、低位补偿电路和部分积压缩电路;所述CSD编码电路的输入端接第一外部输入数据,其输出端接高位部分积产生电路的第一输入端、低位补偿电路的第一输入端;所述高位部分积产生电路的第二输入端接第二外部输入数据,其输出端接部分积压缩电路的第一输入端;所述低位补偿电路的第二输入端接第二外部输入数据,其输出端接部分积压缩电路的第二输入端;所述部分积压缩电路的输出端为固定位宽乘法器的输出端;
所述CSD编码电路用于接收固定字长的外部数据,所述第一外部输入数据为乘法器的乘数,所述乘数为二进制数据,CSD编码电路根据接收的二进制数据迭代产生输出CSD编码结果,将CSD编码结果输入到高位部分积产生电路的第一输入端、低位补偿电路的第一输入端;
所述高位部分积产生电路用于产生乘法高位部分积,所述外部输入数据为乘法器的被乘数,采用二进制数据,根据CSD编码结果和外部输入数据,通过并行运算得到高位的精确部分积结果;
所述低位补偿电路用于产生近似的乘法低位部分积,所述第二外部输入数据为乘法器的被乘数输入,所述被乘数为二进制数据,低位补偿电路根据CSD编码结果和第二外部输入数据,产生用于拟合乘法的低位部分积结果;
所述部分积压缩电路用于压缩高位部分积产生电路和低位补偿电路产生的两个部分积,从而减少乘法部分积的数量,最终输出固定位宽乘法运算的结果。
进一步的,所述CSD编码电路根据接收的二进制数据迭代产生输出CSD编码结果的具体方法为:
设外部输入的乘数为n位二进制数据,分别为第一位数b0、第二位数b1、……、第n位数bn-1;
CSD编码电路输出为以符号-幅值方式编码的CSD码,位数均为n位,且一一对应,符号位分别为第一位数符号位d0,s、第二位数符号位d1,s、……、第n位数符号位dn-1,s,幅值位分别为第一位数幅值位d0,m、第二位数幅值位d1,m、……、第n位数幅值位dn-1,m,以一个符号位di-1,s和一个幅值位di-1,m共同表示第i个CSD编码位di-1,输出的所有符号位和幅值位接高位部分积产生电路的第一输入端、低位补偿电路的第一输入端;
所述CSD编码电路由第1位CSD编码子电路、第n位CSD编码子电路和其它CSD编码子电路三类CSD编码子电路构成;
所述的第1位CSD编码子电路由一个与门AND构成;第1位CSD编码数的幅值位为外部输入乘数的第一位数b0,同时接与门AND的输入端;与门AND的另一个输入端接外部输入乘数的第二位数b1,其输出端接第1位CSD编码数的符号位;
所述的第n位CSD编码子电路由同或门XNOR、或非门NOR、反相器INV和与门AND构成;第n-1位输入二进制位bn-2和第n位输入二进制位bn-1接同或门XNOR的输入端,同或门XNOR的输出接或非门NOR的一个输入端;或非门NOR的另一个输入端接第n-1位输出CSD编码的幅值位dn-2,m,其输出端作为第n位输出CSD编码的幅值位dn-1,m,同时接与门AND的第一输入端;反相器INV的输入端接第n-1位输出CSD编码的幅值位dn-2,m,输出端接与门AND的第二输入端;与门AND的第一输入端接或非门NOR的输出端,第二输入端接反相器INV的输出端,第三输入端接第n位输入二进制位bn-1,其输出端作为第i位输出CSD编码的符号位dn-1,s;
所述的其它CSD编码子电路以第i位为例,所述CSD编码子电路由同或门XNOR、或非门NOR和与门AND构成;第i-1位输入二进制位bi-2和第i位输入二进制位bi-1接同或门XNOR的输入端,其输出接或非门NOR的输入;或非门NOR的一个输入端接同或门XNOR的输出,其另一个输入端接第i-1位输出CSD编码的幅值位di-2,m,其输出端作为第i位输出CSD编码的幅值位di-1,m,同时接与门AND的输入端;与门AND的一个输入端接或非门NOR的输出端,其另一个输入端接第i+1位输入二进制位bi,其输出端作为第i位输出CSD编码的符号位di-1,s。
进一步的,所述高位部分积产生电路根据CSD编码结果和外部输入数据,通过并行运算得到高位的部分积结果的具体方法为:
设被乘数为n位二进制数据,分别为第一位数a0、第二位数a1、……、第n位数an-1;
所述高位部分积产生电路,输入为外部输入的被乘数和CSD编码电路的输出数据,输出为高位部分积,包括n行,其中第i行由i位数组成,依次为pi-1,n-1,pi-1,n-2,……,pi-1,n-i,接部分积压缩电路的第一输入端;所述高位部分积产生电路由n(1+n)/2个异或门XOR和n(1+n)/2个与门AND构成;以第i行第j位部分积pi-1,j-1为例,由第i位CSD编码di-1与第j位被乘数aj-1产生,其中i和j需要满足i+j>n+1,第i位CSD编码的符号位di-1,s接异或门XOR的输入端,第j位被乘数aj-1接异或门XOR的另一个输入端,XOR的输出端接与门AND的输入端;与门AND的一个输入端接异或门XOR的输出端,另一个输入端接第i位CSD编码的幅值位di-1,m,与门AND的输出端为第i行第j列部分积pi-1,j-1。
进一步的,所述低位补偿电路根据CSD编码结果和第二外部输入数据,产生用于拟合乘法的低位部分积结果的具体方法为:
所述的低位补偿电路由判断产生模块和低位部分积产生模块构成,;所述判断产生模块用于判断下式中等号右侧每一项数据为1的总个数,判断的结果用sum表示,即:
其中,运算符|表示或运算,运算符表示异或运算;a2表示外部输入的被乘数第3位二进制数,接低位补偿电路的第一输入端,即判断产生模块的第一输入端,在低位补偿电路中接判断产生模块的第一输入端;所述di-1,m和di-1,s作为CSD编码电路第i位输出接低位补偿电路的第二输入端,在低位补偿电路中接判断产生模块的第二输入端;所述sum表示判断产生模块的数据输出,接低位部分积产生模块的输入端;
所述低位部分积产生模块用于产生近似的低位部分积,包括以下步骤:
a.取令l=k-1;
b.判断sum≥2l+1是否成立,若是,则取cl=1,sum=sum-2l;若否,则取cl=0,令l=l-1;
c.判断l=0是否成立,若是,则输出c,其中c的第l-1位为cl;若否,则回到步骤b;
所述sum表示低位部分积产生模块的输入端,接判断产生模块的数据输出,所述c为一个k位二进制数,作为低位部分积产生模块的输出端,接低位补偿电路的输出端,接部分积压缩电路的第二输入端。
进一步的,所述部分积压缩电路压缩高位部分积产生电路和低位补偿电路产生的两个部分积的具体方法为:
部分积压缩电路包括符号扩展模块和部分积压缩模块;所述的符号扩展模块对高位部分积进行符号扩展,其输入端接高位部分积产生电路的输出端,输出端接部分积压缩模块的第一输入端;所述的部分积压缩模块采用3-2压缩和4-2压缩方法对部分积进行压缩,并计算最终结果,其第一输入端接符号扩展模块的输出端,第二输入端接低位补偿电路的输出端,输出端为固定位宽乘法器的输出端;
所述的符号扩展模块的输入端接高位部分积产生电路的输出端,一共有n行,第i行为一个i位数,依次为pi-1,n-1,pi-1,n-2,……,pi-1,n-i,输出接部分积压缩模块的第一输入端,一共有n/2+1行;其中,前n/2行中的第1行为4位数,依次为s0n,s01,s02,q0,n-1,第i行(i≠1且i≠n/2+1)为2i+1位数,依次为qi-1,n,qi-1,n-1,qi-1,n-2,……,qi-1,n-i,第n/2+1行为1位数qi;
所述符号扩展模块的输出第1行由2个或门OR1、OR2和1个反相器INV构成;其中,第一或门OR1的一个输入端接输入数据的第1行第1位p0,n-1,另一个输入端接输入的第2行第2位p1,n-1,输出接输出数据的第1行第3位s01和第2位s02,同时接反相器INV的输入端;反相器INV的输出端接第1行第4位s0n;第二或门NOR2的一个输入端接输入数据的第1行第1位p0,n-1,另一个输入端接输入的第2行第1位p1,n-2,输出接输出数据的第1行第1位q0,n-1;
所述符号扩展模块的输出第i行由2i个或门OR1、OR2、……ORi和1个或非门NOR构成,其中i≠1且i≠n/2+1;第2k或门OR2k的一个输入端接输入数据第2i-1行的第2k位p2i-2,n-2k+1,其中1≤k≤i;另一个输入端接输入数据第2i行的第2k+1位p2i-1,n-2k,输出端接输出数据第i行的第2k+2位qi-1,n-2k;或非门NOR的一个输入端接输入数据第2i-1行的第1位p2i-2,n-1,另一个输入端接输入数据第2i行的第1位p2i-1,n-1,输出端接输出数据第i行的第1位qi-1,n-1;输出数据第i行第1位qi-1,n;输出数据的最高位接1;
所述符号扩展模块的第n/2+1行数qi接CSD编码电路输出符号位第n位dn-1,s;
所述部分积压缩模块第一输入端接符号扩展模块的输出端,第二输入端接低位补偿电路的输出端;输出端接外部数据输出,其输出结果保留高n位;所述的部分积压缩模块采用3-2压缩和4-2压缩方法对部分积进行压缩。
本发明的有益效果为,在保证固定位宽的条件下,通过采用具有高精度补偿效果的补偿电路设计,结合CSD编码乘法,实现了具有低功耗和较高速度的固定位宽CSD乘法器。本设计相较传统设计,兼顾了精度、功耗和速度,实现了具有高精度、低能耗的实用固定位宽乘法器设计。
附图说明
图1为本设计的固定位宽CSD乘法器的结构示意图;
图2为CSD编码电路的结构示意图;
图3为以第i位为例的CSD编码电路结构示意图;
图4第i行第j列的部分积产生结构示意图;
图5高位部分积产生电路产生的部分积阵列示意图;
图6低位补偿电路的结构示意图;
图7部分积压缩电路结构示意图;
图8部分积压缩电路符号扩展第1行结构示意图;
图9部分积压缩电路符号扩展第i行结构示意图;
图10部分积压缩电路部分积压缩模块输入的部分积阵列示意图。
具体实施方式
本发明为改进传统固定位宽CSD乘法器不能兼顾精度、功耗和速度的问题,设计了具有高精度的低位补偿电路,采用了简单的电路结构,减少了整体电路的硬件开销,提高了乘法器的运算速度。本发明的低位补偿结构可以在一定程度上与部分积压缩电路并行运算,进一步提高了整体电路的运算速度;
本例的工作原理为:
本例中主要分为四个主要电路部分,CSD编码电路、高位部分积产生电路、低位补偿电路和部分积压缩电路。
所述的CSD编码电路采用迭代的串行结构,如图2和图3所示,其逻辑表达式如下:
所述的bi表示外部数据第i+1位二进制数,接CSD编码电路的输入端;所述的第i+1位CSD编码的幅值位di,m和符号位di,s,作为CSD编码电路的输出端,接高位部分积产生电路的第一输入端、低位补偿电路的第一输入端。
所述的高位部分积产生电路采用并行结构,如图4所示。不失一般的,第i行第j列的部分积产生逻辑表达式如下:
所述aj-1表示外部输入的被乘数第j位二进制数接高位部分积产生电路的第二输入端,所述di-1,m和di-1,s作为CSD编码电路第i位输出接高位部分积产生电路的第一输入端;所述的pi,j表示第i+1行第j+1列的部分积,作为高位部分积产生电路的输出端,接部分积压缩电路的第一输入端,如图5所示。
所述的低位补偿电路由判断产生模块和低位部分积产生模块构成,如图6所示;所述判断产生模块用于判断下式中等号右侧每一项数据为1的总个数,判断的结果用sum表示,即:
其中“|”和分别表示“或”及“异或”运算。
所述a2表示外部输入的被乘数第3位二进制数接低位补偿电路的第二输入端,在低位补偿电路中接判断产生模块的第一输入端;所述di-1,m和di-1,s作为CSD编码电路第i位输出接低位补偿电路的第一输入端,在低位补偿电路中接判断产生模块的第二输入端;所述sum表示判断产生模块的数据输出,接低位部分积产生模块的输入端;
所述低位部分积产生模块用于产生近似的低位部分积,其算法如下:
1、取令l=k-1。由于sum的上限可以根据实际乘法的位数确定,因而k和i也是一个可以确定的值;
2、如果sum≥2l+1,取cl=1,sum=sum-2l;否则取cl=0;令l=l-1;
3、如果l=0,输出c,其中c的第l-1位为cl;否则转2;
所述sum表示低位部分积产生模块的输入端,接判断产生模块的数据输出,所述c为一个k位二进制数,作为低位部分积产生模块的输出端,接低位补偿电路的输出端,接部分积压缩电路的第二输入端。
所述部分积压缩电路的包括符号扩展模块和部分积压缩模块;所述的符号扩展模块对高位部分积进行符号扩展,所述的部分积压缩模块采用3-2压缩和4-2压缩方法对部分积进行压缩,并计算最终结果,接外部数据输出,如图7所示。
相比传统的固定位宽CSD乘法器,本发明提出的固定位宽CSD乘法器在典型操作数位长为8位,12位,及16位的情况下最大误差相对直接截断型分别下降了70.80%,72.22%,及72.92%,平均最大误差小于直接截断型的0.1%,并随位数增大而减小;在典型操作数位长为8位,12位,及16位的情况下,功耗相对全精度运算再截断型下降了18.46%,23.65%,及26.73%,同时速度提高了19.70%,11.35%,及11.37%。
Claims (4)
1.一种具有高精度低能耗特性的固定位宽乘法器,包括CSD编码电路、高位部分积产生电路、低位补偿电路和部分积压缩电路;所述CSD编码电路的输入端接第一外部输入数据,其输出端接高位部分积产生电路的第一输入端、低位补偿电路的第一输入端;所述高位部分积产生电路的第二输入端接第二外部输入数据,其输出端接部分积压缩电路的第一输入端;所述低位补偿电路的第二输入端接第二外部输入数据,其输出端接部分积压缩电路的第二输入端;所述部分积压缩电路的输出端为固定位宽乘法器的输出端;
所述CSD编码电路用于接收固定字长的外部数据,所述第一外部输入数据为乘法器的乘数,所述乘数为二进制数据,CSD编码电路根据接收的二进制数据迭代产生输出CSD编码结果,将CSD编码结果输入到高位部分积产生电路的第一输入端、低位补偿电路的第一输入端;具体为:所述的CSD编码电路采用迭代的串行结构,其逻辑表达式如下:
<mrow>
<msub>
<mi>d</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>m</mi>
</mrow>
</msub>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<msub>
<mi>b</mi>
<mi>i</mi>
</msub>
</mtd>
<mtd>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mover>
<mrow>
<mo>(</mo>
<msub>
<mi>b</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>&CirclePlus;</mo>
<msub>
<mi>b</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
<mo>+</mo>
<msub>
<mi>d</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
<mo>,</mo>
<mi>m</mi>
</mrow>
</msub>
</mrow>
<mo>&OverBar;</mo>
</mover>
</mtd>
<mtd>
<mrow>
<mi>i</mi>
<mo>&NotEqual;</mo>
<mn>0</mn>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
<mrow>
<msub>
<mi>d</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>s</mi>
</mrow>
</msub>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>b</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
<msub>
<mi>d</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>m</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>i</mi>
<mo>&NotEqual;</mo>
<mi>n</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>d</mi>
<mrow>
<mi>e</mi>
<mo>,</mo>
<mi>m</mi>
</mrow>
</msub>
<msub>
<mi>b</mi>
<mi>i</mi>
</msub>
<mover>
<msub>
<mi>b</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>&OverBar;</mo>
</mover>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mi>n</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
所述的bi表示外部数据第i+1位二进制数,接CSD编码电路的输入端;所述的第i+1位CSD编码的幅值位di,m和符号位di,s,作为CSD编码电路的输出端,接高位部分积产生电路的第一输入端、低位补偿电路的第一输入端;
所述高位部分积产生电路用于产生乘法高位部分积,所述外部输入数据为乘法器的被乘数,采用二进制数据,根据CSD编码结果和外部输入数据,通过并行运算得到高位的精确部分积结果;具体为:所述的高位部分积产生电路采用并行结构,第i行第j列的部分积产生逻辑表达式如下:
<mrow>
<msub>
<mi>p</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
</msub>
<mo>=</mo>
<msub>
<mi>d</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
<mo>,</mo>
<mi>m</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>d</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
<mo>,</mo>
<mi>s</mi>
</mrow>
</msub>
<mo>&CirclePlus;</mo>
<msub>
<mi>a</mi>
<mrow>
<mi>j</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>)</mo>
</mrow>
</mrow>
所述aj-1表示外部输入的被乘数第j位二进制数接高位部分积产生电路的第二输入端,所述di-1,m和di-1,s作为CSD编码电路第i+1位输出接高位部分积产生电路的第一输入端;所述的pi,j表示第i+1行第j+1列的部分积,作为高位部分积产生电路的输出端,接部分积压缩电路的第一输入端;
所述低位补偿电路用于产生近似的乘法低位部分积,所述第二外部输入数据为乘法器的被乘数输入,所述被乘数为二进制数据,低位补偿电路根据CSD编码结果和第二外部输入数据,产生用于拟合乘法的低位部分积结果;具体为:所述的低位补偿电路由判断产生模块和低位部分积产生模块构成;所述判断产生模块用于判断下式中等号右侧每一项数据为1的总个数,判断的结果用sum表示,即:
<mrow>
<mi>s</mi>
<mi>u</mi>
<mi>m</mi>
<mo>=</mo>
<mrow>
<mo>(</mo>
<msub>
<mi>d</mi>
<mrow>
<mn>0</mn>
<mo>,</mo>
<mi>m</mi>
</mrow>
</msub>
<mo>|</mo>
<msub>
<mi>d</mi>
<mrow>
<mn>1</mn>
<mo>,</mo>
<mi>m</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mo>+</mo>
<mrow>
<mo>(</mo>
<msub>
<mi>d</mi>
<mrow>
<mn>2</mn>
<mo>,</mo>
<mi>m</mi>
</mrow>
</msub>
<mo>|</mo>
<msub>
<mi>d</mi>
<mrow>
<mn>3</mn>
<mo>,</mo>
<mi>m</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mo>+</mo>
<mo>...</mo>
<mo>...</mo>
<mo>+</mo>
<mrow>
<mo>(</mo>
<msub>
<mi>d</mi>
<mrow>
<mi>n</mi>
<mo>-</mo>
<mn>4</mn>
<mo>,</mo>
<mi>m</mi>
</mrow>
</msub>
<mo>|</mo>
<msub>
<mi>d</mi>
<mrow>
<mi>n</mi>
<mo>-</mo>
<mn>3</mn>
<mo>,</mo>
<mi>m</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mo>+</mo>
<msub>
<mi>d</mi>
<mrow>
<mi>n</mi>
<mo>-</mo>
<mn>2</mn>
<mo>,</mo>
<mi>s</mi>
</mrow>
</msub>
<mo>+</mo>
<msub>
<mi>d</mi>
<mrow>
<mi>n</mi>
<mo>-</mo>
<mn>2</mn>
<mo>,</mo>
<mi>m</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>a</mi>
<mn>0</mn>
</msub>
<mo>&CirclePlus;</mo>
<msub>
<mi>d</mi>
<mrow>
<mi>n</mi>
<mo>-</mo>
<mn>2</mn>
<mo>,</mo>
<mi>s</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mo>+</mo>
<msub>
<mi>a</mi>
<mn>2</mn>
</msub>
</mrow>
其中,运算符|表示和运算,运算符表示异或运算,a2表示外部输入的被乘数第3位二进制数,接低位补偿电路的第二输入端,即判断产生模块的第一输入端;所述di-1,m和di-1,s作为CSD编码电路第i位输出接低位补偿电路的第一输入端,在低位补偿电路中接判断产生模块的第二输入端;所述sum表示判断产生模块的数据输出,接低位部分积产生模块的输入端;
所述低位部分积产生模块用于产生近似的低位部分积,包括以下步骤:
a.取令l=k-1;
b.判断sum≥2l+1是否成立,若是,则取cl=1,sum=sum-2l;若否,则取cl=0,令l=l-1;
c.判断l=0是否成立,若是,则输出c,其中c的第l-1位为cl;若否,则回到步骤b;
所述sum表示低位部分积产生模块的输入端,接判断产生模块的数据输出,所述c为一个k位二进制数,作为低位部分积产生模块的输出端,接低位补偿电路的输出端,接部分积压缩电路的第二输入端;
所述部分积压缩电路用于压缩高位部分积产生电路和低位补偿电路产生的两个部分积,从而减少乘法部分积的数量,最终输出固定位宽乘法运算的结果。
2.根据权利要求1所述的一种具有高精度低能耗特性的固定位宽乘法器,其特征在于,所述CSD编码电路根据接收的二进制数据迭代产生输出CSD编码结果的具体方法为:
设外部输入的乘数为n位二进制数据,分别为第一位数b0、第二位数b1、……、第n位数bn-1;
CSD编码电路输出为以符号-幅值方式编码的CSD码,位数均为n位,且一一对应,符号位分别为第一位数符号位d0,s、第二位数符号位d1,s、……、第n位数符号位dn-1,s,幅值位分别为第一位数幅值位d0,m、第二位数幅值位d1,m、……、第n位数幅值位dn-1,m,以一个符号位di-1,s和一个幅值位di-1,m共同表示第i个CSD编码位di-1,输出的所有符号位和幅值位接高位部分积产生电路的第一输入端、低位补偿电路的第一输入端;
所述CSD编码电路由第1位CSD编码子电路、第n位CSD编码子电路和其它CSD编码子电路三类CSD编码子电路构成;
所述的第1位CSD编码子电路由一个与门AND构成;第1位CSD编码数的幅值位为外部输入乘数的第一位数b0,同时接与门AND的输入端;与门AND的另一个输入端接外部输入乘数的第二位数b1,其输出端接第1位CSD编码数的符号位;
所述的第n位CSD编码子电路由同或门XNOR、或非门NOR、反相器INV和与门AND构成;第n-1位输入二进制位bn-2和第n位输入二进制位bn-1接同或门XNOR的输入端,同或门XNOR的输出接或非门NOR的一个输入端;或非门NOR的另一个输入端接第n-1位输出CSD编码的幅值位dn-2,m,其输出端作为第n位输出CSD编码的幅值位dn-1,m,同时接与门AND的第一输入端;反相器INV的输入端接第n-1位输出CSD编码的幅值位dn-2,m,输出端接与门AND的第二输入端;与门AND的第一输入端接或非门NOR的输出端,第二输入端接反相器INV的输出端,第三输入端接第n位输入二进制位bn-1,其输出端作为第i位输出CSD编码的符号位dn-1,s;
所述的其它CSD编码子电路以第i位为例,所述CSD编码子电路由同或门XNOR、或非门NOR和与门AND构成;第i-1位输入二进制位bi-2和第i位输入二进制位bi-1接同或门XNOR的输入端,其输出接或非门NOR的输入;或非门NOR的一个输入端接同或门XNOR的输出,其另一个输入端接第i-1位输出CSD编码的幅值位di-2,m,其输出端作为第i位输出CSD编码的幅值位di-1,m,同时接与门AND的输入端;与门AND的一个输入端接或非门NOR的输出端,其另一个输入端接第i+1位输入二进制位bi,其输出端作为第i位输出CSD编码的符号位di-1,s。
3.根据权利要求2所述的一种具有高精度低能耗特性的固定位宽乘法器,其特征在于,所述高位部分积产生电路根据CSD编码结果和外部输入数据,通过并行运算得到高位的部分积结果的具体方法为:
设被乘数为n位二进制数据,分别为第一位数a0、第二位数a1、……、第n位数an-1;
所述高位部分积产生电路,输入为外部输入的被乘数和CSD编码电路的输出数据,输出为高位部分积,包括n行,其中第i行由i位数组成,依次为pi-1,n-1,pi-1,n-2,……,pi-1,n-i,接部分积压缩电路的第一输入端;所述高位部分积产生电路由n(1+n)/2个异或门XOR和n(1+n)/2个与门AND构成;以第i行第j位部分积pi-1,j-1为例,由第i位CSD编码di-1与第j位被乘数aj-1产生,其中i和j需要满足i+j>n+1,第i位CSD编码的符号位di-1,s接异或门XOR的输入端,第j位被乘数aj-1接异或门XOR的另一个输入端,XOR的输出端接与门AND的输入端;与门AND的一个输入端接异或门XOR的输出端,另一个输入端接第i位CSD编码的幅值位di-1,m,与门AND的输出端为第i行第j列部分积pi-1,j-1。
4.根据权利要求3所述的一种具有高精度低能耗特性的固定位宽乘法器,其特征在于,所述部分积压缩电路压缩高位部分积产生电路和低位补偿电路产生的两个部分积的具体方法为:
部分积压缩电路包括符号扩展模块和部分积压缩模块;所述的符号扩展模块对高位部分积进行符号扩展,其输入端接高位部分积产生电路的输出端,输出端接部分积压缩模块的第一输入端;所述的部分积压缩模块采用3-2压缩和4-2压缩方法对部分积进行压缩,并计算最终结果,其第一输入端接符号扩展模块的输出端,第二输入端接低位补偿电路的输出端,输出端为固定位宽乘法器的输出端;
所述的符号扩展模块的输入端接高位部分积产生电路的输出端,一共有n行,第i行为一个i位数,依次为pi-1,n-1,pi-1,n-2,……,pi-1,n-i,输出接部分积压缩模块的第一输入端,一共有n/2+1行;其中,前n/2行中的第1行为4位数,依次为s0n,s01,s02,q0,n-1,第i行为2i+1位数,i≠1且i≠n/2+1,依次为qi-1,n,qi-1,n-1,qi-1,n-2,……,qi-1,n-i,第n/2+1行为1位数qi;
所述符号扩展模块的输出第1行由第一或门OR1、第二或门OR2和1个反相器INV构成;其中,第一或门OR1的一个输入端接输入数据的第1行第1位p0,n-1,另一个输入端接输入的第2行第2位p1,n-1,输出接输出数据的第1行第3位s01和第2位s02,同时接反相器INV的输入端;反相器INV的输出端接第1行第4位s0n;第二或门NOR2的一个输入端接输入数据的第1行第1位p0,n-1,另一个输入端接输入的第2行第1位p1,n-2,输出接输出数据的第1行第1位q0,n-1;
所述符号扩展模块的输出第i行由2i个或门OR1、OR2、……ORi和1个或非门NOR构成,其中i≠1且i≠n/2+1;第2k或门OR2k的一个输入端接输入数据第2i-1行的第2k位p2i-2,n-2k+1,其中1≤k≤i;另一个输入端接输入数据第2i行的第2k+1位p2i-1,n-2k,输出端接输出数据第i行的第2k+2位qi-1,n-2k;或非门NOR的一个输入端接输入数据第2i-1行的第1位p2i-2,n-1,另一个输入端接输入数据第2i行的第1位p2i-1,n-1,输出端接输出数据第i行的第1位qi-1,n-1;输出数据第i行第1位qi-1,n;输出数据的最高位接1;
所述符号扩展模块的第n/2+1行数qi接CSD编码电路输出符号位第n位dn-1,s;
所述部分积压缩模块第一输入端接符号扩展模块的输出端,第二输入端接低位补偿电路的输出端;输出端接外部数据输出,其输出结果保留高n位;所述的部分积压缩模块采用3-2压缩和4-2压缩方法对部分积进行压缩。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510518528.2A CN105183424B (zh) | 2015-08-21 | 2015-08-21 | 一种具有高精度低能耗特性的固定位宽乘法器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510518528.2A CN105183424B (zh) | 2015-08-21 | 2015-08-21 | 一种具有高精度低能耗特性的固定位宽乘法器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105183424A CN105183424A (zh) | 2015-12-23 |
CN105183424B true CN105183424B (zh) | 2017-09-01 |
Family
ID=54905531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510518528.2A Expired - Fee Related CN105183424B (zh) | 2015-08-21 | 2015-08-21 | 一种具有高精度低能耗特性的固定位宽乘法器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105183424B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107153522B (zh) * | 2017-04-21 | 2020-10-02 | 东南大学 | 一种面向人工神经网络计算的动态精度可配近似乘法器 |
CN109542393B (zh) * | 2018-11-19 | 2022-11-04 | 电子科技大学 | 一种近似4-2压缩器及近似乘法器 |
CN110362292B (zh) * | 2019-07-22 | 2022-12-20 | 电子科技大学 | 一种基于近似4-2压缩器的近似乘法运算方法和近似乘法器 |
CN110515586B (zh) * | 2019-08-30 | 2024-04-09 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN110515590B (zh) * | 2019-08-30 | 2024-06-18 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN110362293B (zh) * | 2019-08-30 | 2023-12-19 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN110515585B (zh) * | 2019-08-30 | 2024-03-19 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN110515589B (zh) * | 2019-08-30 | 2024-04-09 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN110531954B (zh) * | 2019-08-30 | 2024-07-19 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN110515587B (zh) * | 2019-08-30 | 2024-01-19 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
EP4024200A4 (en) * | 2019-09-20 | 2022-08-24 | Huawei Technologies Co., Ltd. | MULTIPLIER |
CN110647307B (zh) * | 2019-09-24 | 2024-04-09 | 上海寒武纪信息科技有限公司 | 数据处理器、方法、芯片及电子设备 |
CN110413254B (zh) * | 2019-09-24 | 2020-01-10 | 上海寒武纪信息科技有限公司 | 数据处理器、方法、芯片及电子设备 |
CN113031909B (zh) * | 2019-12-24 | 2023-09-08 | 上海寒武纪信息科技有限公司 | 数据处理器、方法、装置及芯片 |
CN111695312A (zh) * | 2020-06-01 | 2020-09-22 | 中国人民解放军国防科技大学 | 基于最优补偿的近似乘法器设计方法和近似乘法器 |
CN112230883B (zh) * | 2020-10-14 | 2021-06-01 | 上海芯旺微电子技术有限公司 | 一种用于乘法器零标志位的产生电路、乘法器和检测方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591615A (zh) * | 2012-01-16 | 2012-07-18 | 中国人民解放军国防科学技术大学 | 结构化混合位宽乘法运算方法及装置 |
CN102722352A (zh) * | 2012-05-21 | 2012-10-10 | 华南理工大学 | 一种Booth乘法器 |
US8856201B1 (en) * | 2004-11-10 | 2014-10-07 | Altera Corporation | Mixed-mode multiplier using hard and soft logic circuitry |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958180B2 (en) * | 2007-07-05 | 2011-06-07 | International Business Machines Corporation | Multiplier engine |
-
2015
- 2015-08-21 CN CN201510518528.2A patent/CN105183424B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8856201B1 (en) * | 2004-11-10 | 2014-10-07 | Altera Corporation | Mixed-mode multiplier using hard and soft logic circuitry |
CN102591615A (zh) * | 2012-01-16 | 2012-07-18 | 中国人民解放军国防科学技术大学 | 结构化混合位宽乘法运算方法及装置 |
CN102722352A (zh) * | 2012-05-21 | 2012-10-10 | 华南理工大学 | 一种Booth乘法器 |
Non-Patent Citations (4)
Title |
---|
一种低功耗常系数乘法器的设计;李京等;《计算机工程与应用》;20051230;第99-101页 * |
基于Booth\CSD混合编码的模2n+1乘法器的设计;王敏等;《电子器件》;20140430;第37卷(第2期);第373-377页 * |
常系数FIR中的CSD串并乘法器设计;宋秀兰等;《电子器件》;20090831;第32卷(第4期);第797-800页 * |
常系数乘法器的VLSI高效设计;熊承义等;《军民两用技术与产品》;20030930;第37-38、42页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105183424A (zh) | 2015-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105183424B (zh) | 一种具有高精度低能耗特性的固定位宽乘法器 | |
CN105739945B (zh) | 一种基于改进部分积阵列的修正Booth编码乘法器 | |
CN103236846B (zh) | 一种工业实时数据压缩方法及装置 | |
CN109542393A (zh) | 一种近似4-2压缩器及近似乘法器 | |
CN1503938A (zh) | 乘法逻辑电路 | |
CN106775577A (zh) | 一种高性能非精确冗余二进制乘法器及其设计方法 | |
Russo et al. | DNN model compression for IoT domain-specific hardware accelerators | |
CN109144473B (zh) | 一种基于冗余odds数的十进制3:2压缩器结构 | |
CN101295237B (zh) | 求商和余数的高速除法器 | |
Zhu et al. | Design of approximate radix-256 booth encoding for error-tolerant computing | |
US11321049B2 (en) | Fast binary counters based on symmetric stacking and methods for same | |
CN107423023B (zh) | 一种16×16-digit冗余十进制乘法器 | |
CN112764712B (zh) | 一种高性能近似Booth乘法器及计算方法 | |
CN111221499A (zh) | 基于近似6-2和4-2压缩器的近似乘法器及计算方法 | |
US7283460B1 (en) | Bus switch encoding for reducing crosstalk effects in buses | |
CN103176948A (zh) | 一种低成本的单精度初等函数运算加速器 | |
CN103412737A (zh) | 基4-Booth编码方法及门电路和流水线大数乘法器 | |
CN110825346A (zh) | 一种低逻辑复杂度的无符号近似乘法器 | |
Cui et al. | A parallel decimal multiplier using hybrid binary coded decimal (BCD) codes | |
Zhang et al. | Design and analysis of majority logic based approximate radix-4 Booth encoders | |
CN102916691A (zh) | 基于可逆逻辑的bcd码十进制计数器 | |
Qiqieh et al. | Energy-efficient approximate wallace-tree multiplier using significance-driven logic compression | |
CN112506472B (zh) | 一种基于冗余odds数的十进制4:2压缩器结构 | |
CN101126974A (zh) | 一种改进的Booth 2乘法器结构 | |
Kumar et al. | Complex multiplier: implementation using efficient algorithms for signal processing application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170901 Termination date: 20200821 |
|
CF01 | Termination of patent right due to non-payment of annual fee |