JPH10333885A - 乗算回路 - Google Patents
乗算回路Info
- Publication number
- JPH10333885A JPH10333885A JP9141285A JP14128597A JPH10333885A JP H10333885 A JPH10333885 A JP H10333885A JP 9141285 A JP9141285 A JP 9141285A JP 14128597 A JP14128597 A JP 14128597A JP H10333885 A JPH10333885 A JP H10333885A
- Authority
- JP
- Japan
- Prior art keywords
- input
- data
- control signal
- partial product
- multiplication
- 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
Abstract
(57)【要約】
【課題】 2進数の乗算回路において、“−A×B”の
乗算を行う場合に、被乗数のビット幅に対応した数のイ
ンバータやビット幅分のインクリメンタを用いて入力デ
ータAを反転する必要があった。 【解決手段】 2つの入力データA,Bに対して、ブー
スのアルゴリズムにより部分積を生成する際に、2つの
部分積生成回路11,12において、ブース(Boot
h)エンコーダ21,31の各5通りの制御信号±1,
±2,0を、データ伝送回路23,33によって符号を
反転してマルチプレクサ22-1〜22-5,32-1〜32
-5の各5つの入力±a,±2a,0に伝送することによ
り、“−A×B”あるいは“A×(−B)”の乗算を行
う。
乗算を行う場合に、被乗数のビット幅に対応した数のイ
ンバータやビット幅分のインクリメンタを用いて入力デ
ータAを反転する必要があった。 【解決手段】 2つの入力データA,Bに対して、ブー
スのアルゴリズムにより部分積を生成する際に、2つの
部分積生成回路11,12において、ブース(Boot
h)エンコーダ21,31の各5通りの制御信号±1,
±2,0を、データ伝送回路23,33によって符号を
反転してマルチプレクサ22-1〜22-5,32-1〜32
-5の各5つの入力±a,±2a,0に伝送することによ
り、“−A×B”あるいは“A×(−B)”の乗算を行
う。
Description
【0001】
【発明の属する技術分野】本発明は、2進数の乗算を行
う乗算回路に関し、特に2つの入力データA,Bに対し
て、“−A×B”あるいは“A×(−B)”の乗算を行
うための乗算回路に関する。
う乗算回路に関し、特に2つの入力データA,Bに対し
て、“−A×B”あるいは“A×(−B)”の乗算を行
うための乗算回路に関する。
【0002】
【従来の技術】2進数の乗算回路において、2つの入力
データA,Bに対して、“−A×B”あるいは“A×
(−B)”の乗算を行う場合に、従来は、入力データA
またはBの符号を反転させてから乗算を行っていた。2
の補数表記では、反転Aを〜Aと表わすものとすると、 −A=〜A+1 の処理が必要であった。
データA,Bに対して、“−A×B”あるいは“A×
(−B)”の乗算を行う場合に、従来は、入力データA
またはBの符号を反転させてから乗算を行っていた。2
の補数表記では、反転Aを〜Aと表わすものとすると、 −A=〜A+1 の処理が必要であった。
【0003】その回路構成例としては、例えば“−A×
B”の乗算を行う乗算回路を例に採ると、図5に示すよ
うに、入力データAを反転するインバータ101と、こ
のインバータ101の反転出力〜Aに対して“1”を加
算(+1)するインクリメンタ102と、このインクリ
メンタ102の出力データと入力データBとを乗算する
乗算器103とからなる構成となっている。
B”の乗算を行う乗算回路を例に採ると、図5に示すよ
うに、入力データAを反転するインバータ101と、こ
のインバータ101の反転出力〜Aに対して“1”を加
算(+1)するインクリメンタ102と、このインクリ
メンタ102の出力データと入力データBとを乗算する
乗算器103とからなる構成となっている。
【0004】
【発明が解決しようとする課題】しかしながら、上記構
成の従来の乗算回路では、入力データAのビット幅がN
ビットの場合に、そのビット幅に対応したN個分のイン
バータ101が必要であり、またインクリメンタ102
としてもNビット分のものを用いる必要があるため、回
路を構成する素子数が多くなるとともに、演算処理に時
間がかかるという問題があった。
成の従来の乗算回路では、入力データAのビット幅がN
ビットの場合に、そのビット幅に対応したN個分のイン
バータ101が必要であり、またインクリメンタ102
としてもNビット分のものを用いる必要があるため、回
路を構成する素子数が多くなるとともに、演算処理に時
間がかかるという問題があった。
【0005】本発明は、上記課題に鑑みてなされたもの
であり、その目的とするところは、回路を構成する素子
数を削減でき、かつ演算処理の高速化を可能とした乗算
回路を提供することにある。
であり、その目的とするところは、回路を構成する素子
数を削減でき、かつ演算処理の高速化を可能とした乗算
回路を提供することにある。
【0006】
【課題を解決するための手段】本発明による乗算回路
は、乗数の隣り合う3ビットのデータに対して±1,±
2,0の5通りの制御信号を出力するブースエンコーダ
と、第1入力に対して被乗数の所定ビットのデータを、
第2入力に対して該所定ビットの反転データを、第3入
力に対して所定ビットの1ビット下位のデータを、第4
入力に対して当該1ビット下位のデータの反転データ
を、第5入力に対して0をそれぞれ出力するマルチプレ
クサと、ブースエンコーダの+1の制御信号を第2入力
として、−1の制御信号を第1入力として、+2の制御
信号を第4入力として、−2の制御信号を第3入力とし
て、0の制御信号を第5入力としてそれぞれマルチプレ
クサに伝送するデータ伝送回路とを備えている。
は、乗数の隣り合う3ビットのデータに対して±1,±
2,0の5通りの制御信号を出力するブースエンコーダ
と、第1入力に対して被乗数の所定ビットのデータを、
第2入力に対して該所定ビットの反転データを、第3入
力に対して所定ビットの1ビット下位のデータを、第4
入力に対して当該1ビット下位のデータの反転データ
を、第5入力に対して0をそれぞれ出力するマルチプレ
クサと、ブースエンコーダの+1の制御信号を第2入力
として、−1の制御信号を第1入力として、+2の制御
信号を第4入力として、−2の制御信号を第3入力とし
て、0の制御信号を第5入力としてそれぞれマルチプレ
クサに伝送するデータ伝送回路とを備えている。
【0007】上記構成の乗算回路において、データ伝送
回路はブースエンコーダの±1,±2,0の5通りの制
御信号をマルチプレクサに伝送するとき、符号を反転し
て伝送する。このように、2つの入力データA,Bに対
して、ブースのアルゴリズムにより部分積を生成する際
に、予め符号を反転することにより、被乗数A又は乗数
Bを反転しなくても、“−A×B”あるいは“A×(−
B)”の乗算を実現できる。
回路はブースエンコーダの±1,±2,0の5通りの制
御信号をマルチプレクサに伝送するとき、符号を反転し
て伝送する。このように、2つの入力データA,Bに対
して、ブースのアルゴリズムにより部分積を生成する際
に、予め符号を反転することにより、被乗数A又は乗数
Bを反転しなくても、“−A×B”あるいは“A×(−
B)”の乗算を実現できる。
【0008】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を用いて詳細に説明する。
て図面を用いて詳細に説明する。
【0009】図1は、本発明の第1実施形態を示すブロ
ック図である。第1実施形態では、例えば共に4ビット
の2つの入力データA,Bに対して、“−A×B”ある
いは“A×(−B)”の乗算を行う場合について説明す
る。この第1実施形態に係る乗算回路は、ブース(Bo
oth)のアルゴリズムにより部分積を生成する2つの
部分積生成回路11,12と、これら部分積生成回路1
1,12の各部分積を加算する最終加算回路13とから
構成されている。本実施形態では、乗数Bが4ビットで
あることから、2つの部分積生成回路11,12が用い
られている。
ック図である。第1実施形態では、例えば共に4ビット
の2つの入力データA,Bに対して、“−A×B”ある
いは“A×(−B)”の乗算を行う場合について説明す
る。この第1実施形態に係る乗算回路は、ブース(Bo
oth)のアルゴリズムにより部分積を生成する2つの
部分積生成回路11,12と、これら部分積生成回路1
1,12の各部分積を加算する最終加算回路13とから
構成されている。本実施形態では、乗数Bが4ビットで
あることから、2つの部分積生成回路11,12が用い
られている。
【0010】ところで、ブースのアルゴリズムは、2の
補数表示の乗算において幅広く用いられているアルゴリ
ズムである。このブースのアルゴリズムでは、“A×
B”を例にとると、乗数Bは
補数表示の乗算において幅広く用いられているアルゴリ
ズムである。このブースのアルゴリズムでは、“A×
B”を例にとると、乗数Bは
【数1】 と表される。
【0011】この式において、(b2i+b2i+1−2×b
2i+2)は0,±1,±2しかあり得ないため、部分積は
0,±A,±2A(Aの1ビットシフト)の何れかとな
る。また、部分積計算の加算回路は1/2に減り、演算
速度の高速化および回路規模の縮小化が可能となる。
2i+2)は0,±1,±2しかあり得ないため、部分積は
0,±A,±2A(Aの1ビットシフト)の何れかとな
る。また、部分積計算の加算回路は1/2に減り、演算
速度の高速化および回路規模の縮小化が可能となる。
【0012】数1の式をもとに、乗数による部分積の演
算を表1に示す。
算を表1に示す。
【表1】
【0013】図2に、ブースアルゴリズムを用いた場合
の計算例を示す。図2において、一例として、A=6,
B=5とした場合に、(a)は“A×B”あるいは“−
A×(−B)”の場合を、(b)は“−A×B”あるい
は“”A×(−B)の場合をそれぞれ示している。ブー
スアルゴリズムを用いた場合、乗数Bが4ビットの場合
には2つの部分積を求めることになる。
の計算例を示す。図2において、一例として、A=6,
B=5とした場合に、(a)は“A×B”あるいは“−
A×(−B)”の場合を、(b)は“−A×B”あるい
は“”A×(−B)の場合をそれぞれ示している。ブー
スアルゴリズムを用いた場合、乗数Bが4ビットの場合
には2つの部分積を求めることになる。
【0014】すなわち、図2(a)の計算例の場合は、
最下位ビット(本例では、“1”)について第1の部分
積(0110)を求め、次いで2ビット隣りのビット
(本例では、“1”)について第2の部分積(011
0)を求め、第1の部分積に対して第2の部分積を2ビ
ットシフトした状態で加算することにより、8ビットの
乗算結果(00011110)、即ち“A×B”あるい
は“”−A×(−B)を求める。
最下位ビット(本例では、“1”)について第1の部分
積(0110)を求め、次いで2ビット隣りのビット
(本例では、“1”)について第2の部分積(011
0)を求め、第1の部分積に対して第2の部分積を2ビ
ットシフトした状態で加算することにより、8ビットの
乗算結果(00011110)、即ち“A×B”あるい
は“”−A×(−B)を求める。
【0015】また、図2(b)の計算例では、先ず、最
下位ビット(本例では、“1”)について部分積(01
10)を求め、これを反転した値(1001)に“1”
を加算する(1010)。このとき、最上位ビットが
“1”の場合は、上位側に4ビット分だけ“1”を拡張
し、計8ビットの値(11111010)を最終的な第
1の部分積とする。同様にして、第2の部分積について
は、計6ビットの値(111010)を求める。そし
て、第1の部分積に対して第2の部分積を2ビットシフ
トした状態で加算することで、8ビットの乗算結果(1
1100010)、即ち乗算結果“−A×B”あるいは
“A×(−B)”を求める。
下位ビット(本例では、“1”)について部分積(01
10)を求め、これを反転した値(1001)に“1”
を加算する(1010)。このとき、最上位ビットが
“1”の場合は、上位側に4ビット分だけ“1”を拡張
し、計8ビットの値(11111010)を最終的な第
1の部分積とする。同様にして、第2の部分積について
は、計6ビットの値(111010)を求める。そし
て、第1の部分積に対して第2の部分積を2ビットシフ
トした状態で加算することで、8ビットの乗算結果(1
1100010)、即ち乗算結果“−A×B”あるいは
“A×(−B)”を求める。
【0016】本実施形態に係る乗算回路は、図2(b)
の計算を行うためになされたものである。図2(b)の
計算を行うためには、上述したことから明らかなよう
に、2つの部分積を求める必要があることから、2つの
部分積生成回路11,12が必要となる。これら部分積
生成回路11,12は、ブースのアルゴリズムを用いた
ブースエンコーダ21,31を有する構成となってい
る。
の計算を行うためになされたものである。図2(b)の
計算を行うためには、上述したことから明らかなよう
に、2つの部分積を求める必要があることから、2つの
部分積生成回路11,12が必要となる。これら部分積
生成回路11,12は、ブースのアルゴリズムを用いた
ブースエンコーダ21,31を有する構成となってい
る。
【0017】部分積生成回路11側のブースエンコーダ
21は、4ビットの乗数B(bn,bn+1,bn+
2,bn+3)のうち、bnについて隣り合う3ビット
(bn+1,bn,“0”)のデータに対して±1,±
2,0の5通りの制御信号を出力する。一方、部分積生
成回路11側のブースエンコーダ21は、4ビットの乗
数データB(bn,bn+1,bn+2,bn+3)の
うち、bn+2について隣り合う3ビット(bn+1,
bn+2,bn+3)のデータに対して±1,±2,0
の5通りの制御信号を出力する。
21は、4ビットの乗数B(bn,bn+1,bn+
2,bn+3)のうち、bnについて隣り合う3ビット
(bn+1,bn,“0”)のデータに対して±1,±
2,0の5通りの制御信号を出力する。一方、部分積生
成回路11側のブースエンコーダ21は、4ビットの乗
数データB(bn,bn+1,bn+2,bn+3)の
うち、bn+2について隣り合う3ビット(bn+1,
bn+2,bn+3)のデータに対して±1,±2,0
の5通りの制御信号を出力する。
【0018】部分積生成回路11,12にはさらに、被
乗数Aのビット幅に対応して5個のマルチプレクサ22
-1〜22-5,32-1〜32-5と、ブースエンコーダ2
1,22の各5通りの制御信号をマルチプレクサ22-1
〜22-5,32-1〜32-5の各々に伝送するデータ伝送
回路23,33とが設けられている。マルチプレクサ2
2-1〜22-5,32-1〜32-5は、ブースエンコーダ2
1,22の5通りの制御信号±1,±2,0に対応して
5つの入力±a,±2a,0を有している。
乗数Aのビット幅に対応して5個のマルチプレクサ22
-1〜22-5,32-1〜32-5と、ブースエンコーダ2
1,22の各5通りの制御信号をマルチプレクサ22-1
〜22-5,32-1〜32-5の各々に伝送するデータ伝送
回路23,33とが設けられている。マルチプレクサ2
2-1〜22-5,32-1〜32-5は、ブースエンコーダ2
1,22の5通りの制御信号±1,±2,0に対応して
5つの入力±a,±2a,0を有している。
【0019】データ伝送回路23,33は、ブースエン
コーダ21,22の各5通りの制御信号±1,±2,0
をマルチプレクサ22-1〜22-5,32-1〜32-5の各
5つの入力±a,±2a,0に対して次の組み合わせで
伝送する。すなわち、+1の制御信号を−a入力とし
て、−1の制御信号を+a入力として、+2の制御信号
を−2a入力として、−2の制御信号を+2a入力とし
て、0の制御信号を0入力としてそれぞれ伝送すること
で、符号反転を行っている。この符号反転は、パターン
配線のみによって容易に実現できる。
コーダ21,22の各5通りの制御信号±1,±2,0
をマルチプレクサ22-1〜22-5,32-1〜32-5の各
5つの入力±a,±2a,0に対して次の組み合わせで
伝送する。すなわち、+1の制御信号を−a入力とし
て、−1の制御信号を+a入力として、+2の制御信号
を−2a入力として、−2の制御信号を+2a入力とし
て、0の制御信号を0入力としてそれぞれ伝送すること
で、符号反転を行っている。この符号反転は、パターン
配線のみによって容易に実現できる。
【0020】マルチプレクサ22-1〜22-4,32-1〜
32-4は、4ビットの被乗数A(am+3,am+2,
am+1,am)を入力とする。また、マルチプレクサ
22-5,32-5は、am+3を入力とする。そして、マ
ルチプレクサ22-1,32-1は、a入力に対してはam
+3のデータを、−a入力に対してはインバータ24-1
で反転されたam+3の反転データを、2a入力に対し
ては1ビット下位のam+2のデータを、−2a入力に
対してはインバータ25-1で反転されたam+2の反転
データを、0入力に対しては“0”のデータをそれぞれ
出力する。
32-4は、4ビットの被乗数A(am+3,am+2,
am+1,am)を入力とする。また、マルチプレクサ
22-5,32-5は、am+3を入力とする。そして、マ
ルチプレクサ22-1,32-1は、a入力に対してはam
+3のデータを、−a入力に対してはインバータ24-1
で反転されたam+3の反転データを、2a入力に対し
ては1ビット下位のam+2のデータを、−2a入力に
対してはインバータ25-1で反転されたam+2の反転
データを、0入力に対しては“0”のデータをそれぞれ
出力する。
【0021】マルチプレクサ22-2,32-2は、a入力
に対してはam+2のデータを、−a入力に対してはイ
ンバータ24-2で反転されたam+2の反転データを、
2a入力に対しては1ビット下位のam+1のデータ
を、−2a入力に対してはインバータ25-2で反転され
たam+1の反転データを、0入力に対しては“0”の
データをそれぞれ出力する。
に対してはam+2のデータを、−a入力に対してはイ
ンバータ24-2で反転されたam+2の反転データを、
2a入力に対しては1ビット下位のam+1のデータ
を、−2a入力に対してはインバータ25-2で反転され
たam+1の反転データを、0入力に対しては“0”の
データをそれぞれ出力する。
【0022】マルチプレクサ22-3,32-3は、a入力
に対してはam+1のデータを、−a入力に対してはイ
ンバータ24-3で反転されたam+1の反転データを、
2a入力に対しては1ビット下位のamのデータを、−
2a入力に対してはインバータ25-3で反転されたam
の反転データを、0入力に対しては“0”のデータをそ
れぞれ出力する。
に対してはam+1のデータを、−a入力に対してはイ
ンバータ24-3で反転されたam+1の反転データを、
2a入力に対しては1ビット下位のamのデータを、−
2a入力に対してはインバータ25-3で反転されたam
の反転データを、0入力に対しては“0”のデータをそ
れぞれ出力する。
【0023】マルチプレクサ22-4,32-4は、a入力
に対してはamのデータを、−a入力に対してはインバ
ータ24-4で反転されたamの反転データを、2a入力
に対しては“0”のデータを、−2a入力に対してはイ
ンバータ25-4で反転された“1”のデータを、0入力
に対しては“0”のデータをそれぞれ出力する。
に対してはamのデータを、−a入力に対してはインバ
ータ24-4で反転されたamの反転データを、2a入力
に対しては“0”のデータを、−2a入力に対してはイ
ンバータ25-4で反転された“1”のデータを、0入力
に対しては“0”のデータをそれぞれ出力する。
【0024】マルチプレクサ22-5,32-5は、a入力
に対してはam+3のデータを、−a入力に対してはイ
ンバータ24-5で反転されたam+3の反転データを、
2a入力に対してはam+3のデータを、−2a入力に
対してはインバータ25-5で反転されたam+3のデー
タを、0入力に対してはam+3のデータをそれぞれ出
力する。
に対してはam+3のデータを、−a入力に対してはイ
ンバータ24-5で反転されたam+3の反転データを、
2a入力に対してはam+3のデータを、−2a入力に
対してはインバータ25-5で反転されたam+3のデー
タを、0入力に対してはam+3のデータをそれぞれ出
力する。
【0025】以上から明らかなように、部分積生成回路
11は図2(b)の計算式における8ビットの第1の部
分積(11111010)を、部分積生成回路12は6
ビットの第2の部分積(111010)をそれぞれ生成
するためのものである。ここで、先述したように、2の
補数表記では、“−A=〜A+1”の処理が必要である
ことから、部分積生成回路11,12は、A×Bの場合
には、ブースエンコーダ21,31から−1又は−2の
データが出力されたときに、−A×Bの場合には、ブー
スエンコーダ21,31から1又は2のデータが出力さ
れたときに、最下位ビットに“1”を加算する構成を採
っている。
11は図2(b)の計算式における8ビットの第1の部
分積(11111010)を、部分積生成回路12は6
ビットの第2の部分積(111010)をそれぞれ生成
するためのものである。ここで、先述したように、2の
補数表記では、“−A=〜A+1”の処理が必要である
ことから、部分積生成回路11,12は、A×Bの場合
には、ブースエンコーダ21,31から−1又は−2の
データが出力されたときに、−A×Bの場合には、ブー
スエンコーダ21,31から1又は2のデータが出力さ
れたときに、最下位ビットに“1”を加算する構成を採
っている。
【0026】すなわち、マルチプレクサ22-1〜22-
5,32-1〜32-5の各出力データを一方の入力とする
5個の半加算器(HA;Half Adder)26-1〜26-5,3
6-1〜36-5を設け、マルチプレクサ22-1〜22-5,
32-1〜32-5の−a入力および−2a入力を2入力と
するORゲート27,37の各出力を、最下位ビットの
半加算器26-4,36-4の他方の入力としている。ま
た、半加算器26-1〜26-3,26-5および36-1〜3
6-3,36-5においては、下位ビットの半加算器26-1
〜26-4,36-1〜36-4のキャリー出力を他方の入力
としている。そして、半加算器26-5,26-1〜26-4
および36-5,36-1〜36-4の各出力データを、第
1,第2の部分積の各下位5ビットのデータとする。
5,32-1〜32-5の各出力データを一方の入力とする
5個の半加算器(HA;Half Adder)26-1〜26-5,3
6-1〜36-5を設け、マルチプレクサ22-1〜22-5,
32-1〜32-5の−a入力および−2a入力を2入力と
するORゲート27,37の各出力を、最下位ビットの
半加算器26-4,36-4の他方の入力としている。ま
た、半加算器26-1〜26-3,26-5および36-1〜3
6-3,36-5においては、下位ビットの半加算器26-1
〜26-4,36-1〜36-4のキャリー出力を他方の入力
としている。そして、半加算器26-5,26-1〜26-4
および36-5,36-1〜36-4の各出力データを、第
1,第2の部分積の各下位5ビットのデータとする。
【0027】また、第1,第2の部分積の各下位側5ビ
ットのデータのうち、最上位のビットが“1”の場合
は、第1の部分積については上位側に3ビット分だけ、
第2の部分積については上位側に1ビット分だけそれぞ
“1”を拡張する必要がある。そこで、本実施形態で
は、部分積生成回路11,12において、以下の如き拡
張法を採っている。ただし、この拡張法は一例に過ぎ
ず、これに限定されるものではない。
ットのデータのうち、最上位のビットが“1”の場合
は、第1の部分積については上位側に3ビット分だけ、
第2の部分積については上位側に1ビット分だけそれぞ
“1”を拡張する必要がある。そこで、本実施形態で
は、部分積生成回路11,12において、以下の如き拡
張法を採っている。ただし、この拡張法は一例に過ぎ
ず、これに限定されるものではない。
【0028】すなわち、部分積生成回路11において
は、上位側3ビットに対応した3個のインバータからな
るインバータ列28を設け、このインバータ列28を介
して下位側5ビットのうちの最上位ビットの半加算器2
6-5の出力を与える構成を採っている。これにより、下
位側5ビットのデータのうち、最上位のビットが“1”
になると、上位側の3ビットのデータとして全て“1”
がインバータ列28を介して出力されることになる。
は、上位側3ビットに対応した3個のインバータからな
るインバータ列28を設け、このインバータ列28を介
して下位側5ビットのうちの最上位ビットの半加算器2
6-5の出力を与える構成を採っている。これにより、下
位側5ビットのデータのうち、最上位のビットが“1”
になると、上位側の3ビットのデータとして全て“1”
がインバータ列28を介して出力されることになる。
【0029】部分積生成回路12も同様にして、上位側
1ビットに対応した1個のインバータ38を設け、この
インバータ38を介して下位側5ビットのうちの最上位
ビットの半加算器36-5の出力を与える構成を採ってい
る。これにより、下位側5ビットのデータのうち、最上
位のビットが“1”になると、上位側の1ビットのデー
タとして“1”がインバータ38を介して出力されるこ
とになる。
1ビットに対応した1個のインバータ38を設け、この
インバータ38を介して下位側5ビットのうちの最上位
ビットの半加算器36-5の出力を与える構成を採ってい
る。これにより、下位側5ビットのデータのうち、最上
位のビットが“1”になると、上位側の1ビットのデー
タとして“1”がインバータ38を介して出力されるこ
とになる。
【0030】このようにして、部分積生成回路11,1
2でそれぞれ生成された第1,第2の部分積は最終段加
算回路13に供給される。そして、この最終段加算回路
13において、第1の部分積に対して第2の部分積を2
ビットシフトした状態で加算が行われ、その乗算結果と
して“−A×B”あるいは“A×(−B)”が得られ
る。最終段加算回路13としては、リプルキャリー(rip
ple carry)形や、キャリー先見(CLA;carry look ah
ead)形などの周知の加算器を用い得る。
2でそれぞれ生成された第1,第2の部分積は最終段加
算回路13に供給される。そして、この最終段加算回路
13において、第1の部分積に対して第2の部分積を2
ビットシフトした状態で加算が行われ、その乗算結果と
して“−A×B”あるいは“A×(−B)”が得られ
る。最終段加算回路13としては、リプルキャリー(rip
ple carry)形や、キャリー先見(CLA;carry look ah
ead)形などの周知の加算器を用い得る。
【0031】上記構成の第1実施形態に係る乗算回路で
は、データ伝送回路23,33が、ブースエンコーダ2
1,22の各5通りの制御信号±1,±2,0をマルチ
プレクサ22-1〜22-5,32-1〜32-5の各5つの入
力±a,±2a,0に対し、+1の制御信号を−a入力
として、−1の制御信号を+a入力として、+2の制御
信号を−2a入力として、−2の制御信号を+2a入力
として、0の制御信号を0入力としてそれぞれ伝送し、
表2に示すように、部分積を生成時に予め符号を反転し
ておくことで、“−A×B”あるいは“A×(−B)”
の乗算を実現している。
は、データ伝送回路23,33が、ブースエンコーダ2
1,22の各5通りの制御信号±1,±2,0をマルチ
プレクサ22-1〜22-5,32-1〜32-5の各5つの入
力±a,±2a,0に対し、+1の制御信号を−a入力
として、−1の制御信号を+a入力として、+2の制御
信号を−2a入力として、−2の制御信号を+2a入力
として、0の制御信号を0入力としてそれぞれ伝送し、
表2に示すように、部分積を生成時に予め符号を反転し
ておくことで、“−A×B”あるいは“A×(−B)”
の乗算を実現している。
【0032】
【表2】
【0033】上述したように、2進数の乗算回路におい
て、2つの入力データA,Bに対して、ブースのアルゴ
リズムにより部分積を生成する際に予め符号を反転する
ようにしたことにより、従来のように、被乗数Aのビッ
ト幅に対応した数のインバータやビット幅分のインクリ
メンタを用いなくても、“−A×B”あるいは“A×
(−B)”の乗算を行うことができる。また、符号反転
は、新たに回路を追加しなくても、パターン配線によっ
て容易に実現できる。
て、2つの入力データA,Bに対して、ブースのアルゴ
リズムにより部分積を生成する際に予め符号を反転する
ようにしたことにより、従来のように、被乗数Aのビッ
ト幅に対応した数のインバータやビット幅分のインクリ
メンタを用いなくても、“−A×B”あるいは“A×
(−B)”の乗算を行うことができる。また、符号反転
は、新たに回路を追加しなくても、パターン配線によっ
て容易に実現できる。
【0034】図3は、本発明の第2実施形態を示すブロ
ック図であり、図中、図1と同等部分には同一符号を付
して示してある。この第2実施形態に係る乗算回路は、
第1実施形態に係る乗算回路が“−A×B”あるいは
“A×(−B)”の乗算専用に構成されているのに対
し、“A×B”あるいは“−A×(−B)”の乗算と
“−A×B”あるいは“A×(−B)”の乗算を選択的
に行い得るように構成されている。
ック図であり、図中、図1と同等部分には同一符号を付
して示してある。この第2実施形態に係る乗算回路は、
第1実施形態に係る乗算回路が“−A×B”あるいは
“A×(−B)”の乗算専用に構成されているのに対
し、“A×B”あるいは“−A×(−B)”の乗算と
“−A×B”あるいは“A×(−B)”の乗算を選択的
に行い得るように構成されている。
【0035】部分積生成回路11,12において、“A
×B”あるいは“−A×(−B)”の乗算と“−A×
B”あるいは“A×(−B)”の乗算の切換えは、デー
タ伝送回路43,53によって行われる。これらデータ
伝送回路43,53は、例えばスイッチ回路構成となっ
ており、“A×B”あるいは“−A×(−B)”の乗算
であるか、“−A×B”あるいは“A×(−B)”の乗
算であるかを示す乗算内容情報が外部から与えられる
と、その情報に応じてブースエンコーダ21,31の5
通りの制御信号±1,±2,0をマルチプレクサ22-1
〜22-4,32-1〜32-4の各5つの入力±a,±2
a,0に伝送する形態を切り換える。
×B”あるいは“−A×(−B)”の乗算と“−A×
B”あるいは“A×(−B)”の乗算の切換えは、デー
タ伝送回路43,53によって行われる。これらデータ
伝送回路43,53は、例えばスイッチ回路構成となっ
ており、“A×B”あるいは“−A×(−B)”の乗算
であるか、“−A×B”あるいは“A×(−B)”の乗
算であるかを示す乗算内容情報が外部から与えられる
と、その情報に応じてブースエンコーダ21,31の5
通りの制御信号±1,±2,0をマルチプレクサ22-1
〜22-4,32-1〜32-4の各5つの入力±a,±2
a,0に伝送する形態を切り換える。
【0036】すなわち、ブースエンコーダ21からマル
チプレクサ22-1への伝送の場合を例にとると、“A×
B”あるいは“−A×(−B)”の乗算のときは、デー
タ伝送回路43は、図4(a)に示すように、+1の制
御信号を+a入力として、−1の制御信号を−a入力と
して、+2の制御信号を+2a入力として、−2の制御
信号を−2a入力として、0の制御信号を0入力として
それぞれ伝送する。
チプレクサ22-1への伝送の場合を例にとると、“A×
B”あるいは“−A×(−B)”の乗算のときは、デー
タ伝送回路43は、図4(a)に示すように、+1の制
御信号を+a入力として、−1の制御信号を−a入力と
して、+2の制御信号を+2a入力として、−2の制御
信号を−2a入力として、0の制御信号を0入力として
それぞれ伝送する。
【0037】一方、“−A×B”あるいは“A×(−
B)”の乗算のときは、データ伝送回路43は、図4
(b)に示すように、+1の制御信号を−a入力とし
て、−1の制御信号を+a入力として、+2の制御信号
を−2a入力として、−2の制御信号を+2a入力とし
て、0の制御信号を0入力としてそれぞれ伝送すること
で、符号反転を行う。
B)”の乗算のときは、データ伝送回路43は、図4
(b)に示すように、+1の制御信号を−a入力とし
て、−1の制御信号を+a入力として、+2の制御信号
を−2a入力として、−2の制御信号を+2a入力とし
て、0の制御信号を0入力としてそれぞれ伝送すること
で、符号反転を行う。
【0038】ここでは、部分積生成回路11側における
ブースエンコーダ21からマルチプレクサ22-1への伝
送の場合を例にとって説明したが、ブースエンコーダ2
1からマルチプレクサ22-2〜22-5への伝送の場合に
も、また部分積生成回路12側においても同様に行われ
る。
ブースエンコーダ21からマルチプレクサ22-1への伝
送の場合を例にとって説明したが、ブースエンコーダ2
1からマルチプレクサ22-2〜22-5への伝送の場合に
も、また部分積生成回路12側においても同様に行われ
る。
【0039】このように、部分積生成回路11,21に
おいて、ブースエンコーダ21,31からマルチプレク
サ22-1〜22-5,32-1〜32-5へのデータの伝送形
態を乗算内容に応じて適宜切換え可能としたことによ
り、“A×B”あるいは“−A×(−B)”の乗算と
“−A×B”あるいは“A×(−B)”の乗算を同一の
乗算回路で実現できることになる。
おいて、ブースエンコーダ21,31からマルチプレク
サ22-1〜22-5,32-1〜32-5へのデータの伝送形
態を乗算内容に応じて適宜切換え可能としたことによ
り、“A×B”あるいは“−A×(−B)”の乗算と
“−A×B”あるいは“A×(−B)”の乗算を同一の
乗算回路で実現できることになる。
【0040】一例として、A=6,B=5とした場合
に、“A×B”あるいは“−A×(−B)”の乗算を行
う場合は、図2(a)の計算式に基づいて、第1の部分
積(0110)と第2の部分積(0110)を求め、第
1の部分積に対して第2の部分積を2ビットシフトした
状態で加算する処理が行われる。また、“−A×B”あ
るいは“A×(−B)”の乗算を行う場合は、図2
(b)の計算式に基づいて、第1の部分積(11111
010)と第2の部分積(111010)を求め、第1
の部分積に対して第2の部分積を2ビットシフトした状
態で加算する処理が行われる。
に、“A×B”あるいは“−A×(−B)”の乗算を行
う場合は、図2(a)の計算式に基づいて、第1の部分
積(0110)と第2の部分積(0110)を求め、第
1の部分積に対して第2の部分積を2ビットシフトした
状態で加算する処理が行われる。また、“−A×B”あ
るいは“A×(−B)”の乗算を行う場合は、図2
(b)の計算式に基づいて、第1の部分積(11111
010)と第2の部分積(111010)を求め、第1
の部分積に対して第2の部分積を2ビットシフトした状
態で加算する処理が行われる。
【0041】なお、上記各実施形態においては、4ビッ
ト×4ビットの乗算を行う場合を例にとって説明した
が、これに限定されるものではない。ただし、部分積生
成回路の数は乗数のビット幅に応じて設定される。すな
わち、乗数が4ビットの場合は部分積生成回路が2個必
要であったが、例えば乗数が8ビットの場合には部分積
生成回路が4個必要となる。すなわち、ブースアルゴリ
ズムでは、乗数の1ビットおきに部分積が求められるこ
とから、乗数のビット幅の半分の数の部分積生成回路を
設ければ良いことになる。
ト×4ビットの乗算を行う場合を例にとって説明した
が、これに限定されるものではない。ただし、部分積生
成回路の数は乗数のビット幅に応じて設定される。すな
わち、乗数が4ビットの場合は部分積生成回路が2個必
要であったが、例えば乗数が8ビットの場合には部分積
生成回路が4個必要となる。すなわち、ブースアルゴリ
ズムでは、乗数の1ビットおきに部分積が求められるこ
とから、乗数のビット幅の半分の数の部分積生成回路を
設ければ良いことになる。
【0042】
【発明の効果】以上説明したように、本発明によれば、
2進数の乗算回路において、2つの入力データA,Bに
対して、ブースのアルゴリズムにより部分積を生成する
際に予め符号を反転するようにしたことにより、従来の
ように、被乗数Aのビット幅に対応した数のインバータ
やビット幅分のインクリメンタを用いなくても、“−A
×B”あるいは“A×(−B)”の乗算を行うことがで
きるため、回路を構成する素子数を削減できるととも
に、演算処理の高速化を実現できることになる。
2進数の乗算回路において、2つの入力データA,Bに
対して、ブースのアルゴリズムにより部分積を生成する
際に予め符号を反転するようにしたことにより、従来の
ように、被乗数Aのビット幅に対応した数のインバータ
やビット幅分のインクリメンタを用いなくても、“−A
×B”あるいは“A×(−B)”の乗算を行うことがで
きるため、回路を構成する素子数を削減できるととも
に、演算処理の高速化を実現できることになる。
【図1】本発明の第1実施形態を示すブロック図であ
る。
る。
【図2】ブースアルゴリズムを用いた場合の計算例を示
す図である。
す図である。
【図3】本発明の第2実施形態を示すブロック図であ
る。
る。
【図4】第2実施形態におけるデータ伝送回路による伝
送形態を示す図であり、(a)は“A×B”あるいは
“−A×(−B)”の乗算の場合、(b)は“−A×
B”あるいは“A×(−B)”の乗算の場合をそれぞれ
示している。
送形態を示す図であり、(a)は“A×B”あるいは
“−A×(−B)”の乗算の場合、(b)は“−A×
B”あるいは“A×(−B)”の乗算の場合をそれぞれ
示している。
【図5】従来例を示すブロック図である。
11,12 部分積生成回路 13 最終段加算回路 21,31 ブース(Booth)エンコーダ 22-1〜22-4,32-1〜32-4 マルチプレクサ 23,33,43,53 データ伝送回路 26-1〜26-4,36-1〜36-4 半加算器(HA) 28,38 ゲート回路
Claims (2)
- 【請求項1】 2進数の乗算を行う乗算回路であって、 乗数の隣り合う3ビットのデータに対して±1,±2,
0の5通りの制御信号を出力するブースエンコーダと、 第1入力に対して被乗数の所定ビットのデータを、第2
入力に対して前記所定ビットの反転データを、第3入力
に対して前記所定ビットの1ビット下位のデータを、第
4入力に対して前記1ビット下位のデータの反転データ
を、第5入力に対して0をそれぞれ出力するマルチプレ
クサと、 前記ブースエンコーダの+1の制御信号を前記第2入力
として、−1の制御信号を前記第1入力として、+2の
制御信号を前記第4入力として、−2の制御信号を前記
第3入力として、0の制御信号を前記第5入力としてそ
れぞれ前記マルチプレクサに伝送するデータ伝送回路と
を備えたことを特徴とする乗算回路。 - 【請求項2】 前記データ伝送回路は、乗数および被乗
数の一方が負のときに、前記ブースエンコーダの+1の
制御信号を前記第2入力として、−1の制御信号を前記
第1入力として、+2の制御信号を前記第4入力とし
て、−2の制御信号を前記第3入力としてそれぞれ前記
マルチプレクサに伝送し、乗数および被乗数が共に正又
は負のときに、前記ブースエンコーダの+1の制御信号
を前記第1入力として、−1の制御信号を前記第2入力
として、+2の制御信号を前記第3入力として、−2の
制御信号を前記第4入力として前記マルチプレクサに伝
送することを特徴とする請求項1記載の乗算回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9141285A JPH10333885A (ja) | 1997-05-30 | 1997-05-30 | 乗算回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9141285A JPH10333885A (ja) | 1997-05-30 | 1997-05-30 | 乗算回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10333885A true JPH10333885A (ja) | 1998-12-18 |
Family
ID=15288342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9141285A Pending JPH10333885A (ja) | 1997-05-30 | 1997-05-30 | 乗算回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH10333885A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009527060A (ja) * | 2006-02-15 | 2009-07-23 | クゥアルコム・インコーポレイテッド | 拡張された削減ツリー回路構成を有するブース乗算器 |
JP2009527064A (ja) * | 2006-02-15 | 2009-07-23 | クゥアルコム・インコーポレイテッド | ブース乗算方法及びシステムのための電力効率の良い符号拡張 |
US7809783B2 (en) | 2006-02-15 | 2010-10-05 | Qualcomm Incorporated | Booth multiplier with enhanced reduction tree circuitry |
-
1997
- 1997-05-30 JP JP9141285A patent/JPH10333885A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009527060A (ja) * | 2006-02-15 | 2009-07-23 | クゥアルコム・インコーポレイテッド | 拡張された削減ツリー回路構成を有するブース乗算器 |
JP2009527064A (ja) * | 2006-02-15 | 2009-07-23 | クゥアルコム・インコーポレイテッド | ブース乗算方法及びシステムのための電力効率の良い符号拡張 |
US7797366B2 (en) | 2006-02-15 | 2010-09-14 | Qualcomm Incorporated | Power-efficient sign extension for booth multiplication methods and systems |
US7809783B2 (en) | 2006-02-15 | 2010-10-05 | Qualcomm Incorporated | Booth multiplier with enhanced reduction tree circuitry |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4878192A (en) | Arithmetic processor and divider using redundant signed digit arithmetic | |
JP3304971B2 (ja) | 絶対値演算回路 | |
JP2585649B2 (ja) | 除算回路 | |
WO2005010746A1 (en) | Arithmetic unit for addition or subtraction with preliminary saturation detection | |
US4866655A (en) | Arithmetic processor and divider using redundant signed digit | |
JPH10333885A (ja) | 乗算回路 | |
JPH09222991A (ja) | 加算方法および加算器 | |
JPH08314697A (ja) | 符号付き/符号なし数兼用乗算器 | |
JPS58137045A (ja) | 並列乗算器 | |
JPS5841532B2 (ja) | セキワケイサンカイロ | |
JP3071607B2 (ja) | 乗算回路 | |
JP3019796B2 (ja) | 乗算器 | |
JPH0253819B2 (ja) | ||
JP3482102B2 (ja) | 絶対値距離演算回路 | |
JP2907276B2 (ja) | 演算処理装置 | |
KR950015180B1 (ko) | 고속연산형 가산기 | |
JP2901463B2 (ja) | 加算装置 | |
JPH1115641A (ja) | 冗長2進加算器を用いた乗算装置 | |
JPS6349835A (ja) | 演算処理装置 | |
SU1179322A1 (ru) | Устройство дл умножени двух чисел | |
KR0154773B1 (ko) | 두 수의 차로써 표현되는 숫자를 위한 곱셈기 | |
JPH0683852A (ja) | アルファ合成演算器 | |
JPH02239325A (ja) | 除算回路 | |
JPH04280319A (ja) | 多入力減算装置 | |
JPH0427587B2 (ja) |