CN1117165A - 二进制乘法器中的布斯编码器 - Google Patents
二进制乘法器中的布斯编码器 Download PDFInfo
- Publication number
- CN1117165A CN1117165A CN 95108645 CN95108645A CN1117165A CN 1117165 A CN1117165 A CN 1117165A CN 95108645 CN95108645 CN 95108645 CN 95108645 A CN95108645 A CN 95108645A CN 1117165 A CN1117165 A CN 1117165A
- Authority
- CN
- China
- Prior art keywords
- bit
- multiplicand
- numerical digit
- partial product
- numerical
- 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.)
- Pending
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
将n位及m位二进制乘数和被乘数相乘的二进制乘法器中的部分积发生器包括n/2或(n+1)/2个布斯编码器,各编码器产生一部分积,并含有:第一及第二倒相器,分别对第一及第二扩展了两个数位即m+2位的被乘数倒相;第一分路器,从第一和第二倒相的被乘数中选出一个;加1逻辑电路,在选出的二进制数上加1;第二分路器,选择第一、第二扩展的被乘数、或加1后的二进制数,产生部分积,各分路器的选择由从n位的乘数导出的一选择码控制。
Description
本发明涉及一种进二制乘法器,较具体地说,涉及一种用于二进制乘法器的改进的布斯(Booth)编码器。
在数字系统中,两个二进制数的相乘所采用的方法和两个十进制数相乘的方法相同。其过程是从乘数的最低位(“LSB”)开始,依次地考察该乘数的各个数字位。如果乘数的某一位为“1”,则复制被乘数,以产生一个部分积;如果该乘数位为“0”,则写入0作为部分积。逐行地写出的各个部分积,每下一行相对于上一行向左移动一位。当考察完所有的乘数位之后,把各相继行中的部分积相加,得到最终的乘积。这种过程对每一个乘数位都要产生一个部分积,因此它比较费时而且需要复杂的硬件。
在要求高速执行的数字应用中,例如数字信号处理器中,已经提出了各种方法来减少部分积的数目。方法之一是布斯算法,其中一个基数为2的乘数X用编码数组{-2,-1,0,1,2}被重新编码成一个基数为4的乘数Z,由此把部分积数目减少为一半。
这种减少可以通过一个重新编码处理而达到,其中乘数Z的每三位数以重叠的方式组成一个数位群,并且给每个数位群指定编码数组{-2,-1,0,1,2}中的一个数。编码数组中的每个编码数确定了被乘数A所需的倍乘数。下面说明例如对二进制乘数X“10001101”的三数位群重新编码处理,从添加在该乘数的最低位(“LSB”)的右侧的一个虚位开始,把三个数位组成一个三数位的群,这就称作数串的(布斯)重新编码,其中两个相邻的三数位群有一个相交叠的数位,最右端三数位群为X1X0(X-1),下一个为X3X2X1等等,其中(X-1)代表虚位“0”:
上述重新编码方案可概括成表1。
然而,一个普通的采用布斯算法的二进制乘法装置必然需要找出被乘数的倍数或补数,这将造成时间的拖延。这个速度限制使普通的二进制乘法装置比较不适用于高速数字系统。
因此,本发明的一个目的是提供一种适用于高速乘法的改进的二进制法装置。
本发明的另一个目的是提供一种乘法装置中的部分积发生器,它能够以简单的方式执行乘法。
根据本发明,提供了一种二进制乘法装置,它用来将一个并行n位二进制乘数和一个并行m位二进制被乘数相乘,其中n和m都分别是正整数,该装置包括:带有n/2个(若n为偶数)或(n+1)/2个(若n为奇数)部分积发生装置的装置,用来使乘数中的n位与被乘数中的m位相乘,以产生n/2个(若n为偶数)或(n+1)/2个(若n为奇数)部分积;用来把在n位二进制乘数的最低位(“LSB”)的右侧加上了一个虚位的数串分群成n/2个(若n为偶数)或(n+1)/2个(若n为奇数)由三个数位构成的数据群,即三数位群的装置,该分群从虚位的位置开始,上述n/2或(n+1)/2个三数位群中的相邻两个群之间有一个相交叠的数位,其中各个三数位群被分别提供给各个部分积发生装置;用来将n/2或(n+1)个部分积相加以产生一个最终部分积和一个进位部分积的装置;以及用来将最终部分积和进位部分积相加以产生最终乘积的装置,其中每个上述部分积发生装置含有:
第一扩展装置,用来以一个并行m+2位的二进制数ATO来扩展m位的被乘数,其中在上述ATO中的两个扩展位由两次复制m位被乘数的最高位(“MSB”)得到,并放置在MSB的左侧;第二扩展装置,用来以一个并行m+2位二进制BTO来扩展m位的被乘数,其中在上述BTO中的两个扩展位之一是由复制m位被乘数的MSB得到,并放置在MSB的左侧,另一个扩展位是二进制数“0”,放置在LSB的右侧;第一倒相器,用来使来自第一扩展装置的m+2位二进制数ATO倒相,以产生一个倒相m+2位二进制数ATT;第二倒相器,用来使来自第二扩展装置的m+2位二进制数BTO倒相,以产生一个倒相m+2位二进制数BTT;第一分路器,用来在对向它提供的三数位群作出响应时,从倒相m+2位二进制数ATT和倒相m+2位二进制数BTT中选择一个作为输出,其中三位数群中的三位数字被用作选择输出操作的选择码;用来在由第一分路器所选的输出上做逻辑加“1”运算,以产生一个m+2位二进制数CT+1的装置;以及第二分路器,用来在对三数位组作出响应时从m+2位二进制数ATO、m+2位二进制数BTO和m+2位二进制数CT+1中选择一个作为输出,由该第二分路器所选择的输出就是上述每个部分积发生器的部分积。
本发明的上述目的和其他目的及特征将通过下面结合附图对优选实施例的说明而变得清楚,在附图中,
图1示出根据本发明的二进制乘法装置的原理方框图;
图2示出图1中所示部分积发生器的详细方框图;
图3表示图2中所示布斯编码器的详细方框图;以及
图4A至4E给出由部分积发生器所处理的示例性仿真数据。
参见图1,那里示出了根据本发明的二进制乘法装置的原理方框图,该装置用于将一个并行n位二进制乘数X和一个并行m位二进制被乘数A相乘,其中n和m都分别是正整数。该乘法装置包括一个部分积发生器100,一个加法/移位树200和一个最终加法器300。部分积发生器100将乘数X中的n位数和被乘数A中的m位数相乘,产生n/2个部分积(若n为偶数)或(n+1)/2个部分积(若n为奇数)。
如从图2可以看出的那样,部分积发生器100含有n/2个(若n为偶数)或(n+1)/2个(若n为奇数)布斯编码器(BE),图中只画出了其中的5个编码器110、120、130、140和150。在网路10上,在并行n位二进制乘数X的LSB右侧加上了一个虚位“0”,从而得到n+1个数位。然后,如前所述,从虚位的位置开始,该n+1位的二进制数被分成n/2个(若n为偶数)或(n+1)/2个(若n为奇数)三数位群,每个数位群含有三个数位,相邻两个三数位群有一个数位相交叠。现在假定二进制乘数X有9个数位长(000011010),该9位二进制系数X被分成5个三数位群S1、S2、S3、S4和S5,如下所示:其中(X-1)代表虚位。
有时该二进制数可能没有足够的数位来形成完整的三数位群。这时,在该二进制数的MSB左侧添加一个或两个“0”,以补全最后一个三数位群。
这5个三数位群S1、S2、S3、S4和S5被分别提供给5个布斯编码器110、120、130、140和150。各个三数位群分别被用作各个布斯编码器的选择码,对此后面将参考图3予以进一步说明。布斯编码器110、120、130、140和150中的每一个都接收m位的被乘数A和自n位二进制乘数X导出的一个相应的三数位群,以产生一个部分积。
来自部分积发光器100的5个部分积被加法/移位树200相加,以产生一个最终部分积和一个进位部分积。最终加法器300将来自加法器/移位树200的最终部分积和进位部分积相加,以产生一个最终乘积。
图3示出了图2所示的布斯编码器110、120、130、140和150中的一个,例如110的详细电路图,这些编友器具有相同的结构。
在网路20上,并行m位被乘数A的MSB被复制两次,这两个复制的数位被加在MSB的左侧,从而以一个并行m+2位二进制数ATO扩展了该m位被乘数A。这个操作对应于前述从布斯重新编码处理导出编码数“1”的操作。
此外,在网路30上,并行m位被乘数A的MSB被复制一次,该复制的数位被添加在MSB的左侧,从而以一个并行m+1位的二进制数扩展了该m位被乘数A;然后,在该m+1位二进制数的LSB的右侧添加一个二进制数“0”,从而以一个并行m+2位二进制数BTO扩展了该m位被乘数A。这个操作对应于前述从布斯重新编码处理导出编码数“2”的操作。
m+2位二进制数ATO被提供给第一倒相器40,后者产生一个倒相并行m+2位二进制数ATT,该ATO还提供给一个有三个数据输入端的分路器80的第一数据输入端“a”。m+2位二进制数BTO被提供给第二倒相器50,后者产生一个倒相并行m+2位二进制数BTT,该BTO还提供给三输入端分路器80的第二数据输入端“b”。
倒相m+2位二进制数ATT和倒相m+2位二进制数BTT分别被提供给一个有两个数据输入端的分路器60的第一和第二数据输入端“a”和“b”。
另一方面,第一个三数位群S1,例如“100”,被分别提供给二输入端分路器(“MUX”)60和三输入端分路器(“MUX”)80的选择输入端“d”。该提供给分路器60和80的第一个三数位群S1被用作选择码,它确定了哪一个输入应该从分路器通过。这样,二输入端MUX60在对三数位群S1作出响应时,将从它的两个数据中,即从倒相m+2位二进制数ATT和倒相m+2位二进制数BTT中选出一个作为输出。这个操作概括于下列真值表I。
从真值表I可以看出,本例中m+2位二进制数BTT被选作为二输入端分路器60的输出CT。
然后,由二输入端MUX60选择的输出,即m+2位二进制数CT,被提供给一个加“1”逻辑电路70。在加“1”逻辑电路70中,所选择的输出CT被逻辑加上二进制数“1”,从而产生一个m+2位二进制数CT+1。这个操作对应于上述布斯重新编码处理中导出编码数“-1 ”和“-2”的操作。
然后,来自加“1”逻辑电路70的m+2位二进制数CT+1被提供给三输入端MUX80的第三输入端“C”。与二输入端MUX60情形中所用的方式相似,三输入端MUX80在对三数位群S1作出响应时从它的三个输入:m+2位数据ATO、M+2位数据BTO和另一个m+2位数据CT+1中选择一个作为输出。这个操作概括于真值表II。
从真值表II可以看出,本例中m+2位二进制数CT+1被选作为三输入端MUX80的输出TMP1。
其结果是,三输入端MUX80产生一个m+2位二进制数TMP1,这就是布斯编码器110的部分积。
图4A至4E示出了分别由布斯编码器110、120、130、140和150所执行的仿真结果,其中采用了16进制表示来说明布斯编码器的工作过程。例如,在图4A中,如数据串的第二纵列所示,当被乘数A是9位长的二进制数“000011101”,即用16进制符号表示为“01D”、并且乘数X是9位长的二进制数“000011010”,即用16进制符号表示为“01A”时,则ATO变为“00000011101”或“01D”;BTO变为“00000111010”或“03A”;ATT变为“111111100010”或“7E2”;以及BTT变为“111111000101”或“7C5”。然后,因为S1是“100”,所以CT变为BTT的值,即“7C5”,最后TMP1变为“7C6”,这就是布斯编码器110的部分积。
虽然本发明只是对优选实施例进行展示和说明的,但对于熟悉本技术领域的人们来说,很明显可以在不偏离所附权利要求中所定义的本发明的精神和范畴的情形下,作出许多变化和修改。
表1 布斯重新编码
Xn+1 Xn Xn-1 | Z | 操作 |
0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1 | 0112-21-10 | A的一倍A的一倍A的两倍2A的二的补数A的一倍A的二的补数 |
真值表I
S(选择码) | CT(输出) |
0 0 00 0 10 1 00 1 11 0 01 0 10 1 11 1 1 | 0000baaO |
真值表II
S(选择码) | CT(输出) |
0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1 | 0aabccc0 |
Claims (1)
1、一种用来将一个并行n位二进制乘数和一个并行m位二进制被乘数相乘的二进制乘法装置,其中n和m都分别为正整数,该装置包括:
带有n/2个(若n为偶数)或(n+1)/2个(若n为奇数)部分积发生装置的装置,用来将乘数中的n个数位与被乘数中的m个数位相乘,以产生n/2个(若n为偶数)或(n+1)/2个(若n为奇数)部分积;
用来把在n位二进制乘数的最低位(“LSB”)的右侧添加了一个虚位的数串分群成n/2个(若n为偶数)或(n+1)/2个(若n为奇数)由三个数位构成的数据群,即三数位群的装置,该分群以虚位的位置开始,上述n/2个或(n+1)/2个三数位群中的两个相邻的三数位群之间有一个相交叠数位,其中各个三数位群被分别提供给各个部分积发生装置;
用来将上述n/2个或(n+1)/2个部分积相加以产生一个最终部分积和一个进位部分积的装置;以及
用来将最终部分积和进位部分积相加以产生一个最终乘积的装置,
其中上述每个部分积发生装置含有:
第一扩展装置,用来以一个并行m+2位二进制数ATO扩展m位被乘数,其中上述ATO中的两个扩展数位由两次复制该m位被乘数中的最高位(“MSB”)得到,它们被添加在该MSB的左侧;
第二扩展装置,用来以一个并行m+2位二进制数BTO扩展m位被乘数,其中上述BTO中的两个扩展数位之一由复制m位被乘数中的MSB得到,它添加在该MSB的左侧,另一个扩展数位是二进制数“0”,添加在LSB的右侧;
第一倒相器,用来对来自第一扩展装置的m+2位二进制数ATO倒相,以产生一个倒相m+2位二进制数ATT;
第二倒相器,用来对来自第二扩展装置的m+2位二进制数BTO倒相,以产生一个倒相m+2位二进制数BTT;
第一分路器,用来在对向它提供的一个三数位群作出响应时从倒相m+2位二进制数ATT和倒相m+2位二进制数BTT中选择一个作为输出,其中该三数位群被用作选择输出操作的选择码;
加“1”逻辑电路,用来在从第一分路器选择的输出上逻辑加上一个二进制数“1”,以产生一个m+2位二进制数CT+1;以及
第二分路器,用来在对三数位群作出响应时从m+2位二进制数ATO、m+2位二进制数BTO、和m+2位二进制数CT+1中选择一个作为输出,由该第二分路器所选择的输出就是上述各个部分积发生器的部分积。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 95108645 CN1117165A (zh) | 1995-08-14 | 1995-08-14 | 二进制乘法器中的布斯编码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 95108645 CN1117165A (zh) | 1995-08-14 | 1995-08-14 | 二进制乘法器中的布斯编码器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1117165A true CN1117165A (zh) | 1996-02-21 |
Family
ID=5076832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 95108645 Pending CN1117165A (zh) | 1995-08-14 | 1995-08-14 | 二进制乘法器中的布斯编码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1117165A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100347666C (zh) * | 1998-02-19 | 2007-11-07 | 朗迅科技公司 | 用于中央处理器和数字信号处理器的低功率乘法器 |
CN111258542A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
-
1995
- 1995-08-14 CN CN 95108645 patent/CN1117165A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100347666C (zh) * | 1998-02-19 | 2007-11-07 | 朗迅科技公司 | 用于中央处理器和数字信号处理器的低功率乘法器 |
CN111258542A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN111258542B (zh) * | 2018-11-30 | 2022-06-17 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4168530A (en) | Multiplication circuit using column compression | |
JP3244506B2 (ja) | 小型乗算器 | |
US4831577A (en) | Digital multiplier architecture with triple array summation of partial products | |
US4965762A (en) | Mixed size radix recoded multiplier | |
JPH05150947A (ja) | 7ビツト入力3ビツト出力のカウンタ | |
US3795880A (en) | Partial product array multiplier | |
US5122982A (en) | Carry generation method and apparatus | |
GB2399909A (en) | Multiplication of selectively partitioned binary inputs using booth encoding | |
US4293922A (en) | Device for multiplying binary numbers | |
US4638449A (en) | Multiplier architecture | |
US5530664A (en) | Method and apparatus for automatically designing logic circuit, and multiplier | |
US5339267A (en) | Preprocessor of division device employing high radix division system | |
US5166899A (en) | Lookahead adder | |
CN1117165A (zh) | 二进制乘法器中的布斯编码器 | |
US5691930A (en) | Booth encoder in a binary multiplier | |
US4215419A (en) | Method for binary multiplication of a number by a sum of two numbers and a digital system for implementation thereof | |
Duprat et al. | Some results about on-line computation of functions | |
JP3660075B2 (ja) | 除算装置 | |
CN1666173A (zh) | 快速乘法电路 | |
US3794820A (en) | Binary multiplier circuit | |
US6622154B1 (en) | Alternate booth partial product generation for a hardware multiplier | |
Koç | A Tutorial on p-adic Arithmetic | |
JPS58129653A (ja) | 乗算方式 | |
US3798434A (en) | Electronic device for quintupling a binary-coded decimal number | |
Frougny et al. | On-line multiplication in real and complex base |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |