JP2620659B2 - 乗算器 - Google Patents

乗算器

Info

Publication number
JP2620659B2
JP2620659B2 JP3127983A JP12798391A JP2620659B2 JP 2620659 B2 JP2620659 B2 JP 2620659B2 JP 3127983 A JP3127983 A JP 3127983A JP 12798391 A JP12798391 A JP 12798391A JP 2620659 B2 JP2620659 B2 JP 2620659B2
Authority
JP
Japan
Prior art keywords
carry
full adder
complement
input
adder
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
JP3127983A
Other languages
English (en)
Other versions
JPH04353924A (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 JP3127983A priority Critical patent/JP2620659B2/ja
Publication of JPH04353924A publication Critical patent/JPH04353924A/ja
Application granted granted Critical
Publication of JP2620659B2 publication Critical patent/JP2620659B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、2の補数同士の乗算を
行うキャリーセーブ方式の乗算器に関する。
【0002】
【従来の技術】従来より、各種機器において信号のデジ
タル処理が利用されており、このデジタル処理において
はデジタルデータ同士の乗算が行われる場合が多い。例
えば、デジタルフィルタにおいては、乗算および加算を
繰り返し行うため、乗算が必要となる。
【0003】ここで、2つの数MとLの乗算を行う場
合、被乗数Mと乗数Lは、両者とも8ビットの数とした
場合に、次のように表される。
【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】一方、デジタルフィルタなどにおいては、
乗算処理を繰り返し行うため、処理の高速化が必要であ
る。このため、乗算器の高速化の手法が各種提案されて
おり、例えばブースのアルゴリズムを利用するものが知
られている。これは、次に示すように、予め部分積を計
算しておくことにより、加算の段数を減少するものであ
る。
【0006】すなわち、乗数Lを変形すると、 L=(−2b7 +b6 +b5 )26 +(−2b5 +b4
+b3 )24 +(−2b3 +b2 +b1 )22 +(−2
b1 +b0 +0)20 となり、M×Lという乗算は次のように変形することが
できる。
【0007】ML=M(−2b7 +b6 +b5 )26
M(−2b5 +b4 +b3 )24 +M(−2b3 +b2
+b1 )22 +M(−2b1+b0 +0)20 従って、変形を行わなかった場合には、上述のように被
乗数Lに対し8段の加算となるものが、4段の乗算で済
むことになり、演算時間を短縮できることになる。
【0008】そこで、このブースのアルゴリズムを用い
た乗算器の例を図7に基づいて説明する。この例は、1
6ビットの被乗数Mに対し10ビットの乗数Lを乗算す
るものであり、5段の部分積演算回路PM、4段のフル
アダーFAおよび最終段としてキャリールックアヘッド
付きフルアダーCLAを有している。そして、各段毎に
部分積演算回路PMにおいて部分積を計算し、これをフ
ルアダーFAにおいて順次加算していく。すなわち、第
1段では、(−2b1 +b0 +0)の結果に応じてMの
値を操作して部分積M(−2b1 +b0 +0)を求め、
0 の項の値を求める。そして、この結果と次の22
項の部分積M(−2b3 +b2 +b1 )が第1段のフル
アダーFA1に入力され、ここで下位2つの項の加算が
行われる。ここで、部分積の入力位置は上述の式から明
らかなように桁が2つずれるため(20 →22 )、2ビ
ットずつシフトする。一方、フルアダーFA1における
キャリーは次の桁への桁上げ信号であるため、次段に1
ビットシフトして供給する。そして、このような演算を
乗数の桁数に対応した回数繰り返す。
【0009】ここで、部分積は、これを求める際の(−
2b3 +b2 +b1 )の値によって、被乗数Mを次のよ
うに操作することによって達成できる。
【0010】すなわち、 −2 →1ビットシフトし減算 −1 →減算 0 →0 1 →加算 2 →1ビットシフトし加算 のように、Mの値のシフトと、次に入力されるフルアダ
ーにおける演算が加算となるか減算となるかによって、
部分積を求めることができる。
【0011】
【発明が解決しようとする課題】このように、部分積を
求める際の演算には減算が含まれる。一方、デジタルフ
ィルタのようなマイナスのデータも取り扱う場合には、
データをすべて2の補数で表す場合が多い。そして、2
の補数で表される数の補数はデータをすべて反転し、1
を加算することによって求められる。このため、減算の
場合には、各段の最下段フルアダーに1を加算すること
が必要となり、これについての補数用のキャリーを各段
の最下段フルアダーに入力することが必要となる。
【0012】そこで、図7のように補数用のキャリーを
入力することとなるが、この場合には図に示すように7
つのフルアダーを経由して補数用キャリーがキャリール
ックアヘッド付きフルアダーCLAに伝搬することにな
る。このため、これがワーストパスとなり、演算時間が
このキャリーのワーストパスによって規制され、演算時
間が長くなってしまうという問題点があった。
【0013】本発明は、上記問題点を解決することを課
題としてなされたものであり、補数用キャリーの伝搬経
路が短縮された乗算器を得ることを目的とする。
【0014】
【課題を解決するための手段】請求項1に係る乗算器
は、減算時において各行の最下位フルアダー入力される
補数用キャリーの入力によって生じるキャリーを伝搬す
るために、このキャリーを各行から次行へと順次伝搬す
補数キャリー伝搬用アダーを前記行列配置されたフル
アダーの各行の下位ビット側に設けたことを特徴とす
る。
【0015】請求項2に係る乗算器は、減算時において
各行の最下位フルアダー入力されるべき補数用キャリー
、前記行列配置の1行目のフルアダーであって、前記
各行の最下位フルアダーの桁位置に対応する桁位置に存
在するフルアダーのキャリー入力端から入力することを
特徴とする。
【0016】
【作用】従って、補数キャリー伝搬用アダーを介し、補
数キャリーをキャリールックアヘッド付きフルアダーに
向けて伝搬することができ、各段においてキャリーを桁
(横)方向に伝搬することがない。より具体的には、キ
ャリーが補数キャリー伝搬用アダーを介して次の行の1
つ上位の桁へ伝搬される。その結果、キャリーの伝搬経
路を短縮することができ、演算時間を短縮することがで
きる。
【0017】さらに、補数キャリーを第1段目の所定の
フルアダーに入力することにより、フルアダーの数を減
少することができ、全体構成を簡略化することができ
る。このため、チップに収容した際の回路の面積を減少
することができ、集積度を上昇することができる。
【0018】
【実施例】以下、本発明の一実施例について、図面に基
づいて説明する。
【0019】第1実施例の構成 図1は、第1実施例の構成図であり、補数用キャリー伝
搬用フルアダーAFAを有している。すなわち、第1段
のフルアダー行の右端には補数用キャリー伝搬用フルア
ダーAFA1、第2段のフルアダー行の右端には補数用
キャリー伝搬用フルアダーAFA2,AFA3、第3段
のフルアダー行の左端には補数用キャリー伝搬用フルア
ダーAFA4,AFA5,AFA6が設けられている。
【0020】すなわち、第1段の右端フルアダーFAに
は、部分積演算回路PAの1桁目(上述のブースのアル
ゴリズムを利用した式における20 の項の演算結果にお
ける1桁目)の結果および補数用キャリーが2つの入力
端に入力され、出力端をそのまま乗算結果の1桁目Z0
の出力とする。そして、加算により生じたキャリーを補
数伝搬用フルアダーAFA1に入力する。なお、この1
段目右端のフルアダーFAにはキャリーの入力はないた
め、キャリー入力端はアースしてある。
【0021】2〜3段目においても補数用キャリーはそ
れぞれ前段からの加算結果を受け入れるフルアダーFA
の1桁目の出力を受け入れるフルアダーFAに入力す
る。また、キャリールックアヘッド付きフルアダーCL
Aに5桁目の補数用キャリーを入力するために、1行分
のフルアダーFA5を有している。
【0022】そこで、補数伝搬用フルアダーAFA2〜
6にはキャリーと前段からの加算結果のみが入力され
る。そして、ここで生じたキャリーは他のフルアダーF
Aと同様に1段下の1ビットシフトしたフルアダーFA
に入力すればよいため、各段においてキャリーを桁方向
に伝搬する必要がなくなり、キャリーのワーストパスが
4つのフルアダーを経由するものとなり、演算時間を短
縮することができる。
【0023】フルアダーの構成 ここで、フルアダーFAの構成例について、図2に基づ
いて説明する。フルアダーFAは3つの入力X,Y,C
Iおよび2つの出力S,COを有しており、加算したい
2つのデータX,Yと前段からのキャリーCIが入力さ
れ、加算結果SおよびキャリーCOを出力する。
【0024】そして、フルアダーFAは具体的には図2
(B)に示すような構成を有しており、インバータおよ
びCMOSからなっている。従って、入力X,Y,C
I,出力S,COとして、次のように動作する。
【0025】0,0,0→0,0;0,0,1→1,
0;0,1,1→0,1;1,1,1→1,1部分積演算回路の構成 一方、部分積演算回路PAは図3に示す構成を有してい
る。すなわち、乗数Lより,N,P,S,T,Zの4つ
の信号を出力するブースデコーダ(図示せず)からの信
号および3つの入力SDI,X,XBを入力し、SD
O,PPを出力する。ここで、上述のように、部分積演
算回路PAは入力される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 の信号を出力する。
【0026】部分積演算回路は、具体的には、図3
(B)の構成を有しており、CMOSおよびノアゲート
からなっている。従って、次のように動作する。
【0027】−2→XBの値をSDDに出力し、SDI
の値をPPに出力する。
【0028】−1→XBの値をPPに出力する。
【0029】0→PPに0を出力する。
【0030】1→Xの値をPPに出力する。
【0031】2→Xの値をSDDに出力し、SDIの値
をPPに出力する。
【0032】ここで、XBは、Xを反転した値であり、
Xをインバータを介し出力することにより容易に得られ
る。そして、2補数で表された数同士の減算を行うため
には、一方の数を反転して加算すると共に1を加算しな
ければならない。そこで、この減算を行う数のLSBに
対応するフルアダーFAに対し、補数用キャリーとして
1を入力することになる。また、シフトは、隣接する下
位側の部分積回路のSDOからの出力をPPに出力する
ことによって達成している。このようにして、部分積を
求め、これをフルアダーFAにおいて順次加算すること
によって、ブースのアルゴリズムを利用した乗算を行う
ことができる。
【0033】具体的接続構成例 次に、図4に、具体的な接続例を示す。このように各部
分積回路PAは各段毎にブースデコーダからN,P,
S,T,Zが入力され、被乗数Mから各桁(ビット)ご
とのX(=an )、XB(=an の反転)が入力されて
おり、下位側のSDOが上位側のSDIに接続され、P
Pが対応するフルアダーFAのXに接続されている。フ
ルアダーFAは、Yに下位側のフルアダーFAの出力S
が接続され、キャリー入力端CIには1ビット下位側前
段のFAのキャリー出力端COが接続されている。そこ
で、上述の部分積演算回路の動作が達成される。なお、
この図4においては、効率的な配置を達成するために図
1の各段を横にずらし全体として長方形配列している。
また、この図においては被乗数Mは下方から入力され、
上方に向けて演算が進むように記載されている。
【0034】キャリールックアヘッド付きフルアダーの
構成 次に、最終段のアダーであるキャリールックアヘッド付
きフルアダーCLAについて、図5に基づいて説明す
る。このように、第1段として各桁毎にキャリーと前段
のフルアダーFAからの出力を受け入れ、加算結果およ
びキャリーを出力する。そして、隣接する加算結果同士
(キャリーを含む)の加算を行う。このような加算を順
次行うことによって、トーナメント方式のように下位側
から演算結果が順次求まっていく。そこで、X=log
2 n(nはビット数)で決定される段数X(Xは切り上
げにより決定される整数)でその演算が終了する。
【0035】すなわち、加算部Aにおいては、0,0場
合にのみ0(および反転出力1)を出力し、その他の場
合に1(および反転0)を出力する。一方、キャリーが
あるかないかはナンドゲートおよびノアゲートからなる
判定部Bにおいて判定する。判定部Bには2つの信号を
入力しておき、入力信号の状態に応じて1,1:1,
0:0,1:0,0の信号を出力する。そして、このよ
うな加算結果およびキャリーのあるなしの結果を隣接す
るもの同士順次加算することによって最終段における桁
方向のキャーリー伝搬を伴う加算を行い、最終的な乗算
結果を得ることができる。
【0036】第2実施例の構成 図6に、第2実施例の構成を示す。この例においては、
補数キャリーを第1段のフルアダーFA行の対応する桁
のもののキャリー入力端CIに入力すると共に、キャリ
ールックアヘッド付きフルアダーCLAをすべての桁に
まで延ばしている。これによれば、補数キャリー用フル
アダーAFAを設けずに、キャリー伝搬経路を改善でき
る。すなわち、第1段目の乗数の部分積演算結果が減算
であるか否かによる補数キャリーは最下桁のフルアダー
FA1−1に入力する。そして、これによって、最下桁
の乗算結果は定まり、このキャリーも定まるため、これ
がキャリールックアヘッド付きフルアダーCLAに入力
される。また、2桁目はそのままキャリールックアヘッ
ド付きフルアダーに入力され、ここで1桁目のキャリー
との加算が行われる。3桁目については第2段の部分積
演算結果による減算か否かについての補数キャリーの入
力の必要がある。そこで、1段めの3桁目のフルアダー
のキャリー入力端CIに第2段の部分積演算結果に応じ
た補数キャリーを入力する。そして、第1段の5桁目、
7桁目、9桁目のフルアダーFAのキャリー入力端CI
に第3段、第4段、第5段の部分積演算回路の演算結果
に応じた補数キャリーを入力する。
【0037】これによって、補数用キャリーを各段毎に
入力することなく、補数用キャリーを入力することがで
きる。また、本例によれば、上述の図2の例のように補
数用フルアダーAFAが不要であるため、フルアダーの
数を少なくでき、各段におけるフルアダーの数をほぼ同
一とすることができる。このため、上述の図4に示した
ように長方形配列した場合に、長方形からはみ出すフル
アダーを最小限とでき、全体として面積を小さくするこ
とができる。
【0038】
【発明の効果】以上説明したように、本発明に係る乗算
器によれば、補数用のキャリーの伝搬を通常のキャリー
と同様の経路で行うことができる。そこで、キャリー伝
搬の時間を短縮でき、乗算の高速化を図ることができ
る。
【図面の簡単な説明】
【図1】第1実施例の全体構成図。
【図2】フルアダーの構成図。
【図3】部分積演算回路の構成図。
【図4】各部の接続関係を示す構成図。
【図5】キャリールックアヘッド付きフルアダーの構成
図。
【図6】第2実施例の全体構成図。
【図7】従来例の全体構成図。
【符号の説明】
FA フルアダー PA 部分積演算回路 AFA 補数キャリー用フルアダー

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 行列配置されたフルアダーを含み最終段
    においてキャリーを桁方向に伝搬するキャリーセーブ方
    式であって、2の補数同士の乗算を行う乗算器におい
    て、 減算時において各行の最下位フルアダー入力される補数
    用キャリーの入力によって生じるキャリーを伝搬するた
    めに、このキャリーを各行から次行へと順次伝搬する
    数キャリー伝搬用アダーを前記行列配置されたフルアダ
    ーの各行の下位ビット側に設けたことを特徴とする乗算
    器。
  2. 【請求項2】 行列配置されたフルアダーを含み最終段
    においてキャリーを桁方向に伝搬するキャリーセーブ方
    式であって、2の補数同士の乗算を行う乗算器におい
    て、 減算時において各行の最下位フルアダー入力されるべき
    補数用キャリーを、前記行列配置の1行目のフルアダー
    であって、前記各行の最下位フルアダーの桁位置に対応
    する桁位置に存在するフルアダーのキャリー入力端から
    入力することを特徴とする乗算器。
JP3127983A 1991-05-30 1991-05-30 乗算器 Expired - Fee Related JP2620659B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3127983A JP2620659B2 (ja) 1991-05-30 1991-05-30 乗算器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3127983A JP2620659B2 (ja) 1991-05-30 1991-05-30 乗算器

Publications (2)

Publication Number Publication Date
JPH04353924A JPH04353924A (ja) 1992-12-08
JP2620659B2 true JP2620659B2 (ja) 1997-06-18

Family

ID=14973542

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3127983A Expired - Fee Related JP2620659B2 (ja) 1991-05-30 1991-05-30 乗算器

Country Status (1)

Country Link
JP (1) JP2620659B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02212918A (ja) * 1989-02-14 1990-08-24 Matsushita Electric Ind Co Ltd コンピュータ端末装置
JPH03113632A (ja) * 1989-09-28 1991-05-15 Nec Corp ディジタル信号処理装置

Also Published As

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

Similar Documents

Publication Publication Date Title
US5500812A (en) Multiplication circuit having rounding function
EP0613082B1 (en) 4:2 adder and multiplier circuit employing the same
EP0356153B1 (en) Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction
JPH0447849B2 (ja)
JPS635774B2 (ja)
US4878192A (en) Arithmetic processor and divider using redundant signed digit arithmetic
JP3345894B2 (ja) 浮動小数点乗算器
JP3436994B2 (ja) シフト装置
US4677583A (en) Apparatus for decimal multiplication
JPH07234778A (ja) 演算回路
JPH08221256A (ja) 乗算器及び積和演算装置
JP2003271056A (ja) 剰余演算器
JP2620659B2 (ja) 乗算器
JPH0312738B2 (ja)
JPH09231055A (ja) 論理演算回路及びキャリールックアヘッド加算器
JP2620660B2 (ja) 乗算器
JPH11134175A (ja) 乗加減算器及び演算器
JPS6222178A (ja) 2つの複素数の乗算のための乗算器
US7444366B2 (en) Faster shift value calculation using modified carry-lookahead adder
JP2629736B2 (ja) 積和演算回路
KR0176883B1 (ko) 복소수 승산기
JP3457082B2 (ja) 演算装置
JP2931632B2 (ja) 桁移動装置及び浮動小数点演算装置
JPH10333885A (ja) 乗算回路
JPH1115641A (ja) 冗長2進加算器を用いた乗算装置

Legal Events

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