(57)【特許請求の範囲】
【請求項１】
乗数ビット信号（ｂｊ）を入力して複数個のエンコード信号を出力するエンコーダ（２０５：１２）と、該エンコード信号と各桁の被乗数ビット信号（ａｉ，／ａｉ）を入力して各桁の部分積ビットを生成する部分積ビット生成回路（１４）とを備えたデジタル乗算回路であって、
前記部分積ビット生成回路（１４）は、前記被乗数ビット信号の値に応じて前記エンコード信号のうちの論理的に正しい信号を選択する第１の選択回路（２０１，２０３）を具備することを特徴とする乗算回路。
【請求項２】
請求項１に記載の乗算回路において、前記部分積ビット生成回路（１４）には、被乗数ビット信号とその否定信号（ａｉ，／ａｉ）が供給されるようになっていることを特徴とする乗算回路。
【請求項３】
請求項１記載の乗算回路において、前記エンコーダ（２０５：１２）は、ブースエンコーダであることを特徴とする乗算回路。
【請求項４】
請求項１に記載の乗算回路において、前記第１の選択回路（２０１，２０３）により選択されるエンコード信号（Ｂ１ｊ，Ｂ２ｊ；Ｍｊ，ＰＬｊ) は、エンコードされた結果として必要な信号が被乗数ビット信号そのものであるか或いはその否定信号であるかを識別する信号であることを特徴とする乗算回路。
【請求項５】
請求項４に記載の乗算回路において、前記部分積ビット生成回路（１４）は、同一の部分積ビット生成回路内に複数桁の被乗数ビット信号（ａｉ，／ａｉ；ａi+1,／ａi+1)を有し、さらに、該各被乗数ビット信号により選択された複数個の信号のうちから、選択された信号とは異なるエンコード信号（Ｘｊ，２Ｘｊ）に応じてエンコード結果に対応した信号を選択する第２の選択回路（２０２，２０４）を備えたことを特徴とする乗算回路。
【請求項６】
請求項５に記載の乗算回路において、前記第１および第２の選択回路（２０１，２０３；２０２，２０４）は、伝送ゲートであることを特徴とする乗算回路。
【請求項７】
請求項１〜６のいずれか１項に記載の乗算回路において、被乗数桁に応じた相補の被乗数ビット信号を伝える被乗数ビット信号線を二次元平面の第１の方向に平行に配置し、乗数桁に応じたエンコード信号線の組を該第１の方向と交差する第２の方向に配置すると共に、前記部分積ビット生成回路（１４）を該被乗数ビット信号線および該エンコード信号線の予め定めた複数の隣接交点を包含するように繰り返して配置するようにしたことを特徴とする乗算回路。
【請求項８】
４つの同位桁入力信号および１つの中間桁上げ信号を入力し、１つの中間桁上げ信号，和信号，および，桁上げ信号を生成する桁上げ保存型加算回路であって、
第１の同位桁入力信号および第２の同位桁入力信号の論理和信号または該論理和の否定信号と排他的論理和信号とを生成し、該排他的論理和信号が第１の値（“１”）のときは第３の同位桁入力信号を前記中間桁上げ信号として出力し、且つ、該排他的論理和信号が第２の値（“０”）のときは前記論理和信号または該論理和の否定信号を前記中間桁上げ信号として出力することを特徴とする加算回路。
【請求項９】
４つの同位桁入力信号および１つの中間桁上げ信号を入力し、１つの中間桁上げ信号，和信号，および，桁上げ信号を生成する桁上げ保存型加算回路であって、
第１の同位桁入力信号および第２の同位桁入力信号の論理積信号または該論理積の否定信号と排他的論理和信号とを生成し、該排他的論理和信号が第１の値（“１”）のときは第３の同位桁入力信号を前記中間桁上げ信号として出力し、且つ、該排他的論理和信号が第２の値（“０”）のときは前記論理積信号または該論理積の否定信号を前記中間桁上げ信号として出力することを特徴とする加算回路。
【請求項１０】
請求項８または９に記載の加算回路において、前記和信号を生成するために５つの入力信号の排他的論理和を取る回路は、第１の同位桁入力信号および第２の同位桁入力信号の排他的論理和信号と、第３の同位桁入力信号および第４の同位桁入力信号の排他的論理和信号との排他的論理和を取る回路のみが単一伝送ゲート形回路により構成され、且つ、その他の排他的論理和回路は、全て駆動ゲート回路または相補伝送ゲート形回路により構成されていることを特徴とする加算回路。
【請求項１１】
請求項１０に記載の加算回路において、前記単一伝送ゲート形回路により構成された排他的論理和回路は、６個のトランジスタにより構成されていることを特徴とする加算回路。
【請求項１２】
４つの同位桁入力信号および１つの中間桁上げ信号を入力し、１つの中間桁上げ信号，和信号，および，桁上げ信号を生成する桁上げ保存型加算回路であって、
前記和信号を生成するために５つの入力信号の排他的論理和を取る回路は、第１の同位桁入力信号および第２の同位桁入力信号の排他的論理和信号と、第３の同位桁入力信号および第４の同位桁入力信号の排他的論理和信号との排他的論理和を取る回路のみが単一伝送ゲート形回路により構成され、且つ、その他の排他的論理和回路は、全て駆動ゲート回路または相補伝送ゲート形回路により構成されていることを特徴とする加算回路。
【請求項１３】
請求項１２に記載の加算回路において、前記単一伝送ゲート形回路により構成された排他的論理和回路は、６個のトランジスタにより構成されていることを特徴とする加算回路。
【請求項１４】
請求項８〜１３のいずれか１項に記載の加算回路を部分回路として具備することを特徴とする乗算回路。
【請求項１５】
ブースのアルゴリズムを用いる乗算回路の部分積ビット圧縮方法であって、
最上位部分積に対する２の補数生成用補正値と、最下位部分積の符号桁および該最上位部分積の最下位桁から該最下位部分積の符号桁の１桁下位の桁までのビットで表現される２進数との和に相当する各桁のビット信号を、ブースのアルゴリズムに従った部分積ビット信号に代えて直接生成するようにしたことを特徴とする乗算回路の部分積ビット圧縮方法。
【請求項１６】
符号拡張を補正処理により避ける方式を用いる乗算回路の部分積ビット圧縮方法であって、
符号補正のために行う１の加算を各部分積の符号桁の１桁上位の桁で行うようにし、当該符号桁を含む桁における同位桁加算出力としての中間桁上げ信号または桁上げ信号そのものを２桁上位の桁において加算すると共に、その否定信号を１桁上位の桁において加算することを特徴とする乗算回路の部分積ビット圧縮方法。
【請求項１７】
ブースのアルゴリズムを用いる乗算回路であって、
最上位部分積に対する２の補数生成用補正値と、最下位部分積の符号桁および該最上位部分積の最下位桁から該最下位部分積の符号桁の１桁下位の桁までのビットで表現される２進数との和に相当する各桁のビット信号を、ブースのアルゴリズムに従った部分積ビット信号に代えて直接生成する回路を具備することを特徴とする乗算回路。
【請求項１８】
符号拡張を補正処理により避ける方式を用いる乗算回路であって、
符号桁を含む桁における同位桁加算出力としての中間桁上げ信号または桁上げ信号そのものを２桁上位の桁において加算すると共に、その否定信号を１桁上位の桁において加算して符号補正のために行う１の加算を各部分積の符号桁の１桁上位の桁で行うようにした回路を具備することを特徴とする乗算回路。
【請求項１９】
ブースのアルゴリズムを用いると共に、符号拡張を補正処理により避ける方式を用いる乗算回路であって、
最上位部分積に対する２の補数生成用補正値と、最下位部分積の符号桁および該最上位部分積の最下位桁から該最下位部分積の符号桁の１桁下位の桁までのビットで表現される２進数との和に相当する各桁のビット信号を、ブースのアルゴリズムに従った部分積ビット信号に代えて直接生成する回路と、
符号桁を含む桁における同位桁加算出力としての中間桁上げ信号または桁上げ信号そのものを２桁上位の桁において加算すると共に、その否定信号を１桁上位の桁において加算して符号補正のために行う１の加算を各部分積の符号桁の１桁上位の桁で行うようにした回路とを具備することを特徴とする乗算回路。
【請求項２０】
請求項１〜７，１４，および，１７〜１９のいずれか１項に記載の乗算回路を、信号処理機能を実現するための付加回路と共に集積化したことを特徴とする大規模半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、乗算回路、該乗算回路を構成する加算回路、該乗算回路の部分積ビット圧縮方法、および、該乗算回路を適用した大規模半導体集積回路に関し、特に、高速性を犠牲にすることなく必要素子数を減少させて小型化した乗算回路に関する。
【０００２】
近年、マイクロプロセサやデジタル信号処理プロセサに代表されるように、大規模半導体集積回路の製造・設計技術の長足の進歩に伴って、高速で大規模な演算回路の需要が増大している。特に、演算時間が長く、且つ、多くの回路を必要とする乗算回路に対しては、素子数の少ない高速回路が要望されている。
【０００３】
【従来の技術】
従来より、高速で素子数の少ない乗算回路方式としては、ブース（Ｂｏｏｔｈ）のアルゴリズムとワレストリー（Ｗａｌｌａｃｅ  Ｔｒｅｅ）の併用方式がよく知られている。
図１は乗算回路の一例を概略的に示すブロック図である。図１において、参照符号１１は乗数レジスタ，１２はブースエンコーダ，１３は被乗数レジスタ，１４は部分積ビット生成回路，１５はワレストリー回路，１６は桁上げ伝搬加算回路，そして，１７は積レジスタを示している。
【０００４】
図１に示されるように、乗算レジスタ１１から出力される各乗数ビットは、ブースエンコーダ１２を経由してエンコード信号の組として部分積ビット生成回路１４に入力される。一方、被乗数ビット信号（１３）は、直接部分積ビット生成回路１４に入力される。
部分積ビット生成回路１４では、被乗数ビット信号とエンコード信号の組から、各桁の部分積ビットを生成する。これら部分積ビット信号は、桁合わせを行って対応するワレストリー回路１５を構成する多段構成の桁上げ保存型加算回路（４−２圧縮回路や１ビット加算回路など）に入力されて同位桁数の圧縮が行われ、同位桁における加算ビット数が２になるまで、同位桁加算が繰り返される。各桁で同位桁数が２になったら、それらの信号は桁上げ伝搬型加算回路１６に入力されて通常の２入力加算が行われ、さらに、各桁の積信号が生成されて積レジスタ１７に格納される。
【０００５】
上述した図１の乗算回路の構成では、ブースエンコーダ（エンコーダ）と部分積ビット生成回路、および、ワレストリー回路の部分を分離して考える必要がある。
まず、エンコーダと部分積ビット生成回路について述べる。この両者は相互に関連しているので、同時に考える必要がある。（変形）２次ブースのアルゴリズムに基づくエンコードの具体例は、例えば、特開昭５５−１０５７３２号公報に開示されている。
【０００６】
図２は従来の乗算回路における部分積ビット生成回路１４の一例を示す回路図であり、上記の特開昭５５−１０５７３２号公報に開示されたものを示している。また、次の表１は２次ブースのエンコード方法を説明するための真理値表である。
【０００７】
【表１】
0003678512.tif 000002
【０００８】
ここで、ａｉはｍビット被乗数の第ｉ桁（第０桁が最下位桁で第（ｍ−１）桁が符号を示す最上位桁ビットａｓ：２の補数表示）、ｂｊはｎビット乗数の第ｊ桁で被乗数と同様に表記するものとする。また、Ｘｊ，２Ｘｊ，Ｍｊは、乗数の第ｊ桁に係わる２次ブースのエンコーダ出力信号の組であって、それぞれ１×被乗数、２×被乗数、被乗数の否定信号を、当該桁の部分積ビット信号として出力すべきことを示している。なお、表１に示されるように、ブースエンコーダ１２におけるエンコードは、乗数ｂｊ−１，ｂｊ，ｂｊ＋１の値（レベル）からそれぞれ対応するレベルのＸｊ，２Ｘｊ，Ｍｊ（ＰＬｊ）を生成する。
【０００９】
図２に示す部分積ビット生成回路１４は、これら３つの信号（Ｘｊ，２Ｘｊ，Ｍｊ）と被乗数ビット（ａｉ，ａｉ−１）とから、第ｉ桁の被乗数、第ｊ桁の乗数に係わる部分積ビット信号Ｐｉ，ｊを生成する回路である。この図２の部分積ビット生成回路１４は、ブースエンコーディングの結果として、乗数２ビット分につき１組のエンコーダ出力信号を生成するため、同位桁加算ビット数が直接加算の場合に比べて半減し、演算の高速化と必要回路数の低減が可能となる。
【００１０】
図２に示されるように、この部分積ビット生成回路は、２個のＡＮＤ回路１０１，１０２、１個のＮＯＲ回路１０３、および、１個のＥＮＯＲ回路１０４により構成され、大規模半導体集積回路の構築に最も多く使われているＣＭＯＳ（相補型金属−酸化膜−半導体）デバイス技術を用いて実現すると、１８個のトランジスタ（素子）を必要とする。
【００１１】
図３は従来の乗算回路における部分積ビット生成回路１４の他の例を示す回路図であり、特開平４−２２７５３４号公報に開示されたものを示している。
図３に示す部分積ビット生成回路１４では、ブースエンコーダ１２の出力信号はＳＸ２（＋２のとき）、ＳＸ２＊（−２のとき）、ＳＸ１（＋１のとき）、ＳＸ１＊（−１のとき）、および、Ｓ0 （０のとき）の５組の信号からなり、被乗数ビットａｉ，ａｉ−１，／ａｉ，／ａｉ−１の信号と“１”（高レベル”Ｈ”）固定の信号のいずれか１つを選択し、インバータを介して出力するようになっている。この図３の部分積ビット生成回路は、１個のトランジスタ（Ｐチャネル型ＭＯＳトランジスタ）１０５、４個の伝送ゲート１０６〜１０９、および、５個のインバータ１１０〜１１４で構成され、必要な素子数は図に描かれているものだけで１９個である。
【００１２】
また、図３の部分積ビット生成回路では、ａｉ，ａｉ−１（被乗数ビット信号）の信号線を直接伝送ゲートの入力端子に繋ぐようにしているが、この場合には、ａｉ，ａｉ−１を出力するゲートの駆動能力が余程大きくないと、伝送ゲートと駆動ゲートの直列抵抗と本回路内インバータのゲート容量、入力端子に繋がる配線容量、伝送ゲートのソース−ドレイン容量の総和で決まる容量との時定数が大きくなり、信号波形の鈍りによる消費電力の増大、信号の立ち上がり−立ち下がり時間増による遅延時間の増大を招くことになる。
【００１３】
従って、同一のａｉの信号線から接続できる部分積ビット生成回路は高々２つであり、それ以上の生成回路への信号供給は別途バッファ回路を介して行う必要がある。さらに、ａｉ，ａｉ−１を反転するためのインバータが必要なので、これらの付加回路で１ビット当り４個で、計２３素子（２３個のトランジスタ）が必要となる。なお、ＳＸ２，ＳＸ２＊，ＳＸ１，ＳＸ１＊の各信号の否定信号を予め用意して部分積ビット生成回路に入力してやれば伝送ゲート制御用のインバータが不要となり必要数を１５個にまで減らせるが、その場合には、エンコード信号線が９個で１組となるため、ＬＳＩ化を考えたとき配線ネックになる恐れがあり好ましくない。
【００１４】
図４は従来の乗算回路における部分積ビット生成回路１４のさらに他の例を示す回路図であり、特開平５−８８８５２号公報に開示されたものを示している。この図４に示す部分積ビット生成回路１４は、１個のトランジスタ１１５、２個の伝送ゲート１１６，１１７、３個のインバータ１１８〜１２０、および１個のＥＮＯＲ回路１２１で構成され、２１個の素子を必要とする。
【００１５】
次に、ワレストリー回路１５に関する従来回路に言及する。ブースエンコーダ１２を経由して生成された同位桁部分積ビット（最大で（ｎ／２＋１）個）を、ワレストリー回路１５では１ビット当り２つの同位桁数になるまで、桁上げ保存型加算回路を用いて繰り返し圧縮する。この時使用する桁上げ保存型加算回路として、１ビット全加算回路や４−２圧縮回路が使用される。なお、同位桁数が多いときは、後者の回路を用いた方が高速に処理を行えることが多い。
【００１６】
図５は従来の乗算回路におけるワレストリー回路１５を構成する４−２圧縮回路の一例を示す回路図であり、特開平２−１１２０２０号公報に開示されたものを示している。図５に示す４−２圧縮回路は、１個のインバータ１２２、２個のＡＮＤ回路１２３，１２４、３個のＯＲ回路１２５〜１２７、３個のＮＡＮＤ回路１２８〜１３０、１個のＮＯＲ回路１３１、および、４個のＥＯＲ回路１３２〜１３５で構成されている。すなわち、図５に代表される４−２圧縮回路は、出力信号の１つである和信号Ｓｉ，ｊを生成するために中間桁上げ信号Ｃｉｎを含めて５個の入力の排他的論理和（ＥＯＲ）を取る４個のＥＯＲ回路１３２〜１３５が必要となる。
【００１７】
図６は従来から使用されている１０トランジスタＥＯＲ回路（相補伝送ゲート形ＥＯＲ回路）を示す回路図であり、２つの入力信号ｘ１およびｘ２の排他的論理和信号（ＥＯＲ信号）を生成するためのものである。また、図７は従来から使用されている６トランジスタＥＯＲ回路（単一伝送ゲート形ＥＯＲ回路）を２組（ＥＯＲ１，ＥＯＲ２）使用して構成した全加算回路の和信号生成回路を示す回路図であり、３つの入力信号ｘ１，ｘ２，ｘ３のＥＯＲ信号を生成するためにＥＯＲ回路を２段設けたものである。
【００１８】
図６に示されるように、ＬＳＩを作るのに最も多く使われているＣＭＯＳ回路技術を用いたとき、相補伝送ゲート形ＥＯＲ回路は、通常、３個のインバータ１３６〜１３８および２個の伝送ゲート１３９，１４０の１０個のトランジスタが必要とされる。
また、図７に示されるように、１個のＥＯＲ回路（ＥＯＲ１）は、トランジスタ１４１，１４２、１個の伝送ゲート１４３、および、１個のインバータ１４４で構成することができる。すなわち、ＥＯＲ回路は、６個のトランジスタ（素子）で構成することも可能である。この６個のトランジスタで構成した単一伝送ゲート形６トランジスタＥＯＲ回路は、例えば、特開昭５８−２１１２５２号公報、特開昭５９−２１１１３８号公報、特開昭６１−２６２９２８号公報、或いは、特開平４−２２７５３４号公報などの多くの文献に参照されている。
【００１９】
【発明が解決しようとする課題】
ところで、上述した６トランジスタＥＯＲ回路は、図６に示す１０トランジスタＥＯＲ回路と比べて処理速度がかなり遅く、特に、図７に示すような２個のＥＯＲ回路を直接結合させたときに、その遅れが致命的になる。その理由は次の通りである。
【００２０】
いま、図７において、Ｘ１＝“１”，Ｘ２＝“１”，Ｘ３＝“１”であり、次の瞬間に、Ｘ１＝“０”，Ｘ２＝“０”，Ｘ３＝“１”に変化したとすると、Ｎチャネル型トランジスタ１４２（Ｔ１）がオンからオフ状態に変化し、また、Ｐチャネル型トランジスタ１４１（Ｔ２）および１４０（Ｔ３）がオフからオン状態に変化する。その結果、電流の流れがノードＮ２からノードＮ３に変化するが、ノードＮ２とノードＮ３とは電気的に隔離（遮断）されているために、ノードＮ２の変化がノードＮ３に及ぶことはない。また、逆に、ノードＮ３の変化がノードＮ２に及ぶこともない。さらに、ノードＮ１の電位は、抵抗値の高いＰチャネル型トランジスタＴ２およびＴ３の直列回路に電流が流れ始めてから変化するものであるため、緩慢にしか変化しない。
【００２１】
これに対して、図６のＰチャネル型トランジスタおよびＮチャネル型トランジスタの並列接続からなるスイッチ回路（伝送ゲート１３９，１４０）では、一方のトランジスタがオンからオフになるときは、もう一方のトランジスタはオフからオンになり、双方の状態変化がお互いに影響しあって変化を加速するため、高速のスイッチングが可能となる。以上のように、６トランジスタＥＯＲ回路は、使用素子数が少ない分、処理速度が犠牲になっており、高速を要する回路では使いづらい。なお、図５に示すワレストリー回路を１０トランジスタＥＯＲ回路で構成すると、全部で６６素子（６６個のトランジスタ）が必要となる。
【００２２】
図８および図９は伝送ゲートを用いた場合に生じる動作遅延を説明するための図である。
まず、図８（ａ）に示されるように、駆動ゲートＤＧからの信号Ｓが伝送ゲートＴＧに供給され、該伝送ゲートＴＧの出力により複数の負荷ＬＧ（例えば、ｎ個のインバータ）が駆動される場合を考えると、その等価回路としては、図８（ｂ）のようになる。すなわち、該等価回路は、駆動ゲートＤＧによる電圧源Ｅおよび抵抗分Ｒｄ、伝送ゲートＴＧの抵抗分（オン抵抗）Ｒｔ，該伝送ゲートＴＧを構成するトランジスタのソースおよびドレインにおける容量分ＣｓおよびＣｄ、並びに、ｎ個の各負荷ＬＧの入力容量Ｃｇにより表される。
【００２３】
さらに、説明を簡略化するために、図８（ｂ）の等価回路を図８（ｃ）のように書き直して考えると、信号Ｓの立ち上がり−立ち下がりにおける遅延時間τ１は、次の式で示される。ここで、Ｒｔ≒１／２・Ｒｄ、Ｃｓ≒Ｃｄ≒Ｃｇと仮定する。なお、半導体デバイスが微細化され、例えば、線幅が０．３５μｍ程度のＣＭＯＳデバイスでは、実質的に、Ｃｓ≒Ｃｄ≒Ｃｇと見做し得る。
【００２４】
τ１∝（Ｒｄ＋Ｒｔ）・（Ｃｓ＋Ｃｄ＋ｎＣｇ）
≒３／２・（ｎ＋２）・Ｃｇ・Ｒｄ
このように、伝送ゲートＴＧにより負荷ＬＧを駆動する場合には、該各負荷ＬＧの入力容量Ｃｇを１．５倍したものを駆動しなければならず、遅延時間τ１が大きく（駆動速度が遅く）なってしまう。さらに、上記の式における（ｎ＋２）の＋２の項による影響も関与することになり、ｎに単純比例する以上に遅延時間τ１が大きくなる。
【００２５】
一方、図９（ａ）に示されるように、駆動ゲートＤＧからの信号Ｓが直接複数の負荷ＬＧ（例えば、ｎ’個のインバータ）に供給されて駆動する場合、その等価回路としては、図９（ｂ）のようになる。さらに、図９（ｂ）の等価回路を簡略化すると、図９（ｃ）のようになる。ここで、信号Ｓの立ち上がり−立ち下がりにおける遅延時間τ２は、次の式で示される。
【００２６】
τ２∝ｎ’・Ｒｄ・Ｃｇ
この図９に示す駆動ゲートＤＧによりｎ’個の負荷ＬＧを駆動する場合には、各負荷ＬＧの入力容量Ｃｇのｎ’個分を駆動するだけでよいため、図８で説明したような伝送ゲートＴＧによりｎ個の負荷ＬＧを駆動する場合よりも、高速駆動が可能となる。
【００２７】
図１０は従来の乗算回路におけるワレストリー回路を構成する４−２圧縮回路の他の例を示す回路図であり、米国のIEEE（The Institute of Electrical and Electronics  Engineers,INC.)が発行している雑誌 "IEEE Journal of Solid-State Circuits" の１９９５年３月号に掲載された乗算回路の論文(pp. 251〜257)で採用している４−２圧縮回路の構成を示すものである。図１０に示されるように、この４−２圧縮回路（ＤＰＬ(Dual Pass Transistor Logic)４−２ Compressor)は、８個のインバータ１４５〜１５２および９個の相補伝送ゲート１５３〜１６１で構成され、全部で５２素子（５２個のトランジスタ）を備えて構成されている。しかしながら、この図１０に示す４−２圧縮回路も、信号入力端子に直接伝送ゲートの直列抵抗がぶら下がる構成となっているため、入力端子に長い配線が繋がるなど入力容量が大きいときや、他に入力抵抗が存在するときは信号の立ち上がり−立ち下がり時間が大きくなり、処理速度が遅くなる。
【００２８】
ところで、ワレストリー回路部では、圧縮すべき同位桁ビット数を少なくできれば圧縮回路も少なくて済み、その結果、乗算回路の小型化に寄与することができる。そして、従来、同位桁ビット数の削減は主として部分積の符号ビットの圧縮という観点から行われてきた。例えば、特開昭５７−１２１７３６号公報および特開昭５９−３６３４号公報などに、その具体例が示されている。
【００２９】
また、特開平４−２８７２２０号公報には、２の補数表現の部分積（倍数）を加算するときに、各々の部分積の符号を上位桁へ拡張することなしに正しい演算結果を得ることのできる補正手段が開示され、該補正手段により上記部分積の符号操作と補正値を加算するための独立した補正回路の付加とを行うことなく、該部分積ビット群を加算するための加算器にこの補正回路と同等の演算結果が得られるような変形を加えたことを特徴とする乗算回路に関する記述がある。しかしながら、特開平４−２８７２２０号公報に示された方法では、符号桁に関連する回路を簡略化することは可能であっても、２次のブースのアルゴリズムを用いたときの同位桁部分積ビットの最大数（（ｎ／２＋１）個）を変えられないため、ワレストリー回路部のクリティカルパスを短縮することはできない。
【００３０】
さらに、１９９６年の電子情報通信学会総合大会の一般講演Ｃ−５４１（講演論文集：エレクトロニクス２、ｐ．１５７）において、被乗数の下位５ビット分について予め２の補数を求めておき、ブースのエンコード結果が負のときに、通常の部分積ビットに代えて予め求めておいた２の補数ビットを出力することで、同位桁部分積ビットの最大数をｎ／２個に圧縮して高速化を図る方法が提案されている。この方法では、同位桁部分積ビットの最大数を減らしワレストリー部のクリティカルパスを短縮することは可能であるが、５ビットの補数を発生させるところでブースエンコーダ以上の遅延が発生し、さらに、５ビットの補数発生回路を必要とするため、部分積の最大数を減らしたことによる高速化の効果が相殺され、また、乗算回路全体の素子数は逆に増えることになってしまうこともあり得る。
【００３１】
また、エンコーダと部分積ビット生成回路に関して、従来の部分積ビット生成回路１４は、１ビットにつき２０前後の素子を必要としており、ブースのエンコーディングにより、加算すべき同位桁ビット数は半減するが、部分積ビット生成に多くの素子を必要とするため、全体の回路素子数の減少が期待する程大きくなく、特に、乗数桁ｎの小さい場合は逆に総素子数が増えてしまうことがあった。
【００３２】
上述したように、従来の技術においても、様々な観点から乗算回路の高速化、素子数削減が行われているが、さらに、より一層高速で且つ素子数の少ない乗算回路の工夫の余地が残されている。そして、本発明は、乗算回路の各部分回路を改良し、それらの組み合わせにより従来以上に優れた乗算回路を提供せんとするものである。
【００３３】
このように、本発明は、上述した従来技術が有する課題に鑑み、高速性を犠牲にすることなく必要素子数を減少させて小型化した乗算回路の提供を目的とする。
すなわち、本発明は、必要素子数を半減することのできる部分積ビット生成回路（乗算回路）、および、該部分積ビット生成回路を実現するのに適したエンコーダ（ブースエンコーダ）の提供を第１の目的とする。また、本発明は、４同位桁入力桁上げ保存型加算回路（４−２圧縮回路）に関して、従来、５０素子を超える回路であったのを、高速性を犠牲にすることなく５０素子以下で構成することのできる加算回路（４−２圧縮回路：乗算回路）の提供を第２の目的とする。さらに、本発明は、同位桁部分積ビット数の削減に関して、従来よりも必要な素子数が増大することなく、且つ、部分積ビットの圧縮処理でのクリティカルパスを短縮することのできる部分積ビット圧縮方法の提供を第３の目的とする。
【００３４】
【課題を解決するための手段】
本発明の第１の形態によれば、乗数ビット信号を入力して複数個のエンコード信号を出力するエンコーダと、該エンコード信号と各桁の被乗数ビット信号を入力して各桁の部分積ビットを生成する部分積ビット生成回路とを備えたデジタル乗算回路であって、前記部分積ビット生成回路は、前記被乗数ビット信号の値に応じて前記エンコード信号のうちの論理的に正しい信号を選択する第１の選択回路を具備することを特徴とする乗算回路が提供される。
【００３５】
本発明の第２の形態によれば、４つの同位桁入力信号および１つの中間桁上げ信号を入力し、１つの中間桁上げ信号，和信号，および，桁上げ信号を生成する桁上げ保存型加算回路であって、第１の同位桁入力信号および第２の同位桁入力信号の論理和信号または該論理和の否定信号（或いは、論理積信号または該論理積の否定信号）と排他的論理和信号とを生成し、該排他的論理和信号が第１の値（“１”）のときは第３の同位桁入力信号を前記中間桁上げ信号として出力し、且つ、該排他的論理和信号が第２の値（“０”）のときは前記論理和信号または該論理和の否定信号（或いは、論理積信号または該論理積の否定信号）を前記中間桁上げ信号として出力することを特徴とする加算回路が提供される。
【００３６】
本発明の第３の形態によれば、ブースのアルゴリズムを用いる乗算回路の部分積ビット圧縮方法であって、最上位部分積に対する２の補数生成用補正値と、最下位部分積の符号桁および該最上位部分積の最下位桁から該最下位部分積の符号桁の１桁下位の桁までのビットで表現される２進数との和に相当する各桁のビット信号を、ブースのアルゴリズムに従った部分積ビット信号に代えて直接生成するようにしたことを特徴とする乗算回路の部分積ビット圧縮方法が提供される。
【００３７】
【発明の実施の形態】
本発明に係る第１の形態の乗算回路によれば、部分積ビット生成回路が有する第１の選択回路は、被乗数ビット信号の値に応じてエンコード信号のうちの論理的に正しい信号を選択する。ここで、第１の選択回路により選択されるエンコード信号は、エンコードされた結果として必要な信号が被乗数ビット信号そのものであるか或いはその否定信号であるかを識別する信号となっている。
【００３８】
本発明に係る第２の形態の加算回路によれば、第１の同位桁入力信号および第２の同位桁入力信号の論理和信号または該論理和の否定信号（或いは、論理積信号または該論理積の否定信号）と排他的論理和信号とが生成され、該排他的論理和信号が第１の値（“１”）のときは第３の同位桁入力信号を中間桁上げ信号として出力し、且つ、該排他的論理和信号が第２の値（“０”）のときは論理和信号または該論理和の否定信号（或いは、論理積信号または該論理積の否定信号）を中間桁上げ信号として出力するようになっている。
【００３９】
本発明に係る第３の形態の乗算回路の部分積ビット圧縮方法によれば、最上位部分積に対する２の補数生成用補正値と、最下位部分積の符号桁および該最上位部分積の最下位桁から該最下位部分積の符号桁の１桁下位の桁までのビットで表現される２進数との和に相当する各桁のビット信号がブースのアルゴリズムに従った部分積ビット信号に代えて直接生成されるようになっている。
【００４０】
このように、本発明によれば、高速性を犠牲にすることなく必要素子数を減少させて小型化した乗算回路を提供することができる。
【００４１】
【実施例】
以下、図面を参照して本発明に係る乗算回路、該乗算回路を構成する加算回路、該乗算回路の部分積ビット圧縮方法、および、該乗算回路を適用した大規模半導体集積回路の各実施例を説明する。
まず、本発明の第１の形態である必要素子数を半減することのできる部分積ビット生成回路（乗算回路）、および、該部分積ビット生成回路を実現するのに適したエンコーダ（ブースエンコーダ）の実施例を説明する。
【００４２】
図１１は本発明に係る乗算回路における部分積ビット生成回路１４の基本構成を示すブロック図である。同図において、参照符号２０１は第ｉ桁の被乗数ビットａｉに係わる第１の選択回路、２０２は該被乗数ビットａｉに係わる第２の選択回路、２０３は第（ｉ＋１）桁の被乗数ビットａｉ＋１に係わる第１の選択回路、そして、２０４は該被乗数ビットａｉ＋１に係わる第２の選択回路を示している。また、参照符号２０５は第ｊ桁の乗数ビットｂｊおよびその上下桁の乗数ビットを用いてエンコード信号Ｂ１ｊ，Ｂ２ｊ，Ｂ３ｊ，／Ｂ３ｊを生成するエンコーダを示している。
【００４３】
第ｉ桁の被乗数ビットａｉの第１の選択回路２０１は、該被乗数ビットａｉが“１”のときはエンコード信号Ｂ１ｊを出力し、また、該被乗数ビットａｉが“０”のときはエンコード信号Ｂ２ｊを出力する。なお、他の選択回路（２０２〜２０４）も同様の機能を有する。
いま、エンコーダ（１２）が２次ブースのエンコーダであり、前述した表１の真理値表に示すように、Ｂ１ｊ＝ＰＬｊ（エンコード結果が正）、Ｂ２ｊ＝Ｍｊ（エンコード結果が負）、Ｂ３ｊ＝Ｘｊ（エンコード結果が１Ｘ被乗数）、／Ｂ３ｊ＝／Ｘｊであるとすると、第ｉ桁の被乗数ビットａｉの第２の選択回路２０２は、該被乗数ビットａｉと乗数ビットｂｊに関する部分積ビットＰｉ，ｊを出力し、また、第（ｉ＋１）桁の被乗数ビットａｉ＋１の第２の選択回路２０４は、該被乗数ビットａｉ＋１と乗数ビットｂｊに関する部分積ビットＰｉ＋１，ｊを出力することになる。
【００４４】
すなわち、図１１の回路は被乗数の連続する２ビット分（ａｉ，ａｉ＋１）の部分積ビット生成回路に相当する。ここで、参照符号Ｅｉ−１，ｊは１桁下位の被乗数ビットａｉ−１に係わる第１の選択回路（２０３）で選択出力された信号である。従って、図１１に示す回路で選択出力された信号Ｅｉ＋１，ｊは、１桁上位の部分積ビットＰｉ＋２，ｊの生成に関与することになる。後述するように、本発明の第１の形態は、図１１のような回路構成を採ることにより、選択回路（２０１〜２０４）をＥＯＲ回路よりも少ない素子で構成することができ、その結果、以下に説明するように、従来よりも少ない素子数で且つ処理速度を劣化させることなく部分積ビットの生成が可能となる。
【００４５】
図１２は本発明の乗算回路における部分積ビット生成回路に用いる選択回路（２０１〜２０４）の一例を示す回路図である。
図１２に示されるように、選択回路（第１の選択回路２０１，２０３および第２の選択回路２０２，２０４）は、２個のＡＮＤ回路３０１，３０２および１個のＮＯＲ回路３０３を備えて構成される。ここで、第１の選択回路２０１，２０３の出力は、選択した信号が反転して出力されるが、後続の第２の選択回路２０２，２０４で該反転信号がさらに反転され、結局、第２の選択回路２０２，２０４の出力は、選択した信号の非反転の信号となる。本実施例では、部分積ビット生成回路（２ビット分）に要する素子数（トランジスタ数）は、８×４＝３２個であり、１ビット当たり１６個となる。従って、本実施例の部分積ビット生成回路（１ビット当たり１６個）は、前述した図２（１ビット当たり１８個）、図３（１ビット当たり１９個）、および、図４（１ビット当たり２１個）に示す従来の部分積ビット生成回路（１４）に比べて、少ない素子数で構成することが可能なことが判る。
【００４６】
図１３は本発明の乗算回路における部分積ビット生成回路１４の他の実施例を示す回路図であり、上述した図１２の選択回路により構成した部分積ビット生成回路における素子数をさらに低減するようにしたものである。
図１３に示されるように、本実施例の部分積ビット生成回路（２ビット分）は、８個の伝送ゲート３０４〜３１１および２個のインバータ３１２，３１３を備えて構成されている。ここで、図１１の部分積ビット生成回路１４との対照を行うと、第ｉ桁の被乗数ビットａｉの第１の選択回路２０１および第２の選択回路２０２は、それぞれ伝送ゲート３０６，３０７および伝送ゲート３１０，３１１で構成され、また、第（ｉ＋１）桁の被乗数ビットａｉ＋１の第１の選択回路２０３および第２の選択回路２０４は、それぞれ伝送ゲート３０４，３０５および伝送ゲート３０８，３０９で構成されている。
【００４７】
被乗数ビットａｉ＋１の第２の選択回路２０４の出力信号Ｐｉ＋１，ｊ、および、被乗数ビットａｉの第２の選択回路２０２の出力信号Ｐｉ，ｊは、論理式で記載すると、次の通りになり、連続する２ビットの部分積ビット生成が行われているのが判る。
0003678512.tif 000003
図１３の部分積ビット生成回路（２ビット分）では必要な素子数が２０となり、すなわち、１ビット当たり１０素子（１０個のトランジスタ）となって、前述した図２〜図４に示す従来の部分積ビット生成回路（１ビット当たり１８個〜２１個）の約半分程度に削減することが可能となる。
【００４８】
ここで、ブースのエンコード信号／ＰＬｊ（エンコード結果が正である信号の否定信号）および／Ｍｊ（エンコード結果が負である信号の否定信号）を受けるインバータ３１２および３１３は、伝送ゲートの入力端子に直接エンコード信号を供給することにより生じる弊害（図３を参照して説明した問題：信号波形の鈍りによる消費電力の増大、信号の立ち上がり−立ち下がり時間増による遅延時間の増大等の問題）を回避するために用いているものであり、もし、エンコード信号を出力する論理ゲートが充分な負荷駆動能力を有しておれば必要のないものである。そして、これらのインバータ３１２および３１３が不要な場合には、部分積ビット生成回路（２ビット分）に要する素子数は２０よりも少なくなる。なお、被乗数ビットａｉ，ａｉ＋１，ａｉ−１などの否定信号生成のためのインバータが別に必要となるが、被乗数ビット信号とその否定信号は伝送ゲートのゲート端子に入力されるので、信号バッファの駆動能力がある程度大きければ１０個以上の部分積ビット生成回路への入力を１つの信号バッファから供給することができ、例えば、乗数桁ｎが１６以上であれば、このインバータは素子の増加要因としては無視することができる。
【００４９】
図１４は本発明の乗算回路におけるブースエンコーダの一例を示す回路図であり、図１３に対応した２次ブースエンコード信号生成回路（エンコーダ）１２の一例を示している。なお、エンコード信号の各記号は、前述した表１のものと対応している。
図１４に示されるように、ブースエンコーダ１２は、７個のインバータ３１４〜３２０、ＡＮＤ回路３２１、ＯＲ回路３２２、ＮＡＮＤ回路３２３、ＮＯＲ回路３２４、および、ＥＮＯＲ回路３２５を備えて構成されている。ここで、エンコード信号の出力部にあるインバータのいくつかは、エンコード信号バッファの駆動能力が低くてよい場合には省略することができ、例えば、エンコード信号／Ｘｊおよび／ＰＬｊを出力している連続する２個のインバータ（３１５，３１６；３１７，３１８）などが省略可能である。なお、ブースエンコーダ１２を構成するのに必要な素子数は、従来よりも若干増加することもあるが、被乗数桁ｍが１６以上の多ビット乗算回路では、エンコーダが乗数２ビットにつき１個しか必要ないのでその増加分の影響は小さい。
【００５０】
以上の例では、２次ブースのエンコードを前提として説明したが、同様な回路は３次以上のブースエンコーダを使用するときも構成でき、例えば、図１１において、第２の選択回路を４：１の選択回路とし、被乗数ビットａｉ，ａｉ−１，ａ’ｉ（被乗数の３倍値の第ｉ桁），ａｉ−２の値に応じて選択した４つの出力のうちの１つをエンコード出力Ｘｊ，２Ｘｊ，３Ｘｊ（被乗数の３倍値を選択），４Ｘｊ（被乗数の４倍値を選択）のうちの正なる値を持つものに対応させて選択出力するようにすればよい。また、エンコードはかならずしもブースの方法に限定されるものではなく、本例に似たエンコード手法であれば、図１１の回路、或いはその一部変更回路により対応可能な場合もある。
【００５１】
このように、本発明の第１の形態によれば、必要素子数を半減することのできる部分積ビット生成回路（乗算回路）、および、該部分積ビット生成回路を実現するのに適したエンコーダ（ブースエンコーダ）が提供される。
ところで、集積回路（ＬＳＩ）化に適した高速乗算回路では、必要素子数を高速性を犠牲にすることなく減少させることのほかに、集積回路化に適したレイアウト方法を考える必要がある。これについて、本発明者は、雑誌 "IEEE Journal of Solid-State Circuits" の１９９２年９月号に掲載された乗算回路の論文（pp. 1229〜1236) にその概要を述べている。しかしながら、本発明では、上記論文の内容とは異なる回路を採用するため、レイアウトについても最適化を計る必要があり、次に、その方法を説明する。
【００５２】
図１５は本発明の乗算回路における部分積ビット生成回路の配置の様子を示す図である。
図１５に示されるように、被乗数桁に応じた被乗数ビット信号（ａｉ，ａi+1)およびその否定信号（／ａｉ，／ａi+1)を、二次元平面の一方向（縦方向）に平行配置し、乗数桁に応じたエンコード信号線（Ｂｊ，Ｂｊ＋２，…）の組をそれに交差するように（多層配線の被乗数ビット信号線とは異なる横方向の配線により）配列する。なお、図１５において、例えば、相補の被乗数ビット信号ａｉ，／ａｉは、通過配線領域の左側を縦方向に走る１本の信号線により描かれている。また、図１５中の参照符号４Ｗは、後述するような４−２圧縮回路を示している。
【００５３】
さらに、被乗数ビット信号線およびエンコード信号線の予め定められた複数の隣接交点を包含するように、部分積ビット生成回路（Ｐ２：１４）を繰り返し配置する。これにより、同一回路セルの繰り返し隣接配置を行って、部分積生成回路の配列を行うことができ、乗算回路の主要部分を簡単にレイアウトすることができる。なお、本発明の第３の形態を適用した場合には、回路の一部が不規則な回路に置き変わるが、影響を受けるのは部分積ビット生成回路の一部に過ぎず加算回路部トリーの規則性を破壊することはないので、全体レイアウトへ与える影響は小さい。
【００５４】
次に、本発明の第２の形態である必要素子数を半減することのできる４同位桁入力桁上げ保存型加算回路（４−２圧縮回路）の実施例を説明する。
４つの同位桁入力信号（ｘ１，ｘ２，ｘ３，ｘ４）と１つの中間桁上げ信号（Ｃｉｎ）とを入力して１つの中間桁上げ信号（Ｃｏｕｔ）と和信号（Ｓｉ，ｊ）と桁上げ信号（Ｃｉ，ｊ）を生成する桁上げ保存型加算回路（４−２圧縮回路）の第１の構成においては、第１の同位桁入力信号（ｘ１）と第２の同位桁入力信号（ｘ２）の論理和（または、その否定信号）と排他的論理和（ＥＯＲ）を生成し、この排他的論理和出力が正（論理”１”）のときは第３の同位桁入力信号（ｘ３）を中間桁上げ信号（Ｃｏｕｔ）として出力し、また、そのＥＯＲ出力が僞（論理”０”）のときは論理和出力信号を中間桁上げ信号（Ｃｏｕｔ）として出力する。また、４−２圧縮回路の第２構成においては、第１の同位桁入力信号と第２の同位桁入力信号の論理積（の否定信号）とＥＯＲを生成し、このＥＯＲ出力が正（論理”１”）のときは第３の同位桁入力信号を中間桁上げ信号として出力し、また、そのＥＯＲ出力が僞（論理”０”）のときは論理積出力信号を中間桁上げ信号として出力する。
【００５５】
さらに、第１および第２の構成のそれぞれについて、和信号を生成するために５つの入力信号のＥＯＲを取る回路において、第１の同位桁入力信号と第２の同位桁入力信号のＥＯＲ出力信号と、第３の同位桁入力信号と第４の同位桁入力信号のＥＯＲ出力信号とのＥＯＲを取る回路のみを６個のトランジスタ回路（単一伝送ゲート形回路）で構成し、その他のＥＯＲ回路は全て８個以上のトランジスタ回路により構成する。
【００５６】
第１の構成回路では、論理和（の否定信号）回路は第１と第２の同位桁入力のＥＯＲを取る回路の一部として利用でき、また、第２の構成回路では論理積（の否定信号）を生成する回路が第１と第２の同位桁入力のＥＯＲを取る回路の一部として利用できる。さらに、中間桁上げ信号を第３の同位桁入力信号と論理和／論理積信号との選択により生成することにより、構成素子数が削減される。そして、速度的に問題のある６トランジスタＥＯＲ回路をその速度への影響が最小となる個所のみに採用することにより、速度の大幅な低下をもたらすことなく全体素子が削減できる。すなわち、本発明の加算回路（４−２圧縮回路）によれば、従来、５０素子を超える回路であったのを、高速性を犠牲にすることなく５０素子以下で構成することが可能となる。
【００５７】
図１６は本発明の乗算回路におけるワレストリー回路を構成する４−２圧縮回路の一実施例を示す回路図である。
図１６に示されるように、本実施例の４−２圧縮回路は、１０個の伝送ゲート４０１〜４１０、１０個のインバータ４１１〜４２０、ＯＲ回路４２１、および、２個のＮＡＮＤ回路４２２，４２３を備えて構成されている。ここで、ＥＯＲ回路４３０（ＥＮＯＲ回路およびインバータ：図５におけるＥＯＲ回路１３３に対応）は、インバータ４１２，ＯＲ回路４２１およびＮＡＮＤ回路４２２，４２３で構成され、ＥＯＲ回路４４０（図５におけるＥＯＲ回路１３２に対応）は伝送ゲート４０３，４０４およびインバータ４１４，４１５，４２０で構成され、ＥＯＲ回路４５０（図５におけるＥＯＲ回路１３４に対応）は伝送ゲート４０５，４０６およびインバータ４１２，４１５，４１６で構成され、そして、ＥＯＲ回路４６０（図５におけるＥＯＲ回路１３５に対応）は伝送ゲート４０７，４０８およびインバータ４１６，４１７，４１８で構成されている。
【００５８】
図１６から明らかなように、ＥＯＲ回路４４０，４５０，４６０は、それぞれ前述した図６の１０トランジスタＥＯＲ回路（相補伝送ゲート形回路）により構成し、回路の高速性を維持するようになっている。なお、インバータ４１２は、ＥＯＲ回路４３０および４５０に対して共通に設けられ、また、インバータ４１５は、ＥＯＲ回路４４０および４５０に対して共通に設けられ、そして、インバータ４１６は、ＥＯＲ回路４５０および４６０に対して共通に設けられており、素子数の低減を図るようになっている。ここで、ＥＯＲ回路４３０は、ＥＮＯＲ回路（４２１，４２２，４２３）およびインバータ４１２の１２個のトランジスタで構成されている。
【００５９】
図１６に示す４−２圧縮回路においては、第１の同位桁入力信号ｘ１および第２の同位桁入力信号ｘ２の論理積の否定信号と、該ｘ１およびｘ２の排他的論理和信号（ＥＯＲ信号）とを生成し、そのＥＯＲ出力（インバータ４１２の出力）が正（論理“１”）のときは第３の同位桁入力信号ｘ３を中間桁上げ信号（Ｃｏｕｔ）として出力し、また、そのＥＯＲ出力が僞（論理“０”）のときは前記論理積の否定信号（ＮＡＮＤ回路４２２の出力）の否定信号を中間桁上げ信号として出力するようになっている。この例では、駆動ゲート回路により構成したＥＯＲ回路４３０を除いたＥＯＲ回路４４０，４５０，４６０は、８〜１０個のトランジスタにより構成されるインバータおよび伝送ゲートにより構成され、全部で５０素子（５０個のトランジスタ）により構成されている。
【００６０】
図１７は本発明の乗算回路におけるワレストリー回路を構成する４−２圧縮回路の他の実施例を示す回路図である。この図１７に示す４−２圧縮回路は、図１６の４−２圧縮回路における素子数をさらに低減したものである。
すなわち、図１７の４−２圧縮回路は、図１６の４−２圧縮回路において、３段のＥＯＲ回路４４０，４５０，４６０の内、入力および出力の影響の少ない中間に位置するＥＯＲ回路（４５０）を前述した図７の６トランジスタＥＯＲ回路４５０’に置き換えて、回路の高速性を維持しつつ素子数をさらに低減したものである。
【００６１】
図１７に示されるように、第１の同位桁入力信号ｘ１および第２の同位桁入力信号ｘ２の排他的論理和（ＥＯＲ信号）と、第３の同位桁入力信号ｘ３および第４の同位桁入力信号ｘ４の排他的論理和（ＥＯＲ信号）との排他的論理和を取る回路（ＥＯＲ回路４５０’）を６トランジスタＥＯＲ回路で構成するようになっている。すなわち、図１６におけるＥＯＲ回路４５０は、伝送ゲート４０５，４０６およびインバータ４１２，４１５，４１６の１０トランジスタで構成されているのに対して、図１７におけるＥＯＲ回路４５０’は、トランジスタ４２４，４２５、伝送ゲート４２６およびインバータ４１２の６トランジスタで構成されている。その結果、図１７に示す４−２圧縮回路は、４８素子（４８個のトランジスタ）により構成することができる。
【００６２】
図１８は本発明の乗算回路におけるワレストリー回路を構成する４−２圧縮回路のさらに他の実施例を示す回路図であり、本実施例においても、４−２圧縮回路は４８素子で構成される。
図１８に示されるように、第１の同位桁入力信号ｘ１および第２の同位桁入力信号ｘ２の論理和の否定信号と、該ｘ１およびｘ２の排他的論理和信号（ＥＯＲ信号）とを生成し、そのＥＯＲ出力（ＮＯＲ回路４２９の出力）が正（論理“１”）のときは第３の同位桁入力信号ｘ３を中間桁上げ信号（Ｃｏｕｔ）として出力し、また、そのＥＯＲ出力が僞（論理“０”）のときは前記論理和の否定信号（ＮＯＲ回路４２８の出力）の否定信号を中間桁上げ信号として出力するようになっている。
【００６３】
上述した図１６〜図１８に示す各４−２圧縮回路では、必要とする素子数がそれぞれ５０個以下となっており、しかも、従来技術で説明した伝送ゲートによる遅延の影響を受けること無く、すなわち、処理速度を犠牲にすることはない。
次に、本発明の第３の形態である同位桁部分積ビット数の削減に関して、従来よりも必要な素子数が増大することなく、且つ、部分積ビットの圧縮処理でのクリティカルパスを短縮することのできる部分積ビット圧縮方法について説明する。
【００６４】
本発明の部分積ビット圧縮方法の特徴を概説すると、ブースのアルゴリズムを用いる乗算回路において、第１の特徴として、最上位の部分積に対する２の補数生成用補正値と、最下位部分積の符号桁および最上位部分積の最下位桁から最下位部分積の符号桁の１桁下位の桁までのビットで表現される２進数との和に相当する各桁のビット信号をブースのアルゴリズムに従った部分積ビット信号に代えて直接生成する回路を含み、さらに、第２の特徴として、符号拡張を補正処理により避ける方式における符号補正のための“１”加算を各部分積の符号桁の１桁上の桁で行うようにした回路において、補正項を含む桁の１桁下位桁における同位桁加算出力としての中間桁上げ信号または桁上げ信号そのものを２桁上位の桁において加算し、且つ、その反転信号を１桁上の桁において加算することで同位桁加算における“１”加算を見かけ上、無くすようになっている。
【００６５】
上述した本発明の部分積ビット圧縮方法の第１の特徴により、従来技術のような、２の補数を生成する付加回路を設けることなく、部分積ビット数の最大値を減少させることが可能となる。さらに、本発明の部分積ビット圧縮方法の第２の特徴により、符号桁処理を部分積ビット圧縮回路と抱き合わせて処理することで、処理回路の素子数を全体的に減少させることが可能となる。すなわち、本発明では、前述した従来技術におけるワレストリー回路のクリティカルパスを長くする原因となる付加回路を必要とせず、従来よりも高速な乗算回路を構成することができる。このように、上記部分積ビット圧縮方法の第１および第２の特徴により、本発明では、従来よりも少ない素子数で、従来よりも高速に演算することが可能な乗算回路を構成することができる。
【００６６】
図１９は本発明に係る乗算回路の部分積ビット数圧縮方法の一例を説明するための図である。
図１９において、一例として、２次のブースのアルゴリズムを利用して８ビット×８ビットの乗算を行う場合（ｍ＝ｎ＝８のとき）、上述した方法（部分積ビット圧縮方法の第１の特徴）を適用する。本発明の第３の形態（乗算回路の部分積ビット数圧縮方法）を適用することにより、通常、５つの部分積の処理を行う必要があったのが４つの部分積の処理を行うだけでよくなる。そのため、例えば、４−２圧縮回路をそのまま適用することができ、回路規模の低減を図ることができる。この本発明の適用により、部分積ビットで影響を受けるのは、
最上位部分積：ＰＭ０，６と，ＰＭ１，６
最下位部分積：ＰＳ１０と，ＰＳ２０と，ＰＳ３０
の５ビットであり、元々の値との対応関係は、次の式のようになる。
【００６７】
【数１】
0003678512.tif 000004
【００６８】
従って、この関係を満たすように上記５ビットの論理を決めればよく、具体的には、次の論理式となる。
【００６９】
【数２】
0003678512.tif 000005
【００７０】
ここで、ＰＣ６はＰＭ１，６の桁から上位桁への桁上げ信号、ｅ１，６はＰ２，６を求めるのに必要な信号である。なお、最下位部分積も絡ませているのは上式を見ても分かるように、部分積ビットの符号桁部分を変更した方が論理の簡略化を図りやすく、素子数削減の効果が大きいからである。この７つの論理式に対応する論理回路の構成例を図２０および図２１に示す。
【００７１】
図２０および図２１は図１９の部分積ビット数圧縮方法を実現するための一実施例を示す回路図である。
図２０および図２１に示されるように、前記７つの論理式に対応する論理回路は、５個のインバータ５０１〜５０３；５１１，５１２、３個のＡＮＤ回路５０４；５１３，５１４、６個のＯＲ回路５０５，５０６；５１５，５１６；５２３，５２４、６個のＮＡＮＤ回路５０７，５０８；５１７，５１８，５１９；５２５、３個のＮＯＲ回路５０９；５２０，５２１、および、２個のＥＯＲ回路５１０；５２２を備えて構成され、その素子数は８８個である。なお、従来技術において、本回路部分に対応する回路をより少ない素子で実現するものもあるが、本発明では同位桁ビット数が減ったことによる同位桁圧縮用加算回路用素子の減少がその増分に比べて遙に多いために、全体として素子数の削減が達成されたことになる。
【００７２】
図２２は本発明に係る乗算回路の部分積ビット数圧縮方法の他の実施例を従来例と比較して説明するための図である。図２２（ａ）は従来の部分積ビット数圧縮方法の一例を説明するためのものであり、また、図２２（ｂ）は本発明の部分積ビット数圧縮方法の他の例を説明するためのものである。すなわち、図２２（ｂ）は、前述した本発明の部分積ビット数圧縮方法の第２の特徴に関するものであり、図１９における第１０桁以上の同位桁圧縮に適用したものである。
【００７３】
図２２（ａ）に示されるように、従来の部分積ビット数圧縮方法では、４−２圧縮回路（４Ｗ）が２個、１ビット全加算回路（３Ｗ）が１個、そして、半加算回路（２Ｗ）が１個必要とされ、計１３４素子（１３４個のトランジスタ）が必要とされていた。
これに対して、図２２（ｂ）に示されるように、本発明の部分積ビット数圧縮方法を用いると、４−２圧縮回路（４Ｗ）が１個、１ビット全加算回路（３Ｗ）が２個、そして、インバータが３個の計１０２素子（１０２個のトランジスタ）で構成することができる。
【００７４】
すなわち、図２２（ｂ）に示されるように、本発明によれば、第１０桁の４Ｗの中間桁上げ信号ｄは反転して第１１桁の３Ｗへ入力される共に、該信号ｄそれ自身も第１２桁の３Ｗへ入力して処理される。また、第１３桁の部分積ビット信号Ｐは、インバータを介して第１３桁の和信号Ｓとして処理され、且つ、該和信号Ｓの否定信号は、第１４桁への桁上げ信号Ｃとして処理されるようになっている。このように、本発明の部分積ビット圧縮方法の適用により、従来よりも少ない素子で、しかも処理速度の低下を来すことなく同位桁ビット圧縮を行うことができる。
【００７５】
このように、本発明の第３の形態の部分積ビット圧縮方法によれば、同位桁部分積ビット数の削減に関して、従来よりも必要な素子数が増大することなく、且つ、部分積ビットの圧縮処理でのクリティカルパスを短縮することができる。
以上述べた本発明の第１の形態、第２の形態、および、第３の形態を組み合わせることにより、従来よりも最大で３０％〜４０％の素子数を削減することができ、且つ、従来と同等な処理速度の乗算回路を構成することができる。なお、素子数が減った分を特定の信号処理機能を実現するための付加回路で埋めることにより、同一の製造技術を用いて、より一層高機能な集積回路を実現することが可能となる。
【００７６】
【発明の効果】
以上、詳述したように、本発明の第１の形態、第２の形態および第３の形態を、必要とする乗算回路の仕様に応じて適宜組み合わせて適用することによって、高速性を犠牲にすることなく必要素子数を減少させて小型化した乗算回路を提供することができる。
【図面の簡単な説明】
【図１】乗算回路の一例を概略的に示すブロック図である。
【図２】従来の乗算回路における部分積ビット生成回路の一例を示す回路図である。
【図３】従来の乗算回路における部分積ビット生成回路の他の例を示す回路図である。
【図４】従来の乗算回路における部分積ビット生成回路のさらに他の例を示す回路図である。
【図５】従来の乗算回路におけるワレストリー回路を構成する４−２圧縮回路の一例を示す回路図である。
【図６】従来から使用されている１０トランジスタＥＯＲ回路を示す回路図である。
【図７】従来から使用されている６トランジスタＥＯＲ回路を２組使用して構成した全加算回路の和信号生成回路を示す回路図である。
【図８】伝送ゲートを用いた場合に生じる動作遅延を説明するための図（その１）である。
【図９】伝送ゲートを用いた場合に生じる動作遅延を説明するための図（その２）である。
【図１０】従来の乗算回路におけるワレストリー回路を構成する４−２圧縮回路の他の例を示す回路図である。
【図１１】本発明に係る乗算回路における部分積ビット生成回路の基本構成を示すブロック図である。
【図１２】本発明の乗算回路における部分積ビット生成回路に用いる選択回路の一例を示す回路図である。
【図１３】本発明の乗算回路における部分積ビット生成回路の他の実施例を示す回路図である。
【図１４】本発明の乗算回路におけるブースエンコーダの一例を示す回路図である。
【図１５】本発明の乗算回路における部分積ビット生成回路の配置の様子を示す図である。
【図１６】本発明の乗算回路におけるワレストリー回路を構成する４−２圧縮回路の一実施例を示す回路図である。
【図１７】本発明の乗算回路におけるワレストリー回路を構成する４−２圧縮回路の他の実施例を示す回路図である。
【図１８】本発明の乗算回路におけるワレストリー回路を構成する４−２圧縮回路のさらに他の実施例を示す回路図である。
【図１９】本発明に係る乗算回路の部分積ビット数圧縮方法の一例を説明するための図である。
【図２０】図１９の部分積ビット数圧縮方法を実現するための一実施例を示す回路図（その１）である。
【図２１】図１９の部分積ビット数圧縮方法を実現するための一実施例を示す回路図（その２）である。
【図２２】本発明に係る乗算回路の部分積ビット数圧縮方法の他の実施例を従来例と比較して説明するための図である。
【符号の説明】
１１…乗数レジスタ
１２…ブースエンコーダ
１３…被乗数レジスタ
１４…部分積ビット生成回路
１５…ワレストリー回路
１６…桁上げ伝搬型加算回路
１７…積レジスタ
２０１，２０３…第１の選択回路
２０２，２０４…第２の選択回路
２０５…エンコーダ（ブースエンコーダ１２）
【図１】
0003678512.tif 000006
【図２】
0003678512.tif 000007
【図３】
0003678512.tif 000008
【図４】
0003678512.tif 000009
【図５】
0003678512.tif 000010
【図６】
0003678512.tif 000011
【図７】
0003678512.tif 000012
【図８】
0003678512.tif 000013
【図９】
0003678512.tif 000014
【図１０】
0003678512.tif 000015
【図１１】
0003678512.tif 000016
【図１２】
0003678512.tif 000017
【図１３】
0003678512.tif 000018
【図１４】
0003678512.tif 000019
【図１５】
0003678512.tif 000020
【図１６】
0003678512.tif 000021
【図１７】
0003678512.tif 000022
【図１８】
0003678512.tif 000023
【図１９】
0003678512.tif 000024
【図２０】
0003678512.tif 000025
【図２１】
0003678512.tif 000026
【図２２】
0003678512.tif 000027