JP3255251B2 - 配列型桁上げ保存加算器を有する乗算器 - Google Patents

配列型桁上げ保存加算器を有する乗算器

Info

Publication number
JP3255251B2
JP3255251B2 JP16315093A JP16315093A JP3255251B2 JP 3255251 B2 JP3255251 B2 JP 3255251B2 JP 16315093 A JP16315093 A JP 16315093A JP 16315093 A JP16315093 A JP 16315093A JP 3255251 B2 JP3255251 B2 JP 3255251B2
Authority
JP
Japan
Prior art keywords
digit
adder
gate
partial product
input terminal
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 - Lifetime
Application number
JP16315093A
Other languages
English (en)
Other versions
JPH06348460A (ja
Inventor
俊宏 南
良太 笠井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP16315093A priority Critical patent/JP3255251B2/ja
Publication of JPH06348460A publication Critical patent/JPH06348460A/ja
Application granted granted Critical
Publication of JP3255251B2 publication Critical patent/JP3255251B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、2次のBooth のアルゴ
リズムを用いることによって部分積の個数を半分に削減
し、配列型桁上げ保存加算器と2入力加算器とを用いて
部分積を加算する乗算器に関する。
【0002】
【従来の技術】まず、Booth のアルゴリズムについて説
明する。2の補数表現のm桁の被乗数Xとn桁の乗数Y
とを乗算する方法の1つとして、2次のBooth のアルゴ
リズムを用いることによって部分積の個数を半分に削減
し、配列型桁上げ保存加算器と2入力加算器とを用いて
部分積を加算することによって、被乗数Xと乗数Yとの
乗算結果を得る方法が知られている。
【0003】この方法において、乗数Yの桁数が偶数で
ある場合、Y=ynn-1n-2 …y1 、y0 =0(y
n 、yn-1 、…y1 、y0 は、それぞれビットを示し2
2 づつ重み付けがされている)とすると、2次のBooth
のアルゴリズムは次式で表される。
【0004】
【数1】 ここで、PPi =(y2i+y2i+1−2y2i+2)・Xは部
分積であり、(桁数/2)個の部分積が生じる。
【0005】次に、乗数Yの桁数が奇数である場合、符
号桁yn を1ビット拡張し、Y=ynnn-1n-2
…y1 とすることによって、乗数Yの桁数が偶数である
場合と同様に扱うことができる。ただし、(桁数+1)
/2個の部分積が生じる。
【0006】また、乗数Yの桁数が奇数である場合、Y
=yn'+1n'n'-1…y1 、y0 =y-1=0とすること
も可能であり、この場合2次のBooth のアルゴリズムは
次式で表される。
【0007】
【数2】 ここで、PPi =(y2i+1+y2i+2−2y2i+3)・Xは
部分積である。ただし、y0 =y-1=0であるため、最
低次部分積PP-1は、PP-1=(y-1+y0 −2y1
・X=−2y1 ・Xとなる。(1)、(2)式より、以
下のことが分かる。 部分積PPi は、乗数Yの連続する3桁から得られ
る。 部分積PPi の個数は、乗数Yの桁数が偶数のとき
に(桁数/2)個、奇数のときに{(桁数+1)/2}
個である。 部分積PPi の値は0、±X、±2Xのいずれかで
ある。部分積PPi が−Xまたは−2Xとなった場合、
Xの各桁のビットを反転し、LSBに1を加算する。 最低次部分積から最高次部分積までの全部分積を2
2iの重みづけをして加算する。
【0008】なお、2次のBooth のアルゴリズムについ
ては、たとえば、菅野卓雄監修、香山晋編、「超高速デ
ィジタルデバイスシリーズ、2.超高速MOSデバイ
ス」、培風館、pp295−298、1986に記載され
ている。
【0009】図12は、8桁×8桁の乗算を行う第1の
従来例を示すブロック図である。
【0010】図12には、2次のBooth のアルゴリズム
を用いて得られた部分積PP0 〜PP3 を加算する半加
算器1と全加算器21 、22 とで構成された配列型桁上
げ保存加算器と、2入力加算器3とが示されている。Bo
oth のアルゴリズムによってデコードした結果、部分積
PPi が−Xまたは−2Xとなった場合には負であるこ
と(すなわち符号桁が1であること)を示すために、符
号桁を上位桁に拡張する必要がある。このために、図1
2における部分積PP0 〜PP2 の符号桁が拡張されて
いる。
【0011】図12には、乗算器のクリティカルパスの
一部である配列型桁上げ保存加算器中のクリティカルパ
ス4が示されている。乗算器における7桁以上では4個
の部分積(PP0 、PP1 、PP2 、PP3 )を加算す
る必要があり、さらに7桁目では部分積PP3 が−Xま
たは−2Xとなった場合、LSBに1を加算するために
ビットPN3 を加算する必要がある。したがって、乗算
器における7桁目だけは5ビット加算する必要がある。
加えて、2入力加算器3では、下位桁から上位桁に桁上
げ信号が伝搬することを考慮すると、クリティカルパス
4を経て和信号S15を出力する経路が、乗算器全体の
クリティカルパスとなる。
【0012】なお、符号S1、S2、…、S13、S1
4、S15は、それぞれ、1桁目、2桁目、…、13桁
目、14桁目、15桁目の和信号を示す符号であり、図
12において、各和信号S1…S15の上に記載されて
いる回路は、各桁目に対応する部分積加算回路である。
たとえば、クリティカルパス4は、7桁目に対応する部
分積加算回路であり、半加算器1と第1の全加算器21
と第2の全加算器22とを有する。
【0013】クリティカルパス4において、入力端子X
0は最低次部分積PP0 のビットを入力し、入力端子X
1は最低次部分積PP0 の1個上の22 重みづけされた
部分積PP1 のビットを入力し、入力端子X2は最低次
部分積PP0 の2個上の22*2 重みづけされた部分積P
2 のビットを入力し、入力端子X3は最低次部分積P
0 の3個上の22*3 重みづけされた部分積PP3 のビ
ットを入力し、入力端子D0は6桁目の部分積加算回路
における半加算器1が出力した桁上げ信号を入力し、入
力端子D1は6桁目の部分積加算回路における第1の全
加算器21 が出力した桁上げ信号を入力する。半加算器
1は最低次部分積PP0 のビットを入力端子X0より入
力し、最低次部分積PP0 の1個上の22 重みづけされ
た部分積PP1 のビットを入力端子X1より入力し、第
1の桁上げ信号と第1の和信号を出力するものである。
【0014】この第1の桁上げ信号は出力端子C0より
8桁目の部分積加算回路に送られ、第1の和信号は第1
の全加算器21 に送られる。第1の全加算器21 は半加
算器1が出力した上記第1の和信号を入力し、最低次部
分積PP0 の2個上の22*2重みづけされた部分積PP2
のビットを入力端子X2より入力し、6桁目の部分積
加算回路における半加算器1が出力した桁上げ信号を入
力端子D0より入力し、第2の桁上げ信号と第2の和信
号とを出力するものである。
【0015】この第2の桁上げ信号は出力端子C1より
8桁目の部分積加算回路に送られ、第2の和信号は第2
の全加算器22 に送られる。第2の全加算器22 は、全
加算器21 が出力した上記第2の和信号を入力し、最低
次部分積PP0 の3個上の22*3 重みづけされた部分積
PP3 のビットを入力端子X3より入力し、6桁目の部
分積加算回路における全加算器21 が出力した桁上げ信
号を入力端子D1より入力し、第3の桁上げ信号と第3
の和信号とを2入力加算器3に出力するものである。
【0016】8桁目〜15桁目に対応する部分積加算回
路も、上記7桁目に対応する回路と同様であるが、図1
2に斜線が付された〇印の部分積にあっては、拡張され
た符号桁である点が、上記7桁目に対応する回路とは異
なる。
【0017】なお、1桁目、2桁目に対応する回路は配
線のみであり、最低次部分積PP0のビットがそのまま
2入力加算器3に入力され、3桁目に対応する回路は、
半加算器1のみを有し、この半加算器1が出力する和信
号と桁上げ信号とが2入力加算器3に入力され、4桁目
に対応する回路は、半加算器1のみを有し、この半加算
器1が出力する和信号が2入力加算器3に入力されてい
る。また、5桁目に対応する回路は、半加算器1と第1
の全加算器21 とを有するが、第2の全加算器22 を有
せず、第1の全加算器21 が出力する和信号と桁上げ信
号とが2入力加算器3に入力され、6桁目に対応する回
路は、半加算器1と第1の全加算器21とを有するが、
第2の全加算器22 を有せず、第1の全加算器21 が出
力する和信号が2入力加算器3に入力される。また、ビ
ットPN0 〜PN3 は、部分積PP0 〜PP3 が負であ
るときに、LSBに1を加算するためのビットである。
【0018】図13は、上記従来例に使用される半加算
器1の構成を示し、図14、図15は、上記従来例にお
ける第1の全加算器21 または第2の全加算器22 に使
用される全加算器2−1、2−2の構成を示してある。
【0019】ところで、通常、排他的論理和ゲート1段
の遅延時間は、NANDゲート2段分と等しく、NAN
Dゲート+インバータの遅延時間よりも長い。また、図
15に示した全加算器2−2中の排他的論理和ゲート6
とセレクタ8とをトランスミッションゲートで構成した
場合には両者の遅延時間は等しくなる。そこで、以下で
は、排他的論理和ゲート6の通過段数によって、クリテ
ィカルパスを評価することにする。
【0020】図13に示す半加算器1は、入力端子aと
入力端子bとから信号を入力して和信号を出力するパス
がクリティカルパスとなり、入力から出力までに排他的
論理和ゲート6を1段だけ通過する。図14に示す全加
算器2−1は、入力端子aと入力端子bとから信号を入
力して和信号を出力するパスがクリティカルパスとな
り、排他的論理和ゲート6を2段、通過する。図15に
示す全加算器2−2も同様に、排他的論理和ゲート6を
2段、通過する。したがって、図12中の第1の全加算
器21 、第2の全加算器22 は、ともに、入力から出力
までに排他的論理和ゲート6を2段、通過する。
【0021】図16は、図12に示す配列型桁上げ保存
加算器のクリティカルパス4の一例を具体的に示す回路
図であり、クリティカルパス4における排他的論理和ゲ
ート6の段数は5段である。この回路については、たと
えば、二階堂忠信、宮原則男、浜口重建著、「n−MO
S 16ビット並列乗算器」、信学技報、SSD79−
24、pp41−48、1979に記載されている。
【0022】図17は、第1の従来例において、16桁
×16桁の乗算を行う場合の従来例を示すブロック図で
ある。
【0023】図17においては、全31桁中の下位側1
6桁のみを示してある。この従来例は、基本的には、図
12に示した8桁×8桁の乗算を行う場合と同じであ
り、省略した上位側15桁の部分積加算回路は半加算器
1が1個と全加算器2が6個で構成されており、15桁
目と16桁目の回路と同一である。
【0024】図18は、8桁×8桁の乗算を行う第2の
従来例を示すブロック図である。
【0025】図12に示す第1の従来例では、PP0
PP2 の符号桁を上位桁に拡張する必要がある。しか
し、これは部分積の加算式を以下に示すように変更する
ことによって不要となる。
【0026】部分積PP0 〜PP3 における符号桁をS
0 〜S3 とすると、第1の従来例において拡張されてい
た符号桁の加算は次のようになる。 S=(214+213+212+211+210+29 +28 )S
0 +(214+213+212+211+210)S1 +(214
13+212)S2 +2143 ここで、
【0027】
【数3】 であるため、上式は次のように書き換えられる。
【0028】
【数4】 さらに、214+213+212+211+210+29 +28
15−28 であるために、上式は次のようになる。
【0029】
【数5】 ここで、8桁×8桁の乗算結果は15桁であり、215
上の桁を必要としないために、最後の項、つまり、
【0030】
【数6】 は、乗算結果に不要となる。
【0031】上記(3)式の意味は次のとおりである。 (a) 各部分積の符号ビットを反転する。 (b) 最低次部分積PP0 の符号ビットに1を加え
る。 (c) 隣り合う部分積(PP0 とPP1 、PP1 とP
2 等)の符号ビットの間に1を加える。
【0032】図19は、最低次部分積PP0 において、
上記(a)と(b)とを実現するA回路9と、その真理
値表とを示す図であり、図20は、上記(c)を実現す
るB回路10と、その真理値表とを示す図であり、図2
1は、部分積PP1 〜PP3において、上記(a)を実
現するC回路11を示す図である。
【0033】図18に示す第2の従来例は、A回路9、
B回路10、C回路11を用いることによって、第1の
従来例で必要であった符号桁の拡張を不要とした乗算器
である。なお、この第2の従来例において、16桁×1
6桁の乗算を行う場合、全31桁中の下位側16桁は上
記図17と同一である。図18に示す8桁×8桁の乗算
を行う場合と同様に、A回路9、B回路10、C回路1
1を用いることによって符号桁の拡張が不要となる。こ
の第2の従来例についても、第1の従来例と同じく、た
とえば、二階堂忠信、宮原則男、浜口重建著、「n−M
OS 16ビット並列乗算器」、信学技報、SSD79
−24、pp41−48、1979に記載されている。
【0034】
【発明が解決しようとする課題】ところが、上記従来例
において、m桁×n桁の乗算を行う場合に配列型桁上げ
保存加算器のクリティカルパスにおける排他的論理和ゲ
ートの段数がn−3段であり、すなわち8桁×8桁の乗
算においてクリティカルパス内の排他的論理和ゲートの
段数が5段、16桁×16桁の乗算においてクリティカ
ルパス内の排他的論理和ゲートの段数が13段、32桁
×32桁の乗算においてクリティカルパス内の排他的論
理和ゲートの段数が29段となり、上記従来例では遅延
時間が長いという問題がある。
【0035】また、上記従来例においては、全加算器を
構成する場合、排他的論理和ゲートを使用しているの
で、トランジスタ数、および遅延時間が増加するという
問題がある。
【0036】本発明は、配列型桁上げ保存加算器のクリ
ティカルパスにおける遅延時間を短くすることができ、
乗算器における部分積の加算時間を短縮することができ
る乗算器を提供することを目的とするものである。
【0037】
【課題を解決するための手段】本発明は、m桁の被乗数
とn桁の乗数と(mとnとは5以上の整数、m≧n)を
乗算する場合、2次のBooth のアルゴリズムによって上
記乗数をデコードし、上記乗数の桁数nが偶数であると
きにn/2個の部分積を生成し、上記乗数の桁数nが奇
数であるときに(n+1)/2個の部分積を生成する手
段を有し、3桁以上n桁以下の各桁では、上記最低次部
分積とその1個上の22 重みづけされた部分積とを半加
算器で加算することによって、第1番目の桁上げ信号と
第1番目の和信号とを生成する手段と、n≧7のとき、
7桁以上n桁以下の各桁では、上記最低次部分積の2個
上の22*2 重みづけされた部分積と上記最低次部分積の
3個上の22*3 重みづけされた部分積とを、第1番目の
全加算器の3個の入力端子のうち、桁上げ信号と和信号
出力までの遅延時間が長い第1の入力端子と第2の入力
端子とに入力し、出力までの遅延時間が短い第3の入力
端子に、上記第1番目の和信号を入力することによっ
て、第2番目の桁上げ信号と第2番目の和信号とを生成
する手段と、n≧9のとき、9桁以上n桁以下のk桁目
(9≦k≦n)では、上記最低次部分積のj個上の2
2*j 重みづけされた部分積(kが奇数のときj=4、
5、6、…、(k−1)/2、kが偶数のときj=4、
5、6、…、k/2−1)と1桁下位から出力される第
j−3番目の桁上げ信号とを、第j−2番目の全加算器
の3個の入力端子のうち、桁上げ信号と和信号出力まで
の遅延時間の長い第1の入力端子と第2の入力端子とに
入力し、出力までの遅延時間の短い第3の入力端子に、
第j−3番目の全加算器から出力される第j−2番目の
和信号を入力することによって第j−1番目の桁上げ信
号と第j−1番目の和信号とを生成する手段とを具備す
る配列型桁上げ保存加算器である。
【0038】また、本発明は、NANDゲートとOR・
NAND複合ゲートとによって、排他的否定論理和ゲー
トを構成し、全加算器における第1の入力端子と第2の
入力端子とを第1の排他的否定論理和ゲートの入力端子
に接続し、上記第1の排他的否定論理和ゲートの出力端
子と上記全加算器における第3の入力端子とを、第2の
排他的否定論理和ゲートの入力端子とOR・NAND複
合ゲートにおけるOR側の2つの入力端子とに接続し、
上記第1の排他的否定論理和ゲート中のNANDゲート
の出力端子を、上記OR・NAND複合ゲートにおける
NAND側の入力端子に接続し、上記第2の排他的否定
論理和ゲートの出力信号を上記全加算器における和信号
として出力し、上記OR・NAND複合ゲートの出力信
号を上記全加算器における桁上げ信号として出力する全
加算器によって配列型桁上げ保存加算器を構成するもの
である。
【0039】
【作用】従来例においては、m桁×n桁の乗算を行う場
合に配列型桁上げ保存加算器のクリティカルパスにおけ
る排他的論理和の段数がn−3段、すなわち8桁×8桁
のとき5段、16桁×16桁のとき13段、32桁×3
2桁のとき29段であったのに対して、本発明において
は、排他的論理和の段数をn/2段、すなわち8桁×8
桁のとき4段、16桁×16桁のとき8段、32桁×3
2桁のとき16段に削減することができ、乗算器におけ
る部分積の加算時間を短縮することができる。また、全
加算器を排他的否定論理和を用いて構成することによ
り、トランジスタ数を削減し、遅延時間を減少させるこ
とができる。
【0040】
【実施例】図1は、被乗算8桁と乗算8桁の乗算を行う
本発明の第1の実施例を示すブロック図である。図2
は、第1の実施例における配列型桁上げ保存加算器のク
リティカルパス13を示す回路図である。
【0041】この実施例は、m桁の被乗数とn桁の乗数
と(mとnとは1以上の整数、m≧n)を乗算する場
合、2次のBooth のアルゴリズムによって乗数をデコー
ドし、乗数の桁数nが偶数であるときにn/2個の部分
積を生成し、乗数の桁数nが奇数であるときに(n+
1)/2個の部分積を生成し、この生成された部分積の
最低次部分積から最高次部分積まで、各部分積を22
つ重みづけしながら加算する配列型桁上げ保存加算器を
有する乗算器である。
【0042】上記実施例は、部分積PP0 〜PP3 のビ
ットを加算する配列型桁上げ保存加算器と、2入力加算
器3とを有する。
【0043】図1には、乗算器のクリティカルパスの一
部である配列型桁上げ保存加算器中のクリティカルパス
13が示されている。乗算器における7桁以上では4個
の部分積を加算する必要があり、さらに7桁目では部分
積PP3 が−Xまたは−2Xとなった場合、LSBに1
を加算するためにビットPN3 を加算する必要がある。
したがって、乗算器における7桁目だけは5入力とな
る。加えて、2入力加算器3では、下位桁から上位桁に
桁上げ信号が伝搬することを考慮すると、クリティカル
パス13を経て和信号S15を出力する経路が、乗算器
全体のクリティカルパスとなる。
【0044】なお、符号S1、S2、…、S13、S1
4、S15は、それぞれ、1桁目、2桁目、…、13桁
目、14桁目、15桁目の和信号を示す符号であり、図
1において、各和信号S1…S15の上に記載されてい
る回路は、各桁目に対応する部分積加算回路である。た
とえば、クリティカルパス13は、7桁目に対応する部
分積加算であり、半加算器1と第1の全加算器121
第2の全加算器122とを有する。
【0045】クリティカルパス13において、入力端子
X0は最低次部分積PP0 のビットを入力し、入力端子
X1は最低次部分積PP0 の1個上の22 重みづけされ
た部分積PP1 のビットを入力し、入力端子X2は最低
次部分積PP0 の2個上の22*2 重みづけされた部分積
PP2 のビットを入力し、入力端子X3は最低次部分積
PP0 の3個上の22*3 重みづけされた部分積PP3
ビットを入力し、入力端子D0は6桁目の部分積加算回
路における半加算器1が出力した桁上げ信号を入力し、
入力端子D1は6桁目の部分積加算回路における第1の
全加算器121が出力した桁上げ信号を入力する。
【0046】半加算器1は、最低次部分積PP0 のビッ
トを入力端子X0より入力し、最低次部分積PP0 の1
個上の22 重みづけされた部分積PP1 のビットを入力
端子X1より入力し、第1の桁上げ信号と第1の和信号
とを出力するものである。この第1の桁上げ信号は出力
端子C0より8桁目の部分積加算回路に送られ、第1の
和信号は第1の全加算器121 に送られる。
【0047】第1の全加算器121 は、半加算器1が出
力した第1の和信号を、第2の和信号を出力するまでの
排他的論理和ゲート6の通過段数が1段である入力端子
に入力し、最低次部分積PP0 の2個上の22*2 重みづ
けされた部分積PP2 のビットと、最低次部分積PP0
の3個上の22*3 重みづけされた部分積PP3 のビット
とを、第2の和信号を出力するまでの排他的論理和ゲー
ト6の通過段数が2段である2個の入力端子に入力し、
第2の桁上げ信号と第2の和信号とを出力するものであ
る。この第2の桁上げ信号は出力端子C1より8桁目の
部分積加算回路に送られ、第2の和信号は第2の全加算
器122 に送られる。
【0048】第2の全加算器122 は、第1の全加算器
121 が出力した第2の和信号と6桁目の部分積加算回
路における半加算器1が出力した桁上げ信号を、第3の
和信号を出力するまでの排他的論理和ゲート6の通過段
数が2段である2個入力端子に入力し、6桁目の部分積
加算回路における第1の全加算器121 が出力した桁上
げ信号を、第3の和信号を出力するまでの排他的論理和
ゲート6の通過段数が1段である入力端子に入力し、第
3の桁上げ信号と第3の和信号とを2入力加算器3に出
力するものである。
【0049】8桁目〜15桁目に対応する部分積加算回
路も、上記7桁目に対応する回路と同様であるが、図1
において斜線が付された〇印の部分積にあっては、拡張
された符号桁である点が、上記7桁目に対応する回路と
は異なる。
【0050】なお、1桁目、2桁目に対応する回路は配
線のみであり、最低次部分積PP0のビットがそのまま
2入力加算器3に入力され、3桁目に対応する回路は、
半加算器1のみを有し、この半加算器1が出力する和信
号と桁上げ信号とが2入力加算器3に入力され、4桁目
に対応する回路は、半加算器1のみを有し、この半加算
器1が出力する和信号が2入力加算器3に入力されてい
る。また、5桁目に対応する回路は、半加算器1と第1
の全加算器121 とを有するが、第2の全加算器122
を有せず、第1の全加算器121 が出力する和信号が2
入力加算器3に入力され、6桁目に対応する回路は、半
加算器1と第1の全加算器121 とを有するが、第2の
全加算器122 を有せず、第1の全加算器121 が出力
する和信号が2入力加算器3に入力される。また、ビッ
トPN0 〜PN3 は、部分積PP0 〜PP3 が負である
ときに、LSBに1を加算するためのビットである。
【0051】上記実施例において、3桁以上n桁以下の
各桁では、最低次部分積PP0 とその1個上の22 重み
づけされた部分積PP1 とを半加算器1で加算すること
によって、第1番目の桁上げ信号と第1番目の和信号と
を生成する手段が設けられている。
【0052】上記実施例中の全加算器12自体は、図1
2に示す従来例における全加算器2(図14に示す全加
算器2−1または図15に示す全加算器2−2)と同一
の回路である。上記実施例では全加算器2の3つの入力
端子a、b、cのうち、入力端子aまたは入力端子bか
ら入力して和信号を出力するパスにおける排他的論理和
ゲート6の通過段数は2段であるのに対して、入力端子
cから入力して和信号を出力するパスにおける排他的論
理和ゲート6の通過段数は1段であり、入力端子cから
のパスにおける排他的論理和ゲート6の通過段数が少な
いことを示すために、図2の全加算器12において、入
力端子a、bよりも入力端子cを下げて描いてある。
【0053】また、上記実施例において、7桁以上n桁
以下の各桁では、最低次部分積PP0 の2個上の22*2
重みづけされた部分積PP2 と最低次部分積PP0 の3
個上の22*3 重みづけされた部分積PP3 とを、第1番
目の全加算器121 の3つの入力端子のうち、桁上げ信
号と和信号とを出力するまでの遅延時間が長い第1の入
力端子aと第2の入力端子bとに入力し、出力するまで
の遅延時間が短い第3の入力端子cに、第1番目の和信
号を入力することによって、第2番目の桁上げ信号と第
2番目の和信号とを生成する手段が設けられている。
【0054】すなわち、上記実施例においては、最低次
部分積PP0 とその1つ上の部分積PP1 とを半加算器
1によって加算し、第1番目の桁上げ信号と第1番目の
和信号とを生成し、パスにおける下段の全加算器121
のうちで、出力端子との間の排他的論理和ゲート6の通
過段数が多い入力端子a、bには上記第1の和信号を入
力せずに、出力端子との間の排他的論理和ゲート6の通
過段数が少ない入力端子cに上記第1の和信号を入力す
る。このように和信号を入力端子cに入力することによ
って、排他的論理和ゲート6の通過段数を削減し、した
がってクリティカルパスの遅延時間を短くすることがで
きる。つまり、上記実施例では全加算器12において、
入力端子cから入力して和信号または桁上げ信号を出力
するパスにおける遅延時間は、入力端子aまたはbから
入力して和信号または桁上げ信号を出力するパスにおけ
る遅延時間の半分であることを利用して、クリティカル
パスの遅延時間を短くしている。
【0055】図2に示すクリティカルパス13は、7桁
目のパスであり、7桁目において部分積PP0 と部分積
PP1 とを加算してから、2入力加算器3に入力するま
での排他的論理和ゲート6の段数は4段である。また、
5桁目において部分積PP0と部分積PP1 とを加算し
て第1番目の桁上げ信号を出力し、この第1番目の桁上
げ信号を6桁目の第1の全加算器121 に入力して6桁
目における第2番目の桁上げ信号を出力するまでの排他
的論理和ゲート6の段数は(NANDゲート2個、また
はセレクタの遅延時間を排他的論理和ゲート6の遅延時
間と等しいとすると)3段であり、その信号はクリティ
カルパス13のD1端子に入力されるので、配列型桁上
げ保存加算器中の排他的論理和ゲート6の通過段数は4
段である。したがって、上記実施例における配列型桁上
げ保存加算器中のクリティカルパスにおける排他的論理
和ゲート6の段数は4段であり、従来例のクリティカル
パスにおける排他的論理和ゲート6の段数5段よりも少
ない。
【0056】図3は、配列型桁上げ保存加算器における
第2の全加算器122 において、出力するまでの遅延時
間が長い入力端子aと入力端子bとに、1桁下位から2
つの桁上げ信号を入力し、第1の全加算器121 の和信
号を、第2の全加算器122における遅延時間が短い入
力端子cに入力した例を示す図である。ただし、7桁目
においてのみ第2の全加算器122 における入力端子a
と入力端子bとに、6桁目の半加算器1からの桁上げ信
号と部分積PP3 が負となった場合、LSBに1加える
ためのビットPN3 を入力する。
【0057】配列型桁上げ保存加算器の遅延時間に関し
ては、図1の構成と図3の構成とは同一であるが、図1
の場合は、7桁目における配列型桁上げ保存加算器の遅
延時間が、排他的論理和ゲート6の4段分であるのに対
し、図3の場合は、遅延時間が排他的論理和ゲート6の
3段分であるので、2入力加算器3まで考慮すると、図
1の構成よりも図3の構成が高速である場合が有り得
る。
【0058】図4は、図3に示す実施例において、16
桁×16桁の乗算を行う場合の実施例を示すブロック図
である。ただし全31桁中の下位側16桁のみを示す。
【0059】この例は、基本的には、図3に示す8桁×
8桁の乗算を行う場合と同じであり、省略した上位側1
5桁の部分積加算回路は半加算器1が1個と全加算器2
が6個で構成されており、15桁目と16桁目の回路と
同一である。
【0060】つまり、図4の実施例では、9桁以上n桁
以下のk桁目(9≦k≦n)では、最低次部分積PP0
のj個上の22*j 重みづけされた部分積(kが奇数のと
きには、j=4、5、6、…、(k−1)/2、kが偶
数のときには、j=4、5、6、…k/2−1)と、1
桁下位から出力される第j−3番目の桁上げ信号とを、
第j−2番目の全加算器の3個の入力端子のうち、桁上
げ信号と和信号出力までの遅延時間の長い第1の入力端
子と第2の入力端子とに入力し、出力するまでの遅延時
間が短い第3の入力端子に、第2〜3番目の全加算器か
ら出力される第j−2番目の和信号を入力することによ
って、第j−1番目の桁上げ信号と第j−1番目の和信
号とを生成する手段が設けられている。
【0061】図5は、図4に示す実施例において、16
桁×16桁の乗算を行う場合の配列型桁上げ保存加算器
中のクリティカルパスの一例を示す図である。
【0062】図5における符号X0、X1、X2、X
3、X4、X5、X6、X7は、部分積PP0 〜PP7
に対応するビットの入力端子を示すものであり、符号C
0、C1、C2、C3、C4、C5は、上位桁へ向かう
桁上げ信号の出力端子を示すものであり、符号D0、D
1、D2、D3、D4、D5は、下位桁から受ける桁上
げ信号の入力端子を示すものである。
【0063】図5においても、パスにおける全加算器1
2のうちで、出力端子との間の排他的論理和ゲート6の
通過段数が多い入力端子a、bにはパスにおける上段の
全加算器12から出力される和信号を入力せずに、出力
端子との間の排他的論理和ゲート6の通過段数が少ない
入力端子cに上記和信号を入力する。このように上段の
全加算器から出力される和信号を入力端子cに入力する
ことによって、排他的論理和ゲート6の通過段数を削減
し、したがってクリティカルパスの遅延時間を短くする
ことができる。この場合、15桁目において部分積PP
0 〜PP7 を加算して第6番目の桁上げ信号を出力し、
この信号は16桁目において最終段の全加算器126
入力されるので、配列型桁上げ保存加算器中の排他的論
理和ゲート6の通過段数は8段となり、従来の配列型桁
上げ保存加算器における排他的論理和ゲート6の13段
よりも5段少なく、乗算器における部分積の加算時間を
短縮することができる。
【0064】図6は、8桁×8桁の乗算を行う本発明の
第2の実施例を示すブロック図である。この第2の実施
例は、第2の従来例と同様に、A回路9、B回路10、
C回路11を用いて符号桁の拡張を不要としたものであ
る。
【0065】第2の実施例は、第1の実施例と同様に、
最低次部分積PP0 とその1つ上の部分積PP1 とを半
加算器1によって加算し、第1番目の桁上げ信号と第1
番目の和信号とを生成し、第1の全加算器121 の入力
端子a、入力端子bではなく、入力端子cに、第1番目
の和信号を入力する。これによって、排他的論理和ゲー
ト6の通過段数を削減し、したがってクリティカルパス
の遅延時間を削減できる。つまり、第2の実施例でも、
全加算器12において入力端子cから入力して和信号ま
たは桁上げ信号を出力するパスの遅延時間は、入力端子
aまたは入力端子bから入力して和信号または桁上げ信
号を出力するパスの遅延時間の半分であることを利用し
て、クリティカルパスの遅延時間を短くしている。
【0066】図7は、配列型桁上げ保存加算器中の第2
の全加算器122 において和信号または桁上げ信号を出
力するまでの遅延時間が長い入力端子a、入力端子b
に、1桁下位からの2つの桁上げ信号を入力し、遅延時
間が短い入力端子cに、第1の全加算器121 の和信号
を入力した例を示す図である。
【0067】配列型桁上げ保存加算器の遅延時間に関し
ては、図6の構成と図7の構成とは同一であるが、図6
の場合は、7桁目における配列型桁上げ保存加算器の遅
延時間が排他的論理和ゲート6の4段分であるのに対し
て、図7の場合は、排他的論理和ゲート6の3段分であ
るので、2入力加算器3まで考慮すると、図6の構成よ
りも図7の構成が高速である場合が有り得る。
【0068】図8は、8桁×8桁の乗算を行う本発明の
第3の実施例を示す図であり、その配列型桁上げ保存加
算器におけるクリティカルパスを示す回路図である。
【0069】この実施例における全加算器17は、第1
の実施例と第2の実施例において全加算器121 または
122 で使用していた排他的論理和ゲート6を排他的否
定論理和ゲート14に置き換えたものである。
【0070】排他的否定論理和ゲート14の出力信号
は、排他的論理和ゲート6の出力信号を反転したもので
あり、また、2つの入力信号をそれぞれ反転して排他的
論理和ゲート6に入力した場合の出力信号と、2つの入
力信号をそれぞれ反転せずに排他的論理和ゲート6に入
力した場合の出力信号とは同一である。したがって、図
8に示したように、入力信号X0、X1、X2、X3、
D0、D1と、出力信号C0、C1と、桁上げ信号と、
和信号とに影響を及ぼすことなく、排他的否定論理和ゲ
ート14を使用することができる。
【0071】図9は、排他的否定論理和ゲート14を、
NANDゲート18とOR・NAND複合ゲート16と
で構成した場合を示す回路図である。
【0072】排他的否定論理和ゲート14を使用した場
合、排他的否定論理和ゲート14中のNANDゲート1
8を、図8中のNANDゲート15としても使用するこ
とができるので、トランジスタ数を削減することができ
る。この場合の例を図10に示してある。
【0073】ここで、図8に示されている入力X0、X
1、X2、X3、D0、D1には排他的否定論理和ゲー
ト14しか接続されないので、信号を入力する側から見
た負荷が減少し、このために遅延時間が減少する。一
方、図16に示した従来技術において、排他的否定論理
和ゲート14を使用するためには、入力信号X2、X
3、D0、D1を反転する必要があり、これによって、
トランジスタ数および遅延時間が増加するという欠点が
ある。
【0074】図11は、排他的論理和ゲート6を、NO
Rゲート20とAND・NOR複合ゲート19とで構成
する場合の回路図である。図11から分かるように排他
的論理和ゲート6においては、図8中のNANDゲート
15と共用できるゲートは存在しない。
【0075】
【発明の効果】請求項1に記載の発明によれば、配列型
桁上げ保存加算器のクリティカルパスにおける排他的論
理和ゲートの段数をn/2段、すなわち8桁×8桁のと
きに4段、16桁×16桁のときに8段、32桁×32
桁のときに16段に削減することができ、乗算器におけ
る部分積の加算時間を短縮することができるという効果
を奏する。
【0076】また、請求項2に記載の発明によれば、全
加算器を排他的否定論理和ゲートを用いて構成すること
により、トランジスタ数を削減し、部分積の加算時間を
さらに短縮することができるという効果を奏する。
【図面の簡単な説明】
【図1】8桁×8桁の乗算を行う本発明の第1の実施例
を示すブロック図である。
【図2】第1の実施例における配列型桁上げ保存加算器
のクリティカルパス13を示す回路図である。
【図3】配列型桁上げ保存加算器における第2の全加算
器122 において、遅延時間が長い入力端子a、bに、
1桁下位から2つの桁上げ信号を入力し、第1の全加算
器121 の和信号を、第2の全加算器122 における遅
延時間が短い入力端子cに入力した例を示す図である。
【図4】図3に示す実施例において、16桁×16桁の
乗算を行う場合の例を示すブロック図である。
【図5】図4に示す16桁×16桁の乗算を行う場合の
配列型桁上げ保存加算器中のクリティカルパスの一例を
示す図である。
【図6】8桁×8桁の乗算を行う本発明の第2の実施例
を示すブロック図である。
【図7】配列型桁上げ保存加算器中の第2の全加算器1
2 における遅延時間が長い入力端子a、bに、1桁下
位からの2つの桁上げ信号を入力し、遅延時間が短い入
力端子cに、第1の全加算器121 の和信号を入力した
例を示す図である。
【図8】8桁×8桁の乗算を行う本発明の第3の実施例
を示す図である。
【図9】排他的否定論理和ゲート14を、NANDゲー
ト18とOR・NAND複合ゲート16とで構成した場
合を示す回路図である。
【図10】図8の実施例において、図9に示した排他的
否定論理和ゲート14中のNANDゲート18を、図8
中のNANDゲート15として使用した場合の例を示す
図である。
【図11】排他的論理和ゲート6を、NORゲート20
とAND・NOR複合ゲート19とで構成する場合の回
路図である。
【図12】8桁×8桁の乗算を行う第1の従来例を示す
ブロック図である。
【図13】上記従来例に使用される半加算器1の構成を
示す図である。
【図14】上記従来例における第1の全加算器21 また
は第2の全加算器22 に使用される全加算器2−1の構
成を示す図である。
【図15】上記従来例における第1の全加算器21 また
は第2の全加算器22 に使用される全加算器2−2の構
成を示す図である。
【図16】図12に示す配列型桁上げ保存加算器のクリ
ティカルパス4の一例を具体的に示す回路図である。
【図17】図12に示す従来例において、16桁×16
桁の乗算を行う場合の従来例を示すブロック図である。
【図18】8桁×8桁の乗算を行う第2の従来例を示す
ブロック図である。
【図19】上記従来例におけるA回路9とその真理値表
とを示す図である。
【図20】上記従来例におけるB回路10とその真理値
表とを示す図である。
【図21】上記従来例におけるC回路11を示す図であ
る。
【符号の説明】
1…半加算器、 21 …第1の全加算器、 22 …第2の全加算器、 3…2入力加算器、 4…図12に示す配列型桁上げ保存加算器のクリティカ
ルパス、 5…NANDゲート、 6…排他的論理和ゲート 7…インバータ、 8…セレクタ、 9…A回路、 10…B回路、 11…C回路、 121 …第1の全加算器、 122 …第2の全加算器、 13…図1に示す配列型桁上げ保存加算器のクリティカ
ルパス、 14…排他的否定論理和ゲート、 15…NANDゲート、 16…OR・NAND複合ゲート、 17…全加算器、 18…NANDゲート、 19…AND・NOR複合ゲート。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 7/52 310

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 m桁の被乗数とn桁の乗数と(mとnと
    は5以上の整数、m≧n)を乗算する場合、2次のBoot
    h のアルゴリズムによって上記乗数をデコードし、上記
    乗数の桁数nが偶数であるときにn/2個の部分積を生
    成し、上記乗数の桁数nが奇数であるときに(n+1)
    /2個の部分積を生成し、この生成された部分積の最低
    次部分積から最高次部分積まで、各部分積を22 づつ重
    みづけしながら加算する配列型桁上げ保存加算器を有す
    る乗算器において、 3桁以上n桁以下の各桁では、上記最低次部分積とその
    1個上の22 重みづけされた部分積とを半加算器で加算
    することによって、第1番目の桁上げ信号と第1番目の
    和信号とを生成する手段と;n≧7のとき、7桁以上n
    桁以下の各桁では、上記最低次部分積の2個上の22*2
    重みづけされた部分積と上記最低次部分積の3個上の2
    2*3 重みづけされた部分積とを、第1番目の全加算器の
    3個の入力端子のうち、桁上げ信号と和信号出力までの
    遅延時間が長い第1の入力端子と第2の入力端子とに入
    力し、出力までの遅延時間が短い第3の入力端子に、上
    記第1番目の和信号を入力することによって、第2番目
    の桁上げ信号と第2番目の和信号とを生成する手段と;
    n≧9のとき、9桁以上n桁以下のk桁目(9≦k≦
    n)では、上記最低次部分積のj個上の22*j 重みづけ
    された部分積(kが奇数のときj=4、5、6、…、
    (k−1)/2、kが偶数のときj=4、5、6、…k
    /2−1)と1桁下位から出力される第j−3番目の桁
    上げ信号とを、第j−2番目の全加算器の3個の入力端
    子のうち、桁上げ信号と和信号出力までの遅延時間の長
    い第1の入力端子と第2の入力端子とに入力し、出力ま
    での遅延時間の短い第3の入力端子に、第j−3番目の
    全加算器から出力される第j−2番目の和信号を入力す
    ることによって、第j−1番目の桁上げ信号と第j−1
    番目の和信号とを生成する手段と;を具備することを特
    徴とする配列型桁上げ保存加算器を有する乗算器。
  2. 【請求項2】 請求項1において、 NANDゲートとOR・NAND複合ゲートとによっ
    て、排他的否定論理和ゲートを構成し、 全加算器における上記第1の入力端子と上記第2の入力
    端子とを第1の排他的否定論理和ゲートの入力端子に接
    続し、上記第1の排他的否定論理和ゲートの出力端子と
    上記全加算器における第3の入力端子とを、第2の排他
    的否定論理和ゲートの入力端子とOR・NAND複合ゲ
    ートにおけるOR側の2つの入力端子とに接続し、上記
    第1の排他的否定論理和ゲート中のNANDゲートの出
    力端子を、上記OR・NAND複合ゲートにおけるNA
    ND側の入力端子に接続し、上記第2の排他的否定論理
    和ゲートの出力信号を上記全加算器における和信号とし
    て出力し、上記OR・NAND複合ゲートの出力信号を
    上記全加算器における桁上げ信号として出力する全加算
    器によって構成されることを特徴とする配列型桁上げ保
    存加算器を有する乗算器。
JP16315093A 1993-06-07 1993-06-07 配列型桁上げ保存加算器を有する乗算器 Expired - Lifetime JP3255251B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16315093A JP3255251B2 (ja) 1993-06-07 1993-06-07 配列型桁上げ保存加算器を有する乗算器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16315093A JP3255251B2 (ja) 1993-06-07 1993-06-07 配列型桁上げ保存加算器を有する乗算器

Publications (2)

Publication Number Publication Date
JPH06348460A JPH06348460A (ja) 1994-12-22
JP3255251B2 true JP3255251B2 (ja) 2002-02-12

Family

ID=15768178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16315093A Expired - Lifetime JP3255251B2 (ja) 1993-06-07 1993-06-07 配列型桁上げ保存加算器を有する乗算器

Country Status (1)

Country Link
JP (1) JP3255251B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966323B (zh) * 2020-08-18 2022-09-13 合肥工业大学 基于无偏压缩器的近似乘法器及计算方法

Also Published As

Publication number Publication date
JPH06348460A (ja) 1994-12-22

Similar Documents

Publication Publication Date Title
Swartzlander et al. Computer arithmetic
US5278783A (en) Fast area-efficient multi-bit binary adder with low fan-out signals
EP0448367B1 (en) High speed digital parallel multiplier
EP0827069B1 (en) Arithmetic circuit and method
JPH08339292A (ja) 演算処理装置及びその方法、並びにデータ処理装置
US4864528A (en) Arithmetic processor and multiplier using redundant signed digit arithmetic
EP0152046A2 (en) Multiplying circuit
Gokhale et al. Design of area and delay efficient Vedic multiplier using Carry Select Adder
US7260595B2 (en) Logic circuit and method for carry and sum generation and method of designing such a logic circuit
JP3637073B2 (ja) 倍精度・単精度・内積演算および複素乗算が可能な乗算器
JP6350111B2 (ja) 乗算回路及びその乗算方法
US3842250A (en) Circuit for implementing rounding in add/subtract logic networks
US4623872A (en) Circuit for CSD-coding of a binary number represented in two's complement
JP3255251B2 (ja) 配列型桁上げ保存加算器を有する乗算器
JPS5981737A (ja) 乗算器
US7111033B2 (en) Carry save adders
US5935202A (en) Compressor circuit in a data processor and method therefor
US20050091299A1 (en) Carry look-ahead adder having a reduced area
US4935892A (en) Divider and arithmetic processing units using signed digit operands
US20070180014A1 (en) Sparce-redundant fixed point arithmetic modules
JP3652447B2 (ja) ツリー回路
US20200125329A1 (en) Rank-based dot product circuitry
Sahoo et al. A novel redundant binary number to natural binary number converter
US20030093454A1 (en) Adder tree structure DSP system and method
Nagendra et al. Unifying carry-sum and signed-digital number representations for low power

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071130

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081130

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091130

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101130

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101130

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111130

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111130

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121130

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121130

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131130

Year of fee payment: 12

EXPY Cancellation because of completion of term