一种改进的Booth2乘法器结构的制作方法

文档序号:6613597阅读:490来源:国知局

专利名称::一种改进的Booth2乘法器结构的制作方法
技术领域
:本发明涉及一种改进的Booth2乘法器结构。技术背景Booth算法是针对二进制补码数据格式,在乘法操作的过程中,主要负责生成部分积。Booth算法的核心,是二进制补码数据的Booth编码部分积生成形式。例如,考虑一个N位的二进制补码数^-(—2,...,fl。),它的Booth编码形式如下<formula>formulaseeoriginaldocumentpage3</formula>(1)其中(/=0,1,…,H);d=0所以<formula>formulaseeoriginaldocumentpage3</formula>(2)以上式子为Booth1阶编码,通过公式可以得到实际的Booth1编码表,以及对应的部分积揭:作,如表1所示。表11阶Booth编码表<table>tableseeoriginaldocumentpage3</column></row><table>又叫改进Booth算法(ModifiedBoothMethod)。产生的部分积数目越少,乘运算迭代次数越少,速度越快。这里,乘数分为2位组的形式,但是进行Booth译码时,一次检查3位,其中2位是当前译码的组,另1位是相邻高位组中的低位。部分积的倍乘系数是{±2,±1,0},通过简单的移位和求补就可以实现。部分积的个数AT(n+1)/2"l(n是乘数位宽),即只需进行大约是非Booth方式一半次数的迭代就可以完成乘操作。Booth3与Booth2类似,乘数位分为3位组的形式,每次迭代4企查交叠的4位组。部分积的数目AT(n+1)/3],比Booth2更少。缺点是不仅Booth译码逻辑复杂度上升,而且部分积产生逻辑规才莫非常大。尤其是在对应的倍乘系#1{±4,±3,±2,±1,0}中,士3倍乘不能仅由移位和求补实现,还需要一次进位传播的加,带来部分积产生的面积和延时的剧增。还可以有Booth4算法,进一步减少部分积的个数。但是,Booth4算法中的倍乘系数变为{±8,±7,±6,±5,±4,±3,±2,±1,0},需要专门进位传播加法器实现的倍乘系数有士7,±5,±3三类。不仅进位传播加法器多,面积十分庞大,组合^4圣也非常长,而且,Booth译码逻辑也相当复杂。由于Booth2算法是针对补码设计的,如果直接实现就要求每个部分积的最高位为符号位扩展到阵列的最高位。这样一来就会使部分积阵列的规才莫变得很大,而且每个部分积的长度不一致,带来了设计的困难。下面讨论防止符号扩展的方法。以16*16位的乘法器为例,首先假定所有的部分积都是正的,釆用Booth2算法,可以得到阵列的示意图如图1所示。图1中每个黑点表示部分积的一位,注意到图1中为了防止出现正负2倍情况时的溢出,除了最后一个部分积外,其余的部分积都是17位的。因为最后一个部分积由于在乘数前面补两个O,不会溢出,所以它为16位。与图1的情况相反,图2给出了所有的部分积为负的情形。此时,所有的部分积都要变反并在末位加1,相当于变成了补码。而且补码相加时前面的符号位必须补齐。图2中的左上角符号位的1可以预先求出来,作为一个固定的值加在阵列中。不失一般性,假定乘法是在一个A7位的被乘数A和/77位的乘数B(m为偶数)之间进行的,采用Booth2算法。所有的部分积都是负的,将给每个部分积都用1扩展,那么所有符号扩展的1的和是<formula>formulaseeoriginaldocumentpage5</formula>这个数可以作为一个固定的值加到部分积中,它共有m位,最^f氐位的^又值是2,这样就得到了图3。前面讨论的都是部分积全为正或全为负的情况。如果对于图3的情况,假定某一个部分积为非负的,相当于在符号位的最低位上加一个1,这样一来在部分积前面的一串1变成一串0,此时图3就变成图4的情况。s表示符号位,当s=7时部分积为负,相应的部分积要按位取反。对图4的情况,第一个部分积前面加的两位"11"就可以和S合并,从而使得部分积阵列的高度减少。即"+^=^。这样就有图5,在图5中第一个部分积比其它部分积位数多一位。对于补码表示的有符号数,只要在前面的基础上进行一些修改即可。对于无符号数据的乘法,要利用Booth2算法,最后一个部分积的产生是由于在乘数前面补上两个O作为符号位,对于有符号数就不需要这样做了。相当于比前面的情况减小一个部分积,但是不能保证最后一个部分积为非负。可以得到图6。从图6中可看出第一部分积的长度与其它部分积不一样,需要增加3位,这样不够规整。为了硬件好实现,也有提出另一种方案,将图6中每个部分积前面的1单独作为一个部分积加到阵列中,得图7中所示的方法。这种方法各个部分积一样长,都是增加两位,但是增加了一个部分积。故现有的设计存在部分积电路不能重复使用,或者需要增加部分积数目的缺点,使得电路面积消耗大,结构复杂,电路不规则的缺点。
发明内容本发明的技术解决问题是克服现有技术的不足,提供一种占用芯片面积小、结构简单的改进Booth2乘法器电路结构。本发明的技术解决方案一种改进的有符号的Booth2乘法器结构,其特点在于包括硬件实现的第一部分积和第二部分积及对所述的两个部分积相加的加法器;在所述的第一部分积的最高两位添加第一添位电路,在所述的第二部分积最高两位添加第二添位电路,,人而使乘法器的各个部分积位数一样长,同时部分积数目不增加。所述的乘法器还包括第一Booth编码单元和第二Booth编码单元,分别接在第一部分积和第二部分中3-2加法器的输入端。所述的第一部分积中最高位全加器的输入端接控制端5和电源VDD,控制端5是由控制信号C经过反向器产生,第一部分积中次高位全加器输入端添力口控制信号C;第二部分积中最高位全加器的两个输入端接地GND,第二部分积中次高位全加器一个输入端接电源VDD,使得硬件复用。所述的第一部分积和第二部分的长度为任意长度。所述的第一Booth编码单元和第二Booth编码单元产生的编码个数为任意个数。本发明的原理是通过简单的增加控制端^f吏得各个部分积位数一样长,同时部分积数目不增加。考虑二进制数存在如下关系<formula>formulaseeoriginaldocumentpage6</formula>(4)<formula>formulaseeoriginaldocumentpage6</formula>(5)<formula>formulaseeoriginaldocumentpage6</formula>(6)<formula>formulaseeoriginaldocumentpage6</formula>(7)才艮据上面等式将图6改进为图8方法。因为Booth乘法器部分积产生是串行分时产生,当第一部分积产生时C=o,5=7,然后其它部分积产生时C",5:o。这时即产生图9的情况,图9根据等式关系与图6是等价的。本发明与现有技术相比的优点在于本发明通过在增加简单的控制端,即添位电路,使乘法器的各个部分积位数一样长,同时部分积数目不增加。本发明具有电路面积小、结构简单规则、对电路性能影响小的特点。1为部分积为正的Booth2算法图;图2为部分积为负时Booth2算法图;图3为符号位预先求和的负的部分积阵列图;图4为完全的部分积阵列图;图5为高度减小的完全的部分积阵列图;图6为有符号^:乘法的部分积阵列图;图7为部分积长度相等的阵列图;图8为本发明的改进的有符号乘法器的部分积阵列图;图9为本发明考虑C值时改进的有符号乘法器的部分阵列图;图10为本发明改进Booth2乘法器电路图;图11为本发明中的ROM中系数的Booth2编码。具体实施例方式本发明具体实现一个改进的Booth2乘法器,使用图9所示方法。具体详细电路如图10。在图10中采用3-2加法器来对部分积运算。图10给出可以复用的第一部分积117和第二部分积118。在所述的第一部分积117和第二部分积118最高两位分别添加第一添位电路115和第二添位电路116,从而使乘法器的各个部分积位数一样长,同时部分积数目不增加。第一部分积117由20个3-2加法器113和21个全加器FA构成,具体的加法器和全加器的个数构成可以根据设计要求确定,本实施例采用上述数量。3-2加法器113由2个与门,1个或门和1个异或门组成。第二部分积118由20个3-2加法器114和21个全加器FA构成,3-2加法器132分别由2个与门,1个或门和1个同或门组成。图10显示了第一部分积117、第二部分积118的最高两位添位的方法。第一部分积117中增加第一添位电路115,第一部分积117全加器FA120的输入端接控制端5和电源VDD,第一部分积117中全加器FA121输入端添加C,5是由控制信号C经过反向器产生;第二部分积118中增加第二添位电路116,第二部分积118中全加器123的两个输入端接地GND,第二部分积118中全加器124—个输入端接电源VDD,从而可以使得硬件复用。本发明的乘法器还包括第一Booth编码单元110和第二Booth编码单元111,分别接在第一部分积117和第二部分积118中3-2加法器的输入端。与此对应的是ROM112单元中输出系数(作为乘法器的乘数)。ROM112中存储的系数经过图10中第一Booth2编码单元110、第二Booth2编码单元111生成1倍被乘数1M,2倍的被乘数2M和符号位S。第一Booth编码单元110和第二Booth2编码单元111由一个同或、一个异或和一个或非组成。布li殳系数为13位,13位系数经过Booth2编码如图11所示,这样一共有8个部分积,每拍同时运算两个部分积,①②,③④,⑤(D和⑦⑧,每个乘法分4拍完成。由于采用添加控制信号电路,所以③④,⑤⑥和⑦⑧部分积可以采用117和118电路,所以每个部分积长度一样,结构简单规则,节省了硬件面积。每拍两个部分积求和后的结果进入锁存器以等待与下一拍的部分积再累加求和,直到4拍运算都做完,则这个数实现了与乘数的13位都做完乘法运算,所有部分积都加完后进入最后的锁存单元。第一部分积117和第二部分积118的长度可以为任意长度,两个Booth编码单元110和111产生的编码个数可以为任意,本实例计算的是18*13,这种乘法器结构对任意n*m位乘法都适用。权利要求1、一种改进的Booth2乘法器结构,其特征在于包括硬件实现的第一部分积(117)和第二部分积(118)及对所述的两个部分积相加的加法器(109);在所述的第一部分积(117)的最高两位添加第一添位电路(115),在所述的第二部分积(118)最高两位添加第二添位电路(116),从而使整个乘法器的各个部分积位数一样长,同时部分积数目不增加。2、根据权利要求1所述的一种改进的Booth2乘法器结构,其特征在于所述的乘法器还包括第一Booth编码单元(110)和第二Booth编码单元(111),分别接在第一部分积(117)和第二部分积(118)中3-2加法器的输入端。3、根据权利要求1或2所述的一种改进的Booth2乘法器结构,其特征在于所述的第一部分积(117)中最高位全加器(120)的输入端接控制端5和电源VDD,控制端5是由控制信号C经过反向器产生,第一部分积(117)中次高位全加器(121)输入端添加控制信号C;第二部分积(118)中最高位全加器(123)的两个输入端接地GND,第二部分积(118)中次高位全加器(124)—个输入端接电源VDD,使得硬件复用。4、根据权利要求1或2所述的一种改进的Booth2乘法器结构,其特征在于所述的第一部分积(117)和第二部分积(118)的长度为任意长度。5、根据权利要求2所述的一种改进的Booth2乘法器结构,其特征在于所述的第一Booth编码单元(110)和第二Booth编码单元(111)产生的编码个数为任意个数。全文摘要一种改进的Booth2乘法器结构,包括两个硬件实现的部分积及对两个部分积相加的加法器,在所述的两个部分积电路的最高两位分别各添加一个添位电路,使乘法器的各个部分积位数一样长,同时部分积数目不增加。本发明具有电路面积小、结构简单规则、对电路性能影响小的特点。文档编号G06F7/48GK101126974SQ20071017549公开日2008年2月20日申请日期2007年9月29日优先权日2007年9月29日发明者爽姜,赵元富,雷陈申请人:北京时代民芯科技有限公司;中国航天时代电子公司第七七二研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1