JPH07114454A - 乗算回路および乗算方法 - Google Patents
乗算回路および乗算方法Info
- Publication number
- JPH07114454A JPH07114454A JP5280393A JP28039393A JPH07114454A JP H07114454 A JPH07114454 A JP H07114454A JP 5280393 A JP5280393 A JP 5280393A JP 28039393 A JP28039393 A JP 28039393A JP H07114454 A JPH07114454 A JP H07114454A
- Authority
- JP
- Japan
- Prior art keywords
- multiplication
- data
- rounding
- output
- 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.)
- Pending
Links
Abstract
(57)【要約】
【目的】 従来に比して高速な丸め乗算処理を行うこと
ができる乗算回路および乗算方法を実現する。 【構成】 部分積の加算過程において、エクスクルーシ
ブオア回路60が同時に乗算結果C=A×Bの正負の判
定を行い、その判定結果SGNに応じてセレクタ50が
定数「1000」あるいは「0111」を選択して加算
器30に供給するようにし、これにより、最終段が2入
力1出力の加算器40で構成されるため、従来に比して
より高速な丸め乗算処理が可能になる。
ができる乗算回路および乗算方法を実現する。 【構成】 部分積の加算過程において、エクスクルーシ
ブオア回路60が同時に乗算結果C=A×Bの正負の判
定を行い、その判定結果SGNに応じてセレクタ50が
定数「1000」あるいは「0111」を選択して加算
器30に供給するようにし、これにより、最終段が2入
力1出力の加算器40で構成されるため、従来に比して
より高速な丸め乗算処理が可能になる。
Description
【0001】
【産業上の利用分野】本発明は、例えば、画像圧縮DC
T等のディジタル信号処理に用いて好適な乗算回路およ
び乗算方法に関する。
T等のディジタル信号処理に用いて好適な乗算回路およ
び乗算方法に関する。
【0002】
【従来の技術】図3は、2の補数表現m+1ビットの被
乗数データA(Am,Am−1,..,A1,A0)
と、2の補数表現6ビットの乗数B(B5,..,B
1,B0)とを乗算し、乗算結果の下位4ビットを丸め
て出力dを発生する乗算回路の構成を示す回路図であ
る。この図において、10〜15はアンド回路、20〜
26は係数乗算器、130〜133および140は加算
器、200は加算器140の出力Cの下位4ビットを丸
め演算して出力dを発生する丸め回路である。
乗数データA(Am,Am−1,..,A1,A0)
と、2の補数表現6ビットの乗数B(B5,..,B
1,B0)とを乗算し、乗算結果の下位4ビットを丸め
て出力dを発生する乗算回路の構成を示す回路図であ
る。この図において、10〜15はアンド回路、20〜
26は係数乗算器、130〜133および140は加算
器、200は加算器140の出力Cの下位4ビットを丸
め演算して出力dを発生する丸め回路である。
【0003】アンド回路10〜15の入力端子aには、
被乗数データA(Am,Am−1,..,A1,A0)
が入力される一方、入力端子b5〜b0にはそれぞれ乗
数B5〜B0が順次入力されて被乗数データAと乗数B
0〜B5との論理積A×B0、A×B1、A×B2、A
×B3、A×B4、A×B5が出力される。これら部分
積は、係数乗算器20〜25によりシフトされ、加算器
130〜133及び140により加算される。但し、乗
数B5は符号ビットであり、部分積A×B5は負の重み
を持っているので、加算器133において加算する前
に、乗算器26により(−1)倍される。こうして6個
の部分積(A×B0〜A×B5)が加算されて乗算結果
C=A×Bが加算器140から出力されると、丸め回路
200がこの乗算結果Cの下位4ビットを丸めて出力d
を発生する。
被乗数データA(Am,Am−1,..,A1,A0)
が入力される一方、入力端子b5〜b0にはそれぞれ乗
数B5〜B0が順次入力されて被乗数データAと乗数B
0〜B5との論理積A×B0、A×B1、A×B2、A
×B3、A×B4、A×B5が出力される。これら部分
積は、係数乗算器20〜25によりシフトされ、加算器
130〜133及び140により加算される。但し、乗
数B5は符号ビットであり、部分積A×B5は負の重み
を持っているので、加算器133において加算する前
に、乗算器26により(−1)倍される。こうして6個
の部分積(A×B0〜A×B5)が加算されて乗算結果
C=A×Bが加算器140から出力されると、丸め回路
200がこの乗算結果Cの下位4ビットを丸めて出力d
を発生する。
【0004】次に、丸め回路200について説明する。
丸め回路200は、加算器141とセレクタ150とか
ら構成されるものであって、乗算結果Cの最上位ビット
MSB、すなわち、符号ビットの正負に応じて与えられ
る定数「1000」あるいは「0111」と乗算結果C
とを加算し、その下位4ビットを除去した値を丸め値と
して出力する。以下、こうした点について説明してお
く。
丸め回路200は、加算器141とセレクタ150とか
ら構成されるものであって、乗算結果Cの最上位ビット
MSB、すなわち、符号ビットの正負に応じて与えられ
る定数「1000」あるいは「0111」と乗算結果C
とを加算し、その下位4ビットを除去した値を丸め値と
して出力する。以下、こうした点について説明してお
く。
【0005】乗算結果Cが「0」または「正」の場
合、即ち、乗算結果Cの符号ビット(MSB)が0の場
合 この場合は、例えば、 C=(0,0,0,..,0,0,1,0,1,0,
0,0)=40 C=(0,0,0,..,0,0,1,0,1,0,
0,1)=41 C=(0,0,0,..,0,0,1,0,1,0,
1,0)=42 C=(0,0,0,..,0,0,1,0,1,0,
1,1)=43 C=(0,0,0,..,0,0,1,0,1,1,
0,0)=44 C=(0,0,0,..,0,0,1,0,1,1,
0,1)=45 C=(0,0,0,..,0,0,1,0,1,1,
1,0)=46 C=(0,0,0,..,0,0,1,0,1,1,
1,1)=47 C=(0,0,0,..,0,0,1,1,0,0,
0,0)=48 C=(0,0,0,..,0,0,1,1,0,0,
0,1)=49 C=(0,0,0,..,0,0,1,1,0,0,
1,0)=50 C=(0,0,0,..,0,0,1,1,0,0,
1,1)=51 C=(0,0,0,..,0,0,1,1,0,1,
0,0)=52 C=(0,0,0,..,0,0,1,1,0,1,
0,1)=53 C=(0,0,0,..,0,0,1,1,0,1,
1,0)=54 C=(0,0,0,..,0,0,1,1,0,1,
1,1)=55 は、全て、2.5×16以上、3.5×16未満である
から、丸めを行うと、 D=(0,0,0,..,0,0,1,1)=3 となる。これから分かるように、乗算結果Cに(1,
0,0,0)を加算して、その加算結果の下位4ビット
を無視すれば良い。つまり、D=[{C+(1,0,
0,0)}の下位4ビットを無視]が丸め値となる。
合、即ち、乗算結果Cの符号ビット(MSB)が0の場
合 この場合は、例えば、 C=(0,0,0,..,0,0,1,0,1,0,
0,0)=40 C=(0,0,0,..,0,0,1,0,1,0,
0,1)=41 C=(0,0,0,..,0,0,1,0,1,0,
1,0)=42 C=(0,0,0,..,0,0,1,0,1,0,
1,1)=43 C=(0,0,0,..,0,0,1,0,1,1,
0,0)=44 C=(0,0,0,..,0,0,1,0,1,1,
0,1)=45 C=(0,0,0,..,0,0,1,0,1,1,
1,0)=46 C=(0,0,0,..,0,0,1,0,1,1,
1,1)=47 C=(0,0,0,..,0,0,1,1,0,0,
0,0)=48 C=(0,0,0,..,0,0,1,1,0,0,
0,1)=49 C=(0,0,0,..,0,0,1,1,0,0,
1,0)=50 C=(0,0,0,..,0,0,1,1,0,0,
1,1)=51 C=(0,0,0,..,0,0,1,1,0,1,
0,0)=52 C=(0,0,0,..,0,0,1,1,0,1,
0,1)=53 C=(0,0,0,..,0,0,1,1,0,1,
1,0)=54 C=(0,0,0,..,0,0,1,1,0,1,
1,1)=55 は、全て、2.5×16以上、3.5×16未満である
から、丸めを行うと、 D=(0,0,0,..,0,0,1,1)=3 となる。これから分かるように、乗算結果Cに(1,
0,0,0)を加算して、その加算結果の下位4ビット
を無視すれば良い。つまり、D=[{C+(1,0,
0,0)}の下位4ビットを無視]が丸め値となる。
【0006】乗算結果Cの符号ビット(MSB)が1
の場合 この場合は、例えば、 C=(1,1,1,..,1,1,0,0,1,0,
0,1)=−55 C=(1,1,1,..,1,1,0,0,1,0,
1,0)=−54 C=(1,1,1,..,1,1,0,0,1,0,
1,1)=−53 C=(1,1,1,..,1,1,0,0,1,1,
0,0)=−52 C=(1,1,1,..,1,1,0,0,1,1,
0,1)=−51 C=(1,1,1,..,1,1,0,0,1,1,
1,0)=−50 C=(1,1,1,..,1,1,0,0,1,1,
1,1)=−49 C=(1,1,1,..,1,1,0,1,0,0,
0,0)=−48 C=(1,1,1,..,1,1,0,1,0,0,
0,1)=−47 C=(1,1,1,..,1,1,0,1,0,0,
1,0)=−46 C=(1,1,1,..,1,1,0,1,0,0,
1,1)=−45 C=(1,1,1,..,1,1,0,1,0,1,
0,0)=−44 C=(1,1,1,..,1,1,0,1,0,1,
0,1)=−43 C=(1,1,1,..,1,1,0,1,0,1,
1,0)=−42 C=(1,1,1,..,1,1,0,1,0,1,
1,1)=−41 C=(1,1,1,..,1,1,0,1,1,0,
0,0)=−40 は、全て、−2.5×16以下、−3.5×16を越え
ているから、丸めを行うと、 D=(1,1,1,..,1,1,0,1)=−3 となる。これから分かるように、Cに(0,1,1,
1)を加算して、その加算結果の下位4ビットを無視す
れば良い。つまり、D=[{C+(0,1,1,1)}
の下位4ビットを無視]が丸め値となる。
の場合 この場合は、例えば、 C=(1,1,1,..,1,1,0,0,1,0,
0,1)=−55 C=(1,1,1,..,1,1,0,0,1,0,
1,0)=−54 C=(1,1,1,..,1,1,0,0,1,0,
1,1)=−53 C=(1,1,1,..,1,1,0,0,1,1,
0,0)=−52 C=(1,1,1,..,1,1,0,0,1,1,
0,1)=−51 C=(1,1,1,..,1,1,0,0,1,1,
1,0)=−50 C=(1,1,1,..,1,1,0,0,1,1,
1,1)=−49 C=(1,1,1,..,1,1,0,1,0,0,
0,0)=−48 C=(1,1,1,..,1,1,0,1,0,0,
0,1)=−47 C=(1,1,1,..,1,1,0,1,0,0,
1,0)=−46 C=(1,1,1,..,1,1,0,1,0,0,
1,1)=−45 C=(1,1,1,..,1,1,0,1,0,1,
0,0)=−44 C=(1,1,1,..,1,1,0,1,0,1,
0,1)=−43 C=(1,1,1,..,1,1,0,1,0,1,
1,0)=−42 C=(1,1,1,..,1,1,0,1,0,1,
1,1)=−41 C=(1,1,1,..,1,1,0,1,1,0,
0,0)=−40 は、全て、−2.5×16以下、−3.5×16を越え
ているから、丸めを行うと、 D=(1,1,1,..,1,1,0,1)=−3 となる。これから分かるように、Cに(0,1,1,
1)を加算して、その加算結果の下位4ビットを無視す
れば良い。つまり、D=[{C+(0,1,1,1)}
の下位4ビットを無視]が丸め値となる。
【0007】従って、加算器141の一方の入力端子に
乗算結果Cを入力すると共に、当該乗算結果Cの符号ビ
ット(MSB)の値に応じて「1000」あるいは「0
111」をセレクタ150で選択し、選択した値を加算
器141の他方の入力端子に入力することで、Cが0ま
たは正の場合には、D=[{C+(1,0,0,0)}
の下位4ビットを無視]の丸め値が求まり、Cが負の場
合にはD=[{C+(0,1,1,1)}の下位4ビッ
トを無視]の丸め値が求まる。
乗算結果Cを入力すると共に、当該乗算結果Cの符号ビ
ット(MSB)の値に応じて「1000」あるいは「0
111」をセレクタ150で選択し、選択した値を加算
器141の他方の入力端子に入力することで、Cが0ま
たは正の場合には、D=[{C+(1,0,0,0)}
の下位4ビットを無視]の丸め値が求まり、Cが負の場
合にはD=[{C+(0,1,1,1)}の下位4ビッ
トを無視]の丸め値が求まる。
【0008】加算器130〜133は図4に示すよう
に、3入力2出力の加算器であり、また加算器140、
141は図6に示すように2入力1出力の加算器から構
成されている。図4に示した3入力2出力の具体的な構
成を図5に示す。この図に示す通り、3入力2出力の加
算器では、3個の入力信号P、Q、Rの同じ桁に対応す
る各ビットがそれぞれ全加算器FA0〜FAnにより加
算され、その出力結果は、出力端子Sumとキャリアウ
ト端子Coutの2つの信号として取り出される。即
ち、加算結果1桁あたり2本の信号という冗長な形式で
出力される。このように、3入力2出力の加算器では、
計算過程においてキャリの伝搬が起こらないので、高速
な加算が可能となる。この出力(加算結果)を通常の2
の補数表現に直すためには、2入力1出力の加算器が必
要である。
に、3入力2出力の加算器であり、また加算器140、
141は図6に示すように2入力1出力の加算器から構
成されている。図4に示した3入力2出力の具体的な構
成を図5に示す。この図に示す通り、3入力2出力の加
算器では、3個の入力信号P、Q、Rの同じ桁に対応す
る各ビットがそれぞれ全加算器FA0〜FAnにより加
算され、その出力結果は、出力端子Sumとキャリアウ
ト端子Coutの2つの信号として取り出される。即
ち、加算結果1桁あたり2本の信号という冗長な形式で
出力される。このように、3入力2出力の加算器では、
計算過程においてキャリの伝搬が起こらないので、高速
な加算が可能となる。この出力(加算結果)を通常の2
の補数表現に直すためには、2入力1出力の加算器が必
要である。
【0009】
【発明が解決しようとする課題】ところで、上述した従
来の乗算回路において用いられる2入力1出力の加算器
(図6参照)は、図7に示す通り、2個の入力信号X、
Yの同じ桁に対応する各ビットがそれぞれ全加算器FA
00〜FA0nにより加算される。この計算過程におい
てキャリは、下位側の全加算器から上位側の全加算器へ
伝搬されることによって、Z=X+Yが計算されるよう
になっており、これはキャリリップル加算と言われてい
る。この他にも、キャリルックアヘッド加算やキャリセ
レクト加算などもあるが、いずれの方式においても下位
側から上位側へのキャリの伝搬がなされる。したがっ
て、2入力1出力の加算器は、上述した3入力2出力の
加算器に比べ処理が遅い。
来の乗算回路において用いられる2入力1出力の加算器
(図6参照)は、図7に示す通り、2個の入力信号X、
Yの同じ桁に対応する各ビットがそれぞれ全加算器FA
00〜FA0nにより加算される。この計算過程におい
てキャリは、下位側の全加算器から上位側の全加算器へ
伝搬されることによって、Z=X+Yが計算されるよう
になっており、これはキャリリップル加算と言われてい
る。この他にも、キャリルックアヘッド加算やキャリセ
レクト加算などもあるが、いずれの方式においても下位
側から上位側へのキャリの伝搬がなされる。したがっ
て、2入力1出力の加算器は、上述した3入力2出力の
加算器に比べ処理が遅い。
【0010】このように従来の乗算回路では、処理時間
の遅い2入力1出力の加算器140、141を使用する
ことから、回路全体の処理速度を高速に動作させること
ができないという問題がある。そこで本発明は、従来に
比して高速な丸め乗算処理を行うことができる乗算回路
および乗算方法を提供することを目的としている。
の遅い2入力1出力の加算器140、141を使用する
ことから、回路全体の処理速度を高速に動作させること
ができないという問題がある。そこで本発明は、従来に
比して高速な丸め乗算処理を行うことができる乗算回路
および乗算方法を提供することを目的としている。
【0011】
【課題を解決するための手段】上記目的を達成するた
め、請求項1に記載の発明によれば、被乗数データと乗
数データとを乗算した結果に丸め演算を施して丸め乗算
値を出力する乗算回路において、前記被乗数データの符
号ビットと前記乗数データの符号ビットとの排他的論理
和に応じて丸め用の加算データを発生する丸め値発生手
段を具備することを特徴としている。また、請求項2に
記載の発明によれば、前記被乗数データと前記乗数デー
タとにより生成される部分積に前記丸め用の加算データ
を加算する丸め加算手段を備えることを特徴としてい
る。
め、請求項1に記載の発明によれば、被乗数データと乗
数データとを乗算した結果に丸め演算を施して丸め乗算
値を出力する乗算回路において、前記被乗数データの符
号ビットと前記乗数データの符号ビットとの排他的論理
和に応じて丸め用の加算データを発生する丸め値発生手
段を具備することを特徴としている。また、請求項2に
記載の発明によれば、前記被乗数データと前記乗数デー
タとにより生成される部分積に前記丸め用の加算データ
を加算する丸め加算手段を備えることを特徴としてい
る。
【0012】さらに、請求項3に記載の発明にあって
は、被乗数データと乗数データとを乗算した結果に丸め
演算を施して丸め乗算値を出力する乗算方法において、
前記被乗数データの符号ビットと前記乗数データの符号
ビットとの排他的論理和に応じて丸め用の加算データを
発生することを特徴としている。また、請求項4に記載
の発明では、前記被乗数データと前記乗数データとによ
り生成される部分積に前記丸め用の加算データを加算す
ることを特徴としている。
は、被乗数データと乗数データとを乗算した結果に丸め
演算を施して丸め乗算値を出力する乗算方法において、
前記被乗数データの符号ビットと前記乗数データの符号
ビットとの排他的論理和に応じて丸め用の加算データを
発生することを特徴としている。また、請求項4に記載
の発明では、前記被乗数データと前記乗数データとによ
り生成される部分積に前記丸め用の加算データを加算す
ることを特徴としている。
【0013】
【作用】本発明では、丸め値発生手段が被乗数データの
符号ビットと前記乗数データの符号ビットとの排他的論
理和に応じて丸め用の加算データを発生するから、最終
段が2入力1出力の加算器1つで構成でき、この結果、
従来に比してより高速な丸め乗算処理が可能になる。
符号ビットと前記乗数データの符号ビットとの排他的論
理和に応じて丸め用の加算データを発生するから、最終
段が2入力1出力の加算器1つで構成でき、この結果、
従来に比してより高速な丸め乗算処理が可能になる。
【0014】
【実施例】以下、図面を参照して本発明の実施例につい
て説明する。図1は、本発明の一実施例である乗算回路
の構成を示す回路図であり、図3に示す各部と共通する
部分には同一の番号を付し、その説明を省略する。この
図に示す乗算器が図3に示した従来のものと異なる点
は、部分積の加算過程において、エクスクルーシブオア
回路60が同時に乗算結果C=A×Bの正負の判定を行
い、その判定結果SGNに応じてセレクタ50が定数
「1000」あるいは「0111」を選択して加算器3
0に供給するようにし、これにより、最終段が2入力1
出力の加算器40で構成されるため、従来に比してより
高速な丸め乗算処理が可能になる。以下、こうした点に
ついて説明する。
て説明する。図1は、本発明の一実施例である乗算回路
の構成を示す回路図であり、図3に示す各部と共通する
部分には同一の番号を付し、その説明を省略する。この
図に示す乗算器が図3に示した従来のものと異なる点
は、部分積の加算過程において、エクスクルーシブオア
回路60が同時に乗算結果C=A×Bの正負の判定を行
い、その判定結果SGNに応じてセレクタ50が定数
「1000」あるいは「0111」を選択して加算器3
0に供給するようにし、これにより、最終段が2入力1
出力の加算器40で構成されるため、従来に比してより
高速な丸め乗算処理が可能になる。以下、こうした点に
ついて説明する。
【0015】図1に示す乗算回路は、図3に示す従来例
と同様に、2の補数表現m+1ビットの被乗数データA
(Am,Am−1,..,A1,A0)と、2の補数表
現6ビットの乗数B(B5,..,B1,B0)とを乗
算し、乗算結果の下位4ビットを丸めて出力dを発生す
るものである。まず、入力端子aから被乗数データA
(Am,Am−1,..,A1,A0)が入力されると
共に、入力端子b5〜b0にそれぞれ乗数B5〜B0が
入力されると、従来と同様にして、部分積A×B0、A
×B1、A×B2、A×B3、A×B4、A×B5が、
アンド回路10〜15から出力される。これら部分積
は、シフト回路20〜25によりシフトされ、加算器3
0〜34により加算される。但し、B5は符号ビットで
あり、部分積A×B5は負の重みを持っているので、加
算器34において加算する前に、(−1)倍回路26に
おいて(−1)倍している。
と同様に、2の補数表現m+1ビットの被乗数データA
(Am,Am−1,..,A1,A0)と、2の補数表
現6ビットの乗数B(B5,..,B1,B0)とを乗
算し、乗算結果の下位4ビットを丸めて出力dを発生す
るものである。まず、入力端子aから被乗数データA
(Am,Am−1,..,A1,A0)が入力されると
共に、入力端子b5〜b0にそれぞれ乗数B5〜B0が
入力されると、従来と同様にして、部分積A×B0、A
×B1、A×B2、A×B3、A×B4、A×B5が、
アンド回路10〜15から出力される。これら部分積
は、シフト回路20〜25によりシフトされ、加算器3
0〜34により加算される。但し、B5は符号ビットで
あり、部分積A×B5は負の重みを持っているので、加
算器34において加算する前に、(−1)倍回路26に
おいて(−1)倍している。
【0016】本発明においては、部分積の加算過程にお
いて、丸め用の加算(C=A×Bが0または正の場合
(1,0,0,0)の加算、C=A×Bが負の場合
(0,1,1,1)の加算)を同時に行っている。エク
スクルーシブ回路60は、乗算結果Cの正負の判定を行
い、その判定結果SGN)に応じてセレクタ50が乗数
「1000」または「0111」を選択し、その値を加
算器30に供給する。
いて、丸め用の加算(C=A×Bが0または正の場合
(1,0,0,0)の加算、C=A×Bが負の場合
(0,1,1,1)の加算)を同時に行っている。エク
スクルーシブ回路60は、乗算結果Cの正負の判定を行
い、その判定結果SGN)に応じてセレクタ50が乗数
「1000」または「0111」を選択し、その値を加
算器30に供給する。
【0017】乗算結果C=A×Bが0または正となる場
合は、「A=0または正、かつ、B=0または正」、ま
たは、「A=負、かつ、B=負」である。即ち、「Am
(Aの符号ビット)=0かつ、B5(Bの符号ビット)
=0」、または、「Am(Aの符号ビット)=1かつ、
B5(Bの符号ビット)=1」である。従って、Amと
B5のEOR(エクスクルーシブオア)の値SGNが0
のときは、丸め用として、(1,0,0,0)を加算す
れば良い。すなわち、加算器30〜34により、A×B
の部分積(A×B0〜A×B5)と(1,0,0,0)
が加算され、加算器34から1桁あたり2本の信号とい
う冗長な形式で出力される。この冗長な形式は、加算器
40において通常の2の補数表現に変換され、下位4ビ
ットが無視されて、出力端子dから出力される。
合は、「A=0または正、かつ、B=0または正」、ま
たは、「A=負、かつ、B=負」である。即ち、「Am
(Aの符号ビット)=0かつ、B5(Bの符号ビット)
=0」、または、「Am(Aの符号ビット)=1かつ、
B5(Bの符号ビット)=1」である。従って、Amと
B5のEOR(エクスクルーシブオア)の値SGNが0
のときは、丸め用として、(1,0,0,0)を加算す
れば良い。すなわち、加算器30〜34により、A×B
の部分積(A×B0〜A×B5)と(1,0,0,0)
が加算され、加算器34から1桁あたり2本の信号とい
う冗長な形式で出力される。この冗長な形式は、加算器
40において通常の2の補数表現に変換され、下位4ビ
ットが無視されて、出力端子dから出力される。
【0018】一方、乗算結果C=A×Bが負となるの
は、「A=0または正、かつ、B=負」、または、「A
=負、かつ、B=0または正」である。即ち、「Am
(Aの符号ビット)=0かつ、B5(Bの符号ビット)
=1」、または、「Am(Aの符号ビット)=1かつ、
B5(Bの符号ビット)=0」である。従って、Amと
B5のEORの値SGNが1のときは、丸め用として、
(0,1,1,1)を加算すれば良い。すなわち、加算
器30〜34により、A×Bの部分積(A×B0〜A×
B5)と(0,1,1,1)が加算され、加算器34か
ら1桁あたり2本の信号という冗長な形式で出力され
る。この冗長な形式は、加算器40において通常の2の
補数表現に変換され、下位4ビットが無視されて、出力
端子dから出力される。
は、「A=0または正、かつ、B=負」、または、「A
=負、かつ、B=0または正」である。即ち、「Am
(Aの符号ビット)=0かつ、B5(Bの符号ビット)
=1」、または、「Am(Aの符号ビット)=1かつ、
B5(Bの符号ビット)=0」である。従って、Amと
B5のEORの値SGNが1のときは、丸め用として、
(0,1,1,1)を加算すれば良い。すなわち、加算
器30〜34により、A×Bの部分積(A×B0〜A×
B5)と(0,1,1,1)が加算され、加算器34か
ら1桁あたり2本の信号という冗長な形式で出力され
る。この冗長な形式は、加算器40において通常の2の
補数表現に変換され、下位4ビットが無視されて、出力
端子dから出力される。
【0019】「A=0、かつ、B=負」、または、「A
=負、かつ、B=0」のときは、C=A×B=0である
が、上述の回路ではCが負の場合と判定してしまい、丸
め用に(0,1,1,1)が加算されてしまう。即ち、
A×B+(0,1,1,1)が計算されてしまう。しか
し、A×B=0であるから、A×B+(0,1,1,
1)=(0,0,0,..,0,0,0,0,0,1,
1,1)であり、下位4ビットを無視すれば0となるの
で、正しい丸め結果が出力されることになる。こうした
場合分けの結果を図2に例示しておく。
=負、かつ、B=0」のときは、C=A×B=0である
が、上述の回路ではCが負の場合と判定してしまい、丸
め用に(0,1,1,1)が加算されてしまう。即ち、
A×B+(0,1,1,1)が計算されてしまう。しか
し、A×B=0であるから、A×B+(0,1,1,
1)=(0,0,0,..,0,0,0,0,0,1,
1,1)であり、下位4ビットを無視すれば0となるの
で、正しい丸め結果が出力されることになる。こうした
場合分けの結果を図2に例示しておく。
【0020】図1において、判定結果SGNによってセ
レクタ50を切り替えて、加算器30へ(1,0,0,
0)または(0,1,1,1)を入力することで、丸め
用の加算データを加算している。これは、図示省略した
反転回路にSGNを入力させて、XSGN(SGNの反
転した値)を作成し、(XSGN,SGN,SGN,S
GN)という4ビットの信号を直接に加算器30に入力
することでも、丸め用の加算データを加算できる。この
とき、セレクタ50は不要となる。
レクタ50を切り替えて、加算器30へ(1,0,0,
0)または(0,1,1,1)を入力することで、丸め
用の加算データを加算している。これは、図示省略した
反転回路にSGNを入力させて、XSGN(SGNの反
転した値)を作成し、(XSGN,SGN,SGN,S
GN)という4ビットの信号を直接に加算器30に入力
することでも、丸め用の加算データを加算できる。この
とき、セレクタ50は不要となる。
【0021】従来、Cの正負の判定のために、2入力1
出力の加算器140で冗長な形式から通常の2の補数表
現に変換する加算を行い、その出力結果であるCの符号
ビットを使用していた。そのため、計算時間の遅い2入
力1出力の加算器を2つ(図2の140、141)使っ
ていたが、本発明によれば、上述したように、乗算結果
Cの正負の判定を被乗数Aの符号ビットAmと乗数Bの
符号ビットB5とから直接求めているので、2入力1出
力の加算器は最終段に1つ(加算器40)で済む。従っ
て、従来よりも高速な丸め乗算処理が可能になる訳であ
る。
出力の加算器140で冗長な形式から通常の2の補数表
現に変換する加算を行い、その出力結果であるCの符号
ビットを使用していた。そのため、計算時間の遅い2入
力1出力の加算器を2つ(図2の140、141)使っ
ていたが、本発明によれば、上述したように、乗算結果
Cの正負の判定を被乗数Aの符号ビットAmと乗数Bの
符号ビットB5とから直接求めているので、2入力1出
力の加算器は最終段に1つ(加算器40)で済む。従っ
て、従来よりも高速な丸め乗算処理が可能になる訳であ
る。
【0022】乗算器として、Boothのアルゴリズム
を用いた乗算器や、部分積の加算順番を最適にするWa
llace方式を用いた乗算器などがあるが、本発明は
このような乗算器にも適用できることは言うまでもな
い。さらに、被乗数あるいは乗数のいずれか一方が常に
正であることが保証されていれば、他方の数の符号ビッ
トのみでCの正負の判定ができるので、直接にその符号
ビットをセレクタ50の選択信号(図1のSGN)とし
て使用しても良い。逆に、被乗数あるいは乗数のいずれ
か一方が常に負であることが保証されていれば、他方の
数の符号ビットのみでCの正負の判定ができるので、そ
の符号ビットの反転値をセレクタ50の選択信号(図1
のSGN)として使用しても良い。
を用いた乗算器や、部分積の加算順番を最適にするWa
llace方式を用いた乗算器などがあるが、本発明は
このような乗算器にも適用できることは言うまでもな
い。さらに、被乗数あるいは乗数のいずれか一方が常に
正であることが保証されていれば、他方の数の符号ビッ
トのみでCの正負の判定ができるので、直接にその符号
ビットをセレクタ50の選択信号(図1のSGN)とし
て使用しても良い。逆に、被乗数あるいは乗数のいずれ
か一方が常に負であることが保証されていれば、他方の
数の符号ビットのみでCの正負の判定ができるので、そ
の符号ビットの反転値をセレクタ50の選択信号(図1
のSGN)として使用しても良い。
【0023】
【発明の効果】本発明によれば、丸め値発生手段が被乗
数データの符号ビットと前記乗数データの符号ビットと
の排他的論理和に応じて丸め用の加算データを発生する
から、最終段が2入力1出力の加算器1つで構成でき、
この結果、従来に比して高速な丸め乗算処理を行うこと
ができる。
数データの符号ビットと前記乗数データの符号ビットと
の排他的論理和に応じて丸め用の加算データを発生する
から、最終段が2入力1出力の加算器1つで構成でき、
この結果、従来に比して高速な丸め乗算処理を行うこと
ができる。
【図1】本発明に係わる乗算回路の一実施例の構成を示
す回路図である。
す回路図である。
【図2】同実施例における乗算結果Cの正負判定を説明
するための図である。
するための図である。
【図3】従来例を説明するための図である。
【図4】従来例を説明するための図である。
【図5】従来例を説明するための図である。
【図6】従来例を説明するための図である。
【図7】従来例を説明するための図である。
10〜15 アンド回路 20〜25 シフト回路 30〜34 3入力2出力構成の加算器 40,140,141 2入力1出力構成の加算器 50,150 セレクタ 60 エクスクルーシブオア回路 200 丸め回路
Claims (4)
- 【請求項1】 被乗数データと乗数データとを乗算した
結果に丸め演算を施して丸め乗算値を出力する乗算回路
において、 前記被乗数データの符号ビットと前記乗数データの符号
ビットとの排他的論理和に応じて丸め用の加算データを
発生する丸め値発生手段を具備することを特徴とする乗
算回路。 - 【請求項2】 前記被乗数データと前記乗数データとに
より生成される部分積に前記丸め用の加算データを加算
する丸め加算手段を備えることを特徴とする請求項1記
載の乗算回路。 - 【請求項3】 被乗数データと乗数データとを乗算した
結果に丸め演算を施して丸め乗算値を出力する乗算方法
において、 前記被乗数データの符号ビットと前記乗数データの符号
ビットとの排他的論理和に応じて丸め用の加算データを
発生することを特徴とする乗算方法。 - 【請求項4】 前記被乗数データと前記乗数データとに
より生成される部分積に前記丸め用の加算データを加算
することを特徴とする請求項3記載の乗算方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5280393A JPH07114454A (ja) | 1993-10-14 | 1993-10-14 | 乗算回路および乗算方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5280393A JPH07114454A (ja) | 1993-10-14 | 1993-10-14 | 乗算回路および乗算方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07114454A true JPH07114454A (ja) | 1995-05-02 |
Family
ID=17624407
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5280393A Pending JPH07114454A (ja) | 1993-10-14 | 1993-10-14 | 乗算回路および乗算方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07114454A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6167419A (en) * | 1997-04-01 | 2000-12-26 | Matsushita Electric Industrial Co., Ltd. | Multiplication method and multiplication circuit |
-
1993
- 1993-10-14 JP JP5280393A patent/JPH07114454A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6167419A (en) * | 1997-04-01 | 2000-12-26 | Matsushita Electric Industrial Co., Ltd. | Multiplication method and multiplication circuit |
| US6167420A (en) * | 1997-04-01 | 2000-12-26 | Matsushita Electric Industrial Co., Ltd. | Multiplication method and multiplication circuit |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7395304B2 (en) | Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic | |
| US6233597B1 (en) | Computing apparatus for double-precision multiplication | |
| US5367477A (en) | Method and apparatus for performing parallel zero detection in a data processing system | |
| JP3345894B2 (ja) | 浮動小数点乗算器 | |
| US5870322A (en) | Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication | |
| JPH08314697A (ja) | 符号付き/符号なし数兼用乗算器 | |
| JPH07114454A (ja) | 乗算回路および乗算方法 | |
| WO1992022027A1 (fr) | Appareil diviseur | |
| JPS58137045A (ja) | 並列乗算器 | |
| JPH10111791A (ja) | 除算装置 | |
| JP3019796B2 (ja) | 乗算器 | |
| JP2991788B2 (ja) | 復号器 | |
| JP2765516B2 (ja) | 積和演算器 | |
| JP2606326B2 (ja) | 乗算器 | |
| JP2606339B2 (ja) | 乗算器 | |
| JPH1115641A (ja) | 冗長2進加算器を用いた乗算装置 | |
| JPS6259828B2 (ja) | ||
| JP2907276B2 (ja) | 演算処理装置 | |
| JP4042215B2 (ja) | 演算処理装置およびその方法 | |
| JPS593634A (ja) | 乗算器 | |
| JP2744299B2 (ja) | 演算処理装置及び方法 | |
| JPS62214435A (ja) | デイジタル除算回路 | |
| Mahmoud et al. | A parallel combined binary/decimal fixed-point multiplier with binary partial products reduction tree | |
| JPH04359370A (ja) | ベクトル演算回路 | |
| JPH10312269A (ja) | 積和演算器 |