JP2000187584A - 演算回路 - Google Patents

演算回路

Info

Publication number
JP2000187584A
JP2000187584A JP11075604A JP7560499A JP2000187584A JP 2000187584 A JP2000187584 A JP 2000187584A JP 11075604 A JP11075604 A JP 11075604A JP 7560499 A JP7560499 A JP 7560499A JP 2000187584 A JP2000187584 A JP 2000187584A
Authority
JP
Japan
Prior art keywords
bit
circuit
complement
arithmetic circuit
multiplier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP11075604A
Other languages
English (en)
Inventor
Takeshi Nakahara
健 中原
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP11075604A priority Critical patent/JP2000187584A/ja
Publication of JP2000187584A publication Critical patent/JP2000187584A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】乗数Y(y5 〜y0 )を3ビットずつ入力しデ
コードするブースのデコーダ部5A、5Aからのデコー
ド出力bd1,bd2,bdnに応じた被乗数X(x5
〜x0 )との部分積を作る部分積生成部6A等からな
り、2次のブースのアルゴリズムを用い2の補数表示数
相互の乗算を行う演算回路上で、2の補数表示数→符号
なし2進数、又は符号なし2進数→2の補数表示数等の
変換回路を使わずに、2の補数表示数相互及び符号なし
2進数相互の乗算を実現する。 【解決手段】被乗数Xと乗数Yの最上位ビットx5 とy
5 に拡張用の符号ビットx6 とy6 を付加した2の補数
表示数相互の乗算を行うように乗算回路を構成し、符号
回路81,2 を介し、符号なし2進数相互の乗算時(演
算モード選択入力m=0)には拡張用符号ビットx6
6 を“0”に、2の補数表示数相互の乗算時(m=
1)には拡張用符号ビットx6 =x5 、y6 =y5 に設
定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、情報関連電子製
品およびディジタル信号処理技術に、半導体集積回路な
どの形で使用される乗算回路、積和演算回路などの演算
回路に関する。なお、以下各図において同一の符号は同
一もしくは相当部分を示す。
【0002】
【従来の技術】乗算、積和演算などの演算回路を実現す
る方法の1つとして、全加算器セル(Full Add
er)を2次元的に配列してなる、いわゆる全加算器セ
ル配列の構成法がよく利用されている。
【0003】図4はこのような全加算器セル配列を用い
た従来の4ビット×4ビットの乗算演算回路の説明図
で、同図(A)は全加算器セルFAのシンボルと機能を
示す。即ち、全加算器セルFAはξとηを1ビットの入
力、Cinを前段からのキャリー、Sout を加算結果ビッ
ト、Cout を次段へのキャリーとするとき、次式(A
1),(A2)の演算を行う。
【0004】
【数2】 Sout =ξ [+] η [+] Cin (A1) Cout =ξη+ξCin+ηCin (A2) 但し、上式内の [+] の符号は排他的論理和(Exclusiv
e-OR)の演算を表すものとする。
【0005】また、図4(B)は乗算演算回路の構成例
を示す。ここでは被乗数A、乗数B、積Pの桁別のビッ
トがそれぞれ次のように構成されているものとする。
【0006】
【数3】 A=(a3,a2,a1,a0) B=(b3,b2,b1,b0) P=(p7,p6,p5,p4,p3,p2,p1,p0) 但し(a3・・・a0)と(b3・・・b0)及び(p7・・・
p0)はそれぞれ4ビットの数AとB及び8ビットの数P
の最上位ビットから最下位ビットまでの各桁のビット値
をその桁順に示す。
【0007】図4の乗算演算回路は、入力された被乗数
Aの桁別ビットデータa3〜a0と乗数Bの桁別ビットデー
タb3〜b0との組合わせでできる各部分積項ai
j (i,j=0,1,2,3)を求める16個のAND
ゲート素子からなるANDゲート演算部1と、このAN
Dゲート演算部1からの前記の各部分積を入力して最終
出力データ(P)の桁別に加算する12個の全加算器セ
ルFAの2次元配列回路としての全加算器セル配列演算
部2とによって構成されている。
【0008】そしてこのセル配列演算部2内の6つの全
加算器セルFAの配列の出力として、積Pのビットp7
p1が得られ、またANDゲート演算部1の出力の1つと
して直接、積Pの最下位ビットp0が得られる。積和演算
もこのようなセル配列を拡張して実現することができ
る。
【0009】ところで、2 の補数表示数(つまり、最上
位ビットを符号ビット、以下のビットを数値ビットと
し、負数の場合、この数値ビットが2の補数を表すよう
にした2進数)である被乗数と乗数の乗算を高速に行う
ためのアルゴリズムとして、2次のブース(Boot
h)のアルゴリズムが知られている(下記論文参照)。
【0010】LOUIS P. RUBINFIELD: A Proof of the Mo
dified Booth's Algorithmfor Multiplication, IEEE T
RANSACTIONS ON COMPUTERS, OCTOBER 1975 乗算回路では、一般に入力である被乗数と乗数との複数
の部分積を生成してから、これらの部分積を加算するこ
とにより積を算出するが、2次のブースのアルゴリズム
を利用すれば、 乗数をその桁順に3ビットずつコード化
することにより部分積の数を減らすことができるので、
桁数の大きな乗数を扱う乗算回路を簡単化することがで
きる。
【0011】ここで、2次のブースのアルゴリズムの要
部を説明する。以下の説明では被乗数Xと乗数Yを、そ
れぞれ6ビット(x5 ・・・x0 )と(y5 ・・・
0 )からなる、2の補数表現の入力データとする。な
お、7ビット以上の場合も容易に拡張できる。
【0012】まず、被乗数Xと乗数Yの実の値は符号ビ
ットに依存して次式(B1),(B2)のように表すこ
とができる。但し、x5, y5は符号ビット、 xi , y
i (i=0,1,2,3,4)は数値ビットである。2
次のブースのアルゴリズムでは、さらに式(B2)の乗
数Yを式(B3)のように書き換える。
【0013】
【数4】 この式(B3)の括弧内の部分を次式(B4)のように
置き換えると、式(B1)と式(B4)によって乗算結
果Pは次式(B5)のように表せる。
【0014】
【数5】 図14は、2次のブースのアルゴリズムを利用した従来
の最も基本的な乗算回路の構成例を示す概略図、図17
はこの乗算回路の詳細図である。なお、被乗数Xと乗数
Yは共に6ビットの入力データで、2の補数表示数であ
る。図14,図17に示すように、この乗算回路は2次
のブースのデコーダ部5と、部分積生成部6と、加算部
7から構成されている。
【0015】ここで、2次のブースのデコーダ部5は、
上記した(j+1)段目(但しj=0,1,2)ごと
に、乗数Yのビット列中の連続に並ぶ3つずつのビット
y2j-1,y2j ,y2j+1 からなる情報Yj 〔式(B4)参
照〕を入力してデコードする計3段分(3つ)のデコー
ダセルZDからなる。
【0016】部分積生成部6は、(j+1)=1,2,
3段の各段ごとのデコーダセルZDに対応する部分積生
成回路61 ,62 ,63 (一般化して6j+1 とも記す)
からなり、さらに、各段毎の部分積生成回路61 〜63
は、被乗数Xの各ビットに対応するように横一列に並ん
だ7つの部分積生成・加算セルZMからなる。
【0017】そして、各部分積生成回路6j+1 は、それ
ぞれ対応するデコーダセルZDのデコード出力bd1 ,
bd2 ,bdn を入力し、内蔵する部分積生成・加算セ
ルZM(の後述のセレクタSL)を介して部分積Pj
生成する。
【0018】なお、各部分積生成回路61 ,62 ,63
は順次、部分積生成・加算セルZMの2つ分ずつ横にズ
レて対向する形で並置されている。このセルZMの2つ
分のズレは被乗数Xの2ビット分の変移に相当し、当該
の部分積生成回路6j+1 (内のセルZM毎のセレクタの
配列)が出力する(X×Yj )を意味するビット列に2
2j の重みを付し、結果として当該の部分積生成回路6
j+1 が部分積Pj =(X×Yj ・22j )を生成するよう
にしている。
【0019】また、加算部7は、最終段の(つまり3段
目の)部分積生成回路63 の出力側に位置すると共に、
積Pのビット数に対応する12個分、横一列に並ぶ全加
算器セルFAからなる。そして、この各全加算器セルF
Aは配列の順に、加算結果ビットSout として積Pの各
ビットp11・・・p0 を出力する。
【0020】図15はデコーダセルZDの一般的な入出
力信号を示し、図16は部分積生成回路61 ,62 ,6
3 内の部分積生成・加算セルZMの一般的な構成を示
す。この部分積生成・加算セルZMは、セレクタSL
と、前述した全加算器セルFAと同構成の全加算器回路
FA’とからなり、次に述べるように部分積の生成と加
算の一部を行う。
【0021】表1は、2次のブースのデコーダセルZD
に入力される乗数Yの情報Yj の種類と、この情報Yj
に応じたデコーダセルZDのデコード出力bd1 ,bd
2 ,bdn 、並びにこのデコード出力を入力とする部分
積生成・加算セルZM内のセレクタSLの演算内容を示
す。なお、セレクタSLは、このデコード出力と、自身
に対応する被乗数Xのビットxi 及びその下位ビットx
i-1 とを入力して、表1に示される演算を行う。
【0022】
【表1】 即ち、デコーダセルZDは、乗数Yの各ビット値y0
5 の中、当該の(j+1)段目に関わる入力情報Yj
を定める3つのビット値y2j-1 ,y2j ,y2j+1を入力と
し、表1の真理値に基づくデコード処理によって、対応
する部分積生成回路6j+1 に対して、部分積Pj におけ
るX×Yj の作成に必要な3 つの制御信号(デコード出
力)bd1 ,bd2 ,bdn を出力する。
【0023】なお一般的には、乗数Yのビット数や、デ
コーダセルZDへの情報Yj の入力の仕方によって、乗
数の最下位ビットあるいは最上位ビット(ここでは、そ
れぞれy0 ,y5 とする)を含む入力情報Yj には、本
来の乗数Yとしては存在しないが、最下位ビットの下位
側あるいは最上位ビットの上位側に位すべき不足ビッ
ト、例えばy-1,y-2あるいはy6 ,y7 等が必要とな
る場合がある。
【0024】このような場合、2次のブースのアルゴリ
ズムでは、最下位ビットの下位側の不足ビットの値は
“0”とし、最上位ビットの上位側の不足ビットの値は
最上位ビットの値に等しくすることが原則である。
【0025】ところで、セレクタSLは制御信号(デコ
ード出力)bd1 ,bd2 ,bdnを入力して演算+
X,+2X,+0,−X,−2Xのいずれかを選択す
る。ここで、bd1 =1で演算X、bd2 =1で演算2
Xをそれぞれ選択し、さらにbdn =0で選択したXと
2Xを正、bdn =1で選択したXと2Xを負にするこ
とをそれぞれ選択する。
【0026】なお、当該の部分積生成回路6j+1 (内の
部分積生成・加算セルZM毎のセレクタSLの配列)は
全体として被乗数Xを入力とし、上記選択に応じて+
X,+2X,+0,−X,−2Xを演算出力することに
なる。
【0027】このとき、個別のセレクタSLは、デコー
ド出力bd1 ,bd2 ,bdn と同時に入力する、当該
のセレクタSLの横方向の配列位置に対応する被乗数X
のビット xi とその下位のビット xi-1 から、選択した
演算に該当する被乗数Xのビットをセレクタ出力SLa
として出力し、この出力SLaを同じ部分積生成・加算
セルZM内の全加算器回路FA’へキャリー入力Cinと
して与える。
【0028】具体的には、セレクタSLはbd1 =bd
2 =bdn =0で+0をセレクトしてセレクタ出力SL
a=0とし、bd1 =1とbdn =0で+Xをセレクト
してセレクタ出力SLa= xi とし、bd2 =1とbd
n =0で+2Xをセレクトして(これは被乗数Xを上位
の左側へ1ビットシフトすることを意味する)、セレク
タ出力SLa= xi-1 とする。
【0029】また、bd1 =bdn =1で−Xをセレク
トして(これは被乗数Xを符号反転(論理否定)するこ
とを意味する)セレクタ出力SLa=〜 xi とし、bd
2 =bdn =1で−2Xをセレクトして(これは上位側
へ1ビットシフトした被乗数Xを符号反転することを意
味する)、セレクタ出力SLa=〜 xi-1 とする。但
し、〜の符号は論理否定を表すものとする。
【0030】全加算器回路FA’はセレクタの出力SL
aをキャリー入力Cinとし、設定された入力、または前
段の部分積生成回路からの出力の一部(一般にξ,ηと
する)との加算を行う。最終段の加算部7では、部分積
生成部6からの出力を加算し、乗算結果Pを出力する。
【0031】
【発明が解決しようとする課題】図4の全加算器セル配
列においては、入力データが符号なし2進数(つまり、
全桁を数値ビットとする正の2進数)の場合は有効であ
るが、2の補数表示数の入力データの演算を行うには、
この全加算器セル配列の前後にそれぞれ2の補数表示数
から符号なし2進数への変換、および符号なし2進数か
ら2の補数表示数への変換を行う変換回路を用意する必
要がある。
【0032】また、図4の全加算器セル配列を修正して
2の補数表示数の演算を行うようにすることもできる
が、その演算回路で符号なし2進数の入力データの演算
を行うには、全加算器セル配列の前後でそれぞれ、今度
は逆に、符号なし2進数から2の補数表示数への変換お
よび2の補数表示数から符号なし2進数への変換を行わ
なければならない。
【0033】従って、従来の全加算器セル配列において
は、2の補数表示数と符号なし2進数の入力データの乗
算演算を行うには、演算用の全加算器セル配列だけでは
なくこのセル配列の前後に新たな変換回路も用意しなけ
ればならないという間題がある。また、この変換回路の
追加によって回路規模が大きくなり、演算処理全体の遅
延時間が大きくなってしまうという問題もある。
【0034】同様に、2次のブースのアルゴリズムを利
用した乗算回路についても、従来の乗算回路は被乗数,
乗数が2の補数表示数の場合は有効であるが、入力デー
タが符号なし2進数の場合、同じ回路を直接利用するこ
とができず、乗算回路の他に符号なし2進数から2の補
数表示数への変換および2の補数表示数から符号なし2
進数への変換を行う変換回路を用意する必要がある。
【0035】また、符号なし2進数と2の補数表示数の
演算を共に行うシステムにおいても新たな変換回路が必
要となり、いずれも、変換回路の追加によって回路規模
が増大するという問題がある。
【0036】本発明の目的は、被乗数と乗数との複数の
部分積の生成回路と全加算器セル配列とからなる乗算回
路や積和演算回路、あるいは2次のブースのアルゴリズ
ムを利用した乗算回路や積和演算回路において、2の補
数表示数を符号なし2進数へ、または符号なし2進数を
2の補数表示数へ変換することなく、2の補数表示数相
互および符号なし2進数相互の、乗算演算または積和演
算を同一の演算回路上で行うことができる演算回路を提
供することである。
【0037】
【課題を解決するための手段】上記の課題を解決するた
めに、請求項1の演算回路は、2進入力データである2
つ(A,B、あるいはX,Yなど)の2の補数表示数の
相互または符号なし2進数の相互の乗算を行い、その結
果(Pなど)をそれぞれ2の補数表示数または符号なし
2進数の2進データとして出力する乗算演算回路であっ
て、2つの2進入力データが2の補数表示数か符号なし
2進数かを区別する1ビットの演算モード選択データ
(m)を2進入力データと共に入力し、2の補数表示数
を符号なし2進数へ又は符号なし2進数を2の補数表示
数へ変換する変換回路を用いることなく、2の補数表示
数相互または符号なし2進数相互の乗算演算を同一の演
算回路(論理ゲート演算部10および全加算器セル配列
演算部20、あるいは2次のブースの乗算回路などの)
上で行うようにする。
【0038】また請求項2の演算回路は、2進入力デー
タである第1と第2(AとBなど)の2の補数表示数の
相互または符号なし2進数の相互の乗算値へ、それぞれ
2進入力データである第3(Dなど)の2の補数表示数
または符号なし2進数を加算し、その結果(Pなど)を
それぞれ2の補数表示数または符号なし2進数の2進デ
ータとして出力する積和演算回路であって、第1,第
2,第3の2進入力データが2の補数表示数か符号なし
2進数かを区別する1ビットの演算モード選択データ
(m)を2進入力データと共に入力し、2の補数表示数
を符号なし2進数へ又は符号なし2進数を2の補数表示
数へ変換する変換回路を用いることなく、2の補数表示
数相互または符号なし2進数相互の積和演算を同一の演
算回路(論理ゲート演算部10および全加算器セル配列
演算部21などの)上で行うようにする。
【0039】また請求項3の演算回路は、請求項1また
は2に記載の演算回路において、演算処理の前段側に、
論理ゲート素子(ANDゲート素子、EORゲート素子
など)からなり、2進入力データである被乗数と乗数相
互の部分積の生成並びに前記演算モード選択データと被
乗数及び乗数との所定の論理演算を行う回路(ゲート部
G1〜G6を持つ論理ゲート演算部10)を備え、演算
処理の後段側に、全加算器セルを2次元的に配列してな
り、演算モード選択データを入力して、最終出力の最上
位ビットの値を符号なし2進数の演算の際は“0”と
し、2の補数表示数の演算の際は“1”とする機能を含
む回路(全加算器セル配列演算部20,21)を備えた
ものとする。
【0040】また請求項4の演算回路は、請求項3に記
載の演算回路において、前記演算モード選択データをm
とし、被乗数をnビットとしてその最上位ビットから最
下位ビットまでの各桁のビット値を桁順に an-1 , a
n-2 ,・・・ a0で表し、乗数をnビットとしてその最
上位ビットから最下位ビットまでの各桁のビット値を桁
順にbn-1 ,bn-2 ,・・・b0 で表すとき、最終出力
が式(1.12)の演算に相当するものとなるようにす
る。
【0041】また請求項5の演算回路は、請求項1また
は2に記載の演算回路において、少なくとも演算処理の
前段側に、2進入力データである乗数(Y)の最上位ビ
ットに拡張用の符号ビットを付加してなる2の補数表示
数のデータ(Y* )のビット列から、順次その全ビット
を、連続に並ぶ3ビットずつ、隣接して選択される3ビ
ットとは1ビットが重複するように選択してできた(ビ
ットy2j+1,y2j,y2j-1からなる)各3ビット群を、
それぞれ入力してデコードする複数の2次のブースのデ
コード手段(デコーダセルZD,ZD’)と、この2次
のブースのデコード手段ごとに設けられ、2進入力デー
タである被乗数(X)の最上位ビットに拡張用の符号ビ
ットを付加してなる2の補数表示数のデータ(X* )に
対し、当該のデコード手段のデコード出力(bd1,b
d2,bdn)によって定まる2次のブースの乗算アル
ゴリズムに基づく演算を(セレクタSLを介して)施す
部分積生成手段(段別の部分積生成回路61a〜64aな
ど)と、前記演算モード選択データによってそれぞれ乗
数と被乗数の前記拡張用の符号ビットの値を、符号なし
2進数の演算の際は“0”とし、2の補数表示数の演算
の際は当該拡張用符号ビットに対応する乗数または被乗
数の最上位ビットの値に等しくする符号ビット操作手段
(符号回路81,2 )とを備えたものとする。
【0042】また請求項6の演算回路は、請求項5に記
載の演算回路において、乗数に付加した拡張用の符号ビ
ットを入力とする2次のブースのデコード手段(デコー
ダセルZD’、以下最終段のデコード手段という)に対
応する部分積生成手段(以下最終段の部分積生成手段と
いう)を、その他の部分積生成手段と異なる簡略な形
(のセレクタSL2を用いた部分積生成回路64c)に構
成する。
【0043】また請求項7の演算回路は、請求項6に記
載の演算回路において、前記最終段のデコード手段及び
乗数側の符号ビット操作手段を省略もしくは無効化し、
このデコード手段のデコード出力に代えて乗数の最上位
ビット及び演算モード選択データを最終段の部分積生成
手段に与えるようにする。
【0044】また請求項8の演算回路は、請求項5に記
載の演算回路において、前記符号ビット操作手段を省略
もしくは無効化して乗数と被乗数の前記拡張用の符号ビ
ットを“0”に固定し、符号なし2進数の演算を行わせ
るようにする。
【0045】また請求項9の演算回路は、請求項8に記
載の演算回路において、乗数に付加した拡張用の符号ビ
ットを入力とする2次のブースのデコード手段(デコー
ダセルZD’、以下最終段のデコード手段という)に対
応する部分積生成手段(以下最終段の部分積生成手段と
いう)を、その他の部分積生成手段と異なる簡略な形
(のセレクタSL1を用いた部分積生成回路64b)に構
成する。
【0046】また請求項10の演算回路は、請求項9に
記載の演算回路において、前記最終段のデコード手段を
省略もしくは無効化し、このデコード手段のデコード出
力に代えて乗数の最上位ビットを最終段の部分積生成手
段に与えるようにする。また請求項11の演算回路は、
請求項1ないし10のいずれかに記載の演算回路におい
て、半導体集積回路上に構成したものとする。
【0047】本発明の作用は以下の通りである。乗数の
桁数が少ない場合、乗算演算回路の前段側に、論理ゲー
ト素子からなり2進入力データである被乗数と乗数相互
の部分積の生成、並びに演算モード選択データ(2の補
数表示数相互の演算か、符号なし2進数相互の演算かを
選択する1ビットの入力データ、演算モード選択入力
m)と被乗数及び乗数との所定の論理演算を行う回路を
置き、乗算演算回路の後段側に、全加算器セルの2次元
配列からなり、演算モード選択データを入力して、最終
出力の最上位ビットの値を符号なし2進数の演算の際は
“0”とし、2の補数表示数の演算の際は“1”とする
機能を含む回路を置くようにして、乗算演算回路を従来
と同様な手法で簡単に構成し、乗算処理中に演算モード
選択入力mを乗数,被乗数と共にこの演算回路の中で処
理するようにする(請求項3)。
【0048】なお、上記演算回路の最終出力は、前記演
算モード選択データをmとし、被乗数をnビットとして
その最上位ビットから最下位ビットまでの各桁のビット
値を桁順に an-1 , an-2 ,・・・ a0 で表し、乗数を
nビットとしてその最上位ビットから最下位ビットまで
の各桁のビット値を桁順にbn-1 ,bn-2 ,・・・b 0
で表すとき、式(1.12)の論理演算によって与えら
れるようにする(請求項4)。
【0049】また、乗数の桁数が多い場合、2次のブー
スのアルゴリズムを利用し、従来と同様な手法で構成し
た乗算回路上で、乗数と被乗数の最上位ビットに、それ
ぞれ演算モード選択入力mによってその値が操作される
拡張用の符号ビット付加した2の補数表示数の相互の乗
算を行うようにする(請求項5)。
【0050】このようにして、2の補数表示数から符号
なし2進数への変換、あるいは符号なし2進数から2の
補数表示数への変換を行う変換回路を用いずに、同一の
演算回路上で、2の補数表示数相互の乗算演算および符
号なし数相互の乗算演算を行うようにしたり(請求項
1)、2の補数表示数相互の積和演算および符号なし2
進数相互の積和演算を行うようにし(請求項2)、演算
回路の規模や遅延時間を小さくする。
【0051】なお、2次のブースのアルゴリズムを利用
した乗算回路の場合、乗数に付加した拡張用の符号ビッ
トを入力とする最終段の2次のブースのデコード手段に
対応する最終段の部分積生成手段を、その他の部分積生
成手段と異なる簡略な形に構成したり(請求項6)、こ
の乗算回路でさらに最終段の2次のブースのデコード手
段を省略もしくは無効化し、このデコード手段のデコー
ド出力に代えて乗数の最上位ビット及び演算モード選択
入力mを最終段の部分積生成手段に与えるようにしたり
する(請求項7)。
【0052】また別に、乗数と被乗数の前記拡張用の符
号ビットを“0”に固定して符号なし2進数の乗数と被
乗数との乗算を行わせるようにしたり(請求項8)、こ
の乗算回路でさらに最終段の部分積生成手段を、その他
の部分積生成手段と異なる簡略な形に構成したり(請求
項9)、またさらに最終段のデコード手段を省略もしく
は無効化し、このデコード手段のデコード出力に代えて
乗数の最上位ビットを最終段の部分積生成手段に与える
ようにしたりする(請求項10)。
【0053】
【発明の実施の形態】〔実施の形態I〕まず、被乗数と
乗数との部分積生成用の論理ゲート回路や全加算器セル
の2次元配列からなる通常の構成の乗算回路および積和
演算回路についての発明の実施の形態を説明する。
【0054】(実施例I−1)図1は請求項1,3,4
に関わる発明の一実施例としての4ビット×4ビットの
乗算演算回路の構成を示す。ここでも被乗数A、乗数
B、最終積Pの桁別のビットがそれぞれ次のように構成
されているものとする。
【0055】
【数6】 A=(a3,a2,a1,a0) B=(b3,b2,b1,b0) P=(p7,p6,p5,p4,p3,p2,p1,p0) また、入力mは演算モードを選択する入力である。m=
0なら、入力データA,Bを符号なし2進数とした演算
となり、m=1なら、入力データA,Bを2の補数表示
数とした演算となる。
【0056】なお、符号なし2進数とは、その全桁(こ
の例では4桁)を数値ビットとする正の2進数であり、
また2の補数表示数とは、最上位ビットを符号ビット
(但し、+を0,−を1で表す)、以下のビットを数値
ビットとし、この数値ビットにより、正の数はそのまま
の数を、負の数(例えば−Nとする)は2の補数(2n
−N、但しn=全桁数−1で、この例ではn=4−1=
3)を表すようにした2進数である。
【0057】最初に、入力データA,Bを2の補数表示
数とした場合を説明する。この場合、最上位ビットa3
b3はそれぞれ数AとBの符号になっており、被乗数Aと
乗数Bの実の値は符号ビットに依存して次式(1.
1),(1.2)のように表すことができる。従って、
積P=A・Bの値は次式(1.3)のようになる。
【0058】
【数7】 式(1.3)を実現する演算回路としては、この式
(1.3)の1番目の項は単純なAND論理演算回路で
実現できる。式(1.3)の2番目の項は符号ビットと
関係なく従来の全加算器セル配列の縮小配列で実現でき
る。式(1.3)の3番目の項と4番目の項の符号は負
で減算演算となるが、実際の回路構成においては、これ
らの減算演算を、以下に示すようにその2の補数をとっ
て加算することによって実現する。
【0059】まず、式(1.3)の3番目の項の減算表
現を次式(1.4)のような加算表現で置き換える。次
に同様に、式(1.3)の4番目の項を次式(1.5)
のように表現する。
【0060】
【数8】 従って、式(1.4)と式(1.5)を合わせると、式
(1.3)の3番目の項と4番目の項の減算演算表現と
等価な次式(1.6)が得られる。
【0061】
【数9】 この式(1.6)にさらに式(1.3)の1番目の項と
2番目の項を加算することによって、積P=A・Bの実
の値が次式(1.7)で与えられる。
【0062】
【数10】 ここで、−1・27の項は式(1.7)の演算結果が負の
値をとり得ることを示すもので、積Pの桁別ビット値が
演算回路から2の補数表示数の形で出力されるようにす
るには、この項を最上位の符号ビットに置き換えればよ
いことがわかる。但し、演算回路で加算時に発生する最
上位ビットからの桁上げを無視する。
【0063】従って、以下では演算回路からの積Pに相
当する出力が2の補数表示数となるように−1・27の表
記を1・27に置き換え、式(1.7)を次式(1.8)
に置き換える。
【0064】
【数11】 図2は式(1.8)を利用した演算例を示す。同図にお
いて、入力の被乗数Aと乗数Bとはそれぞれ4ビットの
2の補数表現の2進数で、出力の積Pは8ビットの2の
補数表現の2進数である。
【0065】同図(a)では、A=5=(0101)2
とB=6=(0110)2 との乗算演算で、P=30=
(00011110)2 の結果が得られることを示す。
なお図2に再掲した式(8)のからの符号に対応す
る各項の演算値が、図(a)内のからの符号で示し
た数にそれぞれ対応している。
【0066】また同図(b)では、A=−5=(101
1)2 とB=6=(0110)2 との乗算演算で、P=
−30=(11100010)2 の結果が得られること
を示し、同様に同図(c)では、A=−5=(101
1)2 とB=−6=(1010)2 との乗算演算で、P
=30=(00011110)2 の結果が得られること
を示す。
【0067】次に、入力データを符号なし2進数とす
る。この場合、AとBの値は常に正である。ここでも上
記した2の補数表示数の場合と同じ演算手順を利用して
積Pを求める。これにより、積Pの値は次式(1.9)
のようになる。
【0068】
【数12】 ここで、式(1.9)を式(1.8)に合わせて書き直
すと、次式(1.10)が得られ、さらに式(1.8)
と式(1.10)に1ビットの演算モード選択入力mを
導入することによって、これら2つの式を次に示すよう
な1つの式(1.11)で表すことができる。
【0069】
【数13】 この式(1.11)を利用すれば、2の補数表示数およ
び符号なし2進数の乗算演算を同一の演算回路で実現す
ることが可能である。
【0070】図1は、上記手法によって構成された4ビ
ット×4ビットの乗算回路の実施例である。この乗算回
路は次に述べる論理ゲート演算部10と、この論理ゲー
ト演算部10内の各ANDゲート部G1〜G4からの出
力を、最終の演算出力データ(P)の桁別に加算する1
5個の全加算器セルFAの2次元配列回路としての全加
算器セル配列演算部20とから構成されている。
【0071】論理ゲート演算部10は、入力2進データ
としての被乗数Aと乗数Bのそれぞれの桁別入力ビット
の組合わせでできる部分積項 ai bj (i,j=0,
1,2)およびa3b3をそれぞれ生成する10個のAND
ゲート素子からなるANDゲート部G1と、演算モード
選択入力mを用いて部分積項mt(t∈{a3,〜a3
b3,〜b3})をそれぞれ生成する4個のANDゲート素
子からなるANDゲート部G2(但し〜の符号は論理否
定を表す)と、 ri =m [+] ai (i=0,1,2)
の排他的論理和演算をそれぞれ行う3個のEORゲート
素子からなるEORゲート部G5と、同じく qi =m
[+] bi (i=0,1,2)の排他的論理和演算をそ
れぞれ行う3個のEORゲート素子からなるEORゲー
ト部G6と、EORゲート部G5の出力 ri を入力し部
分積項 ri b3(i=0,1,2)をそれぞれ生成する3
個のANDゲート素子からなるANDゲート部G3と、
同じくEORゲート部G6の出力 qi を入力し部分積項
a3 qi (i=0,1,2)をそれぞれ生成する3個のA
NDゲート素子からなるANDゲート部G4とによって
構成されている。
【0072】図1では、演算モード選択入力m=0な
ら、2つの入力データAとBを符号なし2進数として符
号なし2進数の乗算演算を行う。この場合、最終の乗算
出力Pは8ビットの符号なし2進数となる。一方、演算
モード選択入力m=1なら、2つの入力データAとBを
2の補数表示数として2の補数の乗算演算を行ない、最
終乗算出力Pも2の補数表示数となる。以上の実施例か
ら任意のnビットの乗算への拡張も容易である。式
(1.12)はnビット×nビットの乗算演算の一般式
を示す。
【0073】
【数14】 (実施例I−2)図3は、請求項2,3,4に関わる発
明の一実施例としての4ビット×4ビット+8ビットの
積和演算を行う演算回路の構成を示す。ここで、被乗数
A、乗数B、加算のための入力データD、積和演算の結
果Pの桁別のビットがそれぞれ次のように構成されてい
るものとする。
【0074】
【数15】 A=(a3,a2,a1,a0) B=(b3,b2,b1,b0) D=(d7,d6,d5,d4,d3,d2,d1,d0) P=(p7,p6,p5,p4,p3,p2,p1,p0) また、図1と同様に、mは演算モードを選択する入力で
あり、m=0なら符号なし2進数演算、m=1なら2の
補数表示数の演算を行う。
【0075】図3の演算回路は、図1と同様な論理ゲー
ト演算部10と、図1の全加算器セル配列演算部20に
入力データDを加算するための8個の全加算器セルFA
を加えた計23個の全加算器セルFAからなる全加算器
セル配列演算部21によって構成されている。
【0076】図3の全加算器セル配列は図1の拡張によ
って容易に得られる。図3の演算回路を利用することに
より、同一の演算回路上で2の補数表示数同士および符
号なし2進数同士の積和演算を実現することができる。
また、この方式では任意のnビットの積和演算への拡張
も容易である。 〔実施の形態II〕次に2次のブースのアルゴリスムを利
用した乗算回路についての発明の実施の形態を説明す
る。
【0077】(実施例II−1)発明の進展順に従い、先
ず、直接的には請求項8に関わる発明の実施例として、
2の補数表示数の乗算を行う従来の演算回路と同様な手
法で構成しながら、符号なし2進数と2の補数表示数の
相互間の変換回路を用いることなく、符号なし2進数の
乗算演算を行う演算回路を説明する。
【0078】図5はこの発明の一実施例としての符号な
し2進数の乗算回路の構成を示す。ここで、被乗数Xと
乗数Yをそれぞれ6ビット、積Pを12ビットとし、そ
のビット構成が次式(2.1)で表されるものとする。
【0079】
【数16】 X=(x5 ,x4 ,x3 ,x2 ,x1 ,x0 ) Y=(y5 ,y4 ,y3 ,y2 ,y1 ,y0 ) P=(p11,p10,・・・,p0 ) (2.1) この実施例は、従来の図14の乗算回路での、正の2の
補数表示数同士の乗算の際(このとき、最上位の符号ビ
ットx5 とy5 は0である)における、出力(積)Pの
値は、符号ビットを除く残りの5ビット(x4 〜x0
からなる被乗数Xと、同じく5ビット(y4 〜y0 )か
らなる乗数Yの符号なし2進数同士の乗算の積に等しい
ことに着目し、図5では7ビットの2の補数表示数同士
の乗算を行う回路を作り、この7ビットの2の補数表示
数の最上位ビットx6 とy6 を0として、残りの6ビッ
トの数同士の乗算を行わせるようにしたものである。
【0080】そこでまず、6 ビットの入力データXとY
に対してそれぞれ最上位ビットに1ビットの“0 ”を追
加して、次式(2.2)のような7ビットのデータX*
とY * を作成する。
【0081】
【数17】 X* =(0,x5 ,x4 ,x3 ,x2 ,x1 ,x0 ) Y* =(0,y5 ,y4 ,y3 ,y2 ,y1 ,y0 ) (2.2) X* とY* は正の2の補数表示数となる。この場合、X
* とY* の最上位ビットが共に“0”であるため、X*
=XかつY* =Yとなり、次式(2.3)の関係が成り
立つ。
【0082】
【数18】 X×Y=X* ×Y* (2.3) 従って、従来と同様な手法で構成された7ビットの2の
補数表示数X* ,Y*同士の乗算を行う演算回路を利用
して、6ビットの符号なし2 進数X,Y同士の乗算演算
を実現することができる。
【0083】図5は、被乗数Xに代わり、7ビットの数
* を被乗数側の入力とする4段の部分積生成回路61a
〜64aからなる部分積生成部6Aと、この4つの部分積
生成回路にそれぞれ対応する4つのデコーダセルを持っ
て乗数Yに代わる7ビットの数Y* を入力する2次のブ
ースのデコーダ部5Aと、部分積生成回路61a〜64aの
出力データを入力して積Pを出力する加算部7から構成
されている。
【0084】ここで、部分積生成回路61a〜64aは、図
17で述べた従来の部分積生成回路61 〜63 と類似な
構成を持つが、図5の場合、被乗数Xの最上位ビットx
5 の上位にビットx6 に相当する“0”のビットが追加
されているため、新たな部分積生成回路61a〜64aは、
それぞれ部分積生成・加算セルZMが1つ追加されて、
8つ横に並ぶセルZMによって構成されている。
【0085】また、2次のブースのデコーダ部5Aを構
成する4つのデコーダセルは図17のデコーダセルZD
と同じ構成のものであるが、図5では便宜上、4段目の
デコーダセルの符号をZD’としている。なお、図5の
加算部7は、図17の加算部7と同じ構成のものであ
る。
【0086】表2は、データY* の最上位ビットy6
入力する4段目のブースのデコーダセルZD’について
の入力情報Yj=3 の種類と、これに対応するデコード出
力bd1 ,bd2 ,bdn 、及びこのデコード出力を入
力とする4段目の部分積生成回路64a内のセレクタSL
の演算内容を示す。但し、デコーダセルZD’へはy 7
に相当するビット入力も必要であるが、y7 =y6 (デ
ータY* の最上位ビット)とする。
【0087】この表2は表1において(j+1)=4段
目、つまりj=3とし、デコーダセルZD’への入力情
報Yj=3 における、y2j+1=y7 =y6 =0、y2j=y
6 =0とした場合の内容に相当する。
【0088】
【表2】 (実施例II−2)次に、直接的には請求項9に関わる発
明の実施例を述べる。
【0089】図5の乗算回路においては、表2に示すよ
うにデータY* の最上位部分のビットをデコードする4
段目のデコーダセルZD’のデコード出力は、y5 が0
であるか1であるかに応じて、それぞれbd1 が0か1
になるのみで、bd2 とbdn は常に0 である。
【0090】従って4段目の部分積生成回路64aの部分
積生成・加算セルZM内のセレクタSLの演算は、y5
=0のとき0(つまり、セレクタ出力SLa=0)、y
5 =1のとき、+X(つまり、セレクタ出力SLa=x
i )となるだけである。
【0091】この場合、表1のような被乗数Xのシフト
やXと2 Xの符号反転などの演算を必要としないため、
図5の回路における4段目の部分積生成回路64aの部分
積生成・加算セルZM内のセレクタSLを図11に示す
ような、より簡単な構成のセレクタSL1に置き換える
ことができる。なお、図11ではセレクタSL1の出力
をSLaに代わり、SL1aとしている。
【0092】図6はこのようにセレクタを置き換えた発
明の一実施例としての乗算回路の構成例を示す。図6で
は図5に対し、4段目の部分積生成回路が、新たなセレ
クタSL1の入った部分積生成・加算セルZMを持つ6
4bに置き換わり、これに伴って部分積生成部が6Bに置
き換わっている。そして4段目のデコーダセルZD’か
ら新たな4段目の部分積生成回路64bへは、デコード出
力bd1 のみが与えられるようになっている。
【0093】(実施例II−3)次に、直接的には請求項
10に関わる発明の実施例を述べる。表2からbd1 =
5 が得られるので、図6の乗算回路において、4段目
のデコーダセルZD’を省略し、デコード出力bd1 の
かわりにy5 を直接、4段目の部分積生成回路64bへ入
力して処理することができる。
【0094】図7はこのようにデコーダセルZD’の省
略を行った発明の一実施例としての乗算回路の構成を示
す。図7では図6に対し、ブースのデコーダ部が、3つ
のデコーダセルZDを持つ図14(従来)のブースのデ
コーダ部5に置き換わっている。
【0095】(実施例II−4)次は、直接的には請求項
5に関わる発明の実施例として、演算モード選択入力m
を用い、同一の乗算回路上で、2の補数表示数同士の乗
算と符号なし2進数同士の乗算を、この2種の数相互間
の変換回路を用いることなく、切替え実行できる乗算回
路を説明する。
【0096】ここで、被乗数X,乗数Y,積Pは式
(2.1)に示したビット構成を持つ、それぞれ6ビッ
ト,6ビット,12ビットの符号なし2進数または2の
補数表示数とする。
【0097】まず、2の補数表示数である被乗数X=
(x5 ,x4 ,x3 ,x2 ,x1 ,x 0 )と乗数Y=
(y5 ,y4 ,y3 ,y2 ,y1 ,y0 )に対し、それ
ぞれ最上位ビットx5 とy5 を利用してx6 =x5 ,y
6 =y5 となるように符号ビットの拡張を行い、次式
(2.4)に示すような7ビットのデータX* とY*
作成する。
【0098】
【数19】 X* =(x6 ,x5 ,x4 ,x3 ,x2 ,x1 ,x0 ) Y* =(y6 ,y5 ,y4 ,y3 ,y2 ,y1 ,y0 ) (2.4) このような符号拡張を行うと、最上位ビットx6 ,y6
が符号ビットを意味して、以下に述べるようにX* とY
* が実際の値に影響を与えない2の補数表示数となり、
式(2.3)の関係が成り立つ。ここで2の補数表示数
である7ビットのデータX* とY* の値が、それぞれ6
ビットの2の補数表示数である被乗数Xと乗数Yの値に
等しいことを説明する。
【0099】最上位ビットx6 ,y6 を符号ビットとす
る2の補数表示数のデータX* とY * の実の値は次式
(2.5),(2.6)で表すことができ、さらにx6
=x5,y6 =y5 であるから、式(2.5),(2.
6)は式(2.5A),(2.6A)のように書き換え
ることができる。
【0100】
【数20】 この式(2.5A),(2.6A)の右辺は最上位ビッ
トx5 ,y5 を符号ビットとする6ビットの2の補数表
示数XとYの実の値にほかならず、この場合も式(2.
3)が成立することが分かる。
【0101】以上の説明により、符号なし2進数の乗算
を行わせる際のデータX* とY* の式(2.2)と2の
補数表示数の乗算を行わせる際のデータX* とY* の式
(2.4)の最上位の符号ビットx6 ,y6 を制御信号
としての演算モード選択入力mを使うことにより、次の
ような1つの式(2.7)で表現できる。
【0102】
【数21】 x6 =m・x5 6 =m・y5 (2.7) ここで、m=0ならば、x6 =0とy6 =0が符号なし
2 進数の乗算の場合のデータX* とY* の最上位ビット
となり、m=1ならば、x6 =x5 とy6 =y 5 が2の
補数表示数の乗算の場合のデータX* とY* の最上位ビ
ットとなる。
【0103】図8は、このような演算モード選択入力m
を用いた発明の一実施例としての乗算回路の構成を示
す。この図8は図5の乗算回路に2つの同構成の符号回
路81と82 を付加して構成されている。なお、図13
(a),(b)はそれぞれ符号回路81 と82 の構成例
を示す。
【0104】図8及び図13から分かるように、符号回
路81 は、演算モード選択入力mと被乗数Xの最上位ビ
ットx5 を入力し、論理積m・x5 を7ビットデータX
* の最上位ビットx6 としてを出力するANDゲートか
らなり、ビットx6 を各部分積生成回路61a〜64aへビ
ットx5 の上位ビットとして与え、被乗数Xの符号拡張
を行う。
【0105】同様に、符号回路82 は、演算モード選択
入力mと乗数Yの最上位ビットy5を入力し、論理積m
・y5 を7ビットデータY* の最上位ビットy6 として
出力するANDゲートからなり、ビットy6 を4段目の
ブースのデコーダセルZD’へビットy5 の上位ビット
として与え、乗数Yの符号拡張を行う。但しデコーダセ
ルZD’へはy7 に相当するビットも入力する必要があ
るが、y7 =y6 とする。
【0106】表3は、図8の4段目のブースのデコーダ
セルZD’の入力情報Yj=3 の種類と、これに対応する
デコード出力bd1 ,bd2 ,bdn 、及びこのデコー
ド出力を入力とする4段目の部分積生成回路64a内のセ
レクタSLの演算内容を示す。
【0107】この表3は表1において(j+1)=4段
目、つまりj=3とし、デコーダセルZD’への入力情
報Yj=3 における、y2j+1=y7 =y6 =m・y5 、y
2j=y6 =m・y5 とした場合の内容に相当する。
【0108】
【表3】 図8の乗算回路においては6ビットの2の補数表示数同
士の乗算の場合、m=1となり、セレクタSLの出力S
Laが0となる。一方、6ビットの符号なし2進数同士
の乗算の場合、m=0となり、y5 =0、従ってbd1
=0のときセレクタ出力SLaは0となり、y5 =1、
従ってbd1 =1のときセレクタ出力SLaはxi とな
る。このとき被乗数Xのシフトと符号反転を行わない。
これによって表3に示す+Xの演算が達成される。
【0109】(実施例II−5)次に、直接的には請求項
6に関わる発明の実施例を説明する。図8の乗算回路に
おいては、表3に示すように4段目のブースのデコーダ
セルZD’のデコード出力はbd1 =0又は1と、bd
2 =bdn =0で、4段目の部分積生成回路64aの部分
積生成・加算セルZM内のセレクタSLの演算は0又は
+Xだけである。
【0110】この場合、表1のような被乗数Xのシフト
やXと2Xの符号反転などの演算を必要としないため、
図8の回路における4段目の部分積生成回路64aの部分
積生成・加算セルZM内のセレクタSLを図12に示す
ような、より簡単な構成のセレクタSL2に置き換える
ことができる。なお、図12ではセレクタSL2の出力
をSLaに代わり、SL2aとしている。
【0111】図9はこのようにセレクタを置き換えた発
明の一実施例としての乗算回路の構成例を示す。図9で
は図8に対し、4段目の部分積生成回路が、新たなセレ
クタSL2の入った部分積生成・加算セルZMを持つ6
4cに置き換わり、これに伴って部分積生成部が6Cに置
き換わっている。そして4段目のデコーダセルZD’か
ら新たな4段目の部分積生成回路64cへは、デコード出
力bd1 と演算モード選択入力mのみが与えられるよう
になっている。
【0112】(実施例II−6)次は、直接的には請求項
7に関わる発明の実施例を説明する。表3のデコード出
力はbd2 =bdn =0、かつbdl =(〜y6 )・y
5 である。但し、〜y6 はy6 の論理否定値を意味す
る。このbdl に式(2.7)を代入すると、次式
(2.8))が得られる。
【0113】
【数22】 bdl =(〜m)・y5 (2.8) 但し、〜mは演算モード制御入力mの論理否定値であ
る。
【0114】ところで、図9における4段目の部分積生
成回路64c内のセレクタSL2はm=1の場合、他の値
と関係なく0を選択し、m=0の場合のみbdl =1又
は0に応じて+X又は0を選択する。
【0115】このm=0の場合は式(2.8)からbd
l =y5 であるから、セレクタSL2へのデコード入力
bdl をy5 に置き換えてもセレクタSL2の働きは変
わらない。
【0116】このことから、図9の乗算回路において、
乗数側の符号回路82 と4段目のデコーダセルZD’を
省略し、乗数の最上位ビットy5 と演算モード制御入力
mを直接、4段目の部分積生成回路64c(の部分積生成
・加算セル内のセレクタSL2)へ入力することができ
る。
【0117】図10は、このようにデコーダセルZD’
を省略した発明の一実施例としての乗算回路の構成例を
示す。なお同図では、ブースのデコーダ部として図14
と同じデコーダ部5が用いられている。上記実施の形態
IIに示したすべて乗算回路についても、任意のnビット
の乗算回路へ拡張することが容易である。
【0118】また、例えばこれら乗算回路内の加算部7
の出力側に、加算部7と同様な構成の別の加算手段を付
設し、乗算回路で求めた乗数と被乗数との積に対し、こ
の別の加算手段を介し、別途入力される2進数を加算す
ることにより、実施例I−2と同様に積和演算を行わせ
ることも容易である。
【0119】
【発明の効果】請求項1〜4に関わる発明によれば、乗
算演算回路の前段側に、論理ゲート素子からなり2進入
力データである被乗数と乗数相互の部分積の生成並びに
演算モード選択入力mと被乗数及び乗数との所定の論理
演算を行う回路を置き、乗算演算回路の後段側に、全加
算器セルの2次元配列からなり、演算モード選択入力m
に応じ、最終出力の最上位ビットの値を符号なし2進数
の演算の際は“0”とし、2の補数表示数の演算の際は
“1”とする機能を含む回路を置くようにして、乗算演
算回路を従来と同様な手法で簡単に構成し、乗算処理中
に演算モード選択入力mを乗数,被乗数と共にこの演算
回路の中で処理するようにし、また、請求項1,2,5
に関わる発明によれば、乗数の桁数が大きいような場
合、2次のブースのアルゴリズムを利用して従来と同様
な手法で構成された乗算回路を用い、乗数と被乗数の最
上位ビットに、それぞれ演算モード選択入力mによって
論理値が操作される拡張用の符号ビット付加した2の補
数表示数の相互の乗算を行うようにしたので、上記の何
れの発明においても、2の補数表示数から符号なし2進
数への変換、あるいは符号なし2進数から2の補数表示
数への変換を行う変換回路を用いずに、同一の演算回路
上で、2の補数表示数相互の乗算演算あるいは積和演
算、および符号なし2進数相互の乗算演算あるいは積和
演算を実現することができる。
【0120】本発明ではこのように特別の変換回路を使
わないので、演算回路を半導体集積回路で構成した場
合、従来の回路方式と比べ回路面積や最大経路遅延時間
を大きく低減することができる。
【図面の簡単な説明】
【図1】請求項1,3,4に関わる発明の一実施例とし
ての4ビット×4ビットの乗算演算回路の構成図
【図2】請求項1,3,4に関わる発明を実現する演算
式を用いた計算例を示す図
【図3】請求項2,3,4に関わる発明の一実施例とし
ての4ビット×4ビット+8ビットの積和演算回路の構
成図
【図4】図1に対応する従来の乗算演算回路の説明図
【図5】請求項1,2,5,8に関わる発明の一実施例
としての乗算演算回路の構成を示す概略ブロック図
【図6】請求項1,2,5,8,9に関わる発明の一実
施例としての乗算演算回路の構成を示す概略ブロック図
【図7】請求項1,2,5,8〜10に関わる発明の一
実施例としての乗算演算回路の構成を示す概略ブロック
【図8】請求項1,2,5に関わる発明の一実施例とし
ての乗算演算回路の構成を示す概略ブロック図
【図9】請求項1,2,5,6に関わる発明の一実施例
としての乗算演算回路の構成を示す概略ブロック図
【図10】請求項1,2,5〜7に関わる発明の一実施
例としての乗算演算回路の構成を示す概略ブロック図
【図11】図6,7の4段目の部分積生成回路内のセレ
クタの構成例を示す回路図
【図12】図9,10の4段目の部分積生成回路内のセ
レクタの構成例を示す回路図
【図13】図8〜10の符号回路の構成例を示す回路図
【図14】2次のブースのアルゴリズムを利用した従来
の最も基本的な乗算演算回路の構成例を示す概略ブロッ
ク図
【図15】デコーダセルの一般的な入出力信号を示すブ
ロック図
【図16】部分積生成回路内の部分積生成・加算セルの
構成例を示す回路図
【図17】図14の詳細な構成を示す回路図
【符号の説明】
5,5A ブースのデコーダ部 6A ,6B,6C 部分積生成部 61a 1段目の部分積生成回路 62a 2段目の部分積生成回路 63a 3段目の部分積生成回路 64a,64b,64c 4段目の部分積生成回路 7 加算部 81 , 82 符号回路 10 論理ゲート演算部 20,21 全加算器セル配列演算部 G1〜G4 ANDゲート部 G5,G6 EORゲート部 FA 全加算器セル A,X 被乗数 B,Y 乗数 D 加算入力 m 演算モード選択入力 P 乗算出力、又は積和演算出
力 ZD,ZD’ デコーダセル ZM 部分積生成・加算セル bd1,bd2,bdn デコード出力 SL,SL1,SL2 セレクタ

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】2進入力データである2つの2の補数表示
    数の相互または符号なし2進数の相互の乗算を行い、そ
    の結果をそれぞれ2の補数表示数または符号なし2進数
    の2進データとして出力する乗算演算回路であって、 2つの2進入力データが2の補数表示数か符号なし2進
    数かを区別する1ビットの演算モード選択データを2進
    入力データと共に入力し、2の補数表示数を符号なし2
    進数へ又は符号なし2進数を2の補数表示数へ変換する
    変換回路を用いることなく、2の補数表示数相互または
    符号なし2進数相互の乗算演算を同一の演算回路上で行
    うことを特徴とする演算回路。
  2. 【請求項2】2進入力データである第1と第2の2の補
    数表示数の相互または符号なし2進数の相互の乗算値
    へ、それぞれ2進入力データである第3の2の補数表示
    数または符号なし2進数を加算し、その結果をそれぞれ
    2の補数表示数または符号なし2進数の2進データとし
    て出力する積和演算回路であって、 第1,第2,第3の2進入力データが2の補数表示数か
    符号なし2進数かを区別する1ビットの演算モード選択
    データを2進入力データと共に入力し、2の補数表示数
    を符号なし2進数へ又は符号なし2進数を2の補数表示
    数へ変換する変換回路を用いることなく、2の補数表示
    数相互または符号なし2進数相互の積和演算を同一の演
    算回路上で行うことを特徴とする演算回路。
  3. 【請求項3】請求項1または2に記載の演算回路におい
    て、 演算処理の前段側に、論理ゲート素子からなり、2進入
    力データである被乗数と乗数相互の部分積の生成並びに
    前記演算モード選択データと被乗数及び乗数との所定の
    論理演算を行う回路を備え、 演算処理の後段側に、全加算器セルを2次元的に配列し
    てなり、演算モード選択データを入力して、最終出力の
    最上位ビットの値を符号なし2進数の演算の際は“0”
    とし、2の補数表示数の演算の際は“1”とする機能を
    含む回路を備えたことを特徴とする演算回路。
  4. 【請求項4】請求項3に記載の演算回路において、 前記演算モード選択データをmとし、被乗数をnビット
    としてその最上位ビットから最下位ビットまでの各桁の
    ビット値を桁順に an-1 , an-2 ,・・・ a0で表し、
    乗数をnビットとしてその最上位ビットから最下位ビッ
    トまでの各桁のビット値を桁順にbn-1 ,bn-2 ,・・
    ・b0 で表すとき、最終出力が次式の演算結果に相当す
    るものであることを特徴とする演算回路。 【数1】 但し、上式内の [+] の符号は排他的論理和の演算を表
    すものとする。
  5. 【請求項5】請求項1または2に記載の演算回路におい
    て、 少なくとも演算処理の前段側に、2進入力データである
    乗数の最上位ビットに拡張用の符号ビットを付加してな
    る2の補数表示数のデータのビット列から、順次その全
    ビットを、連続に並ぶ3ビットずつ、隣接して選択され
    る3ビットとは1ビットが重複するように選択してでき
    た各3ビット群を、それぞれ入力してデコードする複数
    の2次のブースのデコード手段と、 この2次のブースのデコード手段ごとに設けられ、2進
    入力データである被乗数の最上位ビットに拡張用の符号
    ビットを付加してなる2の補数表示数のデータに対し、
    当該のデコード手段のデコード出力によって定まる2次
    のブースの乗算アルゴリズムに基づく演算を施す部分積
    生成手段と、 前記演算モード選択データによってそれぞれ乗数と被乗
    数の前記拡張用の符号ビットの値を、符号なし2進数の
    演算の際は“0”とし、2の補数表示数の演算の際は当
    該拡張用符号ビットに対応する乗数または被乗数の最上
    位ビットの値に等しくする符号ビット操作手段とを備え
    たことを特徴とする演算回路。
  6. 【請求項6】請求項5に記載の演算回路において、乗数
    に付加した拡張用の符号ビットを入力とする2次のブー
    スのデコード手段(以下最終段のデコード手段という)
    に対応する部分積生成手段(以下最終段の部分積生成手
    段という)を、その他の部分積生成手段と異なる簡略な
    形に構成したことを特徴とする演算回路。
  7. 【請求項7】請求項6に記載の演算回路において、前記
    最終段のデコード手段及び乗数側の符号ビット操作手段
    を省略もしくは無効化し、このデコード手段のデコード
    出力に代えて乗数の最上位ビット及び演算モード選択デ
    ータを最終段の部分積生成手段に与えるようにしたこと
    を特徴とする演算回路。
  8. 【請求項8】請求項5に記載の演算回路において、前記
    符号ビット操作手段を省略もしくは無効化して乗数と被
    乗数の前記拡張用の符号ビットを“0”に固定し、符号
    なし2進数の演算を行わせるようにしたことを特徴とす
    る演算回路。
  9. 【請求項9】請求項8に記載の演算回路において、乗数
    に付加した拡張用の符号ビットを入力とする2次のブー
    スのデコード手段(以下最終段のデコード手段という)
    に対応する部分積生成手段(以下最終段の部分積生成手
    段という)を、その他の部分積生成手段と異なる簡略な
    形に構成したことを特徴とする演算回路。
  10. 【請求項10】請求項9に記載の演算回路において、前
    記最終段のデコード手段を省略もしくは無効化し、この
    デコード手段のデコード出力に代えて乗数の最上位ビッ
    トを最終段の部分積生成手段に与えるようにしたことを
    特徴とする演算回路。
  11. 【請求項11】請求項1ないし10のいずれかに記載の
    演算回路において、半導体集積回路上に構成したことを
    特徴とする演算回路。
JP11075604A 1998-10-14 1999-03-19 演算回路 Withdrawn JP2000187584A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11075604A JP2000187584A (ja) 1998-10-14 1999-03-19 演算回路

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP29182498 1998-10-14
JP10-291824 1998-10-14
JP11075604A JP2000187584A (ja) 1998-10-14 1999-03-19 演算回路

Publications (1)

Publication Number Publication Date
JP2000187584A true JP2000187584A (ja) 2000-07-04

Family

ID=26416747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11075604A Withdrawn JP2000187584A (ja) 1998-10-14 1999-03-19 演算回路

Country Status (1)

Country Link
JP (1) JP2000187584A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007094223A1 (ja) * 2006-02-15 2007-08-23 Matsushita Electric Industrial Co., Ltd. 乗算器、デジタルフィルタ、信号処理装置、合成装置、合成プログラム、および合成プログラム記録媒体
CN113031913A (zh) * 2019-12-24 2021-06-25 上海寒武纪信息科技有限公司 乘法器、数据处理方法、装置及芯片

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007094223A1 (ja) * 2006-02-15 2007-08-23 Matsushita Electric Industrial Co., Ltd. 乗算器、デジタルフィルタ、信号処理装置、合成装置、合成プログラム、および合成プログラム記録媒体
JPWO2007094223A1 (ja) * 2006-02-15 2009-07-02 パナソニック株式会社 乗算器、デジタルフィルタ、信号処理装置、合成装置、合成プログラム、および合成プログラム記録媒体
JP4790791B2 (ja) * 2006-02-15 2011-10-12 パナソニック株式会社 乗算器、デジタルフィルタ、信号処理装置、合成装置、合成プログラム、および合成プログラム記録媒体
CN113031913A (zh) * 2019-12-24 2021-06-25 上海寒武纪信息科技有限公司 乘法器、数据处理方法、装置及芯片

Similar Documents

Publication Publication Date Title
US5956265A (en) Boolean digital multiplier
JP3761977B2 (ja) 遅延整合技術の利用によりクリティカル・パスを減少させた浮動小数点型掛け算器及びその演算方法
Vazquez et al. Improved design of high-performance parallel decimal multipliers
GB2365636A (en) Parallel counter and multiplication logic circuit
US5426598A (en) Adder and multiplier circuit employing the same
JP2000259394A (ja) 浮動小数点乗算器
JPH09269891A (ja) 部分積加算方法および装置、浮動小数点乗算方法および装置、浮動小数点積和演算方法および装置
JPH0713742A (ja) 乗算装置
JPH0773227A (ja) 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器
JP3276444B2 (ja) 除算回路
US20050228845A1 (en) Shift and recode multiplier
US4677583A (en) Apparatus for decimal multiplication
Kaivani et al. Improving the speed of decimal division
JPH09231055A (ja) 論理演算回路及びキャリールックアヘッド加算器
JP2000187584A (ja) 演算回路
JP3652447B2 (ja) ツリー回路
Jaberipur et al. A Parallel Prefix Modulo-(2 q+ 2 q− 1+ 1) Adder via Diminished-1 Representation of Residues
JP4042215B2 (ja) 演算処理装置およびその方法
JPH1115641A (ja) 冗長2進加算器を用いた乗算装置
Reddy et al. A high speed, high Radix 32-bit Redundant parallel multiplier
JP3255251B2 (ja) 配列型桁上げ保存加算器を有する乗算器
Bindal et al. Review of Combinational Logic Circuits
JPH02300930A (ja) 乗算回路
JPH11282651A (ja) 並列乗算器
JP2001134556A (ja) 繰り返し型乗算器とアレイ型乗算器

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20031225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040831

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20041104