JPH05241793A - 倍精度乗算器 - Google Patents
倍精度乗算器Info
- Publication number
- JPH05241793A JPH05241793A JP4039265A JP3926592A JPH05241793A JP H05241793 A JPH05241793 A JP H05241793A JP 4039265 A JP4039265 A JP 4039265A JP 3926592 A JP3926592 A JP 3926592A JP H05241793 A JPH05241793 A JP H05241793A
- Authority
- JP
- Japan
- Prior art keywords
- multiplier
- output
- precision
- multiplicand
- data
- 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.)
- Withdrawn
Links
- 239000004606 Fillers/Extenders Substances 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000000295 complement effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000000034 method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Abstract
(57)【要約】
【目的】 乗数語長と被乗数語長との積に比例してハー
ドウェア量が増えず、小さな回路規模で、単精度でも効
率的な乗算動作を可能にする。 【構成】 倍精度の被乗数X及び乗数Yが入力すると、
その一部のデータが選択器51,52でそれぞれ選択さ
れた後、単精度乗算器53で2次ブースアルゴリズムに
基づいて乗算される。この乗算結果は、レジスタ54に
一時格納された後、加算器55へ送られる。加算器55
の出力を一時格納するレジスタ56の出力は、シフト・
符号拡張器57により、シフト及び符号拡張される。選
択器58では、シフト・符号拡張器57の出力または
“0”のいずれか一方を選択する。加算器55では、レ
ジスタ54の出力と選択器58の出力を加算し、レジス
タ56を介して倍精度乗算結果を出力する。
ドウェア量が増えず、小さな回路規模で、単精度でも効
率的な乗算動作を可能にする。 【構成】 倍精度の被乗数X及び乗数Yが入力すると、
その一部のデータが選択器51,52でそれぞれ選択さ
れた後、単精度乗算器53で2次ブースアルゴリズムに
基づいて乗算される。この乗算結果は、レジスタ54に
一時格納された後、加算器55へ送られる。加算器55
の出力を一時格納するレジスタ56の出力は、シフト・
符号拡張器57により、シフト及び符号拡張される。選
択器58では、シフト・符号拡張器57の出力または
“0”のいずれか一方を選択する。加算器55では、レ
ジスタ54の出力と選択器58の出力を加算し、レジス
タ56を介して倍精度乗算結果を出力する。
Description
【0001】
【産業上の利用分野】本発明は、論理集積回路等におい
て、2次のbooth(ブース)アルゴリズムを用いて
倍精度のビット長のデータからなる乗数Yと被乗数Xと
の乗算を行う倍精度乗算器に関するものである。
て、2次のbooth(ブース)アルゴリズムを用いて
倍精度のビット長のデータからなる乗数Yと被乗数Xと
の乗算を行う倍精度乗算器に関するものである。
【0002】
【従来の技術】従来、倍精度乗算器としては、例えば次
のような文献に記載されるものがあり、以下その構成を
図を用いて説明する。 文献;飯塚哲哉著「CMOS超LSIの設計」(1989−
4 −25)培風館、P.224−226 図2は、前記文献等に記載された従来の倍精度乗算器の
一構成例を示すブロック図である。この倍精度乗算器
は、m×nの2次のブース乗算器であり、nビットの乗
数Y0 〜Yn-1 を2次のブースアルゴリズムに基づいて
デコードして複数のデコード出力COEFを出力するブ
ースデコーダ回路部10と、複数のデコード出力COE
Fに基づき被乗数X0 〜Xm-1 の部分積を求める部分積
アレー回路部20と、該部分積アレー回路部20の出力
を最終加算してm+n−1ビットの積D0 〜Dm+n-2 を
出力する最終加算回路部30とで、構成されている。
のような文献に記載されるものがあり、以下その構成を
図を用いて説明する。 文献;飯塚哲哉著「CMOS超LSIの設計」(1989−
4 −25)培風館、P.224−226 図2は、前記文献等に記載された従来の倍精度乗算器の
一構成例を示すブロック図である。この倍精度乗算器
は、m×nの2次のブース乗算器であり、nビットの乗
数Y0 〜Yn-1 を2次のブースアルゴリズムに基づいて
デコードして複数のデコード出力COEFを出力するブ
ースデコーダ回路部10と、複数のデコード出力COE
Fに基づき被乗数X0 〜Xm-1 の部分積を求める部分積
アレー回路部20と、該部分積アレー回路部20の出力
を最終加算してm+n−1ビットの積D0 〜Dm+n-2 を
出力する最終加算回路部30とで、構成されている。
【0003】ブースデコーダ回路部10は、乗数Y0 〜
Yn-1 をデコードするn÷2個(但し、nは偶数)のブ
ースデコーダ回路11,12,13,14,…で構成さ
れている。部分積アレー回路部20は、シフタとキャリ
ー・セーブ・アダーで構成されたn÷2個の部分積アレ
ー回路21,22,23,24,…で構成されている。
各部分積アレー回路21,22,23,24,…は、被
乗数X0 〜Xm-1 を入力する複数の加算入力端子A、複
数の桁上げ出力端子CO、及び複数の和出力端子SOを
それぞれ有している。
Yn-1 をデコードするn÷2個(但し、nは偶数)のブ
ースデコーダ回路11,12,13,14,…で構成さ
れている。部分積アレー回路部20は、シフタとキャリ
ー・セーブ・アダーで構成されたn÷2個の部分積アレ
ー回路21,22,23,24,…で構成されている。
各部分積アレー回路21,22,23,24,…は、被
乗数X0 〜Xm-1 を入力する複数の加算入力端子A、複
数の桁上げ出力端子CO、及び複数の和出力端子SOを
それぞれ有している。
【0004】最終加算回路部30は、各部分積アレー回
路21,22,23,24,…内のキャリー・セーブ・
アダー出力を最終加算する複数の最終加算回路31,3
2,33,34,35,36,37,38,39,4
0,41,…で構成されている。各最終加算回路31,
32,…は、加算入力端子A,B、桁上げ入力端子C
I、桁上げ出力端子CO、及び積Dを出力する和出力端
子Sをそれぞれ有している。
路21,22,23,24,…内のキャリー・セーブ・
アダー出力を最終加算する複数の最終加算回路31,3
2,33,34,35,36,37,38,39,4
0,41,…で構成されている。各最終加算回路31,
32,…は、加算入力端子A,B、桁上げ入力端子C
I、桁上げ出力端子CO、及び積Dを出力する和出力端
子Sをそれぞれ有している。
【0005】次に、図2に示す倍精度乗算器の動作を説
明する。被乗数Xと乗数Yの積D=X・Yは、2の補数
表記を用いて表すと、次式(1)のようになる。 この(1)式において、pは乗数Yのビット長を2で割
った数を超えてその数に一番近い整数である。yの添字
はビットの桁を表しており、0が最下位ビット(LS
B)で、数が増える方向が上位ビットとなる。右辺i=
1のときのΣの括弧内の第3項のyの添字は−1となる
が、これはビットが存在しないのでy-1は“0”とな
る。
明する。被乗数Xと乗数Yの積D=X・Yは、2の補数
表記を用いて表すと、次式(1)のようになる。 この(1)式において、pは乗数Yのビット長を2で割
った数を超えてその数に一番近い整数である。yの添字
はビットの桁を表しており、0が最下位ビット(LS
B)で、数が増える方向が上位ビットとなる。右辺i=
1のときのΣの括弧内の第3項のyの添字は−1となる
が、これはビットが存在しないのでy-1は“0”とな
る。
【0006】(1)式の右辺は、被乗数XとΣ以下で表
した式の積である。Σの項はi=1からpまであり、括
弧で括られている項と2の累乗の項の2種類で成り立っ
ている。前者を被乗数Xの第1の係数、後者を被乗数X
の第2の係数と呼ぶこととする。被乗数Xの第1の係数
のとりうる値は±2,±1,0である。被乗数Xの第2
の係数のとりうる値は2の偶数乗で、範囲は0〜2(p
−1)である。ブースデコーダ回路11,12,…で
は、被乗数Xの第1の係数を実現するため、乗数Yのう
ちの3ビットの乗数デジットy2(i-1)+1,y2(i-1),y
2(i-1)-1から±2,±1,0の5種類の値をそれぞれデ
コードする。被乗数Xの第1の係数と被乗数Xの積は、
各ブースデコーダ回路11,12,…から出力されるデ
コード出力COEFによって制御される各部分積アレー
回路21,22,…で実行される。
した式の積である。Σの項はi=1からpまであり、括
弧で括られている項と2の累乗の項の2種類で成り立っ
ている。前者を被乗数Xの第1の係数、後者を被乗数X
の第2の係数と呼ぶこととする。被乗数Xの第1の係数
のとりうる値は±2,±1,0である。被乗数Xの第2
の係数のとりうる値は2の偶数乗で、範囲は0〜2(p
−1)である。ブースデコーダ回路11,12,…で
は、被乗数Xの第1の係数を実現するため、乗数Yのう
ちの3ビットの乗数デジットy2(i-1)+1,y2(i-1),y
2(i-1)-1から±2,±1,0の5種類の値をそれぞれデ
コードする。被乗数Xの第1の係数と被乗数Xの積は、
各ブースデコーダ回路11,12,…から出力されるデ
コード出力COEFによって制御される各部分積アレー
回路21,22,…で実行される。
【0007】各部分積アレー回路21,22,…は、1
ビット左シフタ、及び2の補数変換器等で構成され、前
記5種類のデコード出力COEFの場合において次のよ
うな処理〜を行う。 被乗数Xの第1の係数が+2のとき、被乗数Xを1
ビット左シフトして出力する。 被乗数Xの第1の係数が+1のとき、被乗数Xはそ
のまま出力する。 被乗数Xの第1の係数が0のとき、0を出力する。 被乗数Xの第1の係数が−1のとき、被乗数Xの2
の補数をとって出力する。 被乗数Xの第1の係数が−2のとき、被乗数Xを1
ビット左シフトし、2の補数をとって出力する。 各部分積アレー回路21,22,…は、P個だけ用意さ
れている。そして、被乗数Xの第2の係数は、各部分積
アレー回路21,22,…の出力するビット位置を適当
にずらすことによって実現できる。そこで、部分積アレ
ー回路21,22,…に、最終加算回路部30の加算機
能を含めてΣを実行することにより、(1)式の積D=
X・Yを求めることができる。
ビット左シフタ、及び2の補数変換器等で構成され、前
記5種類のデコード出力COEFの場合において次のよ
うな処理〜を行う。 被乗数Xの第1の係数が+2のとき、被乗数Xを1
ビット左シフトして出力する。 被乗数Xの第1の係数が+1のとき、被乗数Xはそ
のまま出力する。 被乗数Xの第1の係数が0のとき、0を出力する。 被乗数Xの第1の係数が−1のとき、被乗数Xの2
の補数をとって出力する。 被乗数Xの第1の係数が−2のとき、被乗数Xを1
ビット左シフトし、2の補数をとって出力する。 各部分積アレー回路21,22,…は、P個だけ用意さ
れている。そして、被乗数Xの第2の係数は、各部分積
アレー回路21,22,…の出力するビット位置を適当
にずらすことによって実現できる。そこで、部分積アレ
ー回路21,22,…に、最終加算回路部30の加算機
能を含めてΣを実行することにより、(1)式の積D=
X・Yを求めることができる。
【0008】
【発明が解決しようとする課題】しかしながら、上記構
成の倍精度乗算器では、被乗数X及び乗数Yが倍精度の
乗算を2次のブースアルゴリズムを用いて行うため、乗
数Y及び被乗数Xの語長の積に比例した数の部分積アレ
ー回路21,22,…を組んで構成している。そのた
め、倍精度乗算器をLSI等の集積回路で構成しても、
乗数語長と被乗数語長の積に比例してハードウェア量が
増大するので、回路規模が大きくなるという問題があ
る。しかも、単精度の演算時に冗長な回路動作が発生す
るため、演算効率が低下し、それらを解決することが困
難であった。
成の倍精度乗算器では、被乗数X及び乗数Yが倍精度の
乗算を2次のブースアルゴリズムを用いて行うため、乗
数Y及び被乗数Xの語長の積に比例した数の部分積アレ
ー回路21,22,…を組んで構成している。そのた
め、倍精度乗算器をLSI等の集積回路で構成しても、
乗数語長と被乗数語長の積に比例してハードウェア量が
増大するので、回路規模が大きくなるという問題があ
る。しかも、単精度の演算時に冗長な回路動作が発生す
るため、演算効率が低下し、それらを解決することが困
難であった。
【0009】本発明は、前記従来技術が持っていた課題
として、ハードウェア量が乗数語数と被乗数語数の積に
比例して増大すること、及び単精度の演算時に冗長な回
路動作が発生して演算効率が低下するという点について
解決した、ハードウェア量が乗数語長と被乗数語長の積
に比例して増えず、単精度でも効率的な動作が行える倍
精度乗算器を提供するものである。
として、ハードウェア量が乗数語数と被乗数語数の積に
比例して増大すること、及び単精度の演算時に冗長な回
路動作が発生して演算効率が低下するという点について
解決した、ハードウェア量が乗数語長と被乗数語長の積
に比例して増えず、単精度でも効率的な動作が行える倍
精度乗算器を提供するものである。
【0010】
【課題を解決するための手段】本発明は、前記課題を解
決するために、2次ブースアルゴリズムを用いて倍精度
のビット長のデータからなる乗数Yと被乗数Xとの乗算
を行う倍精度乗算器において、制御信号CXにより、前
記被乗数Xの一部のデータを選択して単精度のビット長
のデータを出力する第1の選択器と、制御信号CYによ
り、前記乗数Yの一部のデータを選択して単精度のビッ
ト長のデータを出力する機能を有し、前記第1の選択器
の構成と同一またはビット選択位置が異なる第2の選択
器とを、備えている。
決するために、2次ブースアルゴリズムを用いて倍精度
のビット長のデータからなる乗数Yと被乗数Xとの乗算
を行う倍精度乗算器において、制御信号CXにより、前
記被乗数Xの一部のデータを選択して単精度のビット長
のデータを出力する第1の選択器と、制御信号CYによ
り、前記乗数Yの一部のデータを選択して単精度のビッ
ト長のデータを出力する機能を有し、前記第1の選択器
の構成と同一またはビット選択位置が異なる第2の選択
器とを、備えている。
【0011】さらに、前記乗数Yの−1桁を2次ブース
デコーダで展開可能な機能を有し、前記2次ブースアル
ゴリズムに基づいて前記第1及び第2の選択器の出力を
乗算する単精度乗算器と、前記単精度乗算器の出力を一
時記憶する第1のレジスタと、前記第1のレジスタの出
力を第1の入力として該第1の入力と第2の入力とを加
算する加算器と、前記加算器の出力を一時記憶する第2
のレジスタと、制御信号SAによって前記第2のレジス
タの出力をシフト及び符号拡張するシフト・符号拡張器
と、前記シフト・符号拡張器の出力と論理“0”とのい
ずれか一方を制御信号SBにより選択して前記加算器に
前記第2の入力として与える第3の選択器とが、設けら
れている。
デコーダで展開可能な機能を有し、前記2次ブースアル
ゴリズムに基づいて前記第1及び第2の選択器の出力を
乗算する単精度乗算器と、前記単精度乗算器の出力を一
時記憶する第1のレジスタと、前記第1のレジスタの出
力を第1の入力として該第1の入力と第2の入力とを加
算する加算器と、前記加算器の出力を一時記憶する第2
のレジスタと、制御信号SAによって前記第2のレジス
タの出力をシフト及び符号拡張するシフト・符号拡張器
と、前記シフト・符号拡張器の出力と論理“0”とのい
ずれか一方を制御信号SBにより選択して前記加算器に
前記第2の入力として与える第3の選択器とが、設けら
れている。
【0012】
【作用】本発明によれば、以上のように倍精度乗算器を
構成したので、倍精度の被乗数X及び乗数Yが入力され
ると、その一部のデータが第1,第2の選択器で選択さ
れ、単精度の乗算器へ送られる。単精度の乗算器では、
第1,第2の選択器の出力を入力し、乗数Yの−1桁を
2次ブースデコーダで展開すると共に、該第1,第2の
選択器の出力の乗算を行う。この乗算結果は、第1のレ
ジスタに一時格納された後、加算器の第1の入力端子へ
送られる。加算器の出力を一時格納する第2のレジスタ
の出力は、シフト・符号拡張器によって所定量だけシフ
ト及び符号拡張された後、第3の選択器へ送られる。第
3の選択器では、シフト・符号拡張器の出力または
“0”のいずれか一方を選択して加算器の第2の入力端
子へ送る。加算器では、第1,第2の入力端子から入力
されるデータを加算する。この加算結果は、第3のレジ
スタに一時格納された後、倍精度乗算結果として出力さ
れる。従って、前記課題を解決できるのである。
構成したので、倍精度の被乗数X及び乗数Yが入力され
ると、その一部のデータが第1,第2の選択器で選択さ
れ、単精度の乗算器へ送られる。単精度の乗算器では、
第1,第2の選択器の出力を入力し、乗数Yの−1桁を
2次ブースデコーダで展開すると共に、該第1,第2の
選択器の出力の乗算を行う。この乗算結果は、第1のレ
ジスタに一時格納された後、加算器の第1の入力端子へ
送られる。加算器の出力を一時格納する第2のレジスタ
の出力は、シフト・符号拡張器によって所定量だけシフ
ト及び符号拡張された後、第3の選択器へ送られる。第
3の選択器では、シフト・符号拡張器の出力または
“0”のいずれか一方を選択して加算器の第2の入力端
子へ送る。加算器では、第1,第2の入力端子から入力
されるデータを加算する。この加算結果は、第3のレジ
スタに一時格納された後、倍精度乗算結果として出力さ
れる。従って、前記課題を解決できるのである。
【0013】
【実施例】図1は、本発明の一実施例を示す倍精度乗算
器の構成ブロック図である。この倍精度乗算器は、例え
ば、32ビット×32ビット=63ビットを5マシンサ
イクル(MC)で実行する回路である。なお、乗数Y及
び被乗数Xを順次入力すれば、平均4MCで実行可能で
ある。この倍精度乗算器は、32ビットの被乗数Xのデ
ータから17ビットのデータMPY−Xを選択信号CX
で選択する第1の選択器51と、32ビットの乗数Yの
データから17ビットのデータMPY−Yを制御信号C
Xで選択する第2の選択器52とを備え、それらの出力
側に単精度の乗算器53が接続されている。
器の構成ブロック図である。この倍精度乗算器は、例え
ば、32ビット×32ビット=63ビットを5マシンサ
イクル(MC)で実行する回路である。なお、乗数Y及
び被乗数Xを順次入力すれば、平均4MCで実行可能で
ある。この倍精度乗算器は、32ビットの被乗数Xのデ
ータから17ビットのデータMPY−Xを選択信号CX
で選択する第1の選択器51と、32ビットの乗数Yの
データから17ビットのデータMPY−Yを制御信号C
Xで選択する第2の選択器52とを備え、それらの出力
側に単精度の乗算器53が接続されている。
【0014】単精度の乗算器53は、第1,第2の選択
器51,52から出力されたデータMPY−X,MPY
−Yを2次ブースアルゴリズムに基づいて乗算し、32
ビットのデータMPY−Dを出力する機能を有し、その
出力側には、32ビットの第1のレジスタ54が接続さ
れている。このレジスタ54は、乗算器53から出力さ
れた32ビットのデータMPY−Dを一時記憶し、所定
のタイミングで記憶した32ビットのデータADD−A
を所定のタイミングで出力する機能を有し、その出力側
が、33ビットの加算器55の第1の入力端子Aに接続
されている。加算器55は、第1の入力端子Aに入力さ
れた32ビットのデータADD−Aの最上位ビット(M
SB)を1ビット、符号拡張し、それと、第2の入力端
子Bから入力される33ビットのデータADD−Bとを
加算し、出力端子Sから33ビットの加算結果を出力す
る回路であり、その出力側に第2のレジスタ56が接続
されている。レジスタ56は、加算器55から出力され
る33ビットのデータを一時記憶し、その記憶された3
3ビットの出力データOUTを所定のタイミングで出力
する機能を有し、その出力側にシフト・符号拡張器57
が接続されている。
器51,52から出力されたデータMPY−X,MPY
−Yを2次ブースアルゴリズムに基づいて乗算し、32
ビットのデータMPY−Dを出力する機能を有し、その
出力側には、32ビットの第1のレジスタ54が接続さ
れている。このレジスタ54は、乗算器53から出力さ
れた32ビットのデータMPY−Dを一時記憶し、所定
のタイミングで記憶した32ビットのデータADD−A
を所定のタイミングで出力する機能を有し、その出力側
が、33ビットの加算器55の第1の入力端子Aに接続
されている。加算器55は、第1の入力端子Aに入力さ
れた32ビットのデータADD−Aの最上位ビット(M
SB)を1ビット、符号拡張し、それと、第2の入力端
子Bから入力される33ビットのデータADD−Bとを
加算し、出力端子Sから33ビットの加算結果を出力す
る回路であり、その出力側に第2のレジスタ56が接続
されている。レジスタ56は、加算器55から出力され
る33ビットのデータを一時記憶し、その記憶された3
3ビットの出力データOUTを所定のタイミングで出力
する機能を有し、その出力側にシフト・符号拡張器57
が接続されている。
【0015】シフト・符号拡張器57は、33ビットの
出力データOUTを制御信号SAによって所定量だけ右
シフト及び符号拡張し、33ビットのデータを出力する
回路であり、その出力側には、第3の選択器58を介し
て加算器55の第2の入力端子Bが接続されている。選
択器58は、シフト・符号拡張器57から出力される3
3ビットのデータと“0”とのいずれか一方を制御信号
SBによって選択し、その選択した33ビットのデータ
ADD−Bを加算器55の第2の入力端子Bに供給する
機能を有している。
出力データOUTを制御信号SAによって所定量だけ右
シフト及び符号拡張し、33ビットのデータを出力する
回路であり、その出力側には、第3の選択器58を介し
て加算器55の第2の入力端子Bが接続されている。選
択器58は、シフト・符号拡張器57から出力される3
3ビットのデータと“0”とのいずれか一方を制御信号
SBによって選択し、その選択した33ビットのデータ
ADD−Bを加算器55の第2の入力端子Bに供給する
機能を有している。
【0016】図3は、図1に示す単精度の乗算器53の
構成例を示すブロック図であり、図2中の要素と共通の
要素には共通の符号が付されている。この単精度の乗算
器53は、従来の図2に示す倍精度乗算器においてビッ
ト数n,mをそれぞれ17,16にした回路構成であ
る。即ち、この乗算器53は、−1桁目を含む17ビッ
ト長の乗数データMPY−Yを2次のブースアルゴリズ
ムに基づきデコードするブースデコーダ回路部10S
と、17ビット長の被乗数データMPY−Xの部分積を
求める部分積アレー回路部20Sと、該部分積アレー回
路部20S内のキャリー・セーブ・アダー出力を最終加
算する最終加算回路部30Sとで構成されている。ブー
スデコーダ回路部10Sは、図2よりも少ない数のブー
スデコーダ回路11,12,…で構成されている。同様
に、部分積アレー回路部20Sは図2よりも少ない数の
部分積アレー回路21,22,…で構成され、最終加算
回路部30Sも図2よりも少ない数の最終加算回路3
1,32,…で構成されている。
構成例を示すブロック図であり、図2中の要素と共通の
要素には共通の符号が付されている。この単精度の乗算
器53は、従来の図2に示す倍精度乗算器においてビッ
ト数n,mをそれぞれ17,16にした回路構成であ
る。即ち、この乗算器53は、−1桁目を含む17ビッ
ト長の乗数データMPY−Yを2次のブースアルゴリズ
ムに基づきデコードするブースデコーダ回路部10S
と、17ビット長の被乗数データMPY−Xの部分積を
求める部分積アレー回路部20Sと、該部分積アレー回
路部20S内のキャリー・セーブ・アダー出力を最終加
算する最終加算回路部30Sとで構成されている。ブー
スデコーダ回路部10Sは、図2よりも少ない数のブー
スデコーダ回路11,12,…で構成されている。同様
に、部分積アレー回路部20Sは図2よりも少ない数の
部分積アレー回路21,22,…で構成され、最終加算
回路部30Sも図2よりも少ない数の最終加算回路3
1,32,…で構成されている。
【0017】この単精度の乗算器53では、図1の選択
器51から出力される17ビット長の被乗数データMP
Y−Xと、選択器52から出力される17ビット長の乗
数データMPY−Yとを、任意のブースアルゴリズムに
基づいて乗算し、その乗算結果である32ビットのデー
タMPY−Dを出力する機能を有している。但し、この
単精度の乗算器53では、従来の図2のものと異なり、
乗数データMPY−Yの−1桁をブースデコーダ回路1
1で展開するため、乗数データMPY−Yの最下位ビッ
ト(LSB)y-1が−1桁の数として処理される。即
ち、本乗算器53は、前記(1)式のp=8で与えられ
る処理をし、かつy-1の値は乗数データMPY−YのL
SBとして外部より入力されるようになっている。
器51から出力される17ビット長の被乗数データMP
Y−Xと、選択器52から出力される17ビット長の乗
数データMPY−Yとを、任意のブースアルゴリズムに
基づいて乗算し、その乗算結果である32ビットのデー
タMPY−Dを出力する機能を有している。但し、この
単精度の乗算器53では、従来の図2のものと異なり、
乗数データMPY−Yの−1桁をブースデコーダ回路1
1で展開するため、乗数データMPY−Yの最下位ビッ
ト(LSB)y-1が−1桁の数として処理される。即
ち、本乗算器53は、前記(1)式のp=8で与えられ
る処理をし、かつy-1の値は乗数データMPY−YのL
SBとして外部より入力されるようになっている。
【0018】図4は図1に示す倍精度乗算器のタイミン
グ図であり、この図を参照しつつ図1及び図3の動作を
説明する。図4の1MC〜4MCの間、32ビット長の
被乗数Xのデータと32ビット長の乗数Yのデータが、
第1,第2の選択器51,52にそれぞれ入力される。
第1の選択器51では、32ビット長の被乗数Xのデー
タを入力し、1ビットの制御信号CXによって2種類の
17ビット長のデータMPY−X(=XL ,XH )を生
成する。この17ビットデータMPY−X(=XL ,X
H )は、制御信号CXが、 “0”のとき、上位ビット側から“0”,X15,X14,
…,X0 ;データXL “1”のとき、上位ビット側からX31,X31,X30,
…,X16 ;データXH である。これらのデータMPY−X(=XL ,XH )
は、単精度の乗算器53に入力される。
グ図であり、この図を参照しつつ図1及び図3の動作を
説明する。図4の1MC〜4MCの間、32ビット長の
被乗数Xのデータと32ビット長の乗数Yのデータが、
第1,第2の選択器51,52にそれぞれ入力される。
第1の選択器51では、32ビット長の被乗数Xのデー
タを入力し、1ビットの制御信号CXによって2種類の
17ビット長のデータMPY−X(=XL ,XH )を生
成する。この17ビットデータMPY−X(=XL ,X
H )は、制御信号CXが、 “0”のとき、上位ビット側から“0”,X15,X14,
…,X0 ;データXL “1”のとき、上位ビット側からX31,X31,X30,
…,X16 ;データXH である。これらのデータMPY−X(=XL ,XH )
は、単精度の乗算器53に入力される。
【0019】第2の選択器52では、32ビット長の乗
数Yのデータを入力し、1ビットの制御信号CYによっ
て2種類の17ビット長のデータMPY−Y(=YL ,
YH)を生成し、単精度の乗算器53へ与える。この1
7ビットデータMPY−Y(=YL ,YH )は、制御信
号CYが、 “0”のとき、上位ビット側からY15,Y14,…,
Y0 ,“0”;データYL “1”のとき、上位ビット側からY31,Y30,…,Y15
;データYH である。
数Yのデータを入力し、1ビットの制御信号CYによっ
て2種類の17ビット長のデータMPY−Y(=YL ,
YH)を生成し、単精度の乗算器53へ与える。この1
7ビットデータMPY−Y(=YL ,YH )は、制御信
号CYが、 “0”のとき、上位ビット側からY15,Y14,…,
Y0 ,“0”;データYL “1”のとき、上位ビット側からY31,Y30,…,Y15
;データYH である。
【0020】単精度の乗算器53では、2次ブースアル
ゴリズムに基づき、入力データMPY−X(=XL ,X
H )とMPY−Y(=YL ,YH )とを乗算し、4種類
のデータXL XH ,YL ,YH でつくられた4種類の積
JLL=XL ・YL ,JHL=XH ・YL ,JLH=XL ・Y
H ,JHH=XH ・YH を出力する。乗算器53で求めた
4種類の積JLL,JHL,JLH,JHHは、32ビットの第
1のレジスタ54に一時蓄えられ、その32ビットの出
力データADD−Aが33ビット加算器55の第1の入
力端子Aに入力される。加算器55では、第1の入力端
子Aに入力されたデータADD−Aを符号拡張して33
ビットとし、それと、第2の入力端子に入力される33
ビットのデータADD−Bとを加算する。この33ビッ
トの加算結果は、第2のレジスタ56に一時蓄えられ、
その33ビットの出力データOUTがシフト・符号拡張
器57へ送られる。シフト・符号拡張器57では、33
ビットの出力データOUTを入力し、1ビットの制御信
号SAによって右シフトし、33ビットのデータを第3
の選択器58へ与える。シフト・符号拡張器57による
シフト量は、制御信号SAが、“0”のとき、0ビッ
ト、“1”のとき、16ビット、符号拡張、である。第
3の選択器58では、シフト・符号拡張器57から出力
される33ビットのデータと“0”とのいずれか一方を
制御信号SBによって選択し、その選択されたデータA
DD−Bを加算器55の第2の入力端子Bへ送る。加算
器55では、第1のレジスタ54から出力されたデータ
ADD−Aと、シフト・符号拡張器57及び選択器58
で決定されるデータADD−Bとを加算し、33ビット
の加算結果をレジスタ56を介して出力データOUTの
形で出力する。
ゴリズムに基づき、入力データMPY−X(=XL ,X
H )とMPY−Y(=YL ,YH )とを乗算し、4種類
のデータXL XH ,YL ,YH でつくられた4種類の積
JLL=XL ・YL ,JHL=XH ・YL ,JLH=XL ・Y
H ,JHH=XH ・YH を出力する。乗算器53で求めた
4種類の積JLL,JHL,JLH,JHHは、32ビットの第
1のレジスタ54に一時蓄えられ、その32ビットの出
力データADD−Aが33ビット加算器55の第1の入
力端子Aに入力される。加算器55では、第1の入力端
子Aに入力されたデータADD−Aを符号拡張して33
ビットとし、それと、第2の入力端子に入力される33
ビットのデータADD−Bとを加算する。この33ビッ
トの加算結果は、第2のレジスタ56に一時蓄えられ、
その33ビットの出力データOUTがシフト・符号拡張
器57へ送られる。シフト・符号拡張器57では、33
ビットの出力データOUTを入力し、1ビットの制御信
号SAによって右シフトし、33ビットのデータを第3
の選択器58へ与える。シフト・符号拡張器57による
シフト量は、制御信号SAが、“0”のとき、0ビッ
ト、“1”のとき、16ビット、符号拡張、である。第
3の選択器58では、シフト・符号拡張器57から出力
される33ビットのデータと“0”とのいずれか一方を
制御信号SBによって選択し、その選択されたデータA
DD−Bを加算器55の第2の入力端子Bへ送る。加算
器55では、第1のレジスタ54から出力されたデータ
ADD−Aと、シフト・符号拡張器57及び選択器58
で決定されるデータADD−Bとを加算し、33ビット
の加算結果をレジスタ56を介して出力データOUTの
形で出力する。
【0021】レジスタ56から出力される被乗数X及び
乗数Yの積Zは、図4に示す3MC〜6MCの4つの出
力データOUT(JLL,K2 ,K3 )のあるデジットで
ある。即ち、積Zを、 とおいたとき、この(2)式のデジットZ63,Z62,
…,Z0 は、それぞれJLL,K2 ,K3 のデジットK
3 32,K3 31,…,K3 0 ,K2 15,K2 14,…,K
2 0 ,JLL 15 ,JLL 14 ,…,JLL 0に対応する。従
って、乗数語長と被乗数語長の積に比例してハードウェ
ア量が増加せず、単精度の乗算器53を用いて効率的な
倍精度の乗算が行える。
乗数Yの積Zは、図4に示す3MC〜6MCの4つの出
力データOUT(JLL,K2 ,K3 )のあるデジットで
ある。即ち、積Zを、 とおいたとき、この(2)式のデジットZ63,Z62,
…,Z0 は、それぞれJLL,K2 ,K3 のデジットK
3 32,K3 31,…,K3 0 ,K2 15,K2 14,…,K
2 0 ,JLL 15 ,JLL 14 ,…,JLL 0に対応する。従
って、乗数語長と被乗数語長の積に比例してハードウェ
ア量が増加せず、単精度の乗算器53を用いて効率的な
倍精度の乗算が行える。
【0022】なお、本発明は上記実施例に限定されず、
例えば図1に示す単精度の乗算器53を図3以外の回路
で構成したり、さらに図1における乗数Y及び被乗数X
のビット数等を他の任意の数にする等、種々の変形が可
能である。
例えば図1に示す単精度の乗算器53を図3以外の回路
で構成したり、さらに図1における乗数Y及び被乗数X
のビット数等を他の任意の数にする等、種々の変形が可
能である。
【0023】
【発明の効果】以上詳細に説明したように、本発明によ
れば、倍精度の乗数Y及び被乗数Xの一部のデータを第
1,第2の選択器で選択した後、単精度の乗算器で乗算
し、その乗算結果と、シフト・符号拡張器及び第3の選
択器で決定されるデータとを、加算器で加算して倍精度
の乗算を行うようにしている。そのため、従来のように
乗数語長と被乗数語長との積に比例してハードウェア量
が増加せず、回路規模を小さくできる。しかも、単精度
の乗算器を用いて倍精度の乗算を行うので、単精度の乗
算時に効率的な乗算を行うことができる。
れば、倍精度の乗数Y及び被乗数Xの一部のデータを第
1,第2の選択器で選択した後、単精度の乗算器で乗算
し、その乗算結果と、シフト・符号拡張器及び第3の選
択器で決定されるデータとを、加算器で加算して倍精度
の乗算を行うようにしている。そのため、従来のように
乗数語長と被乗数語長との積に比例してハードウェア量
が増加せず、回路規模を小さくできる。しかも、単精度
の乗算器を用いて倍精度の乗算を行うので、単精度の乗
算時に効率的な乗算を行うことができる。
【図1】本発明の実施例を示す倍精度乗算器の構成ブロ
ック図である。
ック図である。
【図2】従来の倍精度乗算器の構成ブロック図である。
【図3】図1に示す単精度の乗算器53の構成ブロック
図である。
図である。
【図4】図1の動作を示すタイミング図である。
10S ブースデコーダ回路部 20S 部分積アレー回路部 30S 最終加算回路部 51,52,58 第1,第2,第3の選択器 53 単精度の乗算器 54,56 第1,第2のレジスタ 55 加算器 57 シフト・符号拡張器
Claims (1)
- 【請求項1】 2次ブースアルゴリズムを用いて倍精度
のビット長のデータからなる乗数Yと被乗数Xとの乗算
を行う倍精度乗算器において、 制御信号CXにより、前記被乗数Xの一部のデータを選
択して単精度のビット長のデータを出力する第1の選択
器と、 制御信号CYにより、前記乗数Yの一部のデータを選択
して単精度のビット長のデータを出力する機能を有し、
前記第1の選択器の構成と同一またはビット選択位置が
異なる第2の選択器と、 前記乗数Yの−1桁を2次ブースデコーダで展開可能な
機能を有し、前記2次ブースアルゴリズムに基づいて前
記第1及び第2の選択器の出力を乗算する単精度乗算器
と、 前記単精度乗算器の出力を一時記憶する第1のレジスタ
と、 前記第1のレジスタの出力を第1の入力として該第1の
入力と第2の入力とを加算する加算器と、 前記加算器の出力を一時記憶する第2のレジスタと、 制御信号SAによって前記第2のレジスタの出力をシフ
ト及び符号拡張するシフト・符号拡張器と、 前記シフト・符号拡張器の出力と論理“0”とのいずれ
か一方を制御信号SBにより選択して前記加算器に前記
第2の入力として与える第3の選択器とを、備えたこと
を特徴とする倍精度乗算器。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4039265A JPH05241793A (ja) | 1992-02-26 | 1992-02-26 | 倍精度乗算器 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4039265A JPH05241793A (ja) | 1992-02-26 | 1992-02-26 | 倍精度乗算器 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05241793A true JPH05241793A (ja) | 1993-09-21 |
Family
ID=12548312
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4039265A Withdrawn JPH05241793A (ja) | 1992-02-26 | 1992-02-26 | 倍精度乗算器 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH05241793A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007094223A1 (ja) | 2006-02-15 | 2007-08-23 | Matsushita Electric Industrial Co., Ltd. | 乗算器、デジタルフィルタ、信号処理装置、合成装置、合成プログラム、および合成プログラム記録媒体 |
-
1992
- 1992-02-26 JP JP4039265A patent/JPH05241793A/ja not_active Withdrawn
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007094223A1 (ja) | 2006-02-15 | 2007-08-23 | Matsushita Electric Industrial Co., Ltd. | 乗算器、デジタルフィルタ、信号処理装置、合成装置、合成プログラム、および合成プログラム記録媒体 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Mohan | Residue number systems: algorithms and architectures | |
| US5506799A (en) | Booth array multiplying circuit having carry correction | |
| EP0158530B1 (en) | Nonrestoring divider | |
| EP1049025B1 (en) | Method and apparatus for arithmetic operations | |
| JPWO1999038088A1 (ja) | 演算装置及び演算方法 | |
| JPH064271A (ja) | 乗算器 | |
| JPH0831025B2 (ja) | 乗算回路 | |
| US6370556B1 (en) | Method and arrangement in a transposed digital FIR filter for multiplying a binary input signal with tap coefficients and a method for designing a transposed digital filter | |
| JP3276444B2 (ja) | 除算回路 | |
| US5195051A (en) | Computation of sign bit and sign extension in the partial products in a floating point multiplier unit | |
| US4677583A (en) | Apparatus for decimal multiplication | |
| US20040010536A1 (en) | Apparatus for multiplication of data in two's complement and unsigned magnitude formats | |
| US5289399A (en) | Multiplier for processing multi-valued data | |
| US5400271A (en) | Apparatus for and method of calculating sum of products | |
| US5870322A (en) | Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication | |
| US5912904A (en) | Method for the production of an error correction parameter associated with the implementation of modular operations according to the Montgomery method | |
| JP3515170B2 (ja) | 実数または複素数用の乗算器 | |
| JP3982965B2 (ja) | 繰り返し型乗算器とアレイ型乗算器 | |
| JP2734438B2 (ja) | 乗算装置 | |
| JPS5841532B2 (ja) | セキワケイサンカイロ | |
| US6704761B1 (en) | Carry-save multiplier/accumulator system and method | |
| JP3851024B2 (ja) | 乗算器 | |
| JP2864598B2 (ja) | ディジタル演算回路 | |
| JP3638218B2 (ja) | シフト機能付きalu命令を持つマイクロプロセッサ | |
| JPH0377539B2 (ja) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19990518 |