JPH0610787B2 - 乗算処理装置 - Google Patents

乗算処理装置

Info

Publication number
JPH0610787B2
JPH0610787B2 JP62014517A JP1451787A JPH0610787B2 JP H0610787 B2 JPH0610787 B2 JP H0610787B2 JP 62014517 A JP62014517 A JP 62014517A JP 1451787 A JP1451787 A JP 1451787A JP H0610787 B2 JPH0610787 B2 JP H0610787B2
Authority
JP
Japan
Prior art keywords
digit
partial product
multiplier
recoded
circuit
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
JP62014517A
Other languages
English (en)
Other versions
JPS63182739A (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP62014517A priority Critical patent/JPH0610787B2/ja
Priority to US07/074,971 priority patent/US4864528A/en
Priority to US07/086,967 priority patent/US4866657A/en
Publication of JPS63182739A publication Critical patent/JPS63182739A/ja
Priority to US03/239,243 priority patent/US5031136A/en
Priority to US07/599,275 priority patent/US5153847A/en
Publication of JPH0610787B2 publication Critical patent/JPH0610787B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、内部演算に冗長2進数表現(符号付ディジッ
ト表現)を用いた乗算処理装置に関する。
従来の技術 従来、高速乗算器については、電子通信学会論文誌Vo1
J66-DNo.6(1983年)第683頁から第690頁に、内
部計算に各桁が1,0あるい−1の値をもつ冗長2進表
現(一種の符号付ディジット表現)を用い、生成された
部分積を2つずつ分木状に冗長2進数体系で加え合わせ
ていき、最後に冗長2進数体系で求まった積を通常の2
進表現に変換する方法について述べられている。冗長2
進数体系では、2数の加算を桁上げの伝搬なしに演算数
の桁数に無関係な一定時間で行なえる。従って冗長2進
加算木を用いることにより高速に乗算を実行することが
できる。
さらに、この乗算器では2ビットのBoothの方法を適用
し、乗数を2進符号付ディジット数(各桁が{−2,−
1,0,1,2}の要素をもつ4進数)にリコードする
ことにより部分積の数を乗数の桁数の約半分にし、計算
の高速化とハードウェア量の削減を行なっている。この
時、部分積の生成において、被乗数の2倍と正負の反転
が必要である。2倍は1ディジットの左シフトにより行
ない、正負の反転は、各桁の冗長2進数の正負の反転に
より行なっている。
発明が解決しようとする問題点 上記従来技術では、部分積の生成は容易であるが、部分
積の各桁がBoothのリコード値により正にも負にもなり
うるため、加算木のすべての加算器を冗長2進加算器で
構成しなければならない。したがって、乗算器を組合せ
回路として実現する場合、冗長2進加算器の素子数が大
きいため、演算の桁数が大きくなると素子数が膨大とな
り、回路のレイアウトが複雑になるという問題があっ
た。
本発明は、上記の問題点を改善するためになされたもの
で、簡単な構成でハードウェア量を削減し、回路のレイ
アウトを容易にし、さらに、ゲート段数を削減した高速
な乗算器を提供することを目的としている。
問題点を解決するための手段 本発明の手段は、内部演算に各桁が正,0,負のいずれ
かの値を有する符号付きディジット数を用いる乗算処理
装置において、符号付きディジット数にリコードされた
乗数の2桁と被乗数とから符号付きディジット数表現の
部分積を生成する回路を有するもので、具体態様として
は、符号付ディジット数にリコードされた乗数の2桁の
うち下位の桁に対応する通常の2進数で表現される中間
的な部分積(以下中間部分積と呼ぶ)を、その桁が負の
とき被乗数の各桁の符号反転を行なうことにより生成
し、その桁が正のときには被乗数の各桁をそのまま用い
ることにより生成し上位の桁に対応する中間部分積を、
最上位桁の符号が前記下位桁に対応する中間部分積の最
上位桁の符号と異なるように、各桁の符号反転や2の補
数表現等を用いて生成し、これらの中間部分積を加算し
て符号付きディジット数表現の部分積を生成するように
回路を構成している。また、リコードされた乗数の上位
桁に対応する中間部分積を生成するうえで生じる補正項
を、さらに上位のリコードされた乗数の桁から生成され
る部分積の一部として、後段の加算を行なうように構成
している。
作用 上記構成により、符号付きディジット数にリコードされ
た乗数の2桁から生成される2つの中間部分積は互いに
符号が異なるため、これらの加算では全く桁上げが生じ
ず、非常に簡単な回路構成にできる。さらに、部分積を
生成するうえで生じる補正項を、より上位の部分積の一
部として扱うようにしているため、部分積の生成が容易
になる。
実施例 以下に本発明の一実施例を図面により説明する。
第1図は、本発明の一実施例を適用した8×8ビットの
乗算器の構成図である。
乗数リコード回路101は、2ビットBoothの方法のに
より乗数を4進符号付ディジット数(4進SD数)にリ
コードする回路である。
部分積生成回路102および103は、乗数リコード回
路1で生成された4進SD数2桁と被乗数から冗長2進
数(すなわち、2進SD数)で部分積を生成する回路で
ある。冗長2進加算回路104は、部分積生成回路10
2および103で生成された部分積を冗長2進体系で加
算を行う回路であり、部分積の数が多い場合には、この
回路をトリー状にし加算木を構成する。冗長2進/2進
変換回路105は、加算木の最終段で求まった積の冗長
2進数を2進数に変換する回路であり、桁上げ先見加算
器等を用いて容易に構成できる。
次に、第1図を構成する回路について説明する。
まず、乗数リコード回路について説明する。
一般にnビットの乗数Yは2の補数表現で と表わせる。ここで、yn-1は符号ビットであり、yn-2
…y0は各ビットの値を示す。簡単のためnを偶数とすれ
ば、 と表わせる。ただし、y-1=0である。
ここで、 bi=-2y2i+1+y2i+y2i-1……(3) とおけば、 と表わすことができる。
乗数リコード回路101では、(3)式を用いて各桁が22i
の重みをもち、各桁Riが{−2,−1,0,1,2}
のいずれかの値をもつ4進符号付きディジット数(4進
SD数)にリコードする。第1表にリコードされた4進
SD数を3つの2値信号で表わす場合の一例を示す。
第1表に示すような2値信号化を行なうと、リコードさ
れた乗数の第i桁Riは、次の理論式で表わすことがで
きる。
ris=y2i+1……(5) 第2図は、第1図の乗数リコード回路101を構成する
回路の一例であり、式(5),(6),(7)より構成したもの
である。第2図において、y2i+1,y2iおよびy2i-1はそ
れぞれ乗数Yの2i+1,2iおよび2i-1桁の2値信号であ
り、これらの信号から、インバータ回路201、NAN
D回路202、EX−OR(排他的OR)回路203お
よびOR−NAND複合ゲート204により、乗数をリ
コードした信号、ris,ria1およびria2を生成してい
る。
次に、部分積生成回路102および103について説明
する。部分積生成回路102および103は、4進SD
数にリコードされた乗数の2桁と被乗数から冗長2進数
の部分積を生成する回路である。この場合、4進SD数
にリコードされた乗数の2桁のうち、下位桁RLに対す
る中間部分積と上位桁RHに対する中間部分積に分け、
これら2つの中間部分積を加算したものとして1つの冗
長2進数の部分積を生成すると考えることができる。
中間部分積は、被乗数をXとすれば、リコード値RL
Hの値により、−2X,−X,0,X,2Xのいずれ
かになる。ただし、重み2iは省略している。この場
合、2Xは被乗数の2倍であり、被乗数を1桁左にシフ
トすることにより実現できる。また、正負の符号反転
は、被乗数の各桁の正負の符号反転を行うことにより実
現するか、あるいは、2の補数表現により実現すること
ができる。この場合、リコードされた乗数2桁のうち下
位桁RLに対する中間部分積については、その桁が負の
とき被乗数の各桁の符号反転を行なうことにより生成
し、その桁が正のときには被乗数の各桁をそのまま用い
ることにより生成し、上位桁RHに対する中間部分積に
ついては、リコードされた乗数の下位桁RLに対する中
間部分積の最上位桁と、リコードされた乗数の上位桁R
Hに対する中間部分積の最上位桁の正負符号が反転する
ように、各桁の正負の符号反転、および2の補数表現を
組み合わせて実現する。
このように中間部分積を生成した場合、リコードされた
乗数の上位桁RHに対する中間部分積の生成を行なう場
合に、2の補数表現のために、+1あるいは+ (〜は、符号反転を示す。)の補正が必要になるが、こ
の補正項の足し込みは、部分積の生成の冗長2進数同士
の加算を段階で行えばよい。この場合、補正項の操作を
容易にするため、部分積生成の段階で、最下位1桁だけ
計算し、下位から2桁目に補正を行なうようにする。こ
のようにすることにより、部分積の最下位桁と、1つお
よび2つ上位の乗数のリコード値から生成される部分積
の最下位桁と4桁ずれているため、この補正項を1つ上
位の部分積の最下位桁のすぐ下にもってくることがで
き、その上位部分積のうちの一桁として扱うことができ
る。第2表にリコードされた乗数RL,RHに対する中間
部分積の生成を、補正項も含めて示す。
ここで、 は、 の符号の反転、 はxiの論理反転を示している。このように中間部分積
の生成を行なうことにより、中間部分積同士の加算が非
常に容易になる。これは、RLによる中間部分積とRH
による中間部分積のそれぞれ対応する同じ重みを持つ桁
の符号が逆になるように中間部分積を生成するため、こ
れら2つの中間部分積を加算する場合に桁上がりが全く
生じることなしに冗長2進数の部分積を生成することが
できるためである。すなわち、ある同じ重みを持つ桁の
値の組み合わせは、{1,−0}、{1,−1}、
{0,−0}、{0,−1}、{−0,1}{−0,
0}、{−1,1}および{−1,0}の8通りであ
り、これらを加算すれば、{1,0,−1}のいずれか
の値、すなわち中間部分積を加算したものの各桁が冗長
2進数で表現できる値になり、桁上がりを全く生じな
い。したがって、その桁だけの処理で加算ができるため
桁上がりが生じないため、簡単な回路で冗長2進数の部
分積を生成することができる。例えば、冗長2進数の1
桁aiを2つの2値信号ais,aiaで第3表に示すように
符号化するとすれば、 部分積の各桁は、RLに対する中間部分積と、RHに対す
る中間部分積を左に2桁シフトしたものを加えることに
より生成され、 で表わされる。ここで、rLs,rLa1,rLa2はRLの2値化
信号であり、rHs,rHa1,rHa2はRHの2値信号である。
また、補正項を、CsおよびCで表わせば、 で表わされる。
第3図は、第1図の部分積生成回路を構成する回路のう
ち、第n−1桁から第3桁までの部分積を生成する回路
の一例であり、式(14)および(15)から構成したものであ
る。第3図において301,302は、AND−NOR
複合ゲート、303および305は、EX−NOR(排
他的NOR)回路であり、306はNOR回路である。
ここで、中間部分積に対応する信号は、リコードされた
乗数の下位に対して、EX−NOR303から出力さ
れ、上位に対しては、EX−NOR304から出力さ
れ、この2つの信号の加算を行い冗長2進数表現で部分
積がNOR回路306およびEX−NOR回路305か
ら出力される。
最後に加算木を構成する冗長2進加算回路104につい
て説明する。
冗長2進加算における桁上げの伝搬が1桁となる加算規
則の一例を第4表に示す。
第4表からわかるように、加算を行なう桁の桁上げおよ
び中間和を計算するために1つ下位の桁の値が、両方と
も非負であるか、あるいは、少なくとも一方が負である
かを調べなければならない。この値の組合せを表わす変
数として、Piを導入し、両方とも非負の時Piの値を1
とし、それ以外の時Piの値を0とする。
また、桁上げCiおよび中間和Siが{1,0,−1}の
3値をとるため、このまま回路を構成すると桁上げCi
および中間和Siに対して、それぞれ2つの2値信号が
必要となる。このため、2つの変数を導入する。すなわ
ち、次に示す算桁式で表される桁上げの情報をもつ2値
信号Bi、および中間和の情報をもつ2値信号Riを導入
する。
i=Ci+▲i▼……(25) Ri=Si+Pi-1……(26) 加算の結果Ziは、中間和Siと1つ下の桁から桁上げC
i-1との和で計算されるため、 Zi=Si+Ci-1 =Ri−Pi-1+Bi-1−▲i-1▼ =Ri+Bi-1−1……(27) となり、2つの2値信号RiおよびBi-1により求まる。
以上導入した変数Pi・BiおよびRiは、被加数xiおよ
び加数yiを第3表にしたがって符号化し、それぞれ
xis,xiaおよびyis,yiaとすれば、 の論理式で表わされ、さらに加算結果Zi、すなわちZ
is、Ziaは、 の論理式で表わされる。
第4図は、第1図の冗長2進加算回路104の一桁分の
加算回路の一例を示す回路図であり、式(28),(29),(3
0),(31)および(32)により構成した論理図である。第4
図において、401は、NOR回路、402,407はN
AND回路、403はEX−OR(排他的OR)回路、
404はAND−NOR回路、405,406はEX−
NOR(排他的NOR)回路、408はインバータ回路
である。図において、xis,xiaは、被加数、yis,yiaは加
数、zis,ziaは被加数xiと加数yiの和である。また、
iは被加数xiと加数yiの値の組合わせを示す信号で
あり、1つ上の桁の加算器に入力される、Ri-1は1つ
下の被加数xx-1と加数yi-1の値の組合せを示す信号で
ある。さらに、▲i▼は桁上げCiの情報を含んだ信号
であり、1つ上の桁の加算器に入力され、 は1つ下の桁の桁上げCi-1の情報を含んだ信号であ
る。▲i▼は中間和Siの信号を含んだ信号である。
したがって、第1図冗長2進加算回路104は、第4図
の冗長2進加算器を必要な桁数分だけ並べて接続するこ
とにより容易に実現できる。
第1図の8×8ビットの乗算器の場合には、部分積が2
つであるから、冗長2進加算回路1つだけであるが、乗
数の桁数が増えると部分積の数も増加する。このような
場合には、複数の冗長2進加算器を用いて部分積を2つ
ずつ木状に加算を行なうように構成することができる。
以上の第2図から第4図に示した回路において、図中の
信号の論理反転、あるいはインバータとの組み合せによ
り、EX−NOR回路にEX−OR回路に換えたり、N
OR回路をNAND回路に換える、あるいはその逆を行
うことも可能であり、複合ゲートをNAND回路、NO
R回路あるいはインバータ回路を用いて構成することも
可能である。
尚、本実施例ではCMOS回路を意識した2値論理で構
成した場合のものであるが、他の技術、例えば、NMO
S,ECL,TTL、あるいはIILや、多値論理を用
いても容易に実現できる。
さらに、本実施例では、2ビットのBoothの方法により
乗数をリコードし、内部に冗長2進数表現を用いて演算
を行なう乗算器について述べたが、多ビットのBoothの
方法や、あるいは高基数の符号付きディジット数でも同
じように乗算器を構成できる。
発明の効果 本発明によれば、簡単な回路構成により、冗長2進加算
器の個数を大幅に削減できるために、乗算器の素子数を
大幅に削減できるため、乗算器のLSI化が容易かつ経
済的になり、さらに高速化が可能となる等の効果があ
る。
【図面の簡単な説明】
第1図は本発明の一実施例を適用した乗算器の構成図、
第2図は乗数のリコード回路を構成する回路図、第3図
は部分積生成回路を構成する回路図、第4図は冗長2進
加算回路を構成する冗長2進加算器の回路図である。 101……乗数リコード回路、102,103……部分
積生成回路、104……冗長2進加算回路、201,4
08……インバータ回路、202,402,407……
NAND回路、306,401……NOR回路、204
……OR−NAND回路、301,302,404……
AND−NOR回路、203,403……EX−OR回
路、303,304,305,405,406……EX
−NOR回路。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】内部演算に各桁が正,0,負のいずれかの
    値を有する符号付きディジット数を用いる乗算処理装置
    であって、符号付きディジット数にリコードされた乗数
    の2桁と被乗数とから符号付きディジット数表現の1つ
    の部分積を生成する回路を有してなることを特徴とする
    乗算処理装置。
  2. 【請求項2】1つの符号付きディジット数表現の部分積
    を生成する2つの中間部分積を、それぞれ対応する同じ
    重みを持つ桁の正負の符号が逆になるように生成し、こ
    れら2つの中間部分積を加算して符号付きディジット数
    表現の部分積を生成することを特徴とする特許請求の範
    囲第1項記載の乗算処理装置。
  3. 【請求項3】1つの部分積を生成する符号付きディジッ
    ト数にリコードされた乗数の2桁のうち、下位の第1の
    桁に対応する第1の中間部分積を、前記第1の桁が負の
    とき被乗数の各桁の符号反転により生成し、前記リコー
    ドされた乗数の2桁のうち、上位の第2の桁に対応する
    第2の中間部分積を、前記リコードされた乗数の2桁の
    符号が異なり、かつ前記第2の桁が負のとき、被乗数の
    各桁の符号反転により生成し、前記リコードされた乗数
    の2桁の符号が同じ場合に、被乗数の2の補数表現によ
    り符号を反転し、前記第2の桁が正のとき、さらに各桁
    の符号を反転して生成し、前記第1の中間部分積と第2
    の中間部分積を加算することにより、1つの符号付きデ
    ィジット数表現の部分積を生成するようにしたことを特
    徴とする特許請求の範囲第1項記載の乗算処理装置。
  4. 【請求項4】1つの部分積を生成する符号付きディジッ
    ト数にリコードされた乗数の2桁のリコード値の符号が
    同じ場合、2の補数表現により生成される補正項を、符
    号付きディジット数にリコードされた乗数のうち、前記
    リコードされた乗数の2桁よりも上位のリコードされた
    桁から生成される部分積の下位桁の一部として後段の加
    算を行なうようにしたことを特徴とする特許請求の範囲
    第1項記載の乗算処理装置。
JP62014517A 1986-06-27 1987-01-23 乗算処理装置 Expired - Lifetime JPH0610787B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP62014517A JPH0610787B2 (ja) 1987-01-23 1987-01-23 乗算処理装置
US07/074,971 US4864528A (en) 1986-07-18 1987-07-17 Arithmetic processor and multiplier using redundant signed digit arithmetic
US07/086,967 US4866657A (en) 1986-07-18 1987-08-18 Adder circuitry utilizing redundant signed digit operands
US03/239,243 US5031136A (en) 1986-06-27 1990-05-07 Signed-digit arithmetic processing units with binary operands
US07/599,275 US5153847A (en) 1986-06-27 1990-10-16 Arithmetic processor using signed digit representation of internal operands

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62014517A JPH0610787B2 (ja) 1987-01-23 1987-01-23 乗算処理装置

Publications (2)

Publication Number Publication Date
JPS63182739A JPS63182739A (ja) 1988-07-28
JPH0610787B2 true JPH0610787B2 (ja) 1994-02-09

Family

ID=11863283

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62014517A Expired - Lifetime JPH0610787B2 (ja) 1986-06-27 1987-01-23 乗算処理装置

Country Status (1)

Country Link
JP (1) JPH0610787B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2606326B2 (ja) * 1988-10-25 1997-04-30 日本電気株式会社 乗算器
JP3153370B2 (ja) * 1993-01-14 2001-04-09 三菱電機株式会社 乗算装置
US8566385B2 (en) 2009-12-02 2013-10-22 International Business Machines Corporation Decimal floating point multiplier and design structure

Also Published As

Publication number Publication date
JPS63182739A (ja) 1988-07-28

Similar Documents

Publication Publication Date Title
US4168530A (en) Multiplication circuit using column compression
US4623982A (en) Conditional carry techniques for digital processors
US4864528A (en) Arithmetic processor and multiplier using redundant signed digit arithmetic
US4866656A (en) High-speed binary and decimal arithmetic logic unit
Huang et al. A high-performance CMOS redundant binary multiplication-and-accumulation (MAC) unit
US4878192A (en) Arithmetic processor and divider using redundant signed digit arithmetic
JPS62280930A (ja) デイジタル乗算器
US4805131A (en) BCD adder circuit
JP2970231B2 (ja) 並列乗算回路
US3842250A (en) Circuit for implementing rounding in add/subtract logic networks
JPH0552530B2 (ja)
US4873660A (en) Arithmetic processor using redundant signed digit arithmetic
US6546411B1 (en) High-speed radix 100 parallel adder
JPH0610787B2 (ja) 乗算処理装置
CN1232561A (zh) 数字加法器电路
US5206825A (en) Arithmetic processor using signed-digit representation of external operands
US5153847A (en) Arithmetic processor using signed digit representation of internal operands
US4935892A (en) Divider and arithmetic processing units using signed digit operands
JPH0464091B2 (ja)
GB2130774A (en) Circuits for operating on N-digit operands
JP2682142B2 (ja) 乗算装置
JPH0582609B2 (ja)
JPH0528407B2 (ja)
JPS6371728A (ja) 演算処理装置および演算処理方法
JPH0652500B2 (ja) 演算処理装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term