【発明の詳細な説明】
ランタイムの短い乗算器
本発明は、公知の乗算器よりも短いランタイムを有する2進符号化数値用の簡
単に構成された乗算器に関する。
2進符号化数値を乗算するために種々の乗算器構造が知られている。この場合
、シリアルでもパラレルでも動作する乗算方式が適用される。4象限乗算器とし
てたとえばフィールド乗算器を用いることができ、そのアルゴリズムについては
雑誌"IEEE Transactions on Computers",Vol.C-22,No.1212.1973,p.1045-1
047に記載されている。あるいはブース(BOOTH)乗算器を用いることがで
き、これについてはKlarによる”Integrierte digitale Schaltungen,Springer
Verlag 1993,p.228-232”に記載されている。そこに示されているブース乗算
器はキャリー・リプル・ロジック(桁上げ伝播方式)を用いている。4象限乗算
器は、正の数値以外に負の数値も2の補数表示で処理できる。たとえばブース乗
算器を、キャリー・セーブ・ロジック(桁上げ保存方式)における計算時間の短
縮のために構成する場合には、符号ビットを個々の段において少なくとも2つの
別のビット桁で補足しなければならず、それらのビットは後続の加算段におけ
る半加算器または全加算器の入力側へ導かれる。
たとえば被乗数と乗算器のそのつど1つのビットとの乗算により複数の部分積
が形成され、それらの部分積のうちまずはじめに最小位のものが加算される。次
に、形成された部分積小計にさらに別の部分積が加算される。
2の補数表示の数値を加算する際の基本法則により必要とされるのは、キャリ
ー・セーブ方式で設計された乗算器(加算器)の場合、最上位の被加数ないし部
分積の最上位のものまで符号ビット(これは最上位ビットである)を補うことで
ある。このことはやはり、個々の加算器列における各符号ビットを別の加算器の
入力側へ供給しなければならないことを意味する。
キャリー・リプル方式による乗算器の場合でも、被乗数と乗算器のそれぞれ1
つのビットとの乗算により複数の部分積が形成され、やはりまずはじめにそれら
の部分積のうち最小位のものがキャリー・リプル方式で加算される。そして、形
成された部分積小計に、やはりそれぞれ1つの別の部分積が加算される。
2の補数表示による数値の加算めための相応の基本法則により必要とされるの
は、キャリー・リプル方式で設計された乗算器の場合、予期される和の最上位ま
で符号ビット(これは最上位ビットである)を補うことである。つまり、各符号
ビットを少なくとも1つの別の加算器の入力側へ供給しなければならない。
いかなる乗算器形式であっても、殊に別の加算器入力側による容量性負荷によ
りランタイムが著しく長くなる。
したがって本発明の課題は、ランタイムの短くされた乗算器を提供することに
ある。
この課題は、請求項1に記載の乗算器により解決される。
殊にこの乗算器の利点は、そのランタイムが短くなったことである。しかも回
路構成も簡単になり、レイアウト面積や電力消費も低減される。
また、1つの格別な利点は、この回路装置がブース乗算器において適用される
ことである。その特別なアルゴリズムにより、他の乗算器回路よりもランタイム
が著しく低減される。
さらに、たとえば小計のパラレルな算出のために1つまたは複数の2進桁だけ
符号ビットを補うことの必要な構造をもつ他のどのような乗算器形式であっても
、符号補足ないし符号補正の方式を適用できる。
キャリー・セーブ・ロジックで設計された乗算器の利点は殊にランタイムの低
減にあり、このことは一方では3つの最小位の部分積のパラレルな加算により、
他方では作動させるべき加算器入力側の低減により達成される。
キャリー・リプル方式による乗算器では終段加算器は不要になる。符号補足に
よりランタイムが低減され
る。しかも、やはり回路装置が簡単になり、レイアウト面積や電力消費も抑えら
れる。
通常のフィールド乗算器の場合であっても回路が著しく単純になる。この利点
は、”パラレルに動作する”フィールド乗算器であれば複数のビットを有する符
号ビット補足によっていっそう大きくなる。
入力側に論理値1の供給される半加算器をそれぞれインバータと置き換えるこ
とで、別の有利な回路単純化を行える。インバータ入力側による容量性および抵
抗性の負荷は、加算器の入力側と比べるとほとんど無視できる程度であり、構造
がいっそう簡略化される。
また、反転された入力信号の供給される全加算器をインバータと置き換えるこ
とで、さらにランタイムが短くなる。
それぞれ1つの半加算器とインバータとから成る直列回路を省略できることで
、さらに別の回路単純化を行える。
当然ながら、乗算器をキャリー・リプル方式とキャリー・セーブ方式との混合
形態で設計できる。
乗算器に用いられる方式は、もちろん加算回路についても適用できる。これは
部分積の代わりに被加数だけを処理する一般的な乗算器に対応する。
次に、図面を参照しながら本発明の実施例について詳細に説明する。
図1は、著しく有利な本発明によるブース乗算器を
示す図である。
図2は、公知のブース乗算器を示す図である。
図3は、ブース符号化器を示す図である。
図4は、ブース乗算器を示す図である。
図5は、終段加算器を示す図である。
図6は、本発明によるブース乗算器を示す図である。
図7は、半加算器の等価回路である。
図8は、入力側が独特に組み合わせれた全加算器の等価回路である。
図9は、キャリー・セーブ・ロジックによるフィールド乗算器である。
図10は、改善されたフィールド乗算器の実施形態を示す図である。
図11は、改善された別のフィールド乗算器を示す図である。
図12は、最適化されたフィールド乗算器を示す図である。
図13は、乗算器回路の部分図である。
図14は、本発明による符号ビット補足の行われるこの部分図の変形実施例を
示す図である。
図15は、簡略化された別の乗算器回路を示す図である。
図16は、上記乗算器回路の最適化された実施形態を示す図である。
図17は、キャリー・リプル・ロジックによる公知のフィールド乗算器を示す
図である。
図18は、本発明によるフィールド乗算器を示す図である。
図19は、本発明によるフィールド乗算器の最適化された実施形態を示す図で
ある。
図20は、乗算器回路の部分図である。
図21は、上記乗算器回路における本発明による変形実施例を示す図である。
図22は、上記変形実施例の最適化された実施形態を示す図である。
図1には、2つの8bit数値x8...x0およびy8...y0のための本発
明によるブース乗算器が示されている。このブース乗算器には上方の領域に、複
数のブースマルチプレクサMから成る2つの列R1およびR2が設けられている
。これに続いて(主として)複数の半加算器HAから成る列3が設けられている
。さらにこの列に続いて、やはり複数のブースマルチプレクサMから成る列R4
,R6と、複数の全加算器VAから成る列R5,R7とが交互に設けられている
。この回路は実質的にキャリー・セーブ演算によって実現されたものである。乗
数y8...y0はブース符号化器BCOにおいていわゆるブース係数(ブースコ
ントロール信号)VZ,S1,S2に変換され、これはブースマルチプレクサの
ためのコントロール信号と
して用いられる。
複数の段において積の和の計算が行われ、その際、部分積a8,a7,a6,.
..a0;b8,b7,b6,...b0;c8,c7,...の和が連続的に形成さ
れる。半加算器HAないし全加算器VAにおいて、各列で形成された部分積が先
行の列ですでに形成されていた部分積小計に加算され、その際、小計における和
ビットSとキャリービットCが後続の加算器列へ導かれる。
終段加算器FA(図5)において、ブース係数VZと、もはやカスケードされ
ない部分積ビットと、小計ビットとから、最終的な積が算出される。実際の乗算
器の場合には、終段加算器のためにランタイムのできるかぎり僅かな回路方式が
採用される。つまり、そこに示されている終段加算器は機能の説明のために用い
られた構成にすぎない。
フィールド乗算器と比較すると、単純化されるように変形されたブース乗算器
の場合には、形成すべき部分積の個数が半減し、図1によればa8...a0;b8
...b0;c8...c0;d8...d0となっている。このことは、奇数の乗
数ビットYi=y1,y3,y5,...(i=1,3,5,...)が除去され、
それらの情報が隣り合う偶数のビット桁に分配されることで達成される:
したがってたとえば情報は最小位から4番目のビット(i=3)に対して、
(2)Y3・23=Y3[24 - 2・22]
のようにして分配される。
図3には相応のブース符号化器BCOの回路が示されており、これにより式(
1)に応じた乗数の変換が実行される。
図4にはいわゆるブースマルチプレクサが示されており、次にその動作につい
て手短に説明する。各ブース符号化器はそれぞれ3つの乗数ビットを2進のブー
ス係数VZ,S1,S2に変換し、これにより値の範囲−2、−1、0、1、2
が表される。これらのブース係数にしたがって被乗数を1回ないし2回、加算ま
たは減算するかあるいは無視する必要がある。2回加算する場合、乗数はブース
マルチプレクサMにより1ビットだけシフトされる。必要とされる減算のために
、マルチプレクサの出力側が反転される。
この場合、+/−に対しVZ=0/1;VZ,S1,S2はブース係数である。
ブースマルチプレクサの出力信号ai,bi,ci,di(0≦i≦8)は、1の
補数表示の部分積にそれぞれ対応する。2の補数表示による数値への部分積の
変換のために、ブース係数の符号ビットVZa(0≦a≦3)が終段加算器FA
において加算される。
形式上、1の補数表示による部分積も符号ビットも、2の補数表示による数値
のようにして扱われる。
先に挙げた文献”Integrierte digitale Schaltungen”の第231頁には、キ
ャリー・リプル演算によるブース乗算器のロジックプランの一部分について詳細
に記載されている。そこには、それぞれ最初と最後のブースマルチプレクサはい
っそう単純に設計できることが示されている。符号反転の構成は加算器に置き換
えられている。
図2による公知の4象限ブース乗算器の通常の構成の場合、部分積の和はでき
るかぎり一様に構成された回路において求められる(たとえばIEEE Journal of
Solid-State Circuits,Vol.SC-20,No.21985年4月刊、第542〜54
6頁)。
部分積の最上位ビットにより、個々の極性符号が表される。適正な極性符号処
理のためには、符号ビットを後続の部分積の最上位のものまで拡張しなければな
らない。図2による公知の回路の場合、適正な符号処理のためにまずはじめに符
号ビットa8を後続の部分積の最上位のものまで補わなければならない。また同
様に、最上位の加算器セルのキャリービットCと和ビットSを、後続の部分積の
最上位のものまでそれぞれ補足しなければならない。
図2による回路の場合にはその結果として、”最上位の”(一番左側に配置さ
れた)ブースマルチプレクサM18の出力側を3つの半加算器の各入力側と接続
しなければならない。また、列3の最上位の半加算器および列5の全加算器の和
ビット出力側およびキャリービット出力側も、符号を補足するため後続の加算器
列の3つの全加算器の各入力側とそれぞれ接続される。出力側における高められ
た(容量性)負荷により、あらゆるロジックファミリにおいて遅延時間に対し悪
影響が及ぼされる。
図6には本発明によるブース乗算器が示されており、この回路はもはや上記の
欠点を有していない。
この回路構成を慣用のものと比べると、それぞれ最上位のブースマルチプレク
サM18,M28,M38...の負荷が単純な負荷に低減されていることがわ
かる。それぞれ示されているインバータを、相応のブースマルチプレクサの変形
により省略することができる。
この回路構成は、複雑さに関して最適化された回路の中間段階とみなすことが
できる。それぞれ最上位の次のブースマルチプレクサM27,M37...の出
力側と接続されている各半加算器HAは、それらの出力側から部分積ビットb7
ないしc7,...を送出するが、それらの半加算器HAをインバータで置き換
えることができる。したがって、さもなければ論理値1
の供給されることになる入力側を有する半加算器が節約される。図7にはその等
価回路が示されている。
このような回路の変形は単に図式的に行うことができ、その際、最上位の桁p15
へはやはり1が加えられる。
本発明をいっそう良好に理解できるようにする目的で、まずはじめに極性符号
処理について数学的に説明する。
以下に示した表1には、乗数ビットMRと部分積PP1〜PP4と積PRとのの
対応づけが示されており、この積は部分積ビットと符号係数の和の形成により求
められる。
ワード長nを有する2の補数表示の数値Xは、次式のようにして表せる。
16bitである最大の和ワード長まで拡張された符号部分積ビットa8,b8
,c8,d8の積極性符号和
SPVは、以下の通りとなる:
(5)SPV= a8(-215+214+...+28)
+b8(-215+214+...+210)
+c8(-215+214+...;212)
+d8(-215+214)
この場合、
となる。
(7)SPV= a8(-215+215-28)+b8(-215+215-210)
+c8(-215+215-212)- d8・214
= - a8・28 - b8・210 - c8・212 - d8・214
(−28+28)による拡張、第1の部分積PP1における拡張すべき符号ビッ
トの負と正の2進値、なら
により、次式が得られる:
この場合、
a8,b8,c8,...)であり次式が得られる:
この結果の意味するところは次の通りである:
式(5)による表現とは異なり、正の係数を有する部分積だけが存在する;部
分積の符号ビットa8,b8,c8,d8は反転される;この場合、加算器からイン
バーターへの式(9)による変形は、すでに考慮されている;重み28、29、211
、213、215を有する部分積ビットのために、1(これは個々の2のべき乗に
相応する)を加算する必要がある。
この計算の実行は図6にそのまま示されており、こ
が実行されている。
部分積ビットの反転はブースマルチプレクサM18,M28,M38,M48
の出力側において行われ、つまりわかりやすくするために図示されているそれぞ
れ1つのインバーターにより行われ、この反転は部分積ビットa8,b8,c8,
d8に係わるものである。
2のべき乗28、29、211、213、215は、対応の加算器ならびに終段加算器
FAへ導かれる。
加算はその他の回路変形でも可能である。あとで2)のところで述べるように
、この回路をさらに簡単にすることができる。
数学的な計算の代わりに図式的な手順をとることもできる。さらに簡単にする
ことも可能である。
1)第1段階では、次式により符号の補足が実行され
る:
=モジュロ2m+p加算
m 符号ビットの重み
m+p 補足された最上位の符号ビットの重み
第1の加算器列に対し2つの2進桁だけ符号を拡張する場合、
が適用される。
相応に、図6の加算器列R3の回路が変形される。
式(12)による変形を以下の論理表で示す。
個々のキャリービットここでは2m+p+1(211)は
、不要である。
回路的には式の実行は以下のことを意味する:
符号ビットamの反転および2mの加算、つまり半加算器HAではなく全加算器
VAにおける1(図1または図6のa8;列R3)。
さらに、それぞれ半加算器HAの最上位桁における一定の1(2m+1と2m+2に
相応)の加算(図6、列3)。
2)第2段階では、一定の”論理値1”の供給される半加算器たとえば図6の最
初の加算器列R3における上位の2つの半加算器が、次式にしたがって置き換え
られる:
つまり、和ビットSは反転された入力信号bmに対応し、キャリービットCは入
力信号bmに対応する(図7)。
最上位の半加算器においては桁上げは不要となるの
(これは図6における乗算器の別の加算器列ですでに行われている)。したがっ
て図1の場合、すべての加算器列の上位の両方の半加算器はインバータに置き換
えられている。
3)第3段階では、図2中の他の加算器列R5およびR7における上位の2つの
全加算器VAの機能が、そ
れぞれ次式にしたがって置き換えられる:
対応する回路が図8に示されている。
全加算器をそれぞれまずはじめに、たとえば図6によればブースマルチプレク
サM37と接続されている半加算器と置き換えることができるし、あるいは図8
によるインバータと置き換えることができる。このことは回路的には、すでに第
1の加算器列において成されている措置に対応するものであり、図1による構成
となる。
同様に、一定の1が供給される全加算器の回路も簡単にすることができる。
つまり、一定の1の加えられる全加算器VAを、EX−NORゲートおよびO
Rゲートで置き換えることができる。
符号補足の基本原理は種々の乗算器形式に適用でき、2桁よりも多い符号の補
足を行う必要のある場合でも適用できる(たとえば1991年9月刊のM.Belle
ville等による文献”A 16*16 bits Multiplier 0.5μm CMOS technology”Proc
eedings of ESSCIRC'91,Milan/Italy)。
”最下位の”符号桁の場合、これまでどおり符号ビ
ットの反転および論理値”1”の加算が行われる。最上位の半加算器(加算器)
の場合、一定の論理値”1”が付加されるか、またはインバータと置き換えられ
る。同じようにして他の加算器列も補われる。つまり、図1では部分積ビットb
7の供給される中央の変形された加算器回路が頻繁に生じる。
1つの加算器列においてただ1つの符号桁だけしか補わなくてよい場合には、
そのために1つの全加算器と1つの半加算器ないしインバータが必要とされる(
部分積ビットb7の供給される図6の半加算器HAは省略されることになる)。
次に、キャリー・セーブ方式によるフィールド乗算器に基づき本発明を説明す
る。
図9にはこの種の乗算器が示されている。各乗算器列R1,R2,R3,R5
,R7,R9において、被乗数x=x5....x0と乗数y=y5....y0の
それぞれ1つのビットとの乗算により、部分積a5....a0,b5....b0
,....,f5....f0が形成される。最初の3つの部分積a5....a0
,b5....b0,c5....c0はパラレルに、第1の加算器列R4において
1つの”小計”Z1にまとめられる。これは和ビット”S”とキャリービット”
C”とから成る(図5では見やすくするため、このことは全加算器VA45のと
ころにだけ示されている)。
他の加算器列R6,R8,R10において、それぞれ1つの他の部分積d5.
...d0,...,f5....f0上記の中間値に加えられる。
簡単にすべき符号ビットの結線が太いラインにより表されている。第1の加算
器列R4において、第1の部分積a5....a0の符号ビットa5が上位の3
つの全加算器VA44〜VA46へ導かれ、第2の部分積b5....b0の符号
ビットb5も、同じ上位の2つの全加算器VA45,VA46へ導かれる。
加算器列R4および次の加算器列において、それぞれ最上位の全加算器VA4
6,VA66,VA86,...から送出される和ビットを1つのビット桁だけ
補足する必要がある。
最後の部分積は、被乗数xの2の補数と乗数yの符号ビットykとの乗算によ
り形成される。終段加算器FAたとえばリプル加算器において、和ビットとキャ
リービットとから最終的な積が算出される。
負の数値を2の補数で表す場合、式(16)にしたがって積が算出される:
最上位の加算器VA46...VAA6の部分で、この回路を簡単にすべきで
ある。
次に、そのような回路の単純化についてまずはじめに説明する。その際、さし
あたって2つの数値の符号ビットだけに絞って考察することにする。そしてこれ
を多数の数値へと問題なく拡張できる。
最初の段階では、1つの符号ビットakに対する符号ビットの補足を次式にし
たがって実行する。
下位のビットを無視すれば、たとえばk=5において次式が成り立つ:
および
それらのビットの加算(これは別の数値の最上位ビットc5,c4の加算によ
り補われる)は、重みに応じて列ごとに並べられた次の表で示すことができる。
中央の2つの列は、式(18)および(19)にしたがって変形されたもので
ある。右側の2つの列の場合、論理値1の加算がすでに実行されたものである。
右側の両方の列に示されている変形は次のように解釈できる。すなわち、重み2
6の反転された符号ビットと3番目の部分積のビットc4の加算ならびに論理値
1と3番目の部分積の符号ビットc5との加算により、和が算出される。
図10に示されている乗算器の場合、第1の加算器列R4においてこのような
単純化が行われている。最上位の次の全加算器VA45へ符号ビットa5とb5が
反転されて導かれ、最上位の全加算器VA46(図9)はすでに半加算器HA4
6に置き換えられており、この半加算器へは符号ビットC5のほかに一定の論理
値1が導かれている。
もちろん、最上位の全加算器VA46(図9)ないし半加算器HA46(図1
0)において、式(17)ないし(18)にしたがって変形を施すこともできる
。しかしこの変形によっても、以下で述べるような手順とは異なり、回路がさら
に単純化されることにはならない。
半加算器の論理的動作(13)にしたがって、図10による回路装置をさらに
簡単にすることができ、こ
れは次のようにして行える。すなわち、まずはじめに最上位の半加算器HA46
がインバータと置き換えられる。その結果が図11である。第2の加算器列R6
の最上位の全加算器VA66へは、互いに反転されている2つの入力信号が供給
される。したがって第3の段階で、この全加算器および他の加算器列の別の最上
位の全加算器VA86〜VAA6(図9)を、式(14)に応じて置き換えるこ
とができる。
に処理できるので、可変の入力値cmのほかに論理値1の供給される1つの半加
算器で十分である。図11の場合、この簡略化はこれまで、半加算器HA86で
置き換えられた1つの全加算器VA86(図10)においてだけしか行わなかっ
た。
残りの最上位の全加算器も、一定の論理値1の供給される半加算器で置き換え
ることができ、さらにそれらの半加算器をやはりインバータで置き換えることが
できる。図12には、このようにして最適化された回路構成が示されている。こ
の場合、図9における最上位の全加算器VA46,VA66,...VAA6は
不要になっている。
当然ながら、ブールの規則による回路の変形も可能である。たとえば、1つの
ゲートと1つのインバータの直列回路を1つの反転ゲートで置き換えることがで
き、ANDゲートの機能をORゲートによってシミュ
レートできる。
符号ビットの補足の既述の基本原理を任意のビット桁数のために拡張すること
ができ、このことは殊に、少なくとも2つの符号ビットの処理されるビット桁に
関して重要である。
式(20)によれば次式が成り立つ:
このことは回路的には次のことを意味する。すなわち、符号ビットが反転され
て供給される全加算器の後ろで、すべての最上位の全加算器を半加算器で置き換
えることができ、それらの半加算器へはcビットのほかに論理値1が供給される
。論理値1の加算が意味するのはcビットの反転であり、したがって半加算器を
式(13)にしたがって1つのインバータで置き換えることができる。
また、簡略化された符号ビット補足のために、一般的に適用できるアルゴリズ
ムを導出することもできる。ワード長k+1を有する2の補数表示の数値x=x
k....x0を以下のように表せる:
Sビットだけ符号を拡張する場合、符号ビットAおよびBの和に対し以下のこ
とが成り立つ:
回路を実現させる場合、個々の2進桁において個々の部分積ビットまたは先行
の加算器列からのキャリービットをさらに加える必要がある。
図5には、並列に動作するキャリー・セーブ乗算器
の一部分が示されており、相前後する2つの加算器列の間で2つのビットの符号
ビットの補足が行われる。この場合、最上位の全加算器VA4Aの両方の出力値
を補う必要がある。
表(21)ないし式(24)にしたがって、まずはじめに第1の加算器列R4
が変形される。図14には、全加算器VA48に対する入力値の反転、ならびに
上位の2つの全加算器の半加算器HA49,HA4Aへの変形が示されている。
第2の段階で、半加算器HA49およびHA4Aが式(13)にしたがってそ
れぞれ1つのインバータと置き換えられる。このことにより形成される回路が図
15に示されている。
第3の段階で、後続の加算器列(R6)の上位の2つの全加算器VA6A,V
A69が式(14)にしたがって半加算器HA6A,HA69に置き換えられ、
さらにこれらの半加算器はインバータとして構成される(第2の段階と第3の段
階の順序は任意である)。
図16には最適化された回路構成が示されている。任意の大きさの符号ビット
補足においてこの手順を適用できる。
次に、キャリー・リプル方式による乗算器について本発明を説明する。
図17には、キャリー・リプル方式による公知のフィールド乗算器が示されて
いる。乗算器列R1,R2
,R4,R6,R8,R10において、被乗数x=x5...x0と乗数y=y5
...y0のそれぞれ1つのビットとの乗算により、部分積a5....a0,b5
....b0,....,f5....f0が形成される。最初の2つの部分積a5
....a0,b5....b0は第1の加算器列R3において”小計”Z1にま
とめられ、これは加算器VA,HAの和出力側”S”に生じる(和出力側Sおよ
びキャリー出力側Cは図17(図18、図19)では見やすくするため全加算器
VA35においてしか示されていない)。
他の加算器列R5,R7,R9,R11において、その他の部分積c5...
.c0,...,f5....f0がそれぞれ加えられる。
太いラインで符号ビットの”結線”が示されている。第1の加算器列R3にお
いて、第1の部分積a5....a0の符号ビットa5が上位の3つの全加算器V
A34..VA36へ導かれ、第2の部分積b5....b0の符号ビットb5が
上位の2つの全加算器VA35とVA36へ導かれている。
後続の加算器列R5....R11において、形成された小計に対しそれぞれ
1つの符号ビットの補足だけしか必要としない。
最後の部分積f5....f0は、被乗数xの2の補数と乗数yの符号ビットyk
との乗算により形成され、これは最後の小計Z4に加えられ、これによって最
終的な積p11..p0を得ることができる。
この乗算器の場合、負の数値が2の補数で表示されているならば式(16)に
したがって積が算出される。
符号の拡張のためにすでに導出されたアルゴリズムは、この乗算器形式にも適
用される。最上位の全加算器VA36,VA56,..の部分において、既述の
手順にしたがって回路を簡略化する。
最初の段階では、符号ビットak(重み≧2kから)のための符号の補足が式(
17)により実行される。
示されている回路の場合、この符号補足は加算器列R3の上位の全加算器VA
36,VA35において実行される。下位のビットを無視すれば次式が成り立つ
:
変形により得られたビットから(符号ビットに応じて)和が形成される。
(キャリービットc6とc7で補われた)これらのビットの加算を次の表で示す
ことができる。
中央の2つの列は、式(25)および(26)にしたがって変形されたもので
ある。右側の2つの列では、論理値1の加算がすでに実行されている。これらの
列に示されている変形は次のように解釈できる。すなわち、重み26の反転され
た符号ビットと3番目の部分積のキャリービットc5との加算ならびに論理値1
と符号ビットc5との加算により、和が算出される。論理値1の加算とはキャリ
ービットの反転のことを意味する。したがって、半加算器をインバータで置き換
えることができる。
本発明による乗算器の示されている図18において、このような簡略化が実現
されている。最上位の次のすべての全加算器VA35〜VAB5へ供給される符
号ビットは反転され、最上位の全加算器はそれぞれ半加算器HA36,HA56
....に置き換えられており、それらの半加算器にはキャリービットのほかに
一定の論理値1が導かれている。各半加算器の和出力側から送出されるビットS
も(最上位桁の”和ビット”P11を除いて)、次の部分積の符号ビットと組み合
わせられる前に同じようにしてやはり反転される。
半加算器の論理的動作(13)にしたがって、この回路構成をさらに単純にす
ることができ、これは次のようにして行える。すなわち、それぞれ半加算器とイ
ンバータとの直列回路(図18)を省略し、ダイレク
トな接続で置き換えることで行える(同様にインバータだけを省略することもで
き、この場合には各半加算器へ論理値1の代わりに論理値0が導かれる)。当然
ながら、”ブールの規則”にしたがってこの回路をさらに変形することも可能で
ある。
図19には最適化されたフィールド乗算器が示されており、この場合には各加
算器列において、図17に比べて1つの全加算器が省略されており、図18に比
べて1つの半加算器が省略されている。その際、全加算器VAB5のキャリー出
力側から送出されるビットを反転させる必要がある。
キャリー・リプル方式で回路を実現する場合には各符号ビットを処理する2進
桁において、反転された符号ビットまたは一定の2進値(論理値1)のほかに、
下位の全加算器のキャリービットをそれぞれ加える必要がある。
さらに図20には、符号の補足を伴うキャリー・リプル乗算器の一部分が示さ
れている。
式(24)ないし表(27)にしたがって、まずはじめに第1の加算器列R3
が変形され、これは2つの符号ビットの導かれる全加算器VA39から着手され
る。
次に、表(27)にしたがって最上位の全加算器VA39(図20)が、論理
値1の供給される半加算器HA39で置き換えられる(図21;変形された回路
は図18に相応する。それというのはこの場合もともかくそれぞれ最上位の次の
加算器へ2つの符号ビットが導かれるからである)。
実施された回路変形は、符号ビットの反転ならびに最上位の全加算器VA59
を半加算器HA59で置き換えることで、次の加算器列に対して繰り返される。
最上位の半加算器へは、やはりキャリービットのほかに論理値1がそれぞれ導か
れる。
図21には変形された加算器列が示されている。
各加算器列の最上位の半加算器は、やはり式(18)にしたがってインバータ
で置き換えることができる。この場合、それまで設けられていたインバータIN
は省略される。それというのは半加算器とインバータにより符号ビットが2回反
転されるからである。その代わりにダイレクトな接続が行われる(たとえば、全
加算器VA38と次の加算器列における最上位の全加算器の入力側との間の接続
路中の半加算器HA39とインバータIN)。これに対し、全加算器VA38の
キャリー出力側と全加算器VA57の入力側との間に付加的なインバータを必要
とすることなどがある。
図22には最適化された回路構成が示されている。この場合、任意の個数の符
号補足であっても簡略化は同じままである。
ANDゲートとインバータの直列回路をNANDゲートで置き換えることから
はじまって、それをORゲ
ート機能を有する等価回路により置き換えることなどから、反転された信号の処
理に至るまで、数多くの”ブール規則に基づく”変形も当然ながら可能である。
すべての乗算器形式において、複数の部分積小計を並列に算出してそれらをま
とめることが知られているし、あるいは考えられる。
参照符号リスト
BCO ブース符号化器
S1,S2,VZ ブース係数
VZ 極性符号
M,,.M18 ブース乗算器
R1,R2,R4 乗算器列または
R3,R5,... 加算器列
VA 全加算器
HA 半加算器
IN インバータ
a8...a0 部分積
b8...b0 〃
a5...a0 〃
b5...b0 〃
c8...c0 〃
x=x7...x0 被乗数
y=y7...y0 〃
x=x5...x0 〃
y=y5...y0 〃
x7,y7;x5,y5 符号ビット
Z1,Z2,.... 小計
FA 終段加算器
p11...p0 最終積
【手続補正書】特許法第184条の8
【提出日】1996年3月28日
【補正内容】
明細書
ランタイムの短い乗算器
本発明は、公知の乗算器よりも短いランタイムを有する2進符号化数値用の簡
単に構成された乗算器に関する。
2進符号化数値を乗算するために種々の乗算器構造が知られている。この場合
、シリアルでもパラレルでも動作する乗算方式が適用される。4象限乗算器とし
てたとえばフィールド乗算器を用いることができ、そのアルゴリズムについては
雑誌"IEEE Transactions on Computers",Vol.C-22,No.1212.1973,p.1045-1
047に記載されている。あるいはブース(BOOTH)乗算器を用いることがで
き、これについてはKlarによる”Integrierte digitale Schaltungen,Springer
Verlag 1993,p.228-232”に記載されている。そこに示されているブース乗算
器はキャリー・リプル・ロジック(桁上げ伝播方式)を用いている。4象限乗算
器は、正の数値以外に負の数値も2の補数表示で処理できる。たとえばブース乗
算器を、キャリー・セーブ・ロジック(桁上げ保存方式)における計算時間の短
縮のために構成する場合には、符号ビットを個々の段において少なくとも2つの
別のビット桁で補足しなければならず、それらのビットは後続の加算段におけ
る半加算器または全加算器の入力側へ導かれる。
たとえば被乗数と乗算器のそのつど1つのビットとの乗算により複数の部分積
が形成され、それらの部分積のうちまずはじめに最小位のものが加算される。次
に、形成された部分積小計にさらに別の部分積が加算される。
2の補数表示の数値を加算する際の基本法則により必要とされるのは、キャリ
ー・セーブ方式で設計された乗算器(加算器)の場合、最上位の被加数ないし部
分積の最上位のものまで符号ビット(これは最上位ビットである)を補うことで
ある。このことはやはり、個々の加算器列における各符号ビットを別の加算器の
入力側へ供給しなければならないことを意味する。
キャリー・リプル方式による乗算器の場合でも、被乗数と乗算器のそれぞれ1
つのビットとの乗算により複数の部分積が形成され、やはりまずはじめにそれら
の部分積のうち最小位のものがキャリー・リプル方式で加算される。そして、形
成された部分積小計に、やはりそれぞれ1つの別の部分積が加算される。
2の補数表示による数値の加算のための相応の基本法則により必要とされるの
は、キャリー・リプル方式で設計された乗算器の場合も、予期される和の最上位
まで符号ビット(これは最上位ビットである)を補うことである。つまり、各符
号ビットを少なくとも1つの別の加算器の入力側へ供給しなければならない。
いかなる乗算器形式であっても、殊に別の加算器入力側による容量性負荷によ
りランタイムが著しく長くなる。
”Electronics Letters”25th 9.1986,Vol.22,No.20,p.1061 - 1061には
、ブース乗算器の符号ビット補足における簡略化手法が示されており、これは図
4にしたがって複数の全加算器により構成されている。しかしそこには、回路を
いっそう簡略化するための記載は記されていない。なお、この方法はブース乗算
器に限定されたものではないが、他の乗算器形式にこの方法を適用しても最適な
結果は得られない。
したがって本発明の課題は、単純化された構造とランタイムの短くされた乗算
器を提供することにある。
この課題は、請求項1に記載の乗算器により解決される。
殊にこの乗算器の利点は、そのランタイムが短くなったことである。しかも回
路構成も簡単になり、レイアウト面積や電力消費も低減される。
さらに、たとえば小計のパラレルな算出のために1つまたは複数の2進桁だけ
符号ビットを補うことの必要な構造をもつ他のどのような乗算器形式であっても
、符号補足ないし符号補正の方式を適用できる。
キャリー・セーブ・ロジックで設計された乗算器の利点は殊にランタイムの低
減にあり、このことは一方では3つの最小位の部分積のパラレルな加算により、
他方では作動させるべき加算器入力側の低減により達成される。
キャリー・リプル方式による乗算器では終段加算器は不要になる。符号補足に
よりランタイムが低減される。しかも、やはり回路装置が簡単になり、レイアウ
ト面積や電力消費も抑えられる。
通常のフィールド乗算器の場合であっても回路が著しく単純になる。この利点
は、”パラレルに動作する”フィールド乗算器であれば複数のビットを有する符
号ビット補足によっていっそう大きくなる。
入力側に数値1(論理値1)の供給される半加算器をそれぞれインバータと置
き換えることで、別の有利な回路単純化を行える。インバータ入力側による容量
性および抵抗性の負荷は、加算器の入力側と比べるとほとんど無視できる程度で
あり、構造がいっそう簡略化される。
また、反転された入力信号の供給される全加算器をインバータと置き換えるこ
とで、さらにランタイムが短くなる。
それぞれ1つの半加算器とインバータとから成る直列回路を省略できることで
、さらに別の回路単純化を行える。
当然ながら、乗算器をキャリー・リプル方式とキャリー・セーブ方式との混合
形態で設計できる。
乗算器に用いられる方式は、もちろん加算回路につ
いても適用できる。これは部分積の代わりに被加数だけを処理する一般的な乗算
器に対応する。
次に、図面を参照しながら本発明の実施例について詳細に説明する。
図1は、著しく有利な本発明によるブース乗算器を示す図である。
図2は、公知のブース乗算器を示す図である。
図3は、ブース符号化器を示す図である。
図4は、ブース乗算器を示す図である。
図5は、終段加算器を示す図である。
図6は、本発明によるブース乗算器を示す図である。
図7は、半加算器の等価回路である。
図8は、入力側が独特に組み合わせれた全加算器の等価回路である。
図9は、キャリー・セーブ・ロジックによるフィールド乗算器である。
図10は、改善されたフィールド乗算器の実施形態を示す図である。
図11は、改善された別のフィールド乗算器を示す図である。
図12は、最適化されたフィールド乗算器を示す図である。
図13は、乗算器回路の部分図である。
図14は、本発明による符号ビット補足の行われる
この部分図の変形実施例を示す図である。
図15は、簡略化された別の乗算器回路を示す図である。
図16は、上記乗算器回路の最適化された実施形態を示す図である。
図17は、キャリー・リプル・ロジックによる公知のフィールド乗算器を示す
図である。
図18は、本発明によるフィールド乗算器を示す図である。
図19は、本発明によるフィールド乗算器の最適化された実施形態を示す図で
ある。
図20は、乗算器回路の部分図である。
図21は、上記乗算器回路における本発明による変形実施例を示す図である。
図22は、上記変形実施例の最適化された実施形態を示す図である。
次に、ブース乗算器に基づき符号の拡張および回路簡略化の基本原理について
詳細に説明する。
先に挙げた文献”Integrierte digitale Schaltungen”の第231頁には、キ
ャリー・リプル演算によるブース乗算器のロジックプランの一部分について詳細
に記載されている。そこには、それぞれ最初と最後のブースマルチプレクサはい
っそう単純に設計できることが示されている。符号反転の構成は加算器に置き換
えられている。
図2による公知の4象限ブース乗算器の通常の構成の場合、部分積の和はでき
るかぎり一様に構成された回路において求められる(たとえばIEEE Journal of
Solid-State Circuits,Vol.SC-20,No.21985年4月刊、第542〜546
頁)。
このブース乗算器には上方の領域に、複数のブースマルチプレクサMから成る
2つの列R1およびR2が設けられている。これに続いて(主として)複数の半
加算器HAから成る列3が設けられている。さらにこの列に続いて、やはり複数
のブースマルチプレクサMから成る列R4,R6と、複数の全加算器VAから成
る列R5,R7とが交互に設けられている。この回路は実質的にキャリー・セー
ブ演算によって実現されたものである。乗数y8...y0はブース符号化器BC
Oにおいていわゆるブース係数(ブースコントロール信号)VZ,S1,S2に
変換され、これはブースマルチプレクサのためのコントロール信号として用いら
れる。
この公知の回路の場合、適正な符号処理を達成するためには、まずはじめに符
号ビットa8を後続の部分積の最上位のものまで補足しなければならない。同じ
やり方で、最上位の加算器列におけるキャリービットCと和ビットSをそれぞれ
後続の部分積の最上位のものまで補足しなければならない。
その結果、”最上位の”(最も左側に配置された)
ブースマルチプレクサM18の出力側を3つの半加算器の各入力側と接続しなけ
ればならない。また、列R3における最上位の半加算器の和ビット出力側とキャ
リービット出力側も、後続の加算器列における3つの全加算器の各入力側とそれ
ぞれ接続しなければならない。出力側の(容量性)負荷が高まることで、すべて
のロジックファミリにおいて遅延時間に関して悪影響を及ぼす。
複数の段において積の和の計算が行われ、その際、部分積a8,a7,a6,.
..a0;b8,b7,b6,...b0;c8,c7,...の和が連続的に形成さ
れる。半加算器HAないし全加算器VAにおいて、各列で形成された部分積が先
行の列ですでに形成されていた部分積小計に加算され、その際、小計における和
ビットSとキャリービットCが後続の加算器列へ導かれる。
1つの部分積の最上位ビットは個々の極性符号を表す。適正な符号処理のため
には、後続の部分積の最上位のものまで符号ビットを同様に拡張しなければなら
ない。
終段加算器FA(図5)において、ブース係数VZと、もはやカスケードされ
ない部分積ビットと、小計ビットとから、最終的な積が算出される。実際の乗算
器の場合には、終段加算器のためにランタイムのできるかぎり僅かな回路方式が
採用される。つまり、そこ
に示されている終段加算器は機能の説明のために用いられた構成にすぎない。
フィールド乗算器と比較すると、単純化されるように変形されたブース乗算器
の場合には、形成すべき部分積の個数が半減し、図1によればa8...a0;b8
...b0;c8...c0;d8...d0となっている。このことは、奇数の乗
数ビットYi=y1,y3,y5,...(i=1,3,5,...)が除去され、
それらの情報が隣り合う偶数のビット桁に分配されることで達成される:
したがってたとえば情報は最小位から4番目のビット(i=3)に対して、
(2)Y3・23 = Y3[24 - 2・22]
のようにして分配される。
図3には相応のブース符号化器BCOの回路が示されており、これにより式(
1)に応じた乗数の変換が実行される。
図4にはいわゆるブースマルチプレクサが示されており、次にその動作につい
て手短に説明する。各ブース符号化器はそれぞれ3つの乗数ビットを2進のブー
ス係数VZ,S1,S2に変換し、これにより値の範囲−2、−1、0、1、2
が表される。これらのブー
ス係数にしたがって被乗数を1回ないし2回、加算または減算するかあるいは無
視する必要がある。2回加算する場合、乗数はブースマルチプレクサMにより1
ビットだけシフトされる。必要とされる減算のために、マルチプレクサの出力側
が反転される。
この場合、+/−に対しVZ=0/1;VZ,S1,S2はブース係数である。
ブースマルチプレクサの出力信号ai,bi,ci,di(0≦i≦8)は、1の
補数表示の部分積にそれぞれ対応する。2の補数表示による数値への部分積の変
換のために、ブース係数の符号ビットVZa(0≦a≦3)が終段加算器FAに
おいて加算される。
形式上、1の補数表示による部分積も符号ビットも、2の補数表示による数値
のようにして扱われる。
図6には本発明によるブース乗算器が示されており、この回路はもはや上記の
欠点を有していない。
この回路構成を慣用のものと比べると、それぞれ最上位のブースマルチプレク
サM18,M28,M38...の負荷が単純な負荷に低減されていることがわ
かる。それぞれ示されているインバータを、相応のブースマルチプレクサの変形
により省略することができる。
この回路構成は、複雑さに関して最適化された回路の中間段階とみなすことが
できる。それぞれ最上位の
次のブースマルチプレクサM27,M37...の出力側と接続されている各半
加算器HAは、それらの出力側から部分積ビットb7ないしc7,...を送出す
るが、それらの半加算器HAをインバータで置き換えることができる。したがっ
て、さもなければ論理値1の供給されることになる入力側を有する半加算器が節
約される。図7にはその等価回路が示されている。
このような回路の変形は単に図式的に行うことができ、その際、最上位の桁p15
へはやはり1が加えられる。
本発明をいっそう良好に理解できるようにする目的で、まずはじめに極性符号
処理について数学的に説明する。
以下に示した表1には、乗数ビットMRと部分積PP1〜PP4と積PRとの
の対応づけが示されており、この積は部分積ビットと符号係数の和の形成により
求められる。
ワード長nを有する2の補数表示の数値Xは、次式のようにして表せる。
16bitである最大の和ワード長まで拡張された符号部分積ビットa8,b8
,c8,d8の積極性符号和SPVは、以下の通りとなる:
(5)Spv= a8(-215+214+... +28)
+b8(-215+214+... +210)
+c8(-215+214+... ;212)
+d8(-215+214)
この場合、
となる。
(7)SPV= a8(-215+215- 28)+b8(-215+215- 210)
+c8(-215+215-212) - d8・214
= - a8・28 - b8・210 - c8・212 - d8・214
(−28+28)による拡張、第1の部分積PP1における拡張すべき符号ビッ
トの負と正の2進値、なら
により、次式が得られる:
この場合、
a8,b8,c8,...)であり次式が得られる:
この結果の意味するところは次の通りである:
式(5)による表現とは異なり、正の係数を有する部分積だけが存在する;部
分積の符号ビットa8,b8,c8,d8は反転される;この場合、加算器からイン
バーターへの式(9)による変形は、すでに考慮されている;重み28、29、211
、213、215を有する部分積ビットのために、1(これは個々の2のべき乗に
相応する)を加算する必要がある。
この計算の実行は図6にそのまま示されており、こ
が実行されている。
部分積ビットの反転はブースマルチプレクサM18,M28,M38,M48
の出力側において行われ、つまりわかりやすくするために図示されているそれぞ
れ1つのインバーターにより行われ、この反転は部分積ビットa8,b8,c8,
d8に係わるものである。
2のべき乗28、29、211、213、215は、対応の加算器ならびに終段加算器
FAへ導かれる。
加算はその他の回路変形でも可能である。あとで2
)のところで述べるように、この回路をさらに簡単にすることができる。
数学的な計算の代わりに図式的な手順をとることもできる。さらに簡単にする
ことも可能である。
1)第1段階では、次式により符号の補足が実行される:
=モジュロ2m+p加算
m 符号ビットの重み
m+p 補足された最上位の符号ビットの重み
第1の加算器列に対し2つの2進桁だけ符号を拡張する場合、
が適用される。
相応に、図6の加算器列R3の回路が変形される。
式(12)による変形を以下の論理表で示す。
個々のキャリービットここでは2m+p+1(211)は、不要である。
回路的には式の実行は以下のことを意味する:
符号ビットamの反転および2mの加算、つまり半加算器HAではなく全加算器
VAにおける1(図1または図6のa8;列R3)。
さらに、それぞれ半加算器HAの最上位桁における一定の1(2m+1と2m+2に
相応)の加算(図6、列3)。
2)第2段階では、一定の”論理値1”の供給される半加算器たとえば図6の最
初の加算器列R3における上位の2つの半加算器が、次式にしたがって置き換え
られる:
つまり、和ビットSは反転された入力信号bmに対応し、キャリービットCは入
力信号bmに対応する(図7)。
最上位の半加算器においては桁上げは不要となるの
(これは図6における乗算器の別の加算器列ですでに
行われている)。したがって図1の場合、すべての加算器列の上位の両方の半加
算器はインバータに置き換えられている。
3)第3段階では、図2中の他の加算器列R5およびR7における上位の2つの
全加算器VAの機能が、それぞれ次式にしたがって置き換えられる:
対応する回路が図8に示されている。
全加算器をそれぞれまずはじめに、たとえば図6によればブースマルチプレク
サM37と接続されている半加算器と置き換えることができるし、あるいは図8
によるインバータと置き換えることができる。この措置によって、回路的には図
1による構造が得られる。この図面には有利な形態のブース乗算器が示されてお
り、この場合、回路の単純化ゆえに半加算器と全加算器がインバータで置き換え
られている。
同様に、一定の1が供給される全加算器の回路も簡単にすることができる。
つまり、一定の1の加えられる全加算器VAを、EX−NORゲートおよびO
Rゲートで置き換えることができる。
符号補足の基本原理は種々の乗算器形式に適用でき
、2桁よりも多い符号の補足を行う必要のある場合でも適用できる(たとえば1
991年9月刊のM.Belleville等による文献"A 16*16 bits Multiplier 0.5μ
m CMOS technology" Proceedings of ESSCIRC'91,Milan/Italy)。
”最下位の”符号桁の場合、これまでどおり符号ビットの反転および論理値”
1”の加算が行われる。最上位の半加算器(加算器)の場合、一定の論理値”1
”が付加されるか、またはインバータと置き換えられる。同じようにして他の加
算器列も補われる。つまり、図1では部分積ビットb7の供給される中央の変形
された加算器回路が頻繁に生じる。
1つの加算器列においてただ1つの符号桁だけしか補わなくてよい場合には、
そのために1つの全加算器と1つの半加算器ないしインバータが必要とされる(
部分積ビットb7の供給される図6の半加算器HAは省略されることになる)。
次に、キャリー・セーブ方式によるフィールド乗算器に基づき本発明を説明す
る。
図9にはこの種の乗算器が示されている。各乗算器列R1,R2,R3,R5
,R7,R9において、被乗数x=x5....x0と乗数y=y5....y0の
それぞれ1つのビットとの乗算により、部分積a5....a0,b5....b0
,....,f5....f0が形成される。最初の3つの部分積a5....a0
,b5....b0,c5....c0はパラレルに、第1の加算器列R4におい
て1つの”小計”Z1にまとめられる。これは和ビット”S”とキャリービット
”C”とから成る(図5では見やすくするため、このことは全加算器VA45の
ところにだけ示されている)。
他の加算器列R6,R8,R10において、それぞれ1つの他の部分積d5.
...d0,...,f5....f0が上記の中間値に加えられる。
簡単にすべき符号ビットの結線が太いラインにより表されている。第1の加算
器列R4において、第1の部分積a5....a0の符号ビットa5が上位の3
つの全加算器VA44〜VA46へ導かれ、第2の部分積b5....b0の符号
ビットb5も、同じ上位の2つの全加算器VA45,VA46へ導かれる。
加算器列R4および次の加算器列において、それぞれ最上位の全加算器VA4
6,VA66,VA86,...から送出される和ビットを1つのビット桁だけ
補足する必要がある。
最後の部分積は、被乗数xの2の補数と乗数yの符号ビットykとの乗算によ
り形成される。終段加算器FAたとえばリプル加算器において、和ビットとキャ
リービットとから最終的な積が算出される。
負の数値を2の補数で表す場合、式(16)にしたがって積が算出される:
最上位の加算器VA46...VAA6の部分で、この回路を簡単にすべきで
ある。
その際、符号ビットを反転しそれぞれ数値1を加算する公知のアルゴリズムを
適用しても、所期の結果は得られない。それというのは、そのように場合には4
つの入力側を備えた加算器VA44,VA45を使用しなければならないからで
ある。
次に、回路の単純化に必要とする手法についてまずはじめに説明する。その際
、さしあたって2つの数値の符号ビットだけに絞って考察することにする。そし
てこれを多数の数値へと問題なく拡張できる。
最初の段階では、1つの符号ビットakに対する符号ビットの補足を次式にし
たがって実行する。
下位のビットを無視すれば、たとえばk=5において次式が成り立つ:
および
それらのビットの加算(これは別の数値の最上位ビットc5,c4の加算によ
り補われる)は、重みに応じて列ごとに並べられた次の表で示すことができる。
中央の2つの列は、式(18)および(19)にしたがって変形されたもので
ある。右側の2つの列の場合、論理値1の加算がすでに実行されたものである。
右側の両方の列に示されている変形は次のように解釈できる。すなわち、重み26
の反転された符号ビットと3番目の部分積のビットc4の加算ならびに論理値1
と3番目の部分積の符号ビットc5との加算により、和が算出される。
図10に示されている乗算器の場合、第1の加算器列R4においてこのような
単純化が行われている。最上位の次の全加算器VA45へ符号ビットa5とb5が
反転されて導かれ、最上位の全加算器VA46(図9
)はすでに半加算器HA46に置き換えられており、この半加算器へは符号ビッ
トC5のほかに一定の論理値1が導かれている。
もちろん、最上位の全加算器VA46(図9)ないし半加算器HA46(図1
0)において、式(17)ないし(18)にしたがって変形を施すこともできる
。しかしこの変形によっても、以下で述べるような手順とは異なり、回路がさら
に単純化されることにはならない。
半加算器の論理的動作(13)にしたがって、図10による回路装置をさらに
簡単にすることができ、これは次のようにして行える。すなわち、まずはじめに
最上位の半加算器HA46がインバータと置き換えられる。その結果が図11で
ある。第2の加算器列R6の最上位の全加算器VA66へは、互いに反転されて
いる2つの入力信号が供給される。したがって第3の段階で、この全加算器およ
び他の加算器列の別の最上位の全加算器VA86〜VAA6(図9)を、式(1
4)に応じて置き換えることができる。
に処理できるので、可変の入力値cmのほかに数値1の供給される1つの半加算
器で十分である。図11の場合、この簡略化はこれまで、半加算器HA86で置
き換えられた1つの全加算器VA86(図10)においてだけしか行わなかった
。
残りの最上位の全加算器も、一定の数値1(論理値1)の供給される半加算器
で置き換えることができ、さらにそれらの半加算器をやはりインバータで置き換
えることができる。図12には、このようにして最適化された回路構成が示され
ている。この場合、図9における最上位の全加算器VA46,VA66,...
VAA6は不要になっている。
当然ながら、ブールの規則による回路の変形も可能である。たとえば、1つの
ゲートと1つのインバータの直列回路を1つの反転ゲートで置き換えることがで
き、ANDゲートの機能をORゲートによってシミュレートできる。
符号ビットの補足の既述の基本原理を任意のビット桁数のために拡張すること
ができ、このことは殊に、少なくとも2つの符号ビットの処理されるビット桁に
関して重要である。
式(20)によれば次式が成り立つ:
このことは回路的には次のことを意味する。すなわち、符号ビットが反転され
て供給される全加算器の後
ろで、すべての最上位の全加算器を半加算器で置き換えることができ、それらの
半加算器へはcビットのほかに論理値1が供給される。数値1の加算が意味する
のはcビットの反転であり、したがって半加算器を式(13)にしたがって1つ
のインバータで置き換えることができる。
また、簡略化された符号ビット補足のために、一般的に適用できるアルゴリズ
ムを導出することもできる。ワード長k+1を有する2の補数表示の数値x=x
k....x0を以下のように表せる:
Sビットだけ符号を拡張する場合、符号ビットAおよびBの和に対し以下のこ
とが成り立つ:
回路を実現させる場合、個々の2進桁において個々の部分積ビットまたは先行
の加算器列からのキャリービットをさらに加える必要がある。
図5には、並列に動作するキャリー・セーブ乗算器の一部分が示されており、
相前後する2つの加算器列の間で2つのビットの符号ビットの補足が行われる。
この場合、最上位の全加算器VA4Aの両方の出力値を補う必要がある。
表(21)ないし式(24)にしたがって、まずはじめに第1の加算器列R4
が変形される。図14には、全加算器VA48に対する入力値の反転、ならびに
上位の2つの全加算器の半加算器HA49,HA4Aへの変形が示されている。
第2の段階で、半加算器HA49およびHA4Aが式(13)にしたがってそ
れぞれ1つのインバータと置き換えられる。このことにより形成される回路が図
15に示されている。
第3の段階で、後続の加算器列(R6)の上位の2つの全加算器VA6A,V
A69が式(14)にしたがって半加算器HA6A,HA69に置き換えられ、
さらにこれらの半加算器はインバータとして構成される(第2の段階と第3の段
階の順序は任意である)。
図16には最適化された回路構成が示されている。任意の大きさの符号ビット
補足においてこの手順を適用できる。
次に、キャリー・リプル方式による乗算器について本発明を説明する。
図17には、キャリー・リプル方式による公知のフィールド乗算器が示されて
いる。乗算器列R1,R2,R4,R6,R8,R10において、被乗数x=x5
...x0と乗数y=y5...y0のそれぞれ1つのビットとの乗算により、部
分積a5....a0,b5....b0,....,f5....f0が形成される
。最初の2つの部分積a5....a0,b5....b0は第1の加算器列R3に
おいて”小計”Z1にまとめられ、これは加算器VA,HAの和出力側”S”に
生じる(和出力側Sおよびキャリー出力側Cは図17(図18、図19)では見
やすくするため全加算器VA35においてしか示されていない)。
他の加算器列R5,R7,R9,R11において、その他の部分積c5...
.c0,...,f5....f0がそれぞれ加えられる。
太いラインで符号ビットの”結線”が示されている。第1の加算器列R3にお
いて、第1の部分積a5....a0の符号ビットa5が上位の3つの全加算器V
A34..VA36へ導かれ、第2の部分積b5.....b0の符号ビットb5
が上位の2つの全加算器VA35とVA36へ導かれている。
後続の加算器列R5....R11において、形成された小計に対しそれぞれ
1つの符号ビットの補足だけしか必要としない。
最後の部分積f5...f0は、被乗数xの2の補数と乗数yの符号ビットyk
との乗算により形成され、これは最後の小計Z4に加えられ、これによって最終
的な積p11..p0を得ることができる。
この乗算器の場合、負の数値が2の補数で表示されているならば式(16)に
したがって積が算出される。
符号の拡張のためにすでに導出されたアルゴリズムは、この乗算器形式にも適
用される。最上位の全加算器VA36,VA56,..の部分において、既述の
手順にしたがって回路を簡略化する。
最初の段階では、符号ビットak(重み≧2kから)のための符号の補足が式(
17)により実行される。
示されている回路の場合、この符号補足は加算器列R3の上位の全加算器VA
36,VA35において実行される。下位のビットを無視すれば次式が成り立つ
変形により得られたビットから(符号ビットに応じて)和が形成される。
(キャリービットc6とc7で補われた)これらのビットの加算を次の表で示す
ことができる。
中央の2つの列は、式(25)および(26)にしたがって変形されたもので
ある。右側の2つの列では、数値1の加算がすでに実行されている。これらの列
に示されている変形は次のように解釈できる。すなわち、重み26の反転された
符号ビットと3番目の部分積のキャリービットc5との加算ならびに論理値1と
符号ビットc5との加算により、和が算出される。数値1の加算とはキャリービ
ットの反転のことを意味する。したがって、半加算器をインバータで置き換える
ことができる。
本発明による乗算器の示されている図18において、このような簡略化が実現
されている。最上位の次のすべての全加算器VA35〜VAB5へ供給される符
号ビットは反転され、最上位の全加算器はそれぞれ半加算器HA36,HA56
....に置き換えられて
おり、それらの半加算器にはキャリービットのほかに一定の数値1が導かれてい
る。各半加算器の和出力側から送出されるビットSも(最上位桁の”和ビット”
P11を除いて)、次の部分積の符号ビットと組み合わせられる前に同じようにし
てやはり反転される。
半加算器の論理的動作(13)にしたがって、この回路構成をさらに単純にす
ることができ、これは次のようにして行える。すなわち、それぞれ半加算器とイ
ンバータとの直列回路(図18)を省略し、ダイレクトな接続で置き換えること
で行える(同様にインバータだけを省略することもでき、この場合には各半加算
器へ論理値1の代わりに論理値0が導かれる)。当然ながら、”ブールの規則”
にしたがってこの回路をさらに変形することも可能である。
図19には最適化されたフィールド乗算器が示されており、この場合には各加
算器列において、図17に比べて1つの全加算器が省略されており、図18に比
べて1つの半加算器が省略されている。その際、全加算器VAB5のキャリー出
力側から送出されるビットを反転させる必要がある。
キャリー・リプル方式で回路を実現する場合には各符号ビットを処理する2進
桁において、反転された符号ビットまたは一定の2進値(論理値1)のほかに、
下位の全加算器のキャリービットをそれぞれ加える必要がある。
さらに図20には、符号の補足を伴うキャリー・リプル乗算器の一部分が示さ
れている。
式(24)ないし表(27)にしたがって、まずはじめに第1の加算器列R3
が変形され、これは2つの符号ビットの導かれる全加算器VA39から着手され
る。
次に、表(27)にしたがって最上位の全加算器VA39(図20)が、論理
値1の供給される半加算器HA39で置き換えられる(図21;変形された回路
は図18に相応する。それというのはこの場合もともかくそれぞれ最上位の次の
加算器へ2つの符号ビットが導かれるからである)。
実施された回路変形は、符号ビットの反転ならびに最上位の全加算器VA59
を半加算器HA59で置き換えることで、次の加算器列に対して繰り返される。
最上位の半加算器へは、やはりキャリービットのほかに数値1がそれぞれ導かれ
る。
図21には変形された加算器列が示されている。
各加算器列の最上位の半加算器は、やはり式(18)にしたがってインバータ
で置き換えることができる。この場合、それまで設けられていたインバータIN
は省略される。それというのは半加算器とインバータにより符号ビットが2回反
転されるからである。その代わりにダイレクトな接続が行われる(たとえば、全
加算器VA38と次の加算器列における最上位の全加
算器の入力側との間の接続路中の半加算器HA39とインバータIN)。これに
対し、全加算器VA38のキャリー出力側と全加算器VA57の入力側との間に
付加的なインバータを必要とすることなどがある。
図22には最適化された回路構成が示されている。この場合、任意の個数の符
号補足であっても簡略化は同じままである。
ANDゲートとインバータの直列回路をNANDゲートで置き換えることから
はじまって、それをORゲート機能を有する等価回路により置き換えることなど
から、反転された信号の処理に至るまで、数多くの”ブール規則に基づく”変形
も当然ながら可能である。
すべての乗算器形式において、複数の部分積小計を並列に算出してそれらをま
とめることが知られているし、あるいは考えられる。
請求の範囲
1.少なくとも1つの2進桁で部分積(a5,b5,;a8,b8)または小計にお
ける符号ビットの補足が行われ、
補足すべき符号ビット(a5,b5,;a8,b8)が反転されて次の加算器列(
R3)における1つの加算器へ導かれ、該加算器(VA)において付加的に数値
1が加えられ、
同じ加算器列(R3)におけるそれよりも上位の加算器(HA)では符号ビッ
ト(a8)の代わりに一定の数値1がそれぞれ加えられる、
複数の加算器列から成るマトリクス状の回路構成を備えた乗算器において、
2つの部分積(a5....a0,b5....b0;a8...a0,b8...
b0)における2つの符号ビット(a5,b5;a8,b8)をまとめる第1の加算
器列(R4,R3)の下位の全加算器(VA45;VA
)が導かれ、
同じ加算器列(R4;R3)における最上位の加算器は半加算器(HA46;
HA4A)として構成されていることを特徴とする、
複数の加算器列から成るマトリクス状の回路構成を備えた乗算器。
2.少なくとも1つの加算器列(R4,R6,R8,...)を備えキャリー・
セーブ方式で構成されており、それぞれ少なくとも1つの2進桁で1つの部分積
(a5....a0,b5....b0)または1つの小計結果の符号ビット補足(
a5,b5,c5,...)が行われる、請求項1記載の乗算器。
3.第1の加算器列(R4)により3つの部分積(a5....a0,b5...
.b0,c5....c0)がまとめられる、請求項2記載の乗算器。
4.別の加算器列(R6,R8,R10)における最上位の加算器は半加算器(
...,HA86,....)として構成されており、該加算器へは1つの部分
積の符号ビット(...,e5,...)のほかに数値1がそれぞれ導かれる、
請求項2または3記載の乗算器。
5.複数のビットを含む符号ビット補足では、2つの符号ビット(a8,b8)を
まとめる第1の加算器列における下位の全加算器(VA48)へ、それらの符号
れ、
該加算器列(R4)におけるそれよりも上位の加算器は半加算器(HA49,
HA4A)として構成されており、該加算器へは1つの部分積(c8....c0
)における上位のビット(c7,c8)のうちの一方のほかに数値値1が導かれる
、
請求項2〜4のいずれか1項記載の乗算器。
6.後続の加算器列(R6,...)における相応の上位の加算器は半加算器(
HA6A,HA69)として構成されており、該加算器へは別の部分積(d8.
...d0)における上位のビット(d8,d7)のうちそれぞれ1つのビットと
数値1が導かれる、請求項5記載の乗算器。
7.少なくとも1つの加算器列(R3,R5,R7,...)を備えキャリー・
リプル方式で構成されており、それぞれ少なくとも1つの2進桁で1つの部分積
(a5....a0,b5....b0)または1つの小計(Z1,Z2,...)
の符号ビット補足(a5,b5,c5,...)が行われる、請求項1記載の乗算
器。
8.各加算器列の最上位の加算器は半加算器(HA36,HA56)として構成
されている、請求項7記載の乗算器。
9.1つの加算器列(R3,...)におけるそれぞれ最上位の半加算器(HA
36,...)の和出力側(S)は、インバータ(IN)を介して次の加算器列
(R5,...)における最上位から2番目の加算器、全加算器(VA55,.
..)と接続されており、または半加算器(HA36,...)には反転を行う
和出力側が設けられている、請求項7または8記載の乗算器。
10.複数のビットを含む符号ビットの補足では、1つの加算器列(R3,...
)における最上位の半加算器(HA39,...)のそれぞれ和出力側(S)が
、それぞれ1つのインバータ(IN)を介して次の加算器列(R5,...)に
おける最上位から2番目の加算器、全加算器(VA58,...)と接続されて
おり、該次の加算器列(R5,...)におけるそれよりも下位の少なくとも1
つの全加算器(VA57)の入力側とダイレクトに接続されている、請求項7、
8または9記載の乗算器。
11.最上位の半加算器(HA36;HA39,...)および該半加算器と直列
に接続されたインバータ(IN)はそれぞれ、同じ加算器列(R3,...)に
おける最上位から2番目の全加算器(VA35;VA38,...)のキャリー
出力側(C)と次の加算器列(R5,...)における最上位から2番目の全加
算器(VA55;VA58,...)の入力側とのダイレクトな接続で置き換え
られる、請求項9または10記載の乗算器。
12.処理すべきデータビットのほかに数値1がそれぞれ導かれる半加算器(HA
46,...HA86,..;HA4A,HA49,HA6A,HA69)はイ
ンバータ(IN)として構成されている、請求項1〜11のいずれか1項記載の
乗算器。
供給される全加算器(VA)の代わりに、半加算器(HA)またはインバータが
設けられている、請求項1〜12のいずれか1項記載の乗算器。
14.1つの加算器列(R3,...)における最上位から2番目の全加算器(V
A38,..)のキャリー出力側(C)は付加的にインバータを介して、次の加
算器列(R5,..)におけるそれよりも下位の少なくとも1つの全加算器(V
A54,...)の入力側とそれぞれ接続されている、請求項12記載の乗算器
。
15.最上位の部分積(f5およびf0)は、被乗数(x)の反転および乗数(y)
の符号ビット(y5)との乗算ならびにその符号ビット(y5)の加算により算出
される、請求項1〜14のいずれか1項記載の乗算器。
16.処理すべきデータビット(d5,c5)のほかに数値1が導かれる加算器列(
R3,R5,R7)のそれぞれ最上位の加算器(VA66,HA46)はインバ
ータで置き換えられ、または付加的に反転されたビッ
におけるカスケード接続された加算器(VA)へ供給される、請求項1〜15の
いずれか1項記載の乗算器。
17.当該回路構成には”ブール規則による変形”が含まれる、請求項1〜16の
いずれか1項記載の乗算器
。
18.部分積(a5...a0,b5...b0,...a8....,b8....)
の代わりに被加数が加えられ、これにより当該回路が加算器として動作する、請
求項1〜17のいずれか1項記載の計算回路。
─────────────────────────────────────────────────────
フロントページの続き
(31)優先権主張番号 P4432432.4
(32)優先日 1994年9月12日
(33)優先権主張国 ドイツ(DE)
(81)指定国 EP(AT,BE,CH,DE,
DK,ES,FR,GB,GR,IE,IT,LU,M
C,NL,PT,SE),JP,US