JP3417286B2 - 乗算器 - Google Patents

乗算器

Info

Publication number
JP3417286B2
JP3417286B2 JP04079098A JP4079098A JP3417286B2 JP 3417286 B2 JP3417286 B2 JP 3417286B2 JP 04079098 A JP04079098 A JP 04079098A JP 4079098 A JP4079098 A JP 4079098A JP 3417286 B2 JP3417286 B2 JP 3417286B2
Authority
JP
Japan
Prior art keywords
data
bit
multiplier
bits
addition
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.)
Expired - Fee Related
Application number
JP04079098A
Other languages
English (en)
Other versions
JPH11237973A (ja
Inventor
博明 堂園
晴継 福本
裕章 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP04079098A priority Critical patent/JP3417286B2/ja
Priority to US09/253,741 priority patent/US6272513B1/en
Publication of JPH11237973A publication Critical patent/JPH11237973A/ja
Application granted granted Critical
Publication of JP3417286B2 publication Critical patent/JP3417286B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • G06F7/5336Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
    • G06F7/5338Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49994Sign extension

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、被乗数データと乗
数データとの積を求める乗算器に関するものであり、特
に、部分積の生成にブースのアルゴリズムを用いた乗算
器に関する。
【0002】
【従来の技術】近年、ディジタル信号処理装置に対する
高速化の要求が高まっており、その構成要素の1つであ
る乗算器に対しても、高速な乗算動作が求められてい
る。ここで、一般に、乗算器は、被乗数データ(以下、
単に「被乗数」ともいう)と乗数データ(以下、単に
「乗数」ともいう)とから複数の部分積データ(以下、
単に「部分積」ともいう)を生成する部分積生成回路
と、その複数の部分積を加算して被乗数と乗数との積を
表すデータ(以下、単に「積」ともいう)を出力する加
算回路とで構成されるが、部分積の数が多くなるほど加
算回路の動作速度は遅くなり、それに応じて乗算器自体
の乗算速度も遅くなる。
【0003】そこで、部分積の生成過程で部分積の数を
減らすことができる方法として、例えば電子情報通信学
会編の「ディジタル信号処理ハンドブック:第243頁
〜第244頁」等に記載されているブースのアルゴリズ
ムがある。ブースのアルゴリズムは、2の補数表示形式
の乗算を補正無しで実行できるという特徴があり、特に
2次のブースのアルゴリズムによれば、部分積の数を半
減させることができる。よって、2次のブースのアルゴ
リズムを用いて部分積を生成するように構成すれば、部
分積の加算過程を短くすることができ、その結果、乗算
速度を高速化することができる。
【0004】尚、2次のブースのアルゴリズムは、被乗
数をXとし乗数をYとすると、図10の真理値表に示す
法則を用いて部分積を生成するものである。つまり、乗
数Yのビットを、Y[i+1] ,Y[i] ,Y[i-1] (i=
0,2,4,…)の連続する3ビットずつのグループに
分け、その各グループのビットの並びに応じて、「0×
X」,「+X」,「−X」,「+2X」,「−2X」の
うちの何れかを表すデータを部分積とする。但し、[]内
の値は、データにおける最下位ビットを0ビット目とし
た場合のビット位置を示しており、以下の説明において
も、ビット位置は、最下位ビットを0ビット目として数
えたものである。また、Y[-1]は、実際には存在しない
ため“0”と見なされる。
【0005】一方、部分積の加算を高速に行うのに好適
な加算回路としては、ツリー(tree)状に配置した
複数の加算器によって部分積を並列に加算するツリー型
加算回路がある。そして、このようなツリー型加算回路
を用いた乗算器(以下、ツリー型乗算器という)によれ
ば、乗算速度をより高速化することができる。
【0006】ここで、2次のブースのアルゴリズムに基
づき部分積を生成して2の補数表示形式の乗算を行う従
来のツリー型乗算器の構成例について説明する。尚、2
の補数表示形式の乗算とは、符号付き乗算であり、2の
補数表示形式の被乗数Xと乗数Yとを入力して、2の補
数表示形式の積を導出するものである。また、本明細書
において、符号拡張とは、データの最上位ビット側にそ
の最上位ビットと同じビットを追加することを意味し、
0拡張とは、データの最上位ビット側に“0”のビット
を追加することを意味している。
【0007】まず図11は、2の補数表示形式の8ビッ
ト×8ビットの乗算を行う従来のツリー型乗算器J1を
表すブロック図であり、図12は、その乗算器J1の乗
算動作を表す模式図である。図11に示すように、乗算
器J1は、8ビットの被乗数Xと乗数Yを入力して、2
次のブースのアルゴリズムに基づき、4(=8/2)個
の部分積B0 〜B3を生成して出力するブースエンコー
ダ100と、ツリー状に配置された3個の加算器101
〜103からなる加算回路(ツリー型加算回路)とから
構成されている。そして、加算回路は、ブースエンコー
ダ100で生成された4個の部分積B0 〜B3 を上記3
個の加算器101〜103により並列に加算して、最終
段の加算器103から被乗数Xと乗数Yとの積を表す1
5(=2×8−1)ビットのデータを出力する。
【0008】具体的に説明すると、ブースエンコーダ1
00は、図12に示すように、乗数Yの0ビット目Y
[0] に対応した15ビットの第1部分積B0 と、乗数Y
の2ビット目Y[2] に対応した13ビットの第2部分積
B1 と、乗数Yの4ビット目Y[4] に対応した11ビッ
トの第3部分積B2 と、乗数Yの6ビット目Y[6] に対
応した9ビットの第4部分積B3 とを夫々出力する。
【0009】例えば、乗数Yの1ビット目Y[1] が
“1”であり、0ビット目Y[0] が“0”であれば、ブ
ースエンコーダ100は、第1部分積B0 として、「−
2X」を表す15ビットのデータを出力することとな
る。また例えば、乗数Yの3ビット目Y[3] と2ビット
目Y[2] とが“0”であり、1ビット目Y[1] が“1”
であれば、ブースエンコーダ100は、第2部分積B1
として、「+X」を表す13ビットのデータを出力する
こととなる(図10参照)。
【0010】尚、2次のブースのアルゴリズムでは、図
10の如く部分積が「−2X」或いは「2X」となる場
合があるため、ブースエンコーダ100が最低限生成す
べき必須の部分積としては、図12にて黒丸印(●)で
示したビットから右側の9(=8+1)ビットとなる。
よって、部分積生成過程におけるブースエンコーダ10
0の最低限の動作としては、被乗数Xを1ビット符号拡
張した9ビットのデータと8ビットの乗数Yとから、9
ビットの部分積を4個生成すれば良いが、従来の乗算器
J1では、ブースエンコーダ100が、全ての部分積B
0 〜B3 の最上位ビットのビット位置を一致させるため
に、上記必須の9ビットの部分積を図12にて二重丸印
(◎)で示す如く符号拡張して加算回路へ出力し、これ
により、加算回路による部分積B0 〜B3 の加算が可能
となるようにしている。
【0011】そして、乗算器J1における加算回路の1
段目に配置された2つの加算器101,102の各々
は、ブースエンコーダ100から出力される上記4個の
部分積B0 〜B3 を乗数Yの下位ビットに対応するもの
から順に夫々2個1組とした部分積データ組(B0 とB
1 ,B2 とB3 )を、互いに加算する。つまり、加算器
101は、第1部分積B0 の上位13ビットと第2部分
積B1 とを加算し、その加算結果の最下位ビット側に第
1部分積B0 の下位2ビットを結合することにより、1
5ビットの加算データE0 (=B0 +B1 )を出力す
る。また、加算器102は、第3部分積B2 の上位9ビ
ットと第4部分積B3 とを加算し、その加算結果の最下
位ビット側に第3部分積B2 の下位2ビットを結合する
ことにより、11ビットの加算データE1 (=B2 +B
3 )を出力する。
【0012】そして同様に、加算回路の2段目(最終
段)に配置された加算器103は、前段の各加算器10
1,102から出力される2個の加算データE0 ,E1
を加算して、被乗数Xと乗数Yとの積を表す15ビット
のデータF0 を出力する。つまり、加算器103は、加
算器101からの加算データE0 の上位11ビットと、
加算器102からの加算データE1 とを加算し、その加
算結果の最下位ビット側に上記加算データE0 の下位4
ビットを結合することにより、乗算結果である15ビッ
トデータF0 を出力する。
【0013】尚、図11において、各加算器101〜1
03の右側に配設した線は、各加算器101〜103の
加算動作のうち、前述した下位ビットの結合動作を表す
線であり、実際には各加算器101〜103の内部に含
まれている。そして、このことは、後述する他の乗算器
を表すブロック図についても同様である。
【0014】以上のように、図11の乗算器J1によれ
ば、2次のブースのアルゴリズムを用いて部分積を生成
するようにしているため、部分積の数を本来の8個から
4個に削減して、乗算速度を高速化することができる。
【0015】
【発明が解決しようとする課題】しかしながら、上記従
来の乗算器J1では、図11からも明らかなように、加
算回路の最終段以外の各加算段(但し、この例では1段
目のみ)において、各加算器101,102の加算ビッ
ト数(即ち、加算すべきデータのビット数)が夫々異な
ってしまい、半導体集積回路で実現する場合にチップレ
イアウト性が悪化するという大きな問題がある。そし
て、この問題は、被乗数Xと乗数Yのビット数が大きく
なるほど顕著になる。
【0016】例えば、図13に示すように、2の補数表
示形式の16ビット×16ビットの乗算を行うツリー型
乗算器J2は、16ビットの被乗数Xと乗数Yを入力し
て、2次のブースのアルゴリズムに基づき8(=16/
2)個の部分積B0 〜B7 を出力するブースエンコーダ
110と、ツリー状に配置された7個の加算器111〜
117からなる加算回路とを備えることとなるが、この
乗算器J2では、加算回路の1段目の各加算器111〜
114の加算ビット数が夫々29ビット,25ビット,
21ビット,17ビットとなり、2段目の各加算器11
5,116の加算ビット数が夫々27ビット,19ビッ
トとなってしまう。このため、半導体集積回路で実現す
る際のチップレイアウト性が更に悪化してしまう。
【0017】一方、本発明者は、図11,図13に示し
た従来のツリー型乗算器J1,J2を改良して、2進数
表示の被乗数X及び乗数Yに対し符号付き乗算と符号無
し乗算とを択一的に実行可能なツリー型乗算器(以下、
この乗算器を「符号付き/無し乗算器」という)を新た
に考えた。
【0018】以下、その符号付き/無し乗算器を構成す
るための考え方について、8ビット×8ビットの乗算を
行う場合を例に挙げて説明する。まず、ブースのアルゴ
リズムを用いて8ビット×8ビットの符号無し乗算を行
うためには、8ビットの被乗数Xと乗数Yの各々の最上
位ビットX[7] ,Y[7]よりも上位側に、ダミーの符号
ビットとして、正を示す“0”の8ビット目X[8] ,Y
[8] が存在していると見なす必要がある。これは、ブー
スのアルゴリズムが2の補数表示形式の乗算(符号付き
乗算)を前提とするものであるのに対して、符号無し乗
算を行う場合の被乗数Xと乗数Yの最上位ビットX[7]
,Y[7] は符号ビットではないためである。
【0019】また、符号付き乗算を行う場合には、元
々、被乗数Xと乗数Yの最上位ビットX[7] ,Y[7] は
符号ビットであるが、その最上位ビットX[7] ,Y[7]
よりも上位側に、更にその最上位ビットX[7] ,Y[7]
と同じ値の8ビット目X[8] ,Y[8] が存在していると
見なす必要がある。これは、共通のハードウェアで符号
付き乗算と符号無し乗算を行うためである。
【0020】よって、8ビット×8ビットの符号付き乗
算と符号無し乗算とを共通のハードウェアで行うために
は、基本的には以下のようにすれば良い。まず、符号無
し乗算を行う場合には、8ビットの被乗数Xを2ビット
0拡張した(つまり、1ビット0拡張したデータを更に
1ビット符号拡張した)10ビットの疑似被乗数X’
と、8ビットの乗数Yを1ビット0拡張した9ビットの
疑似乗数Y’とから部分積を5個生成して、その部分積
を加算すれば良い。
【0021】また、符号付き乗算を行う場合には、8ビ
ットの被乗数Xを2ビット符号拡張した(つまり、1ビ
ット符号拡張したデータを更に1ビット符号拡張した)
10ビットの疑似被乗数X’と、8ビットの乗数Yを1
ビット符号拡張した9ビットの疑似乗数Y’とから部分
積を5個生成して、その部分積を加算すれば良い。
【0022】ところが、上記のようにした場合の疑似乗
数Y’の最上位ビットY’[8] に対応する部分積(第5
部分積)は、以下の理由により、符号無し乗算の場合で
且つ元の乗数Yの最上位ビットY[7] が“1”である場
合にのみ「+X」となり、それ以外の場合には、「0×
X」となる。
【0023】まず、符号無し乗算の場合には、疑似乗数
Y’の最上位ビットY’[8] が“0”となるが、それよ
り上位の9ビット目Y’[9] も“0”と見なすことがで
きるため、疑似乗数Y’の9ビット目Y’[9] と8ビッ
ト目Y’[8] と7ビット目Y’[7] からなるグループの
並びは、「0,0,0」か「0,0,1」になる。そし
て、疑似乗数Y’の7ビット目Y’[7] は、元の乗数Y
の最上位ビットY[7]であるため、結局、第5部分積
は、乗数Yの最上位ビットY[7] が“1”である場合に
「+X」となり、上記最上位ビットY[7] が“0”であ
る場合に「0×X」となる。
【0024】また、符号付き乗算の場合には、疑似乗数
Y’の上位2ビットY’[8] ,Y’[7] が、元の乗数Y
の最上位ビットY[7] と同じ値になるが、それより上位
の9ビット目Y’[9] も乗数Yの最上位ビットY[7] と
同じ値と見なすことができる。よって、疑似乗数Y’の
9ビット目Y’[9] と8ビット目Y’[8] と7ビット目
Y’[7] からなるグループの並びは、「0,0,0」か
「1,1,1」になり、第5部分積は常に「0×X」と
なる。
【0025】このため、第5部分積は、符号無し乗算の
場合で且つ乗数Yの最上位ビットY[7] が“1”である
場合にのみ「+X」となり、それ以外の場合には「0×
X」となるのである。よって、8ビット×8ビットの符
号付き乗算と符号無し乗算とを共通のハードウェアで切
り替えて行うためには、以下の(1)〜(3)ようにす
れば良いことが分かった。
【0026】(1)まず、符号付き乗算を行う場合に
は、8ビットの被乗数Xを2ビット符号拡張した10ビ
ットデータと8ビットの乗数Yとから、2次のブースの
アルゴリズムに基づき4個の部分積B0 〜B3 を生成
し、また、符号無し乗算を行う場合には、8ビットの被
乗数Xを2ビット0拡張した10ビットデータと8ビッ
ト乗数Yとから、2次のブースのアルゴリズムに基づき
4個の部分積B0 〜B3 を生成する。
【0027】(2)そして、上記生成した4個の部分積
B0 〜B3 を加算する。 (3)そして更に、符号無し乗算の場合で、且つ、乗数
Yの最上位ビットY[7] が“1”であれば、4個の部分
積B0 〜B3 を加算したデータに被乗数Xを加算するこ
とにより、被乗数Xと乗数Yとの積を表すデータを出力
し、それ以外の場合には、上記4個の部分積B0 〜B3
を加算したデータを、そのまま被乗数Xと乗数Yとの積
を表すデータとして出力する。
【0028】以上の考え方を踏まえると、8ビット×8
ビットの符号付き/無し乗算器は、図14のように構成
することができ、その乗算動作は図15のようになる。
即ち、図14に示す8ビット×8ビットの符号付き/無
し乗算器J3においては、符号拡張器120が、制御線
からの切替信号が符号付き乗算の実行を示す場合に、被
乗数Xを2ビット符号拡張した10ビットデータを出力
し、また、上記切替信号が符号無し乗算の実行を示す場
合に、被乗数Xを2ビット0拡張した10ビットデータ
を出力する。
【0029】そして、ブースエンコーダ121は、符号
拡張器120から出力される10ビットデータと8ビッ
トの乗数Yとから、2次のブースのアルゴリズムに基づ
き4個の部分積B0 〜B3 を生成する。具体的に説明す
ると、ブースエンコーダ121は、図15に示すよう
に、乗数Yの0ビット目Y[0] に対応した16ビットの
第1部分積B0 と、乗数Yの2ビット目Y[2] に対応し
た14ビットの第2部分積B1 と、乗数Yの4ビット目
Y[4] に対応した12ビットの第3部分積B2 と、乗数
Yの6ビット目Y[6] に対応した10ビットの第4部分
積B3 とを夫々出力する。尚、このブースエンコーダ1
21も、各部分積B0 〜B3 の最上位ビットのビット位
置を一致させるため、黒丸印(●)で示したビットから
右側の10(=8+2)ビットからなる必須の部分積
を、二重丸印(◎)で示す如く符号拡張して出力する。
【0030】そして更に、ブースエンコーダ121は、
上記切替信号が符号無し乗算の実行を示し、且つ、乗数
Yの最上位ビットY[7] が“1”であれば、第5部分積
B4として、8ビットの被乗数Xをそのまま出力し、そ
れ以外の場合には、第5部分積B4 として、全ビットが
“0”の8ビットデータを出力する。
【0031】また、この符号付き/無し乗算器J3も、
図11の乗算器J1と同様に、ツリー状に配置された3
個の加算器122〜124からなるツリー型加算回路を
備えている。そして、その加算回路の1段目に配置され
た2つの加算器122,123のうち、加算器122
が、第1部分積B0 と第2部分積B1 とを加算した16
ビットの加算データE0 (=B0 +B1 )を出力し、加
算器123が、第3部分積B2 と第4部分積B3 とを加
算した12ビットの加算データE1 (=B2 +B3 )を
出力する。そして更に、加算回路の2段目(最終段)に
配置された加算器124が、前段の各加算器122,1
23から出力される2個の加算データE0,E1 を加算
して、16ビットの加算データF0 を出力する。
【0032】また更に、この符号付き/無し乗算器J3
は、乗算結果出力用の加算器125を備えており、その
加算器125は、上記加算器124からの加算データF
0 の上位8ビットと、ブースエンコーダ121からの上
記第5部分積B4 (「X」又は「0」)とを加算し、そ
の加算結果の最下位ビット側に上記加算データF0 の下
位8ビットを結合することにより、乗算結果である16
ビットデータを出力する。
【0033】このような図14の符号付き/無し乗算器
J3によれば、符号付き乗算と符号無し乗算とを、共通
のハードウェアで切り替えて行うことができる。しか
し、図11,図13の乗算器J1,J2と同様に、加算
回路の最終段以外の各加算段において、各加算器の加算
ビット数が夫々異なってしまい、やはり、半導体集積回
路で実現する際のチップレイアウト性が悪化してしま
う。そして、この傾向は、被乗数Xと乗数Yのビット数
が大きくなるほど顕著になる。
【0034】例えば、図16に示すように、図14の符
号付き/無し乗算器J3の規模を拡大した16ビット×
16ビットの符号付き/無し乗算器J4では、符号拡張
器130と、ブースエンコーダ131と、ツリー状に配
置された7個の加算器132〜138からなる加算回路
と、乗算結果出力用の加算器139とを備えることとな
るが、この図16からも分かるように、被乗数Xと乗数
Yのビット数が大きくなるほど、チップレイアウト性が
悪化してしまうのである。
【0035】本発明は、以上のような問題に鑑みなされ
たものであり、部分積の生成にブースのアルゴリズムを
用いたツリー型乗算器であって、集積回路化する際のチ
ップレイアウト性を向上させることのできるツリー型乗
算器を提供することを目的としている。
【0036】
【課題を解決するための手段、及び発明の効果】まず、
上記目的を達成するためになされた請求項1に記載の第
1発明の乗算器は、ビット数がn(但し、nは偶数)の
2の補数表示形式の被乗数データと乗数データとを入力
して乗算を行うものである。
【0037】そして、この請求項1に記載の乗算器で
は、1ビット拡張手段が、前記被乗数データを1ビット
符号拡張したn+1ビットのデータを出力し、部分積生
成手段が、1ビット拡張手段から出力されるn+1ビッ
トのデータと前記乗数データとから、2次のブースのア
ルゴリズムに基づきn+1ビットの部分積データをn/
2個生成する。
【0038】そして更に、ツリー状に配置された複数の
加算器を有する加算手段が、部分積生成手段にて生成さ
れたn/2個の部分積データを前記複数の加算器により
加算して、その加算器のうちの最終段の加算器から被乗
数データと乗数データとの積を表す2n−1ビットのデ
ータを出力するのであるが、特に、加算手段には、前記
各加算器に夫々入力される2個1組のデータのうちで、
乗数データの下位ビットに対応する方のデータを夫々符
号拡張する複数の符号拡張手段が設けられている。
【0039】つまり、請求項1に記載の乗算器では、部
分積生成手段が、n/2個の部分積として、被乗数デー
タ及び乗数データのビット数nよりも1ビット多いn+
1ビットの必須の部分積(例えば、図12に示した例で
は、黒丸印(●)で示したビットから右側の9ビット)
だけを生成するようにしている。そして更に、加算手段
における各加算器の入力直前に符号拡張手段を夫々配設
し、その符号拡張手段により、加算器が加算すべき2個
1組のデータのうちで乗数データの下位ビットに対応す
る方のデータを符号拡張するようにしている。
【0040】このため、請求項1に記載の乗算器によれ
ば、加算手段の最終段以外の各加算段において、各加算
器の加算ビット数(加算すべきデータのビット数)を統
一させることができるようになり、その結果、当該乗算
器を半導体集積回路で実現する場合のチップレイアウト
性を、格段に向上させることができる。しかも、加算器
の加算ビット数を従来の乗算器よりも小さくすることが
でき、回路規模を縮小することができるようになる。
【0041】ここで、請求項1に記載の乗算器におい
て、例えば、被乗数データと乗数データとのビット数n
が、2のN乗(但し、Nは3以上の整数)である場合に
は、請求項2に記載のように構成すれば良い。即ち、請
求項2に記載の乗算器において、加算手段の1段目に
は、n/2個の部分積データを乗数データの下位ビット
に対応するものから順に夫々2個1組とした部分積デー
タ組毎に対応して、2N-2 個の加算器が配置されてお
り、その2 N-2 個の加算器に夫々対応する各符号拡張手
段が、前記部分積データ組を成すデータのうち、乗数デ
ータの下位ビットに対応する方の部分積データを2ビッ
ト符号拡張してn+3ビットの加算対象データを出力す
る。
【0042】そして、前記2N-2 個の各加算器は、前記
n+3ビットの加算対象データの上位n+1ビットと、
前記部分積データ組を成すデータのうちで乗数データの
上位ビットに対応する方の部分積データとを加算し、そ
の加算結果の最下位ビット側に前記n+3ビットの加算
対象データの下位2ビットを結合することにより、n+
3ビットの加算データを出力する。
【0043】また、加算手段の2段目以降のK段目に
は、加算手段のK−1段目(前段)の各加算器から出力
される加算データを乗数データの下位ビットに対応する
ものから順に夫々2個1組とした加算データ組毎に対応
して、2N-K-1 個の加算器が配置されており、その2
N-K-1 個の加算器に夫々対応する各符号拡張手段が、前
記加算データ組を成すデータのうち、乗数データの下位
ビットに対応する方の加算データを2K ビット符号拡張
してPビット(但し、Pは請求項2に記載の式1により
表される数であり、P=n+1+2K +2K-1 +2K-2
+…+21 である)の加算対象データを出力する。
【0044】そして更に、前記2N-K-1 個の各加算器
は、前記Pビットの加算対象データの上位P−2K ビッ
トと、前記加算データ組を成すデータのうちで乗数デー
タの上位ビットに対応する方の加算データとを加算し、
その加算結果の最下位ビット側に前記Pビットの加算対
象データの下位2K ビットを結合して、Pビットの加算
データを出力する。
【0045】このような請求項2に記載の乗算器によれ
ば、例えば、被乗数データと乗数データとのビット数n
が16=24 である場合、即ち、2の補数表示形式の1
6ビット×16ビットの乗算を行う構成の場合に、加算
手段の1段目には4個の加算器が配置され、加算手段の
2段目には2個の加算器が配置されることとなるが、1
段目の各加算器の加算ビット数を17ビットに統一する
ことができ、また、2段目の各加算器の加算ビット数を
19ビットに統一することができる。よって、当該乗算
器のチップレイアウト性を格段に向上させることができ
ると共に、図13に示した従来の乗算器J2との対比か
ら明らかなように、加算器の加算ビット数を小さくする
ことができる。
【0046】次に、請求項3に記載の第2発明の乗算器
は、ビット数がn(但し、nは偶数)の2進数表示の被
乗数データと乗数データとを入力して、符号付き乗算と
符号無し乗算とを切替信号に応じて択一的に行うもので
ある。そして、この請求項3に記載の乗算器では、2ビ
ット拡張手段が、前記切替信号が符号付き乗算の実行を
示す場合に、被乗数データをその最上位ビットで2ビッ
ト符号拡張したn+2ビットのデータを出力し、前記切
替信号が符号無し乗算の実行を示す場合に、被乗数デー
タの最上位ビット側を2ビット0拡張したn+2ビット
のデータを出力する。
【0047】すると、部分積生成手段が、2ビット拡張
手段から出力されるn+2ビットのデータと前記乗数デ
ータとから、2次のブースのアルゴリズムに基づきn+
2ビットの部分積データをn/2個生成する。そして、
ツリー状に配置された複数の加算器を有する加算手段
が、部分積生成手段にて生成されたn/2個の部分積デ
ータを前記複数の加算器により加算して、その加算器の
うちの最終段の加算器から2nビットのデータを出力す
るのであるが、特に、加算手段には、前記各加算器に夫
々入力される2個1組のデータのうちで、乗数データの
下位ビットに対応する方のデータを夫々符号拡張する複
数の符号拡張手段が設けられている。
【0048】そして更に、乗算結果出力手段が、前記切
替信号が符号無し乗算の実行を示し、且つ、乗数データ
の最上位ビットが“1”である場合に、加算手段の最終
段の加算器から出力される2nビットのデータの上位n
ビットと被乗数データとを加算して、その加算結果の最
下位ビット側に前記2nビットのデータの下位nビット
を結合することにより、被乗数データと乗数データとの
積を表す2nビットのデータを出力し、それ以外の場合
には、加算手段の最終段の加算器から出力される2nビ
ットのデータを、被乗数データと乗数データとの積を表
すデータとして出力する。
【0049】つまり、請求項3に記載の乗算器では、図
14,図16の符号付き/無し乗算器J3,J4と同様
に、前述した(1)〜(3)の考え方に基づき、符号付
き乗算と符号無し乗算とを切り替えて行うようにしてい
るのであるが、特に、部分積生成手段が、n/2個の部
分積として、被乗数データ及び乗数データのビット数n
よりも2ビット多いn+2ビットの必須の部分積(例え
ば、図15に示した例では、黒丸印(●)で示したビッ
トから右側の10ビット)だけを生成するようにしてい
る。そして更に、加算手段における各加算器の入力直前
に符号拡張手段を夫々配設し、その符号拡張手段によ
り、加算器が加算すべき2個1組のデータのうちで乗数
データの下位ビットに対応する方のデータを符号拡張す
るようにしている。
【0050】このため、請求項3に記載の乗算器によれ
ば、符号付き乗算と符号無し乗算とを共通のハードウェ
アで切り替えて行うことができるだけでなく、加算手段
の最終段以外の各加算段において、各加算器の加算ビッ
ト数を統一させることができるようになり、その結果、
当該乗算器を半導体集積回路で実現する場合のチップレ
イアウト性を、格段に向上させることができる。しか
も、加算器の加算ビット数を小さくすることができ、回
路規模を縮小することができるようになる。
【0051】ここで、請求項3に記載の乗算器におい
て、例えば、被乗数データと乗数データとのビット数n
が、2のN乗(但し、Nは3以上の整数)である場合に
は、請求項4に記載のように構成すれば良い。即ち、請
求項4に記載の乗算器において、加算手段の1段目に
は、n/2個の部分積データを乗数データの下位ビット
に対応するものから順に夫々2個1組とした部分積デー
タ組毎に対応して、2N-2 個の加算器が配置されてお
り、その2 N-2 個の加算器に夫々対応する各符号拡張手
段が、前記部分積データ組を成すデータのうち、乗数デ
ータの下位ビットに対応する方の部分積データを2ビッ
ト符号拡張してn+4ビットの加算対象データを出力す
る。
【0052】そして、前記2N-2 個の各加算器は、前記
n+4ビットの加算対象データの上位n+2ビットと、
前記部分積データ組を成すデータのうちで乗数データの
上位ビットに対応する方の部分積データとを加算し、そ
の加算結果の最下位ビット側に前記n+4ビットの加算
対象データの下位2ビットを結合することにより、n+
4ビットの加算データを出力する。
【0053】また、加算手段の2段目以降のK段目に
は、加算手段のK−1段目(前段)の各加算器から出力
される加算データを乗数データの下位ビットに対応する
ものから順に夫々2個1組とした加算データ組毎に対応
して、2N-K-1 個の加算器が配置されており、その2
N-K-1 個の加算器に夫々対応する各符号拡張手段が、前
記加算データ組を成すデータのうち、乗数データの下位
ビットに対応する方の加算データを2K ビット符号拡張
してQビット(但し、Qは請求項4に記載の式2により
表される数であり、P=n+2+2K +2K-1 +2K-2
+…+21 である)の加算対象データを出力する。
【0054】そして更に、前記2N-K-1 個の各加算器
は、前記Qビットの加算対象データの上位Q−2K ビッ
トと、前記加算データ組を成すデータのうちで乗数デー
タの上位ビットに対応する方の加算データとを加算し、
その加算結果の最下位ビット側に前記Qビットの加算対
象データの下位2K ビットを結合して、Qビットの加算
データを出力する。
【0055】このような請求項4に記載の乗算器によれ
ば、例えば、被乗数データと乗数データとのビット数n
が16=24 である場合、即ち、16ビット×16ビッ
トの符号付き乗算と符号無し乗算とを切り替えて行う構
成の場合に、加算手段の1段目には4個の加算器が配置
され、加算手段の2段目には2個の加算器が配置される
こととなるが、1段目の各加算器の加算ビット数を18
ビットに統一することができ、また、2段目の各加算器
の加算ビット数を20ビットに統一することができる。
よって、当該乗算器のチップレイアウト性を格段に向上
させることができると共に、図16に示した符号付き/
無し乗算器J4との対比から明らかなように、加算器の
加算ビット数を小さくすることができる。
【0056】
【発明の実施の形態】以下、本発明が適用された実施形
態の乗算器について、図面を用いて説明する。まず図1
は、2の補数表示形式の16(=24 )ビットの被乗数
(被乗数データ)Xと乗数(乗数データ)Yを入力し
て、2の補数表示形式の16ビット×16ビットの乗算
を行う第1実施形態のツリー型乗算器M1の構成を表す
ブロック図である。
【0057】図1に示すように、本第1実施形態のツリ
ー型乗算器M1は、16ビットの被乗数Xを1ビット符
号拡張する1ビット拡張手段としての符号拡張器1と、
その符号拡張器1から出力される17(=16+1)ビ
ットのデータと16ビットの乗数Yとから、2次のブー
スのアルゴリズムに基づき、各々が17ビットの8(=
16/2)個の部分積B0 〜B7 を生成する部分積生成
手段としてのブースエンコーダ2とを備えている。
【0058】例えば、図2に示すように、被乗数Xが
「1110011111001010」(16進数表現では「E7C
A」)であり、乗数Yが「1011100001000010」(16進
数表現では「B842」)である場合には、符号拡張器
1が、被乗数Xを1ビット符号拡張した17ビットデー
タ(「11110011111001010 」)を出力することとなる。
【0059】そして、この例の場合には、乗数Yの1ビ
ット目Y[1] が“1”であり、0ビット目Y[0] が
“0”であることから、ブースエンコーダ2は、乗数Y
の0ビット目Y[0] に対応する第1部分積B0 として、
図10の真理値表に従い「−2X」を表す17ビットデ
ータ(「00011000001101100 」)を出力することとな
る。また、ブースエンコーダ2は、乗数Yの3ビット目
Y[3] と2ビット目Y[2] とが“0”であり、1ビット
目Y[1] が“1”であることから、乗数Yの2ビット目
Y[2] に対応する第2部分積B1 として、図10の真理
値表に従い「+X」を表す17ビットデータ(「111100
11111001010」)を出力することとなる。
【0060】そして同様に、図2に示す例の場合には、
ブースエンコーダ2は、乗数Yの4ビット目Y[4] ,6
ビット目Y[6] ,8ビット目Y[8] ,10ビット目Y[1
0],12ビット目Y[12] ,及び14ビット目Y[14]に
夫々対応する第3から第8までの部分積B2 〜B7 とし
て、夫々、「0×X」を表す17ビットデータと、「+
X」を表す17ビットデータと、「0×X」を表す17
ビットデータと、「−2X」を表す17ビットデータ
と、「0×X」を表す17ビットデータと、「−X」を
表す17ビットデータとを出力することとなる。
【0061】尚、符号拡張器1によって被乗数Xを予め
1ビット符号拡張しておくようにしているのは、「+
X」,「−X」,「+2X」,「−2X」を表す17ビ
ットの部分積を生成するためのブースエンコーダ2内の
論理回路を、簡素化するためである。例えば、ブースエ
ンコーダ2が、「+X」を表す部分積を生成して出力す
る場合には、符号拡張器1からの17ビットデータを、
そのまま出力すれば良く、また、「−2X」を表す部分
積を生成して出力する場合には、符号拡張器1からの1
7ビットデータを2の補数化して1ビット左シフトした
17ビットデータを、出力すれば良い。
【0062】一方更に、本第1実施形態のツリー型乗算
器M1は、図1に示すように、ブースエンコーダ2から
出力される8個の部分積B0 〜B7 を並列に加算するた
めの加算回路として、ツリー状に配置された7個の加算
器10〜16と、その各加算器10〜16の一方側の入
力段に夫々設けられた7個の符号拡張器3〜9と、から
なるツリー型加算回路(以下、単に「加算回路」とい
う)を備えている。
【0063】ここで、この加算回路について詳細に説明
すると、加算回路の1段目には、ブースエンコーダ2か
ら出力される8個の部分積B0 〜B7 を乗数Yの下位ビ
ットに対応するものから順に夫々2個1組とした部分積
データ組(B0 とB1 ,B2とB3 ,B4 とB5 ,B6
とB7 )毎に対応して、4(=24-2 )個の17ビット
加算器10〜13が配置されており、その4個の加算器
10〜13に夫々対応する各符号拡張器3〜6が、上記
部分積データ組を成す部分積のうちで乗数Yの下位ビッ
トに対応する方の部分積B0 ,B2 ,B4 ,B6 を、夫
々、2ビット符号拡張して、19(=16+3)ビット
の加算対象データを出力する。
【0064】そして、上記4個の17ビット加算器10
〜13の各々は、符号拡張器3〜6のうちで自己に対応
するものから出力される加算対象データの上位17(=
16+1)ビットと、自己に対応する部分積データ組を
成す部分積のうちで乗数Yの上位ビットに対応する方の
部分積(B1 ,B3 ,B5 ,B7 の何れか)とを加算
し、その加算結果の最下位ビット側に上記加算対象デー
タの下位2ビットを結合することにより、19ビットの
加算データE0 〜E3 を出力する。
【0065】例えば、部分積データ組のうちで最も下位
の部分積データ組(B0 とB1 )に対応する17ビット
加算器10は、符号拡張器3から出力される加算対象デ
ータ(即ち、部分積B0 を2ビット符号拡張したデー
タ)の上位17ビットと、17ビットの部分積B1 とを
加算し、その加算結果の最下位ビット側に符号拡張器3
からの加算対象データの下位2ビットを結合することに
より、19ビットの加算データE0 を出力する。尚、他
の3つの17ビット加算器11〜13の動作についても
同様である。
【0066】また同様に、加算回路の2段目には、上記
1段目(前段)の各加算器10〜13から出力される加
算データE0 〜E3 を乗数Yの下位ビットに対応するも
のから順に夫々2個1組とした加算データ組(E0 とE
1 ,E2 とE3 )毎に対応して、2(=24-2-1 )個の
19ビット加算器14,15が配置されており、その2
個の加算器14,15に夫々対応する各符号拡張器7,
8が、上記加算データ組を成すデータのうちで乗数Yの
下位ビットに対応する方の加算データE0 ,E2 を、夫
々、4(=22 )ビット符号拡張して、23(=16+
1+22 +21)ビットの加算対象データを出力する。
【0067】そして、上記2個の19ビット加算器1
4,15の各々は、符号拡張器7,8のうちで自己に対
応するものから出力される加算対象データの上位19
(=23−22 )ビットと、自己に対応する加算データ
組を成すデータのうちで乗数Yの上位ビットに対応する
方の加算データ(E1 ,E3 の何れか)とを加算し、そ
の加算結果の最下位ビット側に上記23ビットの加算対
象データの下位4ビットを結合することにより、23ビ
ットの加算データF0 ,F1 を出力する。
【0068】例えば、加算データ組のうちで最も下位の
加算データ組(E0 とE1 )に対応する19ビット加算
器14は、符号拡張器7から出力される加算対象データ
(加算データE0 を4ビット符号拡張したデータ)の上
位19ビットと、19ビットの加算データE1 とを加算
し、その加算結果の最下位ビット側に符号拡張器7から
の加算対象データの下位4ビットを結合することによ
り、23ビットの加算データF0 を出力する。尚、他方
の19ビット加算器15の動作についても同様である。
【0069】また更に、加算回路の3段目(最終段)に
は、上記2段目(前段)の各加算器14,15から出力
される加算データF0 ,F1 からなる加算データ組に対
応して、1(=24-3-1 )個の23ビット加算器16が
配置されており、その加算器16に対応する符号拡張器
9が、上記加算データ組を成すデータのうちで乗数Yの
下位ビットに対応する方の加算データF0 を、8(=2
3 )ビット符号拡張して、31(=16+1+23 +2
2 +21 )ビットの加算対象データを出力する。
【0070】そして、上記23ビット加算器16は、符
号拡張器9から出力される加算対象データの上位23
(=31−23 )ビットと、上記加算データ組(F0 と
F1 )を成すデータのうちで乗数Yの上位ビットに対応
する方の加算データF1 とを加算し、その加算結果の最
下位ビット側に上記31ビットの加算対象データの下位
8ビットを結合することにより、被乗数Xと乗数Yとの
積を表す31(=2×16−1)ビットのデータを出力
する。
【0071】尚、本第1実施形態では、上記7個の加算
器10〜16及び符号拡張器3〜9からなる加算回路
が、加算手段に相当しており、その加算回路の符号拡張
器3〜9が、符号拡張手段に相当している。以上のよう
な本第1実施形態のツリー型乗算器M1においては、図
2における四角印(□)で示すように、前述の部分積デ
ータ組(B0 とB1 ,B2 とB3 ,B4 とB5 ,B6 と
B7 )を成す部分積のうちで乗数Yの下位ビットに対応
する方の部分積B0 ,B2 ,B4 ,B6 が、4つの符号
拡張器3〜6によって夫々2ビット符号拡張される。
【0072】そして、上記符号拡張器3〜6の各々から
出力される19ビットの加算対象データと、それらに対
応する部分積B1 ,B3 ,B5 ,B7 の各々とが、加算
回路の1段目に配置された4つの加算器10〜13によ
り前述の手順で加算され、その各加算器10〜13か
ら、第1部分積B0 と第2部分積B1 を加算した19ビ
ットの加算データE0 と、第3部分積B2 と第4部分積
B3 を加算した19ビットの加算データE1 と、第5部
分積B4 と第6部分積B5 を加算した19ビットの加算
データE2 と、第7部分積B6 と第8部分積B7 を加算
した19ビットの加算データE3 とが、夫々出力される
こととなる。
【0073】すると、図2における三角印(△)で示す
ように、前述の加算データ組(E0とE1 ,E2 とE3
)を成すデータのうちで乗数Yの下位ビットに対応す
る方の加算データE0 ,E2 が、2つの符号拡張器7,
8によって夫々4ビット符号拡張される。そして、上記
符号拡張器7,8の各々から出力される23ビットの加
算対象データと、それらに対応する加算データE1 ,E
3 の各々とが、加算回路の2段目に配置された2つの加
算器14,15により前述の手順で加算され、その各加
算器14,15から、加算データE0 と加算データE1
を加算した23ビットの加算データF0 と、加算データ
E2 と加算データE3 を加算した23ビットの加算デー
タF1 とが、夫々出力されることとなる。
【0074】すると更に、図2における星印(☆)で示
すように、上記2段目の各加算器14,15から出力さ
れる加算データF0 ,F1 のうちで乗数Yの下位ビット
に対応する方の加算データF0 が、符号拡張器9によっ
て8ビット符号拡張される。そして、上記符号拡張器9
から出力される31ビットの加算対象データと、それに
対応する加算器15からの加算データF1 とが、加算回
路の最終段に配置された加算器16により前述の手順で
加算され、その加算器16から、加算データF0 と加算
データF1 を加算した31ビットのデータであって、被
乗数Xと乗数Yとの積(乗算結果)を表す31ビットの
データG0 が出力されることとなる。
【0075】尚、図2に示す例の場合には、乗算結果と
して、16進数表現で「06C8F214」を表す31
ビットデータが出力されることとなる。以上のように本
第1実施形態のツリー型乗算器M1では、ブースエンコ
ーダ2が、8個の部分積B0 〜B7 として、被乗数X及
び乗数Yのビット数よりも1ビット多い必須の17ビッ
トだけを生成して出力するようにしている。そして、加
算回路における各加算器10〜16の入力直前に符号拡
張器3〜9を夫々配設し、その符号拡張器3〜9によ
り、加算器10〜16が加算すべき2個1組のデータの
うちで乗数Yの下位ビットに対応する方のデータを符号
拡張するようにしている。
【0076】このため、本第1実施形態のツリー型乗算
器M1によれば、加算回路の最終段以外の各加算段(1
段目及び2段目)において、各加算器の加算ビット数を
統一させることができる。具体的には、1段目の各加算
器10〜13の加算ビット数を17ビットに統一するこ
とができ、2段目の各加算器14,15の加算ビット数
を19ビットに統一することができる。
【0077】よって、当該ツリー型乗算器M1を半導体
集積回路で実現する場合のチップレイアウト性を格段に
向上させることができる。しかも、図13に示した従来
のツリー型乗算器J2との対比から明らかなように、加
算器10〜12,14の加算ビット数を小さくすること
ができ、回路規模を縮小することができる。
【0078】ところで、上記第1実施形態のツリー型乗
算器M1は、2の補数表示形式の16ビット×16ビッ
トの乗算を行うものであったが、本第1発明は、16ビ
ット×16ビット以外の乗算を行うツリー型乗算器に対
しても全く同様に適用することができる。
【0079】例えば、2の補数表示形式の8ビット×8
ビットの乗算を行うツリー型乗算器は、図3のように構
成することができる。即ち、図3は、第2実施形態のツ
リー型乗算器M2の構成を表すブロック図であり、この
ツリー型乗算器M2も、被乗数Xを1ビット符号拡張す
る符号拡張器21と、ブースエンコーダ22とを備えて
いる。
【0080】そして、ブースエンコーダ22は、符号拡
張器21から出力される9(=8+1)ビットのデータ
と8ビットの乗数Yとから、2次のブースのアルゴリズ
ムに基づき、各々が9ビットの4(=8/2)個の部分
積B0 〜B3 を生成する。つまり、本第2実施形態のブ
ースエンコーダ22も、4個の部分積B0 〜B3 とし
て、図4にて黒丸印(●)で示したビットから右側に示
すように、被乗数X及び乗数Yのビット数よりも1ビッ
ト多い必須の9ビットだけを生成して出力する。
【0081】また更に、本第2実施形態のツリー型乗算
器M2も、第1実施形態のツリー型乗算器M1と同様
に、ツリー状に配置された3個の加算器26〜28と、
その各加算器26〜28の一方側の入力段に夫々設けら
れた3個の符号拡張器23〜25とからなる加算回路を
備えている。
【0082】そして、このツリー型乗算器M2におい
て、加算回路の1段目には、上記4個の部分積B0 〜B
3 を乗数Yの下位ビットに対応するものから順に夫々2
個1組とした部分積データ組(B0 とB1 ,B2 とB3
)毎に対応して、2個の9ビット加算器26,27が
配置されており、その2個の加算器26,27に夫々対
応する各符号拡張器23,24が、上記部分積データ組
を成す部分積のうちで乗数Yの下位ビットに対応する方
の部分積B0 ,B2 を、図4の四角印(□)で示す如
く、夫々、2ビット符号拡張して、11ビットの加算対
象データを出力する。
【0083】そして更に、上記2個の9ビット加算器2
6,27の各々は、符号拡張器23,24のうちで自己
に対応するものから出力される加算対象データの上位9
ビットと、自己に対応する部分積データ組を成す部分積
のうちで乗数Yの上位ビットに対応する方の部分積(B
1 ,B3 の何れか)とを加算し、その加算結果の最下位
ビット側に上記加算対象データの下位2ビットを結合す
ることにより、11ビットの加算データE0 ,E1 を出
力する。
【0084】また同様に、加算回路の2段目(最終段)
には、上記加算データE0 ,E1 からなる加算データ組
に対応して、1個の11ビット加算器28が配置されて
おり、その加算器28に対応する符号拡張器25が、上
記加算データ組を成すデータのうちで乗数Yの下位ビッ
トに対応する方の加算データE0 を、図4の三角印
(△)で示す如く4ビット符号拡張して、15ビットの
加算対象データを出力する。
【0085】そして、上記11ビット加算器28は、符
号拡張器25から出力される加算対象データの上位11
ビットと、上記加算データ組(E0 とE1 )を成すデー
タのうちで乗数Yの上位ビットに対応する方の加算デー
タE1 とを加算し、その加算結果の最下位ビット側に上
記15ビットの加算対象データの下位4ビットを結合す
ることにより、被乗数Xと乗数Yとの積を表す15ビッ
トのデータF0 を出力する。
【0086】このような本第2実施形態のツリー型乗算
器M2によれば、加算回路の最終段以外の1段目におい
て、各加算器26,27の加算ビット数を9ビットに統
一することができ、チップレイアウト性を向上させるこ
とができる。そして、図11に示した従来のツリー型乗
算器J1との対比から明らかなように、加算器26の加
算ビット数を小さくすることができ、回路規模を縮小す
ることができる。
【0087】次に、第3実施形態として、16ビットの
被乗数Xと乗数Yを入力して符号付き乗算と符号無し乗
算とを択一的に行うツリー型乗算器(符号付き/無し乗
算器)について説明する。まず図5は、本第3実施形態
の符号付き/無し乗算器M3の構成を表すブロック図で
ある。
【0088】図5に示すように、本第3実施形態の符号
付き/無し乗算器M3は、制御線を介して与えられる切
替信号が符号付き乗算の実行を示す場合(本実施形態で
は、切替信号がロウレベルの場合)に、16ビットの被
乗数Xを2ビット符号拡張し、上記切替信号が符号無し
乗算の実行を示す場合(本実施形態では、切替信号がハ
イレベルの場合)に、上記被乗数Xを2ビット0拡張す
る2ビット拡張手段としての符号拡張器31と、部分積
生成手段としてのブースエンコーダ32とを備えてい
る。
【0089】そして、ブースエンコーダ32は、符号拡
張器31から出力される18(=16+2)ビットのデ
ータと16ビットの乗数Yとから、2次のブースのアル
ゴリズムに基づき、各々が18ビットの第1から第8ま
での8(=16/2)個の部分積B0 〜B7 を生成す
る。そして更に、ブースエンコーダ32は、上記切替信
号が符号無し乗算の実行を示すハイレベルであり、且
つ、乗数Yの最上位ビットY[15]が“1”である場合に
は、第9部分積B8 として、16ビットの被乗数Xをそ
のまま出力し、それ以外の場合には、第9部分積B8 と
して、全ビットが“0”の16ビットデータを出力す
る。
【0090】ここで、被乗数Xが「1110011111001010」
(16進数表現では「E7CA」)であり、乗数Yが
「1011100001000010」(16進数表現では「B84
2」)である場合を例に挙げて説明すると、符号拡張器
1は、切替信号が符号付き乗算の実行を示すロウレベル
の場合に、被乗数Xを2ビット符号拡張した18ビット
データ(「111110011111001010」)を出力することとな
り、また、切替信号が符号無し乗算の実行を示すハイレ
ベルの場合には、被乗数Xを2ビット0符号拡張した1
8ビットデータ(「001110011111001010」)を出力する
こととなる。
【0091】そして、この例において、ブースエンコー
ダ32は、切替信号がロウレベルの場合には、第1から
第8までの8個の部分積B0 〜B7 として、図6のB0
〜B7 の各欄に示す18ビットデータを出力すると共
に、第9部分積B8 として、全ビットが“0”の16ビ
ットデータを出力することとなる。尚、図6では、第9
部分積B8 の図示を省略している。
【0092】また、この例において、ブースエンコーダ
32は、切替信号がハイレベルの場合には、第1から第
8までの8個の部分積B0 〜B7 として、図7のB0 〜
B7の各欄に示す18ビットデータを出力すると共に、
第9部分積B8 として、図7のB8 の欄に示す如く16
ビットの被乗数Xをそのまま出力することとなる。尚、
切替信号がハイレベルの場合であっても、乗数Yの最上
位ビットY[15]が“0”ならば、ブースエンコーダ32
は、第9部分積B8 として、全ビットが“0”の16ビ
ットデータを出力することとなる。
【0093】一方更に、本第3実施形態の符号付き/無
し乗算器M3は、図5に示すように、ブースエンコーダ
32から出力される第1から第8までの8個の部分積B
0 〜B7 を並列に加算するために、ツリー状に配置され
た7個の加算器40〜46と、その各加算器40〜46
の一方側の入力段に夫々設けられた7個の符号拡張器3
3〜39と、からなる加算回路を備えている。
【0094】ここで、この加算回路について詳細に説明
すると、加算回路の1段目には、上記8個の部分積B0
〜B7 を乗数Yの下位ビットに対応するものから順に夫
々2個1組とした部分積データ組(B0 とB1 ,B2 と
B3 ,B4 とB5 ,B6 とB7 )毎に対応して、4(=
4-2 )個の18ビット加算器40〜43が配置されて
おり、その4個の加算器40〜43に夫々対応する各符
号拡張器33〜36が、上記部分積データ組を成す部分
積のうちで乗数Yの下位ビットに対応する方の部分積B
0 ,B2 ,B4 ,B6 を、夫々、2ビット符号拡張し
て、20(=16+4)ビットの加算対象データを出力
する。
【0095】そして、上記4個の18ビット加算器40
〜43の各々は、符号拡張器33〜36のうちで自己に
対応するものから出力される加算対象データの上位18
(=16+2)ビットと、自己に対応する部分積データ
組を成す部分積のうちで乗数Yの上位ビットに対応する
方の部分積(B1 ,B3 ,B5 ,B7 の何れか)とを加
算し、その加算結果の最下位ビット側に上記加算対象デ
ータの下位2ビットを結合することにより、20ビット
の加算データE0 〜E3 を出力する。
【0096】また同様に、加算回路の2段目には、上記
1段目(前段)の各加算器40〜43から出力される加
算データE0 〜E3 を乗数Yの下位ビットに対応するも
のから順に夫々2個1組とした加算データ組(E0 とE
1 ,E2 とE3 )毎に対応して、2(=24-2-1 )個の
20ビット加算器44,45が配置されており、その2
個の加算器44,45に夫々対応する各符号拡張器3
7,38が、上記加算データ組を成すデータのうちで乗
数Yの下位ビットに対応する方の加算データE0,E2
を、夫々、4(=22 )ビット符号拡張して、24(=
16+2+22 +21 )ビットの加算対象データを出力
する。
【0097】そして、上記2個の20ビット加算器4
4,45の各々は、符号拡張器37,38のうちで自己
に対応するものから出力される加算対象データの上位2
0(=24−22 )ビットと、自己に対応する加算デー
タ組を成すデータのうちで乗数Yの上位ビットに対応す
る方の加算データ(E1 ,E3 の何れか)とを加算し、
その加算結果の最下位ビット側に上記24ビットの加算
対象データの下位4ビットを結合することにより、24
ビットの加算データF0 ,F1 を出力する。
【0098】また更に、加算回路の3段目(最終段)に
は、上記各加算器44,45から出力される加算データ
F0 ,F1 からなる加算データ組に対応して、1(=2
4-3- 1 )個の24ビット加算器46が配置されており、
その加算器46に対応する符号拡張器39が、上記加算
データ組を成すデータのうちで乗数Yの下位ビットに対
応する方の加算データF0 を、8(=23 )ビット符号
拡張して、32(=16+2+23 +22 +21 )ビッ
トの加算対象データを出力する。
【0099】そして、上記24ビット加算器46は、符
号拡張器39から出力される加算対象データの上位24
(=32−23 )ビットと、上記加算データ組(F0 と
F1)を成すデータのうちで乗数Yの上位ビットに対応
する方の加算データF1 とを加算し、その加算結果の最
下位ビット側に上記32ビットの加算対象データの下位
8ビットを結合することにより、32ビットの加算デー
タG0 を出力する。
【0100】尚、本第3実施形態では、上記7個の加算
器40〜46及び符号拡張器33〜39からなる加算回
路が、加算手段に相当しており、その加算回路の符号拡
張器33〜39が、符号拡張手段に相当している。そし
て更に、本第3実施形態の符号付き/無し乗算器M3
は、図5に示すように、乗算結果出力手段としての16
ビット加算器47を備えている。そして、この加算器4
7は、上記加算器46からの加算データG0 の上位16
ビットと、ブースエンコーダ32からの上記第9部分積
B8 (「X」又は「0」)とを加算し、その加算結果の
最下位ビット側に上記加算データG0 の下位16ビット
を結合することにより、被乗数Xと乗数Yとの積(乗算
結果)を表す32ビットデータを出力する。
【0101】以上のような本第3実施形態の符号付き/
無し乗算器M3においては、ブースエンコーダ32から
出力される第1から第8までの部分積B0 〜B7 が、第
1実施形態のツリー型乗算器M1と同様の手順で加算さ
れる。即ち、まず図6及び図7における四角印(□)で
示すように、部分積B0 ,B2 ,B4 ,B6 の各々が、
4つの符号拡張器33〜36によって2ビット符号拡張
され、その符号拡張器33〜36の各々から出力される
20ビットのデータと、それらに対応する部分積B1 ,
B3 ,B5 ,B7 の各々とが、加算回路の1段目に配置
された4つの加算器40〜43により前述の手順で加算
される。そして、その各加算器40〜43から、前述の
部分積データ組(B0 とB1 ,B2 とB3 ,B4 とB5
,B6 とB7 )の各々を加算した20ビットの加算デ
ータE0 〜E3 が出力されることとなる。
【0102】すると、図6及び図7における三角印
(△)で示すように、加算器40,42から出力される
加算データE0 ,E2 の各々が、2つの符号拡張器3
7,38によって4ビット符号拡張され、その符号拡張
器37,38の各々から出力される24ビットのデータ
と、それらに対応する加算データE1 ,E3 の各々と
が、加算回路の2段目に配置された2つの加算器44,
45により前述の手順で加算される。そして、その各加
算器44,45から、加算データE0 と加算データE1
を加算した24ビットの加算データF0 と、加算データ
E2 と加算データE3 を加算した24ビットの加算デー
タF1 とが、夫々出力されることとなる。
【0103】すると更に、図6及び図7における星印
(☆)で示すように、加算器44から出力される加算デ
ータF0 が、符号拡張器39によって8ビット符号拡張
され、その符号拡張器39から出力される32ビットの
データと、それに対応する加算器45からの加算データ
F1 とが、加算回路の最終段に配置された加算器46に
より前述の手順で加算される。そして、その加算器46
から、加算データF0 と加算データF1 を加算した(即
ち、第1から第8までの8個の部分積B0 〜B7を加算
した)32ビットのデータG0 が出力されることとな
る。
【0104】そして、本第3実施形態の符号付き/無し
乗算器M3において、上記切替信号が符号無し乗算の実
行を示すハイレベルであり、且つ、乗数Yの最上位ビッ
トY[15]が“1”である場合には、上記加算器46から
出力される32ビットデータG0 の上位16ビットに1
6ビットの被乗数Xを加算した32ビットデータが、乗
算結果出力手段としての加算器47から、被乗数Xと乗
数Yとの積を表す32ビットデータとして出力される。
【0105】また、それ以外の場合(即ち、上記切替信
号が符号付き乗算の実行を示すロウレベルの場合、或い
は、上記切替信号が符号無し乗算の実行を示すハイレベ
ルであり、且つ、乗数Yの最上位ビットY[15]が“0”
である場合)には、上記加算器46から出力される32
ビットデータG0 が、そのまま加算器47から被乗数X
と乗数Yとの積を表す32ビットデータとして出力され
る。
【0106】よって、例えば前述した例の場合(つま
り、被乗数Xが16進数表現で「E7CA」であり、乗
数Yが16進数表現で「B842」である場合)におい
て、切替信号が符号付き乗算の実行を示すロウレベルで
あれば、図6に示すように、被乗数Xと乗数Yに対して
符号付き乗算(即ち、2の補数表示形式の乗算)を行っ
た乗算結果であって、16進数表現にて「06C8F2
14」を表す32ビットデータが、上記加算器47から
出力されることとなる。
【0107】また、例えば前述した例の場合において、
切替信号が符号無し乗算の実行を示すハイレベルであれ
ば、図7に示すように、被乗数Xと乗数Yに対して符号
無し乗算(即ち、絶対値表示形式の乗算)を行った乗算
結果であって、16進数表現にて「A6D4F214」
を表す32ビットデータが出力されることとなる。
【0108】以上のように本第3実施形態の符号付き/
無し乗算器M3では、図16の符号付き/無し乗算器J
4と同様に、前述した(1)〜(3)の考え方に基づ
き、符号付き乗算と符号無し乗算とを切り替えて行うよ
うにしているのであるが、特に、ブースエンコーダ32
が、第1から第8までの8個の部分積B0 〜B7 とし
て、被乗数X及び乗数Yのビット数よりも2ビット多い
必須の18ビットだけを生成して出力するようにしてい
る。そして、加算回路における各加算器40〜46の入
力直前に符号拡張器33〜39を夫々配設し、その符号
拡張器33〜39により、加算器40〜46が加算すべ
き2個1組のデータのうちで乗数Yの下位ビットに対応
する方のデータを符号拡張するようにしている。
【0109】このため、本第3実施形態の符号付き/無
し乗算器M3によれば、符号付き乗算と符号無し乗算と
を、外部から与える切替信号により切り替えて行うこと
ができるだけでなく、加算回路の最終段以外の各加算段
(1段目及び2段目)において、各加算器の加算ビット
数を統一させることができる。具体的には、1段目の各
加算器40〜43の加算ビット数を18ビットに統一す
ることができ、2段目の各加算器44,45の加算ビッ
ト数を20ビットに統一することができる。
【0110】よって、当該符号付き/無し乗算器M3を
半導体集積回路で実現する場合のチップレイアウト性を
格段に向上させることができる。しかも、図16に示し
た符号付き/無し乗算器J4との対比から明らかなよう
に、加算器40〜42,44の加算ビット数を小さくす
ることができ、回路規模を縮小することができる。
【0111】ところで、上記第3実施形態の符号付き/
無し乗算器M3は、16ビット×16ビットの乗算を行
うものであったが、本第2発明は、16ビット×16ビ
ット以外の乗算を行う符号付き/無し乗算器に対しても
全く同様に適用することができる。
【0112】例えば、8ビット×8ビットの符号付き乗
算と符号無し乗算とを択一的に行う符号付き/無し乗算
器は、図8のように構成することができる。即ち、図8
は、第4実施形態の符号付き/無し乗算器M4の構成を
表すブロック図であり、この乗算器M4も、8ビットの
被乗数Xを第3実施形態の符号拡張器31と全く同様に
2ビット拡張する(最上位ビット側に2ビット増加させ
る)符号拡張器51と、ブースエンコーダ52とを備え
ている。
【0113】そして、ブースエンコーダ52は、符号拡
張器51からの10(=8+2)ビットデータと8ビッ
トの乗数Yとから、2次のブースのアルゴリズムに基づ
き、各々が10ビットの第1から第4までの4(=8/
2)個の部分積B0 〜B3 を生成する。つまり、本第4
実施形態のブースエンコーダ52も、第1から第4まで
の4個の部分積B0 〜B3 として、図9にて黒丸印
(●)で示したビットから右側に示すように、被乗数X
及び乗数Yのビット数よりも2ビット多い必須の10ビ
ットだけを生成して出力する。そして更に、ブースエン
コーダ52は、切替信号が符号無し乗算の実行を示すハ
イレベルであり、且つ、乗数Yの最上位ビットY[8]が
“1”である場合には、第5部分積B4 として、8ビッ
トの被乗数Xをそのまま出力し、それ以外の場合には、
第5部分積B4 として、全ビットが“0”の8ビットデ
ータを出力する。
【0114】また更に、本第4実施形態の符号付き/無
し乗算器M4も、第3実施形態の乗算器M3と同様に、
ツリー状に配置された3個の加算器56〜58と、その
各加算器56〜58の一方側の入力段に夫々設けられた
3個の符号拡張器53〜55とからなる加算回路を備え
ている。
【0115】そして、この符号付き/無し乗算器M4に
おいて、加算回路の1段目には、上記第1から第4まで
の部分積B0 〜B3 を乗数Yの下位ビットに対応するも
のから順に夫々2個1組とした部分積データ組(B0 と
B1 ,B2 とB3 )毎に対応して、2個の10ビット加
算器56,57が配置されており、その2個の加算器5
6,57に夫々対応する各符号拡張器53,54が、上
記部分積データ組を成す部分積のうちで乗数Yの下位ビ
ットに対応する方の部分積B0 ,B2 を、図9の四角印
(□)で示す如く、夫々、2ビット符号拡張して、12
ビットの加算対象データを出力する。
【0116】そして更に、上記2個の10ビット加算器
56,57の各々は、符号拡張器53,54のうちで自
己に対応するものから出力される加算対象データの上位
10ビットと、自己に対応する部分積データ組を成す部
分積のうちで乗数Yの上位ビットに対応する方の部分積
(B1 ,B3 の何れか)とを加算し、その加算結果の最
下位ビット側に上記加算対象データの下位2ビットを結
合することにより、12ビットの加算データE0 ,E1
を出力する。
【0117】また同様に、加算回路の2段目(最終段)
には、上記加算データE0 ,E1 からなる加算データ組
に対応して、1個の12ビット加算器58が配置されて
おり、その加算器58に対応する符号拡張器55が、上
記加算データ組を成すデータのうちで乗数Yの下位ビッ
トに対応する方の加算データE0 を、図9の三角印
(△)で示す如く4ビット符号拡張して、16ビットの
加算対象データを出力する。
【0118】そして、上記12ビット加算器58は、符
号拡張器55から出力される加算対象データの上位12
ビットと、上記加算データ組(E0 とE1 )を成すデー
タのうちで乗数Yの上位ビットに対応する方の加算デー
タE1 とを加算し、その加算結果の最下位ビット側に上
記16ビットの加算対象データの下位4ビットを結合す
ることにより、上記4個の部分積B0 〜B3 を加算した
16ビットの加算データF0 を出力する。
【0119】そして更に、図8に示す如く、本第4実施
形態の符号付き/無し乗算器M4も、第3実施形態の乗
算器M3と同様に、乗算結果出力手段としての8ビット
加算器59を備えている。そして、この加算器59は、
上記加算器58からの加算データF0 の上位8ビット
と、ブースエンコーダ52からの上記第5部分積B4
(「X」又は「0」)とを加算し、その加算結果の最下
位ビット側に上記加算データF0 の下位8ビットを結合
することにより、被乗数Xと乗数Yとの積(乗算結果)
を表す16ビットデータを出力する(図9参照)。
【0120】このような第4実施形態の符号付き/無し
乗算器M4によれば、加算回路の最終段以外の1段目に
おいて、各加算器56,57の加算ビット数を10ビッ
トに統一することができ、チップレイアウト性を向上さ
せることができる。そして、図14に示した符号付き/
無し乗算器J3との対比から明らかなように、加算器5
6の加算ビット数を小さくすることができ、回路規模を
縮小することができる。
【0121】以上、本発明の一実施形態について説明し
たが、本発明は、上記各実施形態に限定されるものでは
なく、種々の形態を採り得ることは言うまでもない。例
えば、上記各実施形態の乗算器M1〜M4は、2のN乗
ビット(第1及び第3実施形態ではN=4,第2及び第
4実施形態ではN=3)の被乗数Xと乗数Yを入力し
て、2のN乗ビット×2のN乗ビットの乗算を行うもの
であったが、本第1及び第2発明は、2のN乗以外の偶
数ビット×偶数ビットの乗算を行う乗算器に対して適用
することができる。
【0122】一例を挙げると、例えば、2の補数表示形
式の14ビットの被乗数Xと乗数Yを入力して14ビッ
ト×14ビットの乗算を行う乗算器の場合には、図1に
示した第1実施形態のツリー型乗算器M1を以下の〜
のように変更すれば良い。 :符号拡張器1が、14ビットの被乗数Xを1ビット
符号拡張する。
【0123】:ブースエンコーダ2が、符号拡張器1
から出力される15(=14+1)ビットのデータと1
4ビットの乗数Yとから、2次のブースのアルゴリズム
に基づき、各々が15ビットの7(=14/2)個の部
分積B0 〜B6 を生成する。 :加算回路の1段目において、17ビット加算器13
と符号拡張器6を削除すると共に、17ビット加算器1
0〜12に代えて15ビット加算器を設ける。
【0124】そして、3個の符号拡張器3〜5が、部分
積B0 ,B2 ,B4 を、夫々、2ビット符号拡張して1
7ビットの加算対象データを出力する。そして更に、上
記加算器10〜12に代わる15ビット加算器の各々
が、符号拡張器3〜5のうちで自己に対応するものから
出力される加算対象データの上位15ビットと、自己に
対応する15ビットの部分積(B1 ,B3 ,B5 の何れ
か)とを加算し、その加算結果の最下位ビット側に上記
17ビットの加算対象データの下位2ビットを結合する
ことにより、17ビットの加算データE0 ,E1 ,E2
を出力する。
【0125】:加算回路の2段目において、19ビッ
ト加算器14に代えて17ビット加算器を設ける。そし
て、その17ビット加算器が、17ビットの上記加算デ
ータE0 (=B0+B1 )を符号拡張器7で4ビット符
号拡張した後の21ビットデータの上位17ビットと、
17ビットの上記加算データE1 (=B2 +B3 )とを
加算し、その加算結果の最下位ビット側に上記21ビッ
トデータの下位4ビットを結合することにより、21ビ
ットの加算データF0 を出力する。
【0126】また更に、加算回路の2段目において、4
ビットの符号拡張器8に代えて2ビットの符号拡張器を
設けると共に、19ビット加算器15に代えて15ビッ
ト加算器を設ける。そして、上記符号拡張器8に代わる
符号拡張器が、上記17ビットの加算データE2 (=B
4 +B5 )を2ビット符号拡張した19ビットデータを
出力する。そして更に、上記加算器15に代わる15ビ
ット加算器が、上記19ビットデータの上位15ビット
と、ブースエンコーダ2からの15ビットの第7部分積
B6とを加算し、その加算結果の最下位ビット側に上記
19ビットデータの下位4ビットを結合することによ
り、19ビットの加算データF1 を出力する。
【0127】:加算回路の3段目において、8ビット
の符号拡張器9に代えて6ビットの符号拡張器を設ける
と共に、23ビット加算器16に代えて19ビット加算
器を設ける。そして、上記符号拡張器9に代わる符号拡
張器が、上記21ビットの加算データF0 を6ビット符
号拡張した27ビットデータを出力する。そして更に、
上記加算器16に代わる19ビット加算器が、上記27
ビットデータの上位19ビットと、19ビットの上記加
算データF1 とを加算し、その加算結果の最下位ビット
側に上記27ビットデータの下位8ビットを結合するこ
とにより、被乗数Xと乗数Yとの積を表す27(=2×
14−1)ビットのデータを出力する。
【0128】上記〜のように変更すれば、2の補数
表示形式の14ビット×14ビットの乗算器が得られ
る。そして、加算回路の1段目において、3つの加算器
の加算ビット数を15ビットに統一することができ、チ
ップレイアウト性を向上させることができる。尚、上記
〜のような変更は、第3及び第4実施形態の符号付
き/無し乗算器M3,M4に対しても同様に行うことが
できる。
【0129】一方、上記第3及び第4実施形態の符号付
き/無し乗算器M3,M4では、切替信号がロウレベル
の場合に符号付き乗算を行い、切替信号がハイレベルの
場合に符号無し乗算を行うようにしたが、切替信号のレ
ベルは逆にしても良い。また、切替信号として、複数ビ
ットの信号を用いても良い。
【図面の簡単な説明】
【図1】 2の補数表示形式の16ビット×16ビット
の乗算を行う第1実施形態のツリー型乗算器の構成を表
すブロック図である。
【図2】 図1のツリー型乗算器の乗算動作を表す説明
図である。
【図3】 2の補数表示形式の8ビット×8ビットの乗
算を行う第2実施形態のツリー型乗算器の構成を表すブ
ロック図である。
【図4】 図3のツリー型乗算器の乗算動作を説明する
説明図である。
【図5】 16ビット×16ビットの符号付き乗算と符
号無し乗算とを行う第3実施形態の符号付き/無し乗算
器の構成を表すブロック図である。
【図6】 図5の符号付き/無し乗算器が符号付き乗算
を行う場合の動作を表す説明図である。
【図7】 図5の符号付き/無し乗算器が符号無し乗算
を行う場合の動作を表す説明図である。
【図8】 8ビット×8ビットの符号付き乗算と符号無
し乗算とを行う第4実施形態の符号付き/無し乗算器の
構成を表すブロック図である。
【図9】 図8の符号付き/無し乗算器の乗算動作を説
明する説明図である。
【図10】 2次のブースのアルゴリズムを説明する真
理値表である。
【図11】 2次のブースのアルゴリズムを用いて2の
補数表示形式の8ビット×8ビットの乗算を行う従来の
ツリー型乗算器を表すブロック図である。
【図12】 図11の乗算器の乗算動作を表す模式図で
ある。
【図13】 2次のブースのアルゴリズムを用いて2の
補数表示形式の16ビット×16ビットの乗算を行う従
来のツリー型乗算器を表すブロック図である。
【図14】 第2発明の前提となる、8ビット×8ビッ
トの符号付き乗算と符号無し乗算とを行う符号付き/無
し乗算器を表すブロック図である。
【図15】 図14の乗算器の乗算動作を表す模式図で
ある。
【図16】 第2発明の前提となる、16ビット×16
ビットの符号付き乗算と符号無し乗算とを行う符号付き
/無し乗算器を表すブロック図である。
【符号の説明】
M1,M2…2の補数表示形式の乗算を行うツリー型乗
算器 M3,M4…符号付き/無し乗算器(符号付き乗算と符
号無し乗算とを択一的に行うツリー型乗算器) 2,22,32,52・・・ブースエンコーダ 1,21…符号拡張器(1ビット拡張手段) 31,51…符号拡張器(2ビット拡張手段) 3〜9,23〜25,33〜39,53〜55…符号拡
張器(符号拡張手段) 10〜16,26〜28,40〜47,56〜59…加
算器
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平8−305550(JP,A) 特開 平5−108308(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 7/52 310

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 ビット数がn(但し、nは偶数)である
    2の補数表示形式の被乗数データと乗数データとを入力
    して乗算を行う乗算器であって、 前記被乗数データを1ビット符号拡張したn+1ビット
    のデータを出力する1ビット拡張手段と、 該1ビット拡張手段から出力されるn+1ビットのデー
    タと前記乗数データとから、2次のブースのアルゴリズ
    ムに基づきn+1ビットの部分積データをn/2個生成
    する部分積生成手段と、 ツリー状に配置された複数の加算器を有し、前記部分積
    生成手段にて生成されたn/2個の部分積データを前記
    複数の加算器により加算して、該加算器のうちの最終段
    の加算器から前記被乗数データと前記乗数データとの積
    を表す2n−1ビットのデータを出力する加算手段とを
    備え、 更に、前記加算手段には、前記各加算器に夫々入力され
    る2個1組のデータのうち、前記乗数データの下位ビッ
    トに対応する方のデータを夫々符号拡張する複数の符号
    拡張手段が設けられていること、 を特徴とする乗算器。
  2. 【請求項2】 請求項1に記載の乗算器において、 前記被乗数データと前記乗数データとのビット数nは、
    2のN乗(但し、Nは3以上の整数)であり、 前記加算手段の1段目には、前記n/2個の部分積デー
    タを前記乗数データの下位ビットに対応するものから順
    に夫々2個1組とした部分積データ組毎に対応して、2
    N-2 個の加算器が配置されていると共に、その2N-2
    の加算器に夫々対応する前記各符号拡張手段は、前記部
    分積データ組を成すデータのうち、前記乗数データの下
    位ビットに対応する方の部分積データを2ビット符号拡
    張してn+3ビットの加算対象データを出力するように
    構成されており、 更に、前記2N-2 個の各加算器は、前記n+3ビットの
    加算対象データの上位n+1ビットと、前記部分積デー
    タ組を成すデータのうちで前記乗数データの上位ビット
    に対応する方の部分積データとを加算し、その加算結果
    の最下位ビット側に前記n+3ビットの加算対象データ
    の下位2ビットを結合することにより、n+3ビットの
    加算データを出力するように構成されており、 前記加算手段の2段目以降のK段目には、前記加算手段
    のK−1段目の各加算器から出力される加算データを前
    記乗数データの下位ビットに対応するものから順に夫々
    2個1組とした加算データ組毎に対応して、2N-K-1
    の加算器が配置されていると共に、その2N-K-1 個の加
    算器に夫々対応する前記各符号拡張手段は、前記加算デ
    ータ組を成すデータのうち、前記乗数データの下位ビッ
    トに対応する方の加算データを2K ビット符号拡張して
    Pビット(但し、Pは下記の式1により表される数であ
    る)の加算対象データを出力するように構成されてお
    り、 【数1】 更に、前記2N-K-1 個の各加算器は、前記Pビットの加
    算対象データの上位P−2K ビットと、前記加算データ
    組を成すデータのうちで前記乗数データの上位ビットに
    対応する方の加算データとを加算し、その加算結果の最
    下位ビット側に前記Pビットの加算対象データの下位2
    K ビットを結合して、Pビットの加算データを出力する
    ように構成されていること、 を特徴とする乗算器。
  3. 【請求項3】 ビット数がn(但し、nは偶数)である
    被乗数データと乗数データとを入力して、符号付き乗算
    と符号無し乗算とを切替信号に応じて択一的に行う乗算
    器であって、 前記切替信号が符号付き乗算の実行を示す場合に、前記
    被乗数データをその最上位ビットで2ビット符号拡張し
    たn+2ビットのデータを出力し、前記切替信号が符号
    無し乗算の実行を示す場合に、前記被乗数データの最上
    位ビット側を2ビット0拡張したn+2ビットのデータ
    を出力する2ビット拡張手段と、 該2ビット拡張手段から出力されるn+2ビットのデー
    タと前記乗数データとから、2次のブースのアルゴリズ
    ムに基づきn+2ビットの部分積データをn/2個生成
    する部分積生成手段と、 ツリー状に配置された複数の加算器を有し、前記部分積
    生成手段にて生成されたn/2個の部分積データを前記
    複数の加算器により加算して、該加算器のうちの最終段
    の加算器から2nビットのデータを出力する加算手段
    と、 前記切替信号が符号無し乗算の実行を示し、且つ、前記
    乗数データの最上位ビットが1である場合に、前記加算
    手段の最終段の加算器から出力される2nビットのデー
    タの上位nビットと前記被乗数データとを加算して、そ
    の加算結果の最下位ビット側に前記2nビットのデータ
    の下位nビットを結合することにより、前記被乗数デー
    タと前記乗数データとの積を表す2nビットのデータを
    出力し、それ以外の場合には、前記加算手段の最終段の
    加算器から出力される2nビットのデータを、前記被乗
    数データと前記乗数データとの積を表すデータとして出
    力する乗算結果出力手段とを備え、 更に、前記加算手段には、前記各加算器に夫々入力され
    る2個1組のデータのうち、前記乗数データの下位ビッ
    トに対応する方のデータを夫々符号拡張する複数の符号
    拡張手段が設けられていること、 を特徴とする乗算器。
  4. 【請求項4】 請求項3に記載の乗算器において、 前記被乗数データと前記乗数データとのビット数nは、
    2のN乗(但し、Nは3以上の整数)であり、 前記加算手段の1段目には、前記n/2個の部分積デー
    タを前記乗数データの下位ビットに対応するものから順
    に夫々2個1組とした部分積データ組毎に対応して、2
    N-2 個の加算器が配置されていると共に、その2N-2
    の加算器に夫々対応する前記各符号拡張手段は、前記部
    分積データ組を成すデータのうち、前記乗数データの下
    位ビットに対応する方の部分積データを2ビット符号拡
    張してn+4ビットの加算対象データを出力するように
    構成されており、 更に、前記2N-2 個の各加算器は、前記n+4ビットの
    加算対象データの上位n+2ビットと、前記部分積デー
    タ組を成すデータのうちで前記乗数データの上位ビット
    に対応する方の部分積データとを加算し、その加算結果
    の最下位ビット側に前記n+4ビットの加算対象データ
    の下位2ビットを結合することにより、n+4ビットの
    加算データを出力するように構成されており、 前記加算手段の2段目以降のK段目には、前記加算手段
    のK−1段目の各加算器から出力される加算データを前
    記乗数データの下位ビットに対応するものから順に夫々
    2個1組とした加算データ組毎に対応して、2N-K-1
    の加算器が配置されていると共に、その2N-K-1 個の加
    算器に夫々対応する前記各符号拡張手段は、前記加算デ
    ータ組を成すデータのうち、前記乗数データの下位ビッ
    トに対応する方の加算データを2K ビット符号拡張して
    Qビット(但し、Qは下記の式2により表される数であ
    る)の加算対象データを出力するように構成されてお
    り、 【数2】 更に、前記2N-K-1 個の各加算器は、前記Qビットの加
    算対象データの上位Q−2K ビットと、前記加算データ
    組を成すデータのうちで前記乗数データの上位ビットに
    対応する方の加算データとを加算し、その加算結果の最
    下位ビット側に前記Qビットの加算対象データの下位2
    K ビットを結合して、Qビットの加算データを出力する
    ように構成されていること、 を特徴とする乗算器。
JP04079098A 1998-02-23 1998-02-23 乗算器 Expired - Fee Related JP3417286B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP04079098A JP3417286B2 (ja) 1998-02-23 1998-02-23 乗算器
US09/253,741 US6272513B1 (en) 1998-02-23 1999-02-22 Multiplying device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04079098A JP3417286B2 (ja) 1998-02-23 1998-02-23 乗算器

Publications (2)

Publication Number Publication Date
JPH11237973A JPH11237973A (ja) 1999-08-31
JP3417286B2 true JP3417286B2 (ja) 2003-06-16

Family

ID=12590427

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04079098A Expired - Fee Related JP3417286B2 (ja) 1998-02-23 1998-02-23 乗算器

Country Status (2)

Country Link
US (1) US6272513B1 (ja)
JP (1) JP3417286B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042359B2 (en) 2019-03-08 2021-06-22 Kabushiki Kaisha Toshiba Semiconductor device including an adder

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973471B2 (en) * 2002-02-22 2005-12-06 Freescale Semiconductor, Inc. Method and apparatus for implementing signed multiplication of operands having differing bit widths without sign extension of the multiplicand
TWI258694B (en) * 2004-04-02 2006-07-21 Ali Corp Method and system for sign extension of multiplier
US20090228538A1 (en) * 2005-11-07 2009-09-10 Kouichi Nagano Multi input coding adder, digital filter, signal processing device, synthesizer device, synthesizing program, and synthesizing program recording medium
EA033823B1 (ru) * 2018-02-06 2019-11-29 Belarusian State Univ Bsu Устройство для умножения по модулю восемь

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4229800A (en) 1978-12-06 1980-10-21 American Microsystems, Inc. Round off correction logic for modified Booth's algorithm
US5038315A (en) * 1989-05-15 1991-08-06 At&T Bell Laboratories Multiplier circuit
JPH03271931A (ja) 1990-03-20 1991-12-03 Fujitsu Ltd 多入力加算回路
JPH04123129A (ja) 1990-09-13 1992-04-23 Fujitsu Ltd 乗算器
JPH0580980A (ja) 1991-09-20 1993-04-02 Fujitsu Ltd 乗算器
JP2859779B2 (ja) * 1992-06-17 1999-02-24 三菱電機株式会社 乗算器
JP3106767B2 (ja) 1993-03-31 2000-11-06 松下電器産業株式会社 乗算方法及び乗算回路
JP3474663B2 (ja) * 1995-02-24 2003-12-08 三菱電機株式会社 乗算回路
JP3558436B2 (ja) 1995-12-27 2004-08-25 松下電器産業株式会社 乗算装置及び積和演算装置
JP3526135B2 (ja) 1996-05-24 2004-05-10 株式会社ルネサステクノロジ ディジタル信号処理装置
US6183122B1 (en) * 1997-09-04 2001-02-06 Cirrus Logic, Inc. Multiplier sign extension
US6144980A (en) * 1998-01-28 2000-11-07 Advanced Micro Devices, Inc. Method and apparatus for performing multiple types of multiplication including signed and unsigned multiplication

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042359B2 (en) 2019-03-08 2021-06-22 Kabushiki Kaisha Toshiba Semiconductor device including an adder

Also Published As

Publication number Publication date
JPH11237973A (ja) 1999-08-31
US6272513B1 (en) 2001-08-07

Similar Documents

Publication Publication Date Title
KR20110010771A (ko) 프로그램가능한 프로세서 상에서의 임의의 갈루아 필드 산술연산의 구현
WO2007094223A1 (ja) 乗算器、デジタルフィルタ、信号処理装置、合成装置、合成プログラム、および合成プログラム記録媒体
JP3238128B2 (ja) リードソロモン符号化装置および方法
JP3276444B2 (ja) 除算回路
JP6350111B2 (ja) 乗算回路及びその乗算方法
JP3417286B2 (ja) 乗算器
JPH11296347A (ja) ガロワ体乗算器及びガロワ体乗算の方法
US6298368B1 (en) Method and apparatus for efficient calculation of an approximate square of a fixed-precision number
JP3190826B2 (ja) 積和演算装置
JP4595055B2 (ja) ガロア体のα乗算回路および演算回路
JP3855491B2 (ja) 乗算器
JP4057876B2 (ja) ガロア体掛け算器の制御方法
JP3071607B2 (ja) 乗算回路
JP3106767B2 (ja) 乗算方法及び乗算回路
JP4042215B2 (ja) 演算処理装置およびその方法
JP3610564B2 (ja) 情報処理装置
JP3612950B2 (ja) 演算装置およびその方法
JP4313555B2 (ja) ガロア体掛け算器及び通信装置
JP2699624B2 (ja) 乗算器
JPH05108308A (ja) 乗算回路
JPH1115640A (ja) 乗算回路
JPH10149277A (ja) 乗算装置
JP3230349B2 (ja) 10進乗算器
CN116166219A (zh) 一种可配置模乘法器
CN114895867A (zh) 一种关于“以7为除数的运算”的计算机快捷程序

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090411

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100411

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100411

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110411

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120411

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120411

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130411

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130411

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140411

Year of fee payment: 11

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees