JP2620660B2 - 乗算器 - Google Patents

乗算器

Info

Publication number
JP2620660B2
JP2620660B2 JP3129703A JP12970391A JP2620660B2 JP 2620660 B2 JP2620660 B2 JP 2620660B2 JP 3129703 A JP3129703 A JP 3129703A JP 12970391 A JP12970391 A JP 12970391A JP 2620660 B2 JP2620660 B2 JP 2620660B2
Authority
JP
Japan
Prior art keywords
carry
full adder
stage
input
multiplier
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
Application number
JP3129703A
Other languages
English (en)
Other versions
JPH04354020A (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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric 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 Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP3129703A priority Critical patent/JP2620660B2/ja
Publication of JPH04354020A publication Critical patent/JPH04354020A/ja
Application granted granted Critical
Publication of JP2620660B2 publication Critical patent/JP2620660B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、隣接する桁同士および
隣接する加算結果同士の加算を繰り返しながらキャリー
を桁方向に伝搬するキャリールックアヘッド付きフルア
ダーを有する乗算器に関する。
【0002】
【従来の技術】従来より、各種機器において信号のデジ
タル処理が利用されており、このデジタル処理において
はデジタルデータ同士の乗算が行われる場合が多い。例
えば、デジタルフィルタにおいては、乗算および加算を
繰り返し行うため、乗算器が必要となる。そこで、デジ
タル処理を行う高速演算器などにおいて、乗算器を内蔵
し、ここにおいて乗算が行われる。
【0003】ここで、例えば8ビットの2つの数Mおよ
びLの乗算を行う場合、被乗数Mと乗数Lは、次のよう
に表される。
【0004】 M=−a7 27 +a6 26 +a5 25 +a4 24 +a3 23 +a2 22 +a1 21 +a0 20 L=−b7 27 +b6 26 +b5 25 +b4 24 +b3 23 +b2 22 +b1 21 +b0 20 (ここで、an 、bn =0または1である。) そこで、M×Lの乗算は、 ML=M(−b7 )27 +Mb6 26 +Mb5 25 +Mb4 24 b3 23 b2 22 b1 21 +Mb0 20 という被乗数Mに対するbn (0または1)の乗算と、
その乗算結果の加算となる。そして、2のべき乗の係数
はそのまま2進数の各ビットに対応しているため、0ま
たはMを桁をずらしながら加算すればよいことになる。
そこで、通常の場合、被乗数Mの各ビットが入力される
8つの加算器(フルアダー)を8段設け、その出力を順
次ずらせて加算していた。また、この加算によりキャリ
ーが生じるため、そのキャリーを次段のもう1桁上のフ
ルアダーに入力し、このキャリ−を処理していた。な
お、このようなキャリーを次段のフルアダーに入力し、
最終段においてのみキャリーを桁方向(横方向)に伝搬
するキャリーセーブ方式では、各段においてキャリーを
横方向に伝搬しないため、キャリーの伝搬時間を短縮す
ることができる。
【0005】そして、この最終段のアダーとしては、隣
接する桁同士および隣接する加算結果同士の加算を繰り
返しながらキャリーを桁方向に伝搬するキャリールック
アヘッド付きフルアダーが好適であり、これについて図
5に基づいて説明する。
【0006】キャリールックアヘッド付きフルアダーC
LAにおいては、第1段として各桁毎にキャリーと前段
のフルアダーFAラインからの出力を受け入れ、加算結
果をおよびキャリーを出力する。そして、隣接する加算
結果同士(キャリーを含む)の加算を行う。このような
加算を順次行うことによって、トーナメント方式のよう
に下位側から演算結果が順次求まっていく。
【0007】すなわち、加算部Aにおいては、0,0場
合にのみ0(および反転出力1)を出力し、その他の場
合に1(および反転0)を出力する。一方、キャリーが
あるかないかはナンドゲートおよびノアゲートからなる
判定部Bにおいて判定する。判定部Bには2つの信号を
入力しておき、入力信号の状態に応じて1,1:1,
0:0,1:0,0の信号を出力する。そして、このよ
うな加算結果およびキャリーのあるなしの結果を隣接す
るもの同士順次加算することによって最終段における桁
方向のキャーリー伝搬を伴う加算を行い、最終的な乗算
結果を得ることができる。
【0008】
【発明が解決しようとする課題】このように、トーナメ
ント方式のキャリールックアヘッド付きフルアダーにお
いては、隣接するもの同士の加算を繰り返して行い、演
算結果を下位側から順次求めていく。このため、X=l
og2 n(nはビット数)で決定される段数X(Xは切
り上げにより決定される整数)でその演算が終了する。
このため、キャリーをそのまま桁方向に伝達する場合に
比べキャリー伝達の時間を減少することができる。とこ
ろが、例えば24ビット×16ビットの乗算の場合、n
=40となるため、段数X=6段となってしまう。そこ
で、このような2のべき乗の数に対し端数がでた場合に
は、その端数に対し、1段を必要とし、キャリー伝達が
遅いという問題点があった。
【0009】本発明は、乗算結果のビット数nが2のべ
き乗で表される数でなく端数がある場合に、キャリーの
伝達を改善できる乗算器を提供することを目的とする。
【0010】
【課題を解決するための手段】本発明に係る乗算器は、
行列配置されたフルアダーを含み最終段のキャリールッ
クアヘッド付きフルアダーにおいて隣接する桁同士およ
び隣接する加算結果同士の加算を繰り返しながらキャリ
ーを桁方向に伝搬するキャリーセーブ方式の乗算器であ
って、キャリールックアヘッド付きフルアダーは2のN
乗桁分の加算を行う上位側とこの上位側からはみ出た端
数桁分の加算を行う下位側に分割されており下位側の加
算結果のキャリーを上位側に入力することを特徴とす
る。また、前記行列配置されたフルアダーは前後段に分
割され、前段側で行われた計算結果及びキャリーをラッ
チしてこれらをそれぞれ後段側及び前記キャリールック
アヘッド付きフルアダーの下位側に出力する第一パイプ
ラッチと、前段側で行われた乗算に投入された乗数をラ
ッチしてこれを後段側に出力する第二パイプラッチが設
けられている。前記後段側の計算結果は前記キャリール
ックアヘッド付きフルアダーの上位側に出力される。
【0011】
【作用】このように、ある行までの計算結果がパイプラ
ッチに記憶されるため、計算結果が記憶された時点で、
次の乗算のための乗数及び被乗数の投入が可能となる。
この結果、連続する乗算がパイプライン処理される。
【0012】
【実施例】以下、本発明の乗算器の実施例について、図
面に基づいて説明する。
【0013】全体構成の説明 図1は、実施例の構成図であり、24ビットの被乗数M
に16ビットの乗数Lを乗算するものである。図におい
て、フルアダーFAは入力される2つの信号およびキャ
リーの和を取り、加算結果およびキャリーを出力するも
のである。そこで、基本的にはフルアダーFAおよび部
分積生成回路PMの数は被乗数Mのビット数24に対応
して1段が24個である。一方、乗数は16ビットであ
るが、後述するブースのアルゴリズムを利用するため、
段数は1/2の8段でよい。そこで、フルアダーFAが
7段(24×7=168個)、部分積生成回路PMが8
段(24×8=192個)設けられている。そして、1
段目のフルアダーFA1は1段目および2段目の部分積
生成回路PM1,PM2からの信号を受け入れ、加算結
果を次段のフルアダーFA2に供給する。また、2段目
のフルアダーFA2にはフルアダーFA1の加算結果と
3段目の部分積生成回路PM3からの信号が供給されて
おり、これらの加算をそれぞれ行う。そして、1段目の
フルアダーFA1と2段目のフルアダーFA2はその桁
が2桁ずらせて配置されており、2桁ずれた加算結果が
2段目に入力される。そして、このような桁をずらせて
の加算が乗数の桁数に応じて繰り返される。なお、各フ
ルアダーFAからのキャリーは次段の1桁上位の桁に入
力される。
【0014】また、図2に示すように、被乗数Mの入力
経路には被乗数用の入力ラッチL1が設けられ、乗数L
の入力経路には乗数用の入力ラッチL2が設けられてい
る。そして、被乗数用のラッチL1からの被乗数Mが1
段目〜8段目の部分積生成回路PM〜PM8に供給され
る。一方、乗数入力ラッチL2からの出力はブースデコ
ーダBDに供給されており、ここにおいて後述のような
信号を出力する。
【0015】さらに、3段目のフルアダーFA3の出力
の4段目のフルアダーFA4の経路にパイプレジスタP
L1が設けられている。このパイプレジスタPL1は、
3段目の出力を記憶するものであり、このパイプレジス
タPL1の前段と後段とで演算を行う乗数および被乗数
を異なるものとし、演算のパイプライン処理による効率
化を図るためのものである。すなわち、ある乗算の処理
が3段目まで進んだとき、1段目には次の乗算のための
被乗数を投入することができ、パイプレジスタPL1の
前段では次の乗算を開始しつつ、後段ではもとの乗算の
後半を行うことができる。このためにブースデコーダB
Dの下方側には、パイプラッチPL2が設けられて
る。パイプラッチPL2は、新たな乗数が投入されたと
きであっても、もとの乗算が完了するまでは、ラッチさ
れているもとの乗数を引き続き乗算器へ投入する。
【0016】そして、最終段のフルアダーの加算結果を
受け入れるキャリールックアヘッド付きフルアダーCL
Aは、乗算結果の上位32ビット分の上位側CLA1
と、下位8ビットを受け入れる下位側CLA2に分割さ
れており、下位側のCLA2からのキャリーが上位側C
LA1に入力される。ここで、パイプレジスタPL1か
ら下位側CLA2への入力経路には、何等回路が挿入さ
れておらず、パイプレジスタPL1の記憶内容がそのま
ま入力されており、このため、下位側CLA2において
は、その内部における処理を早期に開始できる。従っ
て、上位側CLA1において加算を開始するときまでに
は、下位側CLA1からのキャリーがすでに入力されて
いる。そこで、上位側CLA1における処理段数log
2 32=5段の演算を行う時間で全体の出力を得ること
ができる。
【0017】このように本例によれば、乗算結果のビッ
ト数が40ビットであるにもかかわらず、演算時間を3
2ビットの場合と同一とすることができる。
【0018】ブースのアルゴリズムの説明 次に、本例においては、ブースのアルゴリズムを利用し
ている。そこで、このブースのアルゴリズムについて説
明する。
【0019】これは、次に示すように、予め部分積を計
算しておくことにより、加算の段数を減少するものであ
る。
【0020】すなわち、乗数Lを変形すると、 L=(−2b7 +b6 +b5 )26 +(−2b5 +b4
+b3 )24 +(−2b3 +b2 +b1 )22 +(−2
b1 +b0 +0)20 となり、M×Lという乗算は次のように変形することが
できる。
【0021】 ML=M(−2b7 +b6 +b5 )26 +M(−2b5
+b4 +b3 )24 +M(−2b3 +b2 +b1 )22
+M(−2b1 +b0 +0)20 従って、変形を行わなかった場合には、上述のように被
乗数Mに対し8段の加算となるものが、4段の乗算で済
むことになり、演算時間を短縮できることになる(本実
施例の場合には16段→8段)。
【0022】そこで、本実施例は、24ビットの被乗数
Mに対し16ビットの乗数Lを乗算するものであり、8
段の部分積生成回路PM、7段のフルアダーFAおよび
最終段としてキャリールックアヘッド付きフルアダーC
LAを有している。そして、各段毎に部分積生成回路P
Mにおいて部分積を計算し、これをフルアダーFAにお
いて順次加算していく。すなわち、第1段では、(−2
b1 +b0 +0)の結果に応じてMの値を操作して部分
積M(−2b1 +b0 +0)を求め、20 の項の値を求
める。そして、この結果と次の22 の項の部分積M(−
2b3 +b2 +b1 )が第1段のフルアダーFA1に入
力され、ここで下位2つの項の加算が行われる。ここ
で、部分積の入力位置は上述の式から明らかなように桁
が2つずれるため(20 →22 )、2ビットずつずらし
てある。一方、フルアダーFA1におけるキャリーは次
の桁への桁上げ信号であるため、次段の1桁上に入力し
ている。
【0023】ここで、部分積は、これを求める際の(−
2b3 +b2 +b1 )の値によって、被乗数Mを次のよ
うに操作することによって達成できる。
【0024】すなわち、 −2 →1ビットシフトし減算 −1 →減算 0 →0 1 →加算 2 →1ビットシフトし加算 のように、Mの値のシフトと、次に入力されるフルアダ
ーにおける演算が加算となるか減算となるかによって、
部分積を求め、次段のフルアダーFAにおいて、加算を
行うことによって、ブースのアルゴリズムを利用した乗
算が行うことができる。
【0025】一方、デジタルフィルタのようにマイナス
の数も取り扱う場合には、数をすべて2の補数で表すの
が一般的である。そこで、本例においても数をすべて2
の補数で表している。そして、この2の補数で表される
数の場合には、その数の補数はデータをすべて反転し、
1を加算することによって求められる。そこで、減算の
場合には、各段の最下段フルアダーに1を加算すること
が必要となる。このため、補数用キャリーを最下段フル
アダーに入力することが必要となる。ところが、補数用
のキャリーの入力は最終的な乗算結果に対し所定の桁に
入力されていればよい。そこで、この例では、各段の最
下桁のフルアダーに補数用のキャリーを入力するのに代
え、1段目の対応するフルアダーFA1に補数キャリー
を入力している。
【0026】フルアダーの構成 ここで、フルアダーFAの構成例について、図3に基づ
いて説明する。フルアダーFAは3つの入力X,Y,C
Iおよび2つの出力S,COを有しており、加算したい
2つのデータX,Yと前段からのキャリーCIが入力さ
れ、加算結果SおよびキャリーCOを出力する。
【0027】そして、フルアダーFAは具体的には図3
(B)に示すような構成を有しており、インバータおよ
びCMOSからなっている。従って、入力X,Y,C
I,出力S,COとして、次のように動作する。
【0028】0,0,0→0,0;0,0,1→1,
0;0,1,1→0,1;1,1,1→1,1部分積生成回路の構成 一方、部分積生成回路PMは図4に示す構成を有してい
る。すなわち、乗数Lより,N,P,S,T,Zの4つ
の信号を出力するブースデコーダBD(図2)からの信
号および3つの入力SDI,X,XBを入力し、SD
O,PPを出力する。ここで、上述のように、部分積生
成回路PMは入力されるLの値から(−2bn+2 +bn+
1 +bn )を演算し、 −2 →1ビットシフトし減算 −1 →減算 0 →0 1 →加算 2 →1ビットシフトし加算 の動作が行われるように、N,P,S,T,Zの4つの
信号を出力する。そして、Nは正(ネガティブ)、Pは
負(ポジティブ)、Sはシフト、Tはスルー、Zはゼロ
を意味している。このため、ブースデコーダは上述の係
数の演算結果に応じて、 −2 →N=1,P=0,S=1,T=0,Z=0 −1 →N=1,P=0,S=0,T=1,Z=0 0 →N=0,P=0,S=0,T=0,Z=1 1 →N=0,P=1,S=0,T=1,Z=0 2 →N=0,P=1,S=1,T=0,Z=0 の信号を出力する。
【0029】部分積生成回路は、具体的には、図4
(B)の構成を有しており、CMOSおよびノアゲート
からなっている。従って、次のように動作する。
【0030】−2→XBの値をSDDに出力し、SDI
の値をPPに出力する。
【0031】−1→XBの値をPPに出力する。
【0032】0→PPに0を出力する。
【0033】1→Xの値をPPに出力する。
【0034】2→Xの値をSDDに出力し、SDIの値
をPPに出力する。
【0035】ここで、XBは、Xを反転した値であり、
Xをインバータを介し出力することにより容易に得られ
る。そして、2補数で表された数同士の減算を行うため
には、一方の数を反転して加算すると共に1を加算しな
ければならない。そこで、この減算を行う数のLSBに
対応するフルアダーFAに対し、補数用キャリーとして
1を入力することになる。また、シフトは、隣接する下
位側の部分積生成回路のSDOからの出力をPPに出力
することによって達成している。このようにして、部分
積を求め、これをフルアダーFAにおいて順次加算する
ことによって、ブースのアルゴリズムを利用した乗算を
行うことができる。
【0036】具体的接続構成例 次に、図5に、具体的な接続例を示す。このように各部
分積生成回路PMは各段毎にブースデコーダからN,
P,S,T,Zが入力され、被乗数Mから各桁(ビッ
ト)ごとのX(=an )、XB(=an の反転)が入力
されており、下位側のSDOが上位側のSDIに接続さ
れ、PPが対応するフルアダーFAのXに接続されてい
る。フルアダーFAは、Yに下位側のフルアダーFAの
出力Sが接続され、キャリー入力端CIには1ビット下
位側前段のFAのキャリー出力端COが接続されてい
る。そこで、上述の部分積生成回路の動作が達成され
る。なお、この図5においては、効率的な配置を達成す
るために図1および図2の各段を横にずらし全体として
長方形配列している。また、この図においては被乗数M
は下方から入力され、上方に向けて演算が進むように記
載されている。
【0037】
【発明の効果】以上説明したように、本発明に係る乗算
器によれば、パイプラッチを設けているため、連続する
乗算をパイプライン処理することによって演算の高速化
を図ることができる。また本発明では、キャリールック
アヘッド付きフルアダーを2のべき乗の数の上位側と、
端数の下位側に分割している。従って、下位側の演算を
上位側の演算を介するときまでに終了することができ、
上位側の演算時間だけで、全体の演算を終了することが
できる。そこで、演算時間を短縮することが可能とな
る。
【図面の簡単な説明】
【図1】実施例の全体構成図。
【図2】実施例の全体構成を示すブロック図。
【図3】フルアダーの構成図。
【図4】部分積生成回路の構成図。
【図5】各部の接続関係を示す構成図。
【図6】キャリールックアヘッド付きフルアダーの構成
図。
【符号の説明】
FA フルアダー PM 部分積生成回路 CLA キャリールックアヘッド付きフルアダー

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 行列配置されたフルアダーを含み最終段
    においてキャリールックアヘッド付きフルアダーにおい
    て隣接する桁同士および隣接する加算結果同士の加算を
    繰り返しながらキャリーを桁方向に伝搬するキャリーセ
    ーブ方式の乗算器において、 前記キャリールックアヘッド付きフルアダー2のN乗
    桁分の加算を行う上位側と、この上位側からはみ出た端
    数桁分の加算を行う下位側に分割して下位側の加算結果
    のキャリーを上位側に入力するとともに、 前記行列配置されたフルアダーを前後段に分割し、前段
    側で行われた計算結果及びキャリーをラッチしてこれら
    をそれぞれ後段側及び前記キャリールックアヘッド付き
    フルアダーの下位側に出力する第一パイプラッチと、前
    段側で行われた乗算に投入された乗数をラッチしてこれ
    を後段側に出力する第二パイプラッチを設け、 前記後段側の計算結果が前記キャリールックアヘッド付
    きフルアダーの上位側に出力されること を特徴とする乗
    算器。
JP3129703A 1991-05-31 1991-05-31 乗算器 Expired - Fee Related JP2620660B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3129703A JP2620660B2 (ja) 1991-05-31 1991-05-31 乗算器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3129703A JP2620660B2 (ja) 1991-05-31 1991-05-31 乗算器

Publications (2)

Publication Number Publication Date
JPH04354020A JPH04354020A (ja) 1992-12-08
JP2620660B2 true JP2620660B2 (ja) 1997-06-18

Family

ID=15016116

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3129703A Expired - Fee Related JP2620660B2 (ja) 1991-05-31 1991-05-31 乗算器

Country Status (1)

Country Link
JP (1) JP2620660B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01134527A (ja) * 1987-11-19 1989-05-26 Mitsubishi Electric Corp 乗算器
JPH0365723A (ja) * 1989-08-03 1991-03-20 Matsushita Electric Ind Co Ltd 並列乗算回路

Also Published As

Publication number Publication date
JPH04354020A (ja) 1992-12-08

Similar Documents

Publication Publication Date Title
US7395304B2 (en) Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic
US5053631A (en) Pipelined floating point processing unit
US5058048A (en) Normalizing pipelined floating point processing unit
US5267186A (en) Normalizing pipelined floating point processing unit
US5184318A (en) Rectangular array signed digit multiplier
EP0356153B1 (en) Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction
KR19980041776A (ko) 자리올림수 교정을 갖는 휴즈된 부동 소수점 곱셈 및 누산 장치
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
JPH0542013B2 (ja)
JPS635774B2 (ja)
JP3345894B2 (ja) 浮動小数点乗算器
EP0416308A2 (en) Rectangular array signed digit multiplier
JP3436994B2 (ja) シフト装置
US5867413A (en) Fast method of floating-point multiplication and accumulation
JPH08221256A (ja) 乗算器及び積和演算装置
JPH1195982A (ja) 演算処理回路及び演算処理方法並びに演算処理システム
JP2620660B2 (ja) 乗算器
US6684236B1 (en) System of and method for efficiently performing computations through extended booth encoding of the operands thereto
US6826588B2 (en) Method and apparatus for a fast comparison in redundant form arithmetic
JP2620659B2 (ja) 乗算器
JPS6222178A (ja) 2つの複素数の乗算のための乗算器
JPS6259828B2 (ja)
JP3457082B2 (ja) 演算装置
JP2629736B2 (ja) 積和演算回路
JP2931632B2 (ja) 桁移動装置及び浮動小数点演算装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees