JP3612950B2 - 演算装置およびその方法 - Google Patents

演算装置およびその方法 Download PDF

Info

Publication number
JP3612950B2
JP3612950B2 JP20666097A JP20666097A JP3612950B2 JP 3612950 B2 JP3612950 B2 JP 3612950B2 JP 20666097 A JP20666097 A JP 20666097A JP 20666097 A JP20666097 A JP 20666097A JP 3612950 B2 JP3612950 B2 JP 3612950B2
Authority
JP
Japan
Prior art keywords
circuit
product
terminal
data
multiplication
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
JP20666097A
Other languages
English (en)
Other versions
JPH1153172A (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP20666097A priority Critical patent/JP3612950B2/ja
Publication of JPH1153172A publication Critical patent/JPH1153172A/ja
Application granted granted Critical
Publication of JP3612950B2 publication Critical patent/JP3612950B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、2の補数乗算および2の補数の積和演算を行なう演算装置およびその方法に関する。
【0002】
【従来の技術】
例えば、ビデオカメラなどのAV(Audio Visual)装置には、プロセッサが搭載されている。
このようなプロセッサには、種々の演算回路が組み込まれており、その一つとして2の補数乗算回路がある。
また、2の補数乗算回路の一つとして、バウウーリ(Baugh−Wooley)が提案したものがある。以下、この2の補数乗算回路を、バウウーリの2の補数乗算回路と記す。
【0003】
バウウーリの2の補数乗算回路は、全ての被加算項の符号が正であり、タイプ0の全加算器を用いて全ての配列を構成できることから、LSI回路の設計上、非常に有利である。
バウウーリの2の補数乗算回路では、2の補数表示整数であるmビットの被乗数A(am−1 ,am−2 ,..a,a)と、nビットの乗数B(bn−1 ,bn−2 ,..,b,b)との2の補数乗算を行なう場合に、被乗数AのAと乗数BのBとは、それぞれ下記式(1)と(2)で示される。
ここでは、A,Bは、それぞれ被乗数Aと乗数Bの10進数表現である。
【0004】
【数1】
Figure 0003612950
【0005】
【数2】
Figure 0003612950
また、2の補数の数表現において、積P=A・B=(pm+n−1 ,pm+n−2 ,..,p,p)のPは、適当な重み付き因数と、係数aまたはbとの積によって下記式(3)で示される。
ここで、Pは、積Pの10進数表現である。
【0006】
【数3】
Figure 0003612950
【0007】
積Pは、図13に示すような演算方法によって求められる。
図13において、「1」は被乗数Aを示し、「2」は乗数Bを示し、「3」は部分積の集合を示し、「4」は演算結果であるPを示し、「5」は部分積の数が最も多い列(以下、ワーストパスとも記す)を示している。
【0008】
ここで、図13に示す演算方法を部分積加算の順序を入れ換えることで、この演算方法を図14に示す演算方法に変形できる。
図14に示す演算方法は、正の被加算項のみから構成されており、その一様性から、タイプ0の全加算器のみを用いて行なうことができる。
【0009】
図15は、図14に示す演算方法を用いて、6ビットの被乗数A(a,a,a,a,a,a)と、4ビットの乗数B(b,b,b,b)との2の補数演算を行い、積P(p,p,p,p,p,p,p,p,p,p)を算出する演算方法を説明するための図である。
図15に示す2の補数乗算の演算方法は、例えば、図16に示す2の補数乗算回路21を用いて行なわれる。
図16に示す2の補数乗算回路21では、被乗数Aのa,a,a,a,a,aを、行方向に配設されたバッファ25,25,25,25,25,2510からそれぞれ入力する。、また、乗数B(b,b,b,b)を、列方向に配設されたバッファ25,25,25,25からそれぞれ入力する。そして、図15に示す2の補数乗算を行い、その乗算結果である積P(p,p,p,p,p,p,p,p,p,p)を出力する。
【0010】
図16において、2700およびこれと同一記号を用いて表された回路は、2入力1出力のAND回路である。また、2911およびこれと同一記号を用いて表された回路は、全加算回路である。全加算回路2911は、図17(A)に示すように、図中左上に位置してキャリ(桁上げ)データを入力するCI(Carry Input) 端子、図中左中に位置して一方の加算対象データを入力するX端子、図中左下に位置して他方の加算対象データを入力するY端子、図中右上に位置しキャリデータを出力するCO(Carry Output)端子、および、図中右下に位置して和データを出力するS(Sum) 端子とを備えている。これらの端子の配置は、図16においても同じである。
また、加算回路3321,3341,3351は、図17(B)に示すように、図中左下のX端子から入力した加算対象データと図中左上のY端子から入力した加算対象データとの加算を行い、そのキャリデータを図中右上のCO端子から出力し、その和データを図中左下のS端子から出力する半加算器である。
【0011】
図16に示す2の補数乗算回路21では、図15に示す部分積22を以下に示す演算処理で行なう。
すなわち、aとb ̄(=反転b)との論理積がAND回路2700にて演算され、その演算結果である「a・b ̄」が加算回路2911のY端子に出力される。なお、バッファ25を介して入力したbは、NOT回路31にて反転され、b ̄がAND回路2700に入力される。
また、aとbとの論理積がAND回路2711にて演算され、その演算結果である「a・b」が加算回路2911のX端子に出力される。また、aが加算回路2911のCI端子に出力される。
そして、加算回路2911において、「a・b ̄」、「a・b」およびaを用いた加算が行なわれ、その和データがS端子から加算回路2922のY端子に出力され、そのキャリデータがCO端子から、加算回路2912のCI端子に出力される。
【0012】
また、aとbとの論理積がAND回路2722にて演算され、その演算結果であるa・bが加算回路2922のX端子に出力される。
そして、加算回路2922において、加算回路3321のCO端子からのキャリデータと、「a・b」と、「a・b ̄」、「a・b」およびaの和データとを用いた加算が行なわれ、その和データが加算回路2933のY端子に出力される。
また、a ̄とbとの論理積がAND回路2733にて演算され、その演算結果である「a ̄・b」が加算回路2933のX端子に出力される。
そして、加算回路2933において、加算回路2932のCO端子からのキャリデータと、「a ̄・b」と、加算回路2922からの和データとを用いた加算が行なわれ、その和データdがS端子から加算回路19に出力される。また、加算回路2933のCO端子から出力されたキャリデータdも、加算回路19に出力される。
【0013】
ここで、和データdは、加算回路3321,2931,2932からのキャリデータを考慮した、a、「a・b」、「a・b ̄」、「a・b」および「a ̄・b」の和データである。
【0014】
そして、加算回路19において、d〜d10を用いた演算が行なわれ、pが求められる。
また、AND回路2750の出力端子、加算回路3351のS端子、加算回路2952のS端子および加算回路2952のS端子から、それぞれp,p,p,pが出力される。
また、加算回路19において、d〜d10を用いた演算が行なわれ、p,p,p,p,pが求められる。
【0015】
【発明が解決しようとする課題】
しかしながら、上述した図14に示す2の補数乗算の処理では、m=nの場合に、図18に示すように、am−1 とbn−1 とが同じ列に位置することから、図13に示すワーストパス5に比べて、加算が1段増えた、ワーストパス6が生じ、演算時間が長期化してしまう。
【0016】
以下、具体例を挙げて説明する。
図19は、図18に示す2の補数演算の処理を、4ビットの被乗数A(a,a,a,a)と、4ビットの乗数B(b,b,b,b)とについて行い、積P(p,p,p,p,p,p,p,p)を算出する方法を説明するための図である。
この場合には、図19に示すように、aとbとが同じ列に位置し、これらを含むワーストパス6aが生じる。
ここで、例えば、被乗数Aが(1,0,1,0)で、乗数が(1,1,1,1)である場合には、図19に示す2の補数乗算処理は、図20に示すようにして行なわれ、積Pが(0,0,0,0,0,1,1,0)となる。
【0017】
図19に示す2の補数演算の処理は、図21に示す2の補数乗算回路41を用いて行なわれる。
図21に示す2の補数乗算回路41では、被乗数Aのa,a,a,aを、行方向に配設されたバッファ25,25,25,25からそれぞれ入力し、乗数B(b,b,b,b)を、列方向に配設されたバッファ25,25,25,25からそれぞれ入力し、図19に示す積和演算を行い、積P(p,p,p,p,p,p,p,p)を出力する。
【0018】
図21において、2700およびこれと同一記号を用いて表された回路は、2入力1出力のAND回路である。また、2903および2922は全加算回路であり、図17(A)に示す構成をしている。また、33,33,33,33,33は半加算回路であり図17(B)を示す構成をしている。
また、加算回路39,39は、それぞれ1ビットの加算対象データを入力する3個の入力端子、CI端子、CO端子および2ビットのS端子を有する。
また、加算回路37は、それぞれ1ビットの加算対象データを入力する4個の入力端子、CI端子、CO端子および2ビットのS端子を有する。
【0019】
図21に示す2の補数乗算回路41では、図19に示す部分積演算6aを以下に述べる処理によって行なう。
先ず、aとb ̄(=反転b)との論理積がAND回路2700にて演算され、その演算結果である「a・b ̄」が加算回路2922のY端子に出力される。なお、バッファ25を介して入力したbは、NOT回路31にて反転され、b ̄がAND回路2700に入力される。
また、aとbとの論理積がAND回路2722にて演算され、その演算結果である「a・b」が加算回路2922のX端子に出力される。また、aが加算回路2922のCI端子に出力される。
そして、加算回路2922において、「a・b ̄」、「a・b」およびaを用いた加算が行なわれ、その和データがS端子から加算回路39の入力端子に出力され、そのキャリデータがCI端子から、加算回路37の入力端子に出力される。
【0020】
また、a ̄とbとの論理積がAND回路2733にて演算され、その演算結果である「a ̄・b」が加算回路33のX端子に出力される。
また、aとbとの論理積がAND回路2711にて演算され、その演算結果である「a・b」が加算回路33のY端子に出力される。
そして、加算回路33において、「a ̄・b」と「a・b」との加算が行なわれ、その和データが加算回路39の入力端子に出力される。
また、aとbとの論理積がAND回路2721にて演算され、その演算結果である「a・b」が加算回路33のY端子に出力される。また、bが、加算回路33の入力端子に出力される。
そして、加算回路33において、「a・b」と、bとの加算が行なわれ、そのキャリデータが加算回路39の入力端子に出力される。
【0021】
そして、加算回路39において、加算回路39からのキャリデータを考慮して、加算回路33からの和データと、加算回路2922からの和データと、加算回路33からのキャリデータとを用いて加算が行なわれ、S端子から、2ビットの和データ(r,r)が、加算回路43に出力される。
このとき、和データ(r,r)は、加算回路2922からの「a・b ̄」、「a・b」およびaの和データと、加算回路33からの「a ̄・b」および「a・b」と、 加算回路33からの「a・b」およびbの加算結果のキャリデータとを加算した和データとなる。
そして、加算回路43において、r〜r11を用いて加算が行なわれ、pが算出される。
【0022】
また、図19に示す部分積演算7は、以下のようにして行なわれる。
先ず、すなわち、AND回路2710において、aとbとの論理積が演算され、その演算結果である「a・b」が加算回路39の入力端子に出力される。
また、AND回路2721において、aとbとの論理積が演算され、その演算結果である「a・b」が加算回路33のY端子に出力される。また、bが加算回路33のX端子に出力される。
そして、加算回路33において、「a・b」とbとが加算され、その和データが加算回路39に出力される。
【0023】
また、AND回路2732において、aとbとの論理積が演算され、その演算結果である「a・b」が加算回路39のCI端子に出力される。
また、bが加算回路39のCI端子に出力される。
さらに、AND回路2710において、aとbとの論理積が演算され、その演算結果である「a・b」が加算回路39の入力端子に出力される。
そして、加算回路39において、加算回路33から「a・b」とbとの加算結果の和データと、AND回路2732からの「a・b」と、bと、AND回路2732からの「a・b」とを用いた加算が行なわれ、2ビットの和データ(r,r)が加算回路43に出力される。
そして、加算回路43において、r〜r11を用いて加算が行なわれ、pが算出される。
なお、pはAND回路2730の出力端子から出力され、pは加算回路33のS端子から出力される。
また、p〜pは、加算回路43から出力される。
【0024】
上述したように、被乗数と乗数とのビット数が同じであると、2の補数乗算を行なった場合に、被乗数と乗数とのビット数が異なる場合に比べて、ワーストパスを構成する加算が1段増えてしまう。
そのため、2の補数乗算回路の処理時間が長期化してしまうという問題がある。
ここで、実際には、2の補数乗算を行なう上で、被乗数と乗数とのビット数(語長)が同じことが多く、このようにワーストパスを構成する加算が増えることは、例えば、繰り返し演算を多数回行なう3次元グラフィックなどの分野では、その性能に大きな影響を及ぼす。
【0025】
また、図18に示すように、am−1 とbn−1 が同列に位置すると、図21に示すような反復セル型の配列を採用した回路では、回路パターンの規則性が低下し、レイアウト設計が非常に困難になってしまうという問題がある。
同様な問題は、2の補数乗算と加算とを行なう2の補数積和演算回路にも同様に存在する。
【0026】
本発明は、上述した従来技術に鑑みてなされ、被乗数と乗数との語長が同じ場合に、バウウーリの2の補数乗算の処理時間を短縮できる演算装置およびその方法を提供することを目的とする。
また、本発明は、レイアウト設計が容易な演算装置を提供することを目的とする。
【0027】
【課題を解決するための手段】
上述した従来技術の問題点を解決し、上述した目的を達成するために、本発明の第1の観点の演算装置は、m(2以上の自然数)ビットの被乗数A(am−1 ,am−2 ,..,a,a)と、n(2以上の自然数)ビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって、m+nビットの積P(pm+n−1 m+n−2 ,..,p,pm−1 ,..,p,p)を算出する演算装置であって、1≦q≦m−1の条件を満たす全ての自然数qについての部分積「a・bm−1−q 」と、部分積「a ̄・bn−1 」とを算出する第1の乗算手段と、前記第1の乗算手段によって算出された全ての部分積と、bn−1 と、pm−2 を算出する際のキャリデータとの加算を行なってpm−1 を算出する第1の加算手段と、2≦q≦m−1の条件を満たす全ての自然数qについての部分積「a・bm−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」とを算出する第2の乗算手段と、前記第2の乗算手段によって算出された全ての部分積と、am−1 と、前記第1の加算手段からのキャリデータとの加算を行なってpを算出する第2の加算手段とを有し、m=nの場合に、m+1ビットの被乗数A’(am−1 ,am−1 ,am−2 ,..,a,a)と、nビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行う。
【0028】
また、本発明の第2の観点の演算装置は、m(2以上の自然数)ビットの被乗数A(am−1 ,am−2 ,..,a,a)と、n(2以上の自然数)ビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって、m+nビットの積R(rm+n−1 m+n−2 ,..,r,rm−1 ,..,r,r)を算出し、前記積Rと、m+nビットのデータC(cm+n−1 m+n−2 ,..,c,cm−1 ,..,c,c)とを加算する演算装置であって、1≦q≦m−1の条件を満たす全ての自然数qについての部分積「a・bm−1−q 」と、部分積「a ̄・bn−1 」とを算出する第1の乗算手段と、前記第1の乗算手段によって算出された全ての部分積と、bn−1 と、cm−1 と、pm−2 を算出する際のキャリデータとの加算を行なってpm−1 を算出する第1の加算手段と、2≦q≦m−1の条件を満たす全ての自然数qについての部分積「a・bm−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」とを算出する第2の乗算手段と、前記第2の乗算手段によって算出された全ての部分積と、am−1 と、cと、前記第1の加算手段からのキャリデータとの加算を行なってpを算出する第2の加算手段とを有し、m=nの場合に、m+1ビットの被乗数A’(am−1 ,am−1 ,am−2 ,..,a,a)と、nビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって前記積Rを算出し、前記積Rと前記データCとを加算する。
【0029】
また、本発明の第3の観点の演算装置は、m(2以上の自然数)ビットのA(am−1 ,am−2 ,..,a,a)と、n(2以上の自然数)ビットのB(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行い、m+nビットの積P(pm+n−1 m+n−2 ,..,p,pm−1 ,..,p,p)を算出する演算装置であって、0≦q≦m−2の条件を満たす全ての自然数qについての部分積「a・bm−2−q 」と、部分積「1・bn−1 」とを算出する第1の乗算手段と、前記第1の乗算手段によって算出された全ての部分積と,bn−1 と,pm−2 を算出する際のキャリデータとの加算を行なってpm−1 を算出する第1の加算手段と、1≦q≦m−2の条件を満たす全ての自然数qについての部分積「a・bm−1−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」とを算出する第2の乗算手段と、前記第2の乗算手段によって算出された全ての部分積と、am−1 と、前記第1の加算手段からのキャリデータとの加算を行なって、pを算出する第2の加算手段とを有し、m=nの場合に、m+1ビットの被乗数A’(am−1 ,am−2 ,..,a,a,0)と、nビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行う。
【0030】
また、本発明の第4の観点の演算装置は、m(2以上の自然数)ビットの被乗数A(am−1 ,am−2 ,..,a,a)と、n(2以上の自然数)ビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって、m+nビットの積R(rm+n−1 m+n−2 ,..,r,rm−1 ,..,r,r)を算出し、前記積Rと、m+nビットのデータC(cm+n−1 m+n−2 ,..,c,cm−1 ,..,c,c)とを加算する演算装置であって、0≦q≦m−2の条件を満たす全ての自然数qについての部分積「a・bm−2−q 」と、部分積「1・bn−1 」とを算出する第1の乗算手段と、前記第1の乗算手段によって算出された全ての部分積と、bn−1 と、cm−1 と、pm−2 を算出する際のキャリデータとの加算を行なってpm−1 を算出する第1の加算手段と、1≦q≦m−2の条件を満たす全ての自然数qについての部分積「a・bm−1−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」とを算出する第2の乗算手段と、前記第2の乗算手段によって算出された全ての部分積と、am−1 と、cと、前記第1の加算手段からのキャリデータとの加算を行なってpを算出する第2の加算手段とを有し、m=nの場合に、m+1ビットの被乗数A’(am−1 ,am−2 ,..,a,a,0)と、nビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって前記積Rを算出し、前記積Rと前記データCとを加算する。
【0031】
本発明の演算装置およびその方法では、mビットの被乗数A(am−1 ,am−2 ,..,a,a)と、nビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって、m+nビットの積P(pm+n−1 m+n−2 ,..,p,pm−1 ,..,p,p)を算出するときに、m=nである場合に、m+1ビットの被乗数A’(am−1 ,am−1 ,am−2 ,..,a,a)あるいはm+1ビットの被乗数A’(am−1 ,am−2 ,..,a,a,0)を用いて演算を行なうことで、ワーストパスを構成する部分積の加算において、加算段数が従来に比べて1段削減される。
【0032】
【発明の実施の形態】
以下、本発明の実施形態に係わるにバウウーリの2の補数乗算回路およびその方法について説明する。
第1実施形態
先ず、本実施形態の2の補数乗算回路において採用するバウウーリの2の補数乗算の演算方法について説明する。
図1は、本実施形態のバウウーリの2の補数乗算の演算方法について説明するための図である。
【0033】
この2の補数乗算方法では、mビットの被乗数A(am−1 ,am−2 ,..a,a)と、nビットの乗数B(bn−1 ,bn−2 ,..,b,b)との2の補数乗算を行なう場合に、m=nであるときに、m+1ビットの被乗数A’(am−1 ,am−1 ,am−2 ,..a,a)と、nビットの乗数B(bn−1 ,bn−2 ,..,b,b)との2の補数乗算を行ない、積P(pm+n−1,m+n−2,..,..,p,p)を得る。
すなわち、mビットの被乗数A(am−1 ,am−2 ,..a,a)の代わりに、被乗数Aの最上位ビット(MSB:Most Significant Bit )の上に、その最上位ビットam−1 を付加した被乗数A’(am−1 ,am−1 ,am−2 ,..a,a)を用いる。
このようにすることで、被乗数Aの語長が1ビットだけ増え、被乗数と乗数との語長が異なるようになる。
その結果、図18に示すようにam−1 とbn−1 とが同じ列で加算されることを回避でき、図1に示すワーストパス10を構成する加算の段数を、図18に示すワーストパス6に比べて、1段減らすことができる。
【0034】
図1において、「56」は被乗数A’を示し、「57」は乗数Bを示し、「58」は部分積の集合を示し、「9」は積Pを示す。
図1に示す2の補数乗算の演算方法では、被乗算数AのMSBを1ビット符号拡張した被乗算数A’を用いることから、積PのMSBを削除したものを、2の補数乗算の演算結果とする。
従って、図1に示す「11」の部分の演算は不要となる。
【0035】
次に、図1に示すバウウーリの2の補数乗算の演算方法における部分積と、積Pとの関係について説明する。
なお、図1において、n=mである。
図1に示すように、pは、「a・b」となる。
は、「a・b+a・b」の加算結果の和データとなる。
は、「a・b+a・b+a・b」と、pからのキャリデータとの加算結果の和データとなる。
は、「a・b+a・b+a・b」と、pからのキャリデータとの加算結果の和データとなる。
また、p(4≦k≦m−2:kは自然数)は、0〜kの自然数qの全てについての部分積「a・bk−q 」の加算結果と、pk−1 からのキャリデータとの加算結果の和データとなる。
また、pm−1 は、1≦q≦m−1の自然数qの全てについての部分積「a・bm−1−q 」と「a ̄・bn−1 」とbn−1 との加算結果と、pm−2 からのキャリデータとの加算結果の和データとなる。
【0036】
また、pは、2≦q≦m−1を満たす自然数qの全てについての部分積「a・bm−q 」と「am−1 ・b ̄」と「a ̄・bn−1 」とam−1 との加算結果と、pm−1 からのキャリデータとの加算結果の和データとなる。
また、p(m+n−3≦k≦m+1:kは自然数)は、3≦q≦m−1を満たす自然数qの全てについての部分積「a・bk−q 」と「am−1 ・bk−m 」と「ak−m+1  ̄・bn−1 」との加算結果と、pk−1 からのキャリデータとの加算結果の和データとなる。
また、pm+n−2 は、「am−1 ・bn−2  ̄」と「am−1  ̄・bn−1 」との加算結果と、pm+n−3 からのキャリデータとの加算結果の和データとなる。
さらに、pm+n−1 は、am−1  ̄と「am−1 ・bn−1 」とbn−1  ̄との加算結果と、pm+n−2 からのキャリデータとの加算結果の和データとなる。
【0037】
以下、図1に示す2の補数乗算と、図18に示す従来の2の補数乗算とが同じであることを説明する。
〜pm−2 については、図1に示す2の補数乗算と、図18に示す従来の2の補数演算とで、同じ乗算結果を加算して得られることから、同じである。
【0038】
また、pm−1 の部分積については、図1に示す「am−1 ・b」と、図18に示す「am−1 ・b ̄+am−1 」とが、pm−1 に与える影響が同じであれば、図1に示すpm−1 と、図18に示すpm−1 とは同じになる。
ここで、下記式(4)が成り立ち、am−1 ・b ̄は次のビットへの桁上げ(キャリデータ)となるので、図1に示す「am−1 ・b」と、図18に示す「am−1 ・b ̄+am−1 」とのうち、pm−1 に反映されるのは、何れも「am−1 ・b」となる。従って、図1に示すpm−1 と、図18に示すpm−1 とは同じである。
【0039】
【数4】
Figure 0003612950
【0040】
次に、pについては、図1に示す「am−1 ・b ̄+am−1 ・b+am−1 」と、図18に示す「am−1 ・b ̄」とpm−1 からのキャリデータである「am−1 ・b ̄」との加算結果とがpに与える影響が同じであれば、図1に示すpと、図18に示すpとは同じになる。
ここで、下記式(5)が成り立ち、am−1 ・bは次のビットへの桁上げ(キャリデータ)となるので、図1に示す「am−1 ・b ̄+am−1 ・b+am−1 」と、図18に示す「am−1 ・b ̄+am−1 ・b ̄」とのうち、pに反映されるのは、何れも「am−1 ・b ̄+am−1 ・b ̄」となる。従って、図1に示すpと、図18に示すpとは同じである。
【0041】
【数5】
Figure 0003612950
【0042】
次に、pm+1 については、図1に示す「am−1 ・b ̄+am−1 ・b」とpからのキャリデータ「am−1 ・b」との加算結果と、図18に示す「am−1 ・b ̄」とがpm+1 に与える影響が同じであれば、図1に示すpm +1と、図18に示すpm+1 とは同じになる。
ここで、下記式(6)が成り立ち、am−1 ・bは次のビットへの桁上げ(キャリデータ)となるので、図1に示す「am−1 ・b ̄+am−1 ・b+am−1 ・b」と、図18に示す「am−1 ・b ̄」とのうち、pm+1 に反映されるのは、何れも「am−1 ・b ̄」となる。従って、図1に示すpm+1 と、図18に示すpm+1 とは同じである。
【0043】
【数6】
Figure 0003612950
【0044】
次に、pm+2 については、図1に示す「am−1 ・b ̄+am−1 ・b+am−1 ・b」とpm+1 からのキャリデータ「am−1 ・b」との加算結果と、図18に示す「am−1 ・b ̄」とがpm+1 に与える影響が同じであれば、図1に示すpm +2と、図18に示すpm+2 とは同じになる。
ここで、下記式(7)が成り立ち、am−1 ・bは次のビットへの桁上げ(キャリデータ)となるので、図1に示す「am−1 ・b ̄+am−1 ・b+am−1 ・b」と、図18に示す「am−1 ・b ̄」とのうち、pm+2 に反映されるのは、何れも「am−1 ・b ̄」となる。従って、図1に示すpm+2 と、図18に示すpm+2 とは同じである。
【0045】
【数7】
Figure 0003612950
【0046】
次に、p(m+3<s<m+n−3)については、ps−1 からのキャリデータを考慮して、図1における「am−1 ・bs−m  ̄+am−1 ・bs−m+1 +am−1 ・bs−m 」と、図18における「am−1 ・bs−m+1  ̄」とがpに与える影響が同じであれば、図1におけるpと、図18におけるpとは同じになる。
ここで、下記式(8)が成り立ち、am−1 ・bs−m+1 は次のビットへの桁上げ(キャリデータ)となるので、図1における「am−1 ・bs−m  ̄+am−1 ・bs−m+1 +am−1 ・bs−m 」と、図18における「am−1 ・bs−m+1  ̄」とのうち、pに反映されるのは、何れも「am−1 ・bs−m+1  ̄」となる。従って、図1におけるpm+n−2 と、図18におけるpm+n−2 とは同じである。
【0047】
【数8】
Figure 0003612950
【0048】
次に、pm+n−2 については、pm+n−3 からのキャリデータを考慮して、図1における「am−1 ・bn−2  ̄+am−1  ̄・bn−1 +am−1 ・bn−2 」と、図18における「am−1  ̄+am−1 ・bn−1 +bn−1  ̄」とがpm+n−2 に与える影響が同じであれば、図1におけるpm+n−2 と、図18におけるpm+n−2 とは同じになる。
ここで、下記式(9)および(10)が成り立ち、図18におけるam−1 ・bn−1 は次のビットへの桁上げ(キャリデータ)となるので、図1における「am−1 ・bn−2  ̄+am−1  ̄・bn−1 +am−1 ・bn−2 」と、図18における「am−1  ̄+am−1 ・bn−1 +bn−1  ̄」とのうち、pm+n−2 に反映されるのは、何れも「am−1 +bn−1 」となる。従って、図1におけるpと、図18におけるpとは同じである。
【0049】
【数9】
Figure 0003612950
【0050】
【数10】
Figure 0003612950
【0051】
次に、pm+n−1 については、pm+n−2 からのキャリデータを考慮して、図1における「am−1  ̄・+am−1 ・bn−1 +bn−1  ̄」と、図18における「1+am−1 ・bn−1 」とがpm+n−1 に与える影響が同じであれば、図1におけるpm+n−1 と、図18におけるpm+n−1 とは同じになる。
ここで、下記式(11)および(12)が成り立ち、図1における「am−1 ・bn−1 」および図18における「am−1 ・bn−1 」は次のビットへの桁上げ(キャリデータ)となり、図1における「am−1  ̄・+am−1 ・bn−1 +bn−1  ̄」と、図18における「1+am−1 ・bn−1 」とのうち、pm+n−1 に反映されるのは、何れも「am−1 +bn−1 」となる。従って、図1におけるpm+n−1 と、図18におけるpp+n−1 とは同じである。
【0052】
【数11】
Figure 0003612950
【0053】
【数12】
Figure 0003612950
【0054】
なお、図1において、pm+n の演算結果は、破棄される。
以上から、図1に示す2の補数乗算と、図18に示す従来の2の補数乗算とは同じである。
【0055】
図2は、図1に示す演算方法を、4ビットの被乗数Aと4ビットの乗数Bとの2の補数乗算に適用した場合の演算方法を説明するための図である。
この場合には、図2に示すように、4ビットの被乗数A(a,a,a,a)のMSBの上に、そのMSBであるaを付加した5ビットの被乗数A(a,a,a,a,a)と、4ビットの乗数B(b,b,b,b)との2の補数乗算を行ない、積P(p,p,p,p,p,p,p,p)が得られる。ここで、演算結果である積のMSBにある「1」は破棄される。
図2に示すように、aとbとは異なる列に配列され、図18に示す演算方法を適用した場合に比べて、ワーストパス50a,50bの段数を1段だけ削減できる。
ここで、被乗数A(a,a,a,a)が(1,0,1,0)であり、乗数B(b,b,b,b)が(1,1,1,1)である場合には、図3に示すように演算が行なわれ、演算結果の最上位ビットにある「1」が破棄される。
これによって、積P(p,p,p,p,p,p,p,p)が(0,0,0,0,0,1,1,0)となる。
【0056】
図4は、図2に示す2の補数乗算を行なう2の補数乗算回路51である。
図4に示すように、2の補数乗算回路51は、列方向に4個のバッファ回路25,25,25,25が配設され、バッファ回路25,25,25,25の出力端子から、それぞれデータ線35,35,25,25が延びている。また、行方向に5個のバッファ回路25,25,25,25,25が配設され、バッファ回路25,25,25,25,25の出力端子から、それぞれデータ線35,35,35,35,35が延びている。
【0057】
2の補数乗算回路51では、5×4のマトリクス状にAND回路2700〜2743が配設され、AND回路2703,2711,2712,2713,2721,2722,2723,2732,2733,2742,2743に対応して、それぞれ図17(A)に示す構成の加算回路2903,2911,2912,2913,2921,2922,2923,2932,2933,2942,2943が設けられている。
また、AND回路2731,2741に対応して、図17(B)に示す構成の加算回路3331,3341が設けられている。
また、AND回路2700,2701,2702,2703,2713,2723,2733,2743に対応して、それぞれNOT回路3100,3101,3102,3103,3113,3123,3133,3143が設けられている。
さらに、2の補数乗算回路51には、加算回路52が設けられている。加算回路52は、加算回路2903からの和データrと、加算回路2913からの和データrおよびキャリデータrと、加算回路2923からの和データrおよびキャリデータrと、加算回路2933からの和データrおよびキャリデータrと、加算回路2943からのキャリデータrとを入力し、これらから、図2に示す積Pのp,p,p,pを演算して出力する。
なお、図4において、AND回路2710,2721,2732,2743によって本発明の第1の観点の演算装置における第1の乗算手段が構成される。また、加算回路2921,2932,2943によって第1の加算手段が構成される。また、AND回路2700,2711,2722,2733によって、第2の乗算手段が構成される。また、加算回路2911,2922,2923によって第2の加算手段が構成される。
【0058】
以下、図4に示す2の補数乗算回路51の接続状態について説明する。
AND回路2700,2701,2702,2703の一方の入力端子は、データ線35に接続されている。AND回路2700,2701,2702,2703の他方の入力端子は、それぞれNOT回路3100,3101,3102,3103を介して、それぞれデータ線35,35,35,35に接続されている。
AND回路2700,2701,2702の出力端子は、それぞれ加算回路2911,2912,2913のY端子に接続されている。AND回路2703の出力端子は、加算回路2903のX端子に接続されている。
また、加算回路2903のCI端子は、NOT回路3103を介して、データ線35に接続されている。加算回路2903のS端子は、加算回路52に接続され、和データsを加算回路52に出力する。
【0059】
AND回路2710,2711,2712,2713の一方の入力端子は、データ線35に接続されている。AND回路2710,2711,2712,2713の他方の入力端子は、それぞれデータ線35,35,35,35に接続されている。
AND回路2711,2712,2713の出力端子は、それぞれ加算回路2911,2912,2913のX端子に接続されている。AND回路2710の出力端子は、加算回路2921のY端子に接続されている。
また、加算回路2911のCI端子はデータ線35に接続され、CO端子は加算回路2912のCI端子に接続され、S端子は加算回路2922のY端子に接続されている。
また、加算回路2912のCO端子は加算回路2913のCI端子に接続され、S端子は加算回路2923のY端子に接続されている。
また、加算回路2913のCO端子およびS端子は、加算回路52に接続されている。
【0060】
AND回路2720,2721,2722の一方の入力端子は、データ線35に接続されている。AND回路2723の一方の入力端子は、NOT回路3123を介して、データ線35に接続されている。
AND回路2720,2721,2722,2723の他方の入力端子は、それぞれデータ線35,35,35,35に接続されている。
AND回路2721,2722,2723の出力端子は、それぞれ加算回路2921,2922,2923のX端子に接続されている。AND回路2720の出力端子は、加算回路3331のY端子に接続されている。
また、加算回路2921のCI端子は、データ線35に接続され、CO端子は加算回路2922のCI端子に接続され、S端子は加算回路2932のY端子に接続されている。
また、加算回路2922のCO端子は加算回路2923のCI端子に接続され、S端子は加算回路2933のY端子に接続されている。
また、加算回路2923のCO端子およびS端子は、加算回路52に接続されている。
【0061】
AND回路2730,2731,2732の一方の入力端子は、データ線35に接続されている。AND回路2733の一方の入力端子は、NOT回路3133を介して、データ線35に接続されている。
AND回路2730,2731,2732,2733の他方の入力端子は、それぞれデータ線35,35,35,35に接続されている。
AND回路2730の出力端子は、加算回路3341のY端子に接続されている。AND回路2731の出力端子は、加算回路3331のY端子に接続されている。AND回路2732,2733の出力端子は、それぞれ加算回路2932,2933のX端子に接続されている。
また、加算回路3331のCO端子は、加算回路2932のCI端子に接続され、S端子は加算回路2942のY端子に接続されている。
加算回路2932のCO端子は加算回路2933のCI端子に接続され、S端子は加算回路2943のY端子に接続されている。
また、加算回路2933のCO端子およびS端子は、加算回路52に接続されている。
【0062】
AND回路2740,2741,2742の一方の入力端子は、データ線35に接続されている。AND回路2743の一方の入力端子は、NOT回路3143を介して、データ線35に接続されている。
AND回路2740,2741,2742,2743の他方の入力端子は、それぞれデータ線35,35,35,35に接続されている。
AND回路2740の出力端子からは、図2に示す積Pのpが出力される。
AND回路2741の出力端子は、加算回路3341のX端子に接続されている。AND回路2742,2743の出力端子は、それぞれ加算回路2942,2943のX端子に接続されている。
また、加算回路3341のCO端子は、加算回路2942のCI端子に接続され、S端子からは、積Pのpが出力される。
加算回路2942のCO端子は加算回路2943のCI端子に接続され、S端子からは積Pのpが出力される。
また、加算回路2943のCO端子は、加算回路52に接続されている。
【0063】
以下、図4に示す2の補数乗算回路51の動作について説明する。
2の補数乗算回路51では、以下に示すようにして、図2に示す積Pのp〜pを算出する。
〔pの算出〕
バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2740において算出され、その算出結果である「a・b」がAND回路2740の出力端子から、pとして出力される。
【0064】
〔pの算出〕
バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2730において算出され、その算出結果である「a・b」がAND回路2730の出力端子から、加算回路3341のY端子に出力される。
また、バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2741において算出され、その算出結果である「a・b」がAND回路2741の出力端子から、加算回路3341のX端子に出力される。
そして、加算回路3341において、「a・b」と「a・b」との加算が行なわれ、その加算結果である「a・b+a・b」の和データがS端子からpとして出力され、そのキャリデータがCO端子から加算回路2942のCI端子に出力される。
【0065】
〔pの算出〕
バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2720において算出され、その算出結果である「a・b」がAND回路2720の出力端子から、加算回路3331のY端子に出力される。
また、バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2731において算出され、その算出結果である「a・b」がAND回路2731の出力端子から、加算回路3331のX端子に出力される。
そして、加算回路3331において、「a・b」と「a・b」との加算が行なわれ、その加算結果である「a・b+a・b」の和データがS端子から加算回路2942のY端子に出力され、そのキャリデータがCO端子から加算回路2932のCI端子に出力される。
また、バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2742において算出され、その算出結果である「a・b」がAND回路2742の出力端子から、加算回路2942のX端子に出力される。
そして、加算回路2942において、加算回路3341のCO端子からの「a・b+a・b」のキャリデータと、AND回路2742の出力端子からの「a・b」と、加算回路3331のS端子からの「a・b+a・b」の和データとを用いて加算が行なわれ、その加算結果の和データがS端子からpとして出力され、そのキャリデータがCO端子から加算回路2943のCI端子に出力される。
【0066】
〔pの算出〕
バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2721において算出され、その算出結果である「a・b」がAND回路2721の出力端子から、加算回路2921のX端子に出力される。
また、バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2710において算出され、その算出結果である「a・b」がAND回路2710の出力端子から、加算回路2921のX端子に出力される。
また、バッファ回路25を介してデータ線35に印加されたデータbが加算回路2921のCI端子に入力される。
そして、加算回路2921において、AND回路2721の出力端子からの「a・b」と、AND回路2710の出力端子からの「a・b」と、bとを用いて加算が行なわれ、その加算結果の和データが加算回路2932のY端子に出力され、キャリデータが加算回路2922のCI端子に出力される。
【0067】
また、バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2732において算出され、その算出結果である「a・b」がAND回路2732の出力端子から、加算回路2932のX端子に出力される。
そして、加算回路2932において、加算回路2921のS端子からの「a・b」と「a・b」とbとの加算結果の和データと、AND回路2732からの「a・b」と、加算回路3331からのキャリデータとを用いて加算が行なわれ、その加算結果の和データがS端子から加算回路2943のY端子に出力され、キャリデータがCO端子から加算回路2933のCI端子に出力される。
【0068】
また、バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2743において算出され、その算出結果である「a・b」がAND回路2743の出力端子から、加算回路2943のX端子に出力される。
そして、加算回路2943において、加算回路2932の和データと、AND回路2743の出力端子からの「a・b」と、加算回路2942のキャリデータとを用いて加算が行なわれ、その和データがS端子からpとして出力され、そのキャリデータが加算回路52に出力される。
【0069】
上述した演算は、図2に示すワーストパス50bの演算に相当し、AND回路2710,2721,2732,2743において乗算が行なわれ、加算回路2921,2932,2943において加算が行なわれる。
【0070】
〔r,rの算出〕
バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2700において算出され、その算出結果である「a・b」がAND回路2700の出力端子から、加算回路2911のY端子に出力される。
また、バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2711において算出され、その算出結果である「a・b」がAND回路2711の出力端子から、加算回路2911のX端子に出力される。
また、バッファ回路25を介してデータ線35に印加されたデータaが加算回路2911のCI端子に入力される。
そして、加算回路2911において、「a・b」と、「a・b」と、aとを用いて加算が行なわれ、その加算結果の和データが加算回路2922のY端子に出力され、キャリデータが加算回路2912のCI端子に出力される。
【0071】
また、バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2722において算出され、その算出結果である「a・b」がAND回路2722の出力端子から、加算回路2922のX端子に出力される。
そして、加算回路2922において、加算回路2911からの和データと、「a・b」と、加算回路2921のキャリデータとを用いて加算が行なわれ、その加算結果の和データが加算回路2933のY端子に出力され、キャリデータが加算回路2923のCI端子に出力される。
【0072】
また、バッファ回路25を介してデータ線35に印加されたデータaのNOT回路3133による反転a ̄と、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2733において算出され、その算出結果である「a ̄・b」がAND回路2733の出力端子から、加算回路2933のX端子に出力される。
そして、加算回路2933において、加算回路2922の和データと、「a ̄・b」と、加算回路2932のキャリデータとを用いて加算が行なわれ、その和データrがS端子から加算回路52に出力され、そのキャリデータrがCO端子から加算回路52に出力される。
【0073】
上述した演算は、図2に示すワーストパス50aの演算に相当し、AND回路2700,2711,2722,2733において乗算が行なわれ、加算回路2911,2922,2933において加算が行なわれる。
【0074】
〔r,rの算出〕
バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加され、NOT回路3101において反転されたデータb ̄との論理積がAND回路2701において算出され、その算出結果である「a・b ̄」がAND回路2701の出力端子から、加算回路2912のY端子に出力される。
また、バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2712において算出され、その算出結果である「a・b」がAND回路2712の出力端子から、加算回路2912のX端子に出力される。
そして、加算回路2912において、「a・b」と、「a・b」と、加算回路2911のキャリデータとを用いて加算が行なわれ、その加算結果の和データが加算回路2923のY端子に出力され、キャリデータが加算回路2913のCI端子に出力される。
【0075】
また、バッファ回路25を介してデータ線35に印加され、NOT回路3123にて反転されたデータa ̄と、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2723において算出され、その算出結果である「a ̄・b」がAND回路2723の出力端子から、加算回路2923のX端子に出力される。
そして、加算回路2923において、「a ̄・b」と、加算回路2912の和データと、加算回路2922のキャリデータとを用いて加算が行なわれ、その加算結果の和データrおよびキャリデータrが加算回路52に出力される。
【0076】
〔r,rの算出〕
バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加され、NOT回路3102において反転されたデータb ̄との論理積がAND回路2702において算出され、その算出結果である「a・b ̄」がAND回路2702の出力端子から、加算回路2913のY端子に出力される。
また、バッファ回路25を介してデータ線35に印加され,NOT回路3113において反転されたデータa ̄と、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2713において算出され、その算出結果である「a ̄・b」がAND回路2713の出力端子から、加算回路2913のX端子に出力される。
そして、加算回路2913において、「a・b ̄」と、「a ̄・b」と、加算回路2912からのキャリデータとを用いて加算が行なわれ、その加算結果の和データrおよびキャリデータrが加算回路52に出力される。
【0077】
〔rの算出〕
バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2703において算出され、その算出結果である「a・b」がAND回路2703の出力端子から、加算回路2903のX端子に出力される。
また、バッファ回路25を介してデータ線35に印加され,NOT回路3103において反転されたデータa ̄が加算回路2903のCI端子に入力される。
また、バッファ回路25を介してデータ線35に印加され、NOT回路3104において反転されたデータb ̄が加算回路2903のY端子に入力される。そして、加算回路2903において、「a・b」と、a ̄と、b ̄との加算が行なわれ、その加算結果の和データrが加算回路52に出力される。
【0078】
〔p,p,p,pの算出〕
図2に示す積Pのp,p,p,pは、上述した処理によって求められたr〜rを用いて、加算回路52において算出される。
【0079】
以上説明したように、本実施形態のバウウーリの2の補数乗算回路によれば、被乗数と乗数とのビット数が同じであっても、これらのビット数が異なる場合と、ワーストパスを構成する演算の加算段数を同じにすることができる。その結果、従来に比べて、処理時間を短縮化できる。
また、本実施形態によれば、図1に示すように、am−1 とbn−1 とが異なる列に配置されることから、その回路を反復セル型の配列を採用して構成した場合に、回路パターンの規則性を高めることができ、レイアウト設計を容易にすることができる。
【0080】
第2実施形態
本実施形態では、積の演算に、上述した図1に示す2の補数乗算方法採用した2の補数積和演算回路について説明する。
図5は、本実施形態において、4ビットの被乗数Aと4ビットの乗数Bとの2の補数乗算の乗算結果に、9ビットのデータCを加算する場合の演算方法を説明するための図である。
図5において、「60」は、図2に示す部分積と同じである。
図5に示すように、この演算方法では、4ビットの被乗数A(a,a,a,a)のMSBの上位ビットに、MSBであるaを付加した5ビットの被乗数A(a,a,a,a,a)と、4ビットの乗数B(b,b,b,b)との2の補数乗算を行ない、その積に対して、8ビットのデータC(c,c,c,c,c,c,c,c)を加算して、積和演算結果であるP(p,p,p,p,p,p,p,p)を得る。
ここで、2の補数の乗算結果のMSBである「1」は破棄される。
図5において、ワーストパスは、「60a」および「60b」で示される。
【0081】
図6は、図5に示す2の補数積和演算を行なう2の補数積和演算回路61である。
なお、図6において、図4に示す2の補数乗算回路51と同じ構成要素には図4と同一の符号が付してある。
以下、2の補数積和演算回路61と2の補数乗算回路51との相違点のみを説明する。
2の補数乗算回路51とは異なり、2の補数積和演算回路61には、図4に示す加算回路2911,2921,2931,2941,2912,2913が設けられていない。
【0082】
また、2の補数積和演算回路61には、データ線65〜65が設けられている。
また、2の補数積和演算回路61には、2の補数乗算回路51の加算回路2942の代わりに、半加算回路である加算回路3342が設けられている。
また、2の補数積和演算回路61には、図17(A)に示す構成の加算回路2914,2951,2952,2953と、図17(B)に示す構成の半加算回路である加算回路3350と、加算回路3724,3734と、加算回路3944とが、設けられている。
加算回路3724,3734は、それぞれ1ビットの加算対象データを入力する4個の入力端子、CI端子、CO端子および2ビットのS端子を備えている。
加算回路3944は、それぞれ1ビットの加算対象データを入力する3個の入力端子、CI端子、CO端子および2ビットのS端子を備えている。
【0083】
また、2の補数積和演算回路61には、2の補数乗算回路51の加算回路52の代わりに、加算回路62が設けられている。
加算回路62は、加算回路2914からの和データsと、加算回路3724からの和データsおよびキャリデータsと、加算回路3734からの和データsおよびキャリデータsと、加算回路3944からの和データsおよびキャリデータsとを入力し、これらから、図5に示す積Rのr,r,r,rを演算して生成する。
【0084】
以下、図6に示す2の補数積和演算回路61の接続状態について説明する。
ここでは、図4に示す2の補数乗算回路51の接続形態と異なる点を主に説明する。
AND回路2700,2701,2710,2711,2721,2730,2731の出力端子は、それぞれ加算回路2922,2923,2932,2933,2943,2951,2952のY端子に接続されている。
また、AND回路2720の出力端子は、加算回路3342のY端子に接続されている。AND回路2740の出力端子は、加算回路3350のX端子に接続されている。AND回路2741の出力端子は、加算回路2951のCI端子に接続されている。AND回路2702,2713の出力端子は、加算回路3724の入力端子に接続されている。
また、AND回路2712の出力端子は、加算回路3734の入力端子に接続されている。また、AND回路2742の出力端子は、加算回路3342のX端子に接続されている。
【0085】
また、加算回路2922のCI端子は、データ線35に接続されている。加算回路2923のCI端子は、データ線65に接続されている。加算回路2932のCI端子は、データ線35に接続されている。加算回路2933のCI端子は、データ線65に接続されている。加算回路2943のCI端子は、データ線65に接続されている。加算回路3350のY端子は、データ線65に接続されている。加算回路2951のX端子は、データ線65に接続されている。加算回路2952のX端子はデータ線65に接続され、CI端子は加算回路3342のS端子に接続されている。加算回路2953のY端子は加算回路2932のS端子に接続され、Y端子は加算回路3342のCO端子に接続され、CI端子は加算回路2943のS端子に接続されている。
【0086】
また、加算回路2914のY端子は加算回路3724のCO端子に接続され、X端子は加算回路2903のS端子に接続され、CI端子はデータ線65に接続されている。
加算回路3724の4本の入力端子は、それぞれAND回路2713の出力端子、データ線65、AND回路2702の出力端子および加算回路2923のCO端子に接続され、CI端子は加算回路3734のCO端子に接続され、CO端子は加算回路2914のCI端子に接続され、2ビットのS端子は加算回路62に接続されている。
加算回路3734の4本の入力端子は、それぞれ加算回路2923のS端子、加算回路2922のCO端子、AND回路2713の出力端子、データ線65、AND回路2712の出力端子および加算回路2933のCO端子に接続され、CI端子は加算回路3944のCO端子に接続され、CO端子は加算回路3724のCI端子に接続され、2ビットのS端子は加算回路62に接続されている。
【0087】
加算回路3944の3本の入力端子は、それぞれ加算回路2933のS端子、加算回路2932のCO端子および加算回路2922のS端子に接続され、CI端子は加算回路2943のCO端子に接続され、CO端子は加算回路3734のCI端子に接続され、2ビットのS端子は加算回路62に接続されている。
なお、図6において、AND回路2710,2721,2732,2743によって本発明の第2の観点の演算装置における第1の乗算手段が構成される。また、加算回路2932,2943,2953によって第1の加算手段が構成される。また、AND回路2700,2711,2722,2733によって、第2の乗算手段が構成される。また、加算回路2922,2933,3944によって第2の加算手段が構成される。
【0088】
以下、図6に示す2の補数積和演算回路61の動作について説明する。
2の補数積和演算回路61では、以下に示すようにして、図5に示す積和演算結果であるPのp〜pを算出する。
【0089】
〔pの算出〕
加算回路3350において、AND回路2740の出力端子からの「a・b」と、データ線65に印加されたデータcとの加算が行なわれ、その加算結果の和データpがS端子から出力される。また、この加算結果のキャリデータrは、CO端子から加算回路62に出力される。
【0090】
〔pの算出〕
AND回路2741の出力端子からの「a・b」と、データ線65に印加されたcと、AND回路2730の出力端子からの「a・b」とを用いた加算が、加算回路2951において行なわれ、その加算結果の和データpがS端子から出力され、キャリデータrが端子から加算回路62に出力される。
【0091】
〔pの算出〕
加算回路3342において、AND回路2742の出力端子からの「a・b」と、AND回路2720の出力端子からの「a・b」との加算が行なわれ、その加算結果の和データがS端子から加算回路2952のCI端子に出力され、キャリデータがCO端子から加算回路2953のX端子に出力される。
そして、加算回路2952において、加算回路3342からの和データと、データ線65に印加されたcと、AND回路2731の出力端子からの「a・b」との加算が行なわれ、その加算結果の和データpがS端子から出力され、キャリデータrがCO端子から出力される。これらの和データpおよびキャリデータrは、加算回路62に出力される。
【0092】
〔pの算出〕
加算回路3332において、AND回路2732の出力端子からの「a・b」と、AND回路2710の出力端子からの「a・b」と、データ線35に印加されたbとの加算が行なわれ、その加算結果の和データがS端子から加算回路2953のY端子に出力され、キャリデータがCO端子から加算回路3944の入力端子に出力される。
また、加算回路2943において、AND回路2743の出力端子からの「a ̄・b」と、データ線65に印加されたデータcと、AND回路2721の出力端子からの「a・b」との加算が行なわれ、その加算結果の和データがS端子から加算回路2953のCI端子に出力され、キャリデータがCO端子から加算回路3944のCI端子に出力される。
そして、加算回路2953において、加算回路2943からの和データと、加算回路3342からのキャリデータと、加算回路2932からの和データとの加算が行なわれ、その加算結果の和データpがS端子から出力され、キャリデータがCO端子から出力される。これらの和データpおよびキャリデータr10は、加算回路62に出力される。
【0093】
この演算は、図5に示すワーストパス60bを算出する演算に相当し、AND回路2710,2721,2732,2743において乗算が行なわれ、加算回路2932,2943,2953において加算が行なわれる。
【0094】
〔r,rの算出〕
加算回路2922において、AND回路2722の出力端子からの「a・b」と、AND回路2700の出力端子からの「a・b ̄」と、データ線35に印加されたaとの加算が行なわれ、その加算結果の和データがS端子から、加算回路3944の入力端子に出力される。
加算回路2933において、AND回路2733の出力端子からの「a ̄・b」と、AND回路2711の出力端子からの「a・b」と、データ線65に印加されたcとの加算が行なわれ、その加算結果の和データがS端子から、加算回路3944の入力端子に出力される。また、その加算結果のキャリデータが、加算回路3734の入力端子に出力される。
【0095】
そして、加算回路3944において、加算回路2933のS端子からの和データと、加算回路2932のCO端子からのキャリデータと、加算回路2922のS端子からの和データと、加算回路2943のCO端子からのキャリデータとを用いて加算が行なわれ、その2ビットの和データ(r,r)がS端子から加算回路62に出力される。また、CO端子からキャリデータが加算回路3734のCI端子に出力される。
【0096】
この演算は、図5に示すワーストパス60aを算出する演算に相当し、AND回路2700,2711,2722,2733において乗算が行なわれ、加算回路2922,2933,3944において加算が行なわれる。
【0097】
〔r,rの算出〕
加算回路2923において、AND回路2723の出力端子からの「a ̄・b」と、AND回路2701の出力端子からの「a・b ̄」と、データ線65に印加されたcとの加算が行なわれ、その加算結果の和データがS端子から加算回路3734の入力端子に出力され、キャリデータがCO端子から加算回路3724に出力される。
そして、加算回路3734において、加算回路2923のS端子からの和データと、加算回路2922のCO端子からのキャリデータと、AND回路2712の出力端子からの「a・b」と、加算回路2933のCO端子からのキャリデータとを用いて加算が行なわれ、S端子から・2ビットの和データ(r,r)が加算回路62に出力される。また、CO端子からキャリデータが、加算回路3724に出力される。
【0098】
〔r,rの算出〕
加算回路3724において、AND回路2713の出力端子からの「a ̄・b」と、データ線65に印加されたcと、AND回路2702の出力端子からの「a・b ̄」と、加算回路2923のCO端子からのキャリデーアとを用いて加算が行なわれ、S端子から2ビットの和データ(r,r)が加算回路62に出力される。また、CO端子からキャリデータが加算回路2914に出力される。
【0099】
〔rの算出〕
AND回路2703において、AND回路2703からの「a・b」と、データ線35に印加されてAND回路2703によって反転されたa ̄と、Y端子に入力されたb ̄との加算が行なわれ、その加算結果の和データが加算回路2914のX端子に出力される。
そして、加算回路2914において、加算回路2903のS端子からの和データと、データ線65に印加されたcと、加算回路3724からのキャリデータとを用いて加算が行なわれ、その加算結果の和データrが加算回路62に出力される。
【0100】
〔p〜pの算出〕
加算回路62において、p,p,p,r〜r10を用いて、p,p,p,pが算出される。
【0101】
以上説明したように、本実施形態のバウウーリの2の補数積和演算回路によっても、前述した第1実施形態のバウウーリの2の補数乗算回路と同様の効果を得ることができる。
【0102】
第3実施形態
先ず、本実施形態の2の補数乗算回路において採用するバウウーリの2の補数乗算の演算方法について説明する。
図7は、本実施形態のバウウーリの2の補数乗算の演算方法について説明するための図である。
【0103】
この2の補数乗算方法では、mビットの被乗数A(am−1 ,am−2 ,..a,a)と、nビットの乗数B(bn−1 ,bn−2 ,..,b,b)との2の補数乗算を行なう場合に、m=nであるときに、m+1ビットの被乗数A’(am−1 ,am−2 ,..a,a,0)と、nビットの乗数B(bn−1 ,bn−2 ,..,b,b)との2の補数乗算を行なう。
すなわち、mビットの被乗数A(am−1 ,am−2 ,..a,a)の代わりに、被乗数Aの最下位ビット(LSB:Least Significant Bit)の下に、「0」を付加した被乗数A’(am−1 ,am−2 ,..a,a,0)を用いる。
このようにすることで、被乗数Aの語長が1ビットだけ増え、被乗数と乗数との語長が異なるようになる。
その結果、図18に示すようにam−1 とbn−1 とが同じ列で加算されることを回避でき、図7に示すワーストパス16を構成する加算の段数を、図18に示すワーストパス6に比べて、1段減らすことができる。
【0104】
図7において、「12」は被乗数A’を示し、「13」は乗数Bを示し、「14」は部分積の集合を示し、「15」は積P(pm+n−1 ,pm+n−2 ,..,p,p)を示す。
図7に示す2の補数乗算の演算方法では、被乗算数AをLSB方向に1ビット符号拡張した被乗算数A’を用いることから、積PのLSBを削除したものを、2の補数乗算の演算結果とする。
従って、図1に示す「17」の部分は不要となる。
【0105】
以下、図7に示す演算方法と、図18に示す演算方法とが等しいことを示す。図7に示すp〜pm−3 は、それぞれ図18に示すp〜pm−3 に0を加算しているだけなので、それぞれ両者は等しい。
次に、図7に示すpn−2 と、図18に示すpm−2 とで異なるのは、図7において「18」で囲んだ部分である。すなわち、図7に示すpn−2 は、図18に示すpn−2 に、「1・bn−1 」と、bn−1 とを加算したものになっている。ここで、「18」の部分は、bn−1 =0のときに0となり、、bn−1 =1のときにも0となり、1つ上の桁であるpn−1 への桁上げを行う。この桁上げは、図18に示すように、pm−1 にbn−1 の加算を設けることと等しい。そのため、図7に示すpm−2 と、図18に示すpm−2 とは等しい。
【0106】
次に、図7に示すpm−1 と図18に示すpm−1 とは、図18に示すpm−1 にはbn−1 の加算がある点だけが異なる。ここで、図18に示すpm−1 におけるbn−1 の加算には、前述したような意味があるため、pm−1 には影響を及ぼさない。また、p以上のビットについての図7と図18との同一性は図からも明らかなように全く同一の部分積となるため保証される。
【0107】
図8は、図7に示す演算方法を、4ビットの被乗数Aと4ビットの乗数Bとの2の補数乗算に適用した場合の演算方法を説明するための図である。
この場合には、図8に示すように、4ビットの被乗数A(a,a,a,a)のLSBの下に、その「0」を付加した5ビットの被乗数A(a,a,a,a,a)と、4ビットの乗数B(b,b,b,b)との2の補数乗算を行ない、積P(p,p,p,p,p,p,p,p)が得られる。ここで、演算結果である積のLSBにある「0」は破棄される。
【0108】
図8に示すように、aとbとは異なる列に配列され、図18に示す演算方法を適用した場合に比べて、ワーストパス70a,70bの段数を1段だけ削減できる。
ここで、被乗数A(a,a,a,a)が(1,0,1,0)であり、乗数B(b,b,b,b)が(1,1,1,1)である場合には、図9に示すように演算が行なわれ、演算結果の最下位ビットにある「0」が破棄される。
これによって、積P(p,p,p,p,p,p,p,p)が(0,0,0,0,0,1,1,0)となる。この結果は、図3に示す結果と同じである。
【0109】
図10は、図8に示す2の補数乗算を行なう2の補数乗算回路71の構成図である。
なお、図10において、図4に示す2の補数乗算回路51と同じ構成要素には図4と同一の符号が付してある。
図10に示す2の補数乗算回路71の構成は、図4に示す2の補数乗算回路51の構成と共通部分が多いため、異なる部分についてのみ説明する。
図10に示すように、2の補数乗算回路71では、データ線35,35,35,35に、それぞれa,a,a,aが印加される。
2の補数乗算回路71では、加算回路2903のCO端子は、NOT回路3105を介して、加算回路72に接続されている。
また、2の補数乗算回路71には、図4に示す2の補数乗算回路51とは異なり、バッファ回路25と、AND回路2740,2741,2742,2743と、加算回路2942,2943と、NOT回路3143と、加算回路3341とは設けられていない。
また、2の補数乗算回路71には、加算回路3343が設けられ、加算回路3343のX端子がデータ線35に接続され、Y端子が加算回路2932のS端子に接続されている。
さらに、2の補数乗算回路71には、2の補数乗算回路51の加算回路52の代わりに、加算回路72が設けられている。
なお、図10において、AND回路2710,2721,2732によって本発明の第3の観点の演算装置における第1の乗算手段が構成される。また、加算回路2921,2932,3343によって第1の加算手段が構成される。また、AND回路2700,2711,2722,2733によって、第2の乗算手段が構成される。また、加算回路2911,2922,2933,3944によって第2の加算手段が構成される。
【0110】
以下、図10に示す2の補数乗算回路71の動作について説明する。
2の補数乗算回路71では、以下に示すようにして、図8に示す積Pのp〜pを算出する。
〔pの算出〕
バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2730において算出され、その算出結果である「a・b」がAND回路2730の出力端子から、pとして出力される。
【0111】
〔pの算出〕
バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2720において算出され、その算出結果である「a・b」がAND回路2720の出力端子から、加算回路3331のY端子に出力される。
また、バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2731において算出され、その算出結果である「a・b」がAND回路2731の出力端子から、加算回路3331のX端子に出力される。
そして、加算回路3331において、「a・b」と「a・b」との加算が行なわれ、その加算結果である「a・b+a・b」の和データがS端子からpとして出力され、そのキャリデータがCO端子から加算回路2932のCI端子に出力される。
【0112】
〔pの算出〕
バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2710において算出され、その算出結果である「a・b」がAND回路2710の出力端子から、加算回路2921のY端子に出力される。
また、バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2721において算出され、その算出結果である「a・b」がAND回路2721の出力端子から、加算回路2921のX端子に出力される。
また、データ線35に印加されたデータbが、加算回路2921のCI端子に入力される。
【0113】
そして、加算回路2921において、「a・b」と、「a・b」と、bとの加算が行なわれ、その加算結果の和データがS端子から加算回路2932のY端子に出力され、キャリデータがCO端子から加算回路2922のCI端子に出力される。
また、AND回路2732において、データ線35に印加されたデータaと、データ線35に印加されたデータbとの論理積が演算され、その算出結果である「a・b」が、出力端子から加算回路2932のX端子に出力される。そして、加算回路2932において、加算回路2921からの和データと、加算回路3331からのキャリデータと、AND回路2732からの和データとの加算が行なわれ、その加算結果の和データがS端子から加算回路3343のY端子に出力され、そのキャリデータがCO端子から加算回路2933のCI端子に出力される。次に、加算回路3343において、加算回路2932からの和データと、データ線35に印加されたデータbとの加算が行なわれ、その加算結果の和データがpとして出力され、キャリデータが加算回路72にrとして出力される。
【0114】
上述した演算は、図8に示すワーストパス70bに相当し、AND回路2710,2721,2732,において乗算が行われ、加算回路2921,2932,3343において加算が行われる。
【0115】
〔r,rの算出〕
バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されてNOT回路3100において反転されたデータb ̄との論理積がAND回路2700において算出され、その算出結果である「a・b ̄」がAND回路2700の出力端子から、加算回路2911のY端子に出力される。
また、バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2711において算出され、その算出結果である「a・b」がAND回路2711の出力端子から、加算回路2911のX端子に出力される。
また、バッファ回路25を介してデータ線35に印加されたデータaが加算回路2911のCI端子に入力される。
そして、加算回路2911において、「a・b ̄」と、「a・b」と、aとを用いて加算が行なわれ、その加算結果の和データが加算回路2922のY端子に出力され、キャリデータが加算回路2912のCI端子に出力される。
【0116】
また、バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2722において算出され、その算出結果である「a・b」がAND回路2722の出力端子から、加算回路2922のX端子に出力される。
そして、加算回路2922において、加算回路2911からの和データと、「a・b」と、加算回路2921のキャリデータとを用いて加算が行なわれ、その加算結果の和データが加算回路2933のY端子に出力され、キャリデータが加算回路2923のCI端子に出力される。
【0117】
また、バッファ回路25を介してデータ線35に印加されたデータaのNOT回路3133による反転a ̄と、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2733において算出され、その算出結果である「a ̄・b」がAND回路2733の出力端子から、加算回路2933のX端子に出力される。
そして、加算回路2933において、加算回路2922の和データと、「a ̄・b」と、加算回路2932のキャリデータとを用いて加算が行なわれ、その和データrがS端子から加算回路52に出力され、そのキャリデータrがCO端子から加算回路52に出力される。
【0118】
上述した演算は、図8に示すワーストパス70aの演算に相当し、AND回路2700,2711,2722,2733において乗算が行なわれ、加算回路2911,2922,2933において加算が行なわれる。
【0119】
〔r,rの算出〕
バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加され、NOT回路3101において反転されたデータb ̄との論理積がAND回路2701において算出され、その算出結果である「a・b ̄」がAND回路2701の出力端子から、加算回路2912のY端子に出力される。
また、バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2712において算出され、その算出結果である「a・b」がAND回路2712の出力端子から、加算回路2912のX端子に出力される。
そして、加算回路2912において、「a・b ̄」と、「a・b」と、加算回路2911のキャリデータとを用いて加算が行なわれ、その加算結果の和データが加算回路2923のY端子に出力され、キャリデータが加算回路2913のCI端子に出力される。
【0120】
また、バッファ回路25を介してデータ線35に印加され、NOT回路3123にて反転されたデータa ̄と、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2723において算出され、その算出結果である「a ̄・b」がAND回路2723の出力端子から、加算回路2923のX端子に出力される。
そして、加算回路2923において、「a ̄・b」と、加算回路2912の和データと、加算回路2922のキャリデータとを用いて加算が行なわれ、その加算結果の和データrおよびキャリデータrが加算回路52に出力される。
【0121】
〔r,rの算出〕
バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加され、NOT回路3102において反転されたデータb ̄との論理積がAND回路2702において算出され、その算出結果である「a・b ̄」がAND回路2702の出力端子から、加算回路2913のY端子に出力される。
また、バッファ回路25を介してデータ線35に印加され,NOT回路3113において反転されたデータa ̄と、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2713において算出され、その算出結果である「a ̄・b」がAND回路2713の出力端子から、加算回路2913のX端子に出力される。
そして、加算回路2913において、「a・b ̄」と、「a ̄・b」と、加算回路2912からのキャリデータとを用いて加算が行なわれ、その加算結果の和データrおよびキャリデータrが加算回路52に出力される。
【0122】
〔rの算出〕
バッファ回路25を介してデータ線35に印加されたデータaと、バッファ回路25を介してデータ線35に印加されたデータbとの論理積がAND回路2703において算出され、その算出結果である「a・b」がAND回路2703の出力端子から、加算回路2903のX端子に出力される。
また、バッファ回路25を介してデータ線35に印加され,NOT回路3103において反転されたデータa ̄が加算回路2903のCI端子に入力される。
また、バッファ回路25を介してデータ線35に印加され、NOT回路3104において反転されたデータb ̄が加算回路2903のY端子に入力される。そして、加算回路2903において、「a・b」と、a ̄と、b ̄との加算が行なわれ、その加算結果の和データrが加算回路52に出力される。
また、加算回路2903のCO端子からのキャリデータが、NOT回路3105において反転された後に、rとして加算回路72に出力される。
【0123】
〔p,p,p,p,pの算出〕
図2に示す積Pのp,p,p,pは、上述した処理によって求められたr〜rを用いて、加算回路72において算出される。
【0124】
以上説明したように、本実施形態のバウウーリの2の補数乗算回路によっても、前述した第1実施形態と同様の効果を得ることができる。
【0125】
第4実施形態
本実施形態では、積の演算に、上述した図7に示す2の補数乗算方法採用した2の補数積和演算回路について説明する。
図11は、本実施形態において、4ビットの被乗数Aと4ビットの乗数Bとの2の補数乗算の乗算結果に、9ビットのデータCを加算する場合の演算方法を説明するための図である。
図11において、「80」は、図8に示す部分積と同じである。
図11に示すように、この演算方法では、4ビットの被乗数A(a,a,a,a)のLSBの下位ビットに、「0」を付加した5ビットの被乗数A(a,a,a,a,0)と、4ビットの乗数B(b,b,b,b)との2の補数乗算を行ない、その積に対して、8ビットのデータC(c,c,c,c,c,c,c,c)を加算して、積和演算結果であるP(p,p,p,p,p,p,p,p)を得る。
ここで、2の補数の乗算結果のLSBである「0」は破棄される。
【0126】
図12は、図11に示す2の補数積和演算を行なう2の補数積和演算回路81である。
なお、図12において、図6に示す2の補数乗算回路61と同じ構成要素には図6と同一の符号が付してある。
以下、2の補数積和演算回路81と2の補数積和演算回路61との相違点のみを説明する。
先ず、2の補数積和演算回路81には、データcが印加されるデータ線65が設けられている。
2の補数積和演算回路81では、データ線35,35,35,35,35,35,35,35に、それぞれb,b,b,b,a,a,a,aが印加される。
また、データ線65,65,65,65,65,65,65,65にそれぞれc,c,c,c,c,c,c,cが印加される。
【0127】
また、2の補数積和演算回路81には、加算回路3304が設けられている。加算回路3304の一方のY端子は加算回路2903のCO端子に接続され、X端子はデータ線65に接続されている。加算回路3304の出力端子は、加算回路82に接続されている。
【0128】
また、2の補数積和演算回路81には、加算回路3360,2961,3362,2954が設けられている。
また、加算回路3360のX端子はAND回路2730の出力端子に接続され、Y端子はデータ線65に接続されている。
加算回路2961のCI端子はAND回路2720の出力端子に接続され、X端子はデータ線65に接続され、Y端子はAND回路2731の出力端子に接続されている。加算回路2961のCO端子およびS端子は、加算回路82に接続されている。
加算回路3362のX端子は加算回路2954のS端子に接続され、Y端子に加算回路2932のS端子に接続されている。加算回路2962のCO端子およびS端子は、加算回路82に接続されている。
【0129】
加算回路2954のCI端子はデータ線65に接続され、X端子はデータ線35に接続され、Y端子はAND回路2721の出力端子に接続されている。加算回路2954のCO端子は加算回路3944のCI端子に接続され、S端子は加算回路3362のCI端子に接続されている。
なお、図12において、AND回路2710,2721,2732によって本発明の第4の観点の演算装置における第1の乗算手段が構成される。また、加算回路2932,2954,3362によって第1の加算手段が構成される。また、AND回路2700,2711,2722,2733によって、第2の乗算手段が構成される。また、加算回路2922,2933,3944によって第2の加算手段が構成される。
【0130】
以下、図6に示す2の補数積和演算回路61の動作について説明する。
2の補数積和演算回路61では、以下に示すようにして、図5に示す積和演算結果であるPのp〜pを算出する。
〔pの算出〕
加算回路3360において、AND回路2730の出力端子からの「a・b」と、データ線65に印加されたデータcとの加算が行なわれ、その加算結果の和データpがS端子から出力される。また、この加算結果のキャリデータrは、CO端子から加算回路82に出力される。
【0131】
〔r10の算出〕
AND回路2731の出力端子からの「a・b」と、データ線65に印加されたcと、AND回路2720の出力端子からの「a・b」とを用いた加算が、加算回路2961において行なわれ、その加算結果の和データr10がS端子から出力され、キャリデータr11が端子から加算回路82に出力される。
【0132】
〔r12の算出〕
加算回路3332において、AND回路2732の出力端子からの「a・b」と、AND回路2710の出力端子からの「a・b」との加算が行なわれ、その加算結果の和データがS端子から加算回路3362のY端子に出力され、キャリデータがCO端子から加算回路3944の入力端子に出力される。
また、加算回路2954において、データ線35に印加されたデータbと、データ線65に印加されたデータcと、AND回路2721からの「a・b」との加算が行なわれ、その加算結果の和データが加算回路3362のX端子に出力される。また、そのキャリデータが、加算回路3944のCI端子に出力される。
そして、加算回路2962において、加算回路3332からの和データと、加算回路2954からの和データとの加算が行なわれ、その加算結果「a・b+a・b+b+c+a・b」の和データr12がS端子から出力され、キャリデータr13がCO端子から出力される。これらの和データr12およびキャリデータr13は、加算回路82に出力される。
この演算は、図11に示すワーストパス80bを算出する演算に相当し、AND回路2710,2721,2732において乗算が行なわれ、加算回路2932,2954において加算が行なわれる。
【0133】
〔r,rの算出〕
加算回路2922において、AND回路2722の出力端子からの「a・b」と、AND回路2700の出力端子からの「a・b ̄」と、データ線35に印加されたaとの加算が行なわれ、その加算結果の和データがS端子から、加算回路3944の入力端子に出力される。
加算回路2933において、AND回路2733の出力端子からの「a ̄・b」と、AND回路2711の出力端子からの「a・b」と、データ線65に印加されたcとの加算が行なわれ、その加算結果の和データがS端子から、加算回路3944の入力端子に出力される。また、その加算結果のキャリデータが、加算回路3734の入力端子に出力される。
【0134】
そして、加算回路3944において、加算回路2933のS端子からの和データと、加算回路2932のCO端子からのキャリデータと、加算回路2922のS端子からの和データと、加算回路2954のCO端子からのキャリデータとを用いて加算が行なわれ、その2ビットの和データ(r,r)がS端子から加算回路82に出力される。また、CO端子からキャリデータが加算回路3734のCI端子に出力される。
【0135】
この演算は、図11に示すワーストパス80aを算出する演算に相当し、AND回路2700,2711,2722,2733において乗算が行なわれ、加算回路2922,2933,3944において加算が行なわれる。
【0136】
〔r,rの算出〕
加算回路2923において、AND回路2723の出力端子からの「a ̄・b」と、AND回路2701の出力端子からの「a・b ̄」と、データ線65に印加されたcとの加算が行なわれ、その加算結果の和データがS端子から加算回路3734の入力端子に出力され、キャリデータがCO端子から加算回路3724に出力される。
そして、加算回路3734において、加算回路2923のS端子からの和データと、加算回路2922のCO端子からのキャリデータと、AND回路2712の出力端子からの「a・b」と、加算回路2933のCO端子からのキャリデータとを用いて加算が行なわれ、S端子から・2ビットの和データ(r,r)が加算回路82に出力される。また、CO端子からキャリデータが、加算回路3724に出力される。
【0137】
〔r,rの算出〕
加算回路3724において、AND回路2713の出力端子からの「a ̄・b」と、データ線65に印加されたcと、AND回路2702の出力端子からの「a・b ̄」と、加算回路2923のCO端子からのキャリデーアとを用いて加算が行なわれ、S端子から2ビットの和データ(r,r)が加算回路82に出力される。また、CO端子からキャリデータが加算回路2914に出力される。
【0138】
〔r,rの算出〕
AND回路2703において、AND回路2703からの「a・b」と、データ線35に印加されてNOT回路3103によって反転されたa ̄と、データ線35に印加されてNOT回路3104によって反転されたb ̄との加算が行なわれ、その加算結果の和データが加算回路2914のX端子に出力される。
そして、加算回路2914において、加算回路2903のS端子からの和データと、データ線65に印加されたcと、加算回路3724からのキャリデータとを用いて加算が行なわれ、その加算結果の和データrおよびキャリデータsが加算回路82に出力される。
【0139】
〔rの算出〕
加算回路3304において、加算回路2903のCO端子からキャリデータと、データ線65に印加されたCとの加算が行なわれ、その加算結果の和データがS端子から加算回路82に出力される。
【0140】
〔p〜pの算出〕
加算回路82において、入力したr〜r13を用いて、p〜pが算出される。
【0141】
以上説明したように、本実施形態のバウウーリの2の補数積和演算回路によっても、前述した第1実施形態と同様の効果を得ることができる。
【0142】
本発明は上述した実施形態には限定されない。上述した実施形態では、4ビットの被乗数A(a,a,a,a)と4ビットの乗数B(b,b,b,b)との間でバウウーリの2の補数乗算を行なう回路について例示したが、本発明は、同一語長の任意のビット数の被乗数と乗数との間でバウウーリの2の補数乗算を行なう回路にも適用できる。
なた、本発明は、上述した回路構成に、被乗数Aと乗数Bとの語長が異なる場合のバウウーリの2の補数乗算を行なう回路構成を組み合わせてもよい。
【0143】
【発明の効果】
以上説明したように、本発明の演算装置およびその方法によれば、被乗数と乗数とのビット数が同じであっても、これらのビット数が異なる場合と、ワーストパスを構成する演算の加算段数を同じにすることができる。その結果、従来に比べて、処理時間を短縮化できる。
また、本発明の演算装置によれば、その回路を反復セル型の配列を採用して構成した場合に、回路パターンの規則性を高めることができ、レイアウト設計を容易にすることができる。
【図面の簡単な説明】
【図1】図1は、本発明の第1実施形態に係わるバウウーリの2の補数乗算の演算方法を説明するための図である。
【図2】図2は、図1に示す演算方法を、4ビットの被乗数Aと4ビットの乗数Bとの2の補数乗算に適用した場合の演算方法を説明するための図である。
【図3】図3は、図2に示す演算方法を用いた具体的な演算例である。
【図4】図4は、本発明の第1実施形態に係わるバウウーリの2の補数乗算回路の回路図である。
【図5】図5は、本発明の第2実施形態に係わるバウウーリの2の補数積和演算回路における演算方法を説明するための図である。
【図6】図6は、本発明の第2実施形態に係わるバウウーリの2の補数積和演算回路の回路図である。
【図7】図7は、本発明の第3実施形態に係わるバウウーリの2の補数乗算の演算方法を説明するための図である。
【図8】図8は、図7に示す演算方法を、4ビットの被乗数Aと4ビットの乗数Bとの2の補数乗算に適用した場合の演算方法を説明するための図である。
【図9】図9は、図8に示す演算方法を用いた具体的な演算例である。
【図10】図10は、本発明の第3実施形態に係わるバウウーリの2の補数乗算回路の回路図である。
【図11】図11は、本発明の第4実施形態に係わるバウウーリの2の補数積和演算回路における演算方法を説明するための図である。
【図12】図12は、本発明の第4実施形態に係わるバウウーリの2の補数積和演算回路の回路図である。
【図13】図13は、従来のバウウーリの2の補数乗算の演算方法を説明するための図である。
【図14】図14は、図13に示す従来のバウウーリの2の補数乗算の演算方法の変形例を説明するための図である。
【図15】図15は、図14に示す演算方法を、6ビットの被乗数Aと4ビットの乗数Bとの2の補数乗算に適用した場合の演算方法を説明するための図である。
【図16】図15に示す演算を行う従来のバウウーリの2の補数乗算回路の回路図である。
【図17】図17は、図16に示す加算回路の入出力端子を説明するための図である。
【図18】図18は、被乗数Aと乗数Bとのビット数が同じ場合における図15に示す演算方法を説明するための図である。
【図19】図19は、図18に示す演算方法を、4ビットの被乗数Aと4ビットの乗数Bとの2の補数乗算に適用した場合の演算方法を説明するための図である。
【図20】図20は、図19に示す演算方法を用いた具体的な演算例である。
【図21】図21は、図19に示す演算方法を採用したバウウーリの2の補数乗算回路の回路図である。
【符号の説明】
25…バッファ回路、27…AND回路、31=NOT回路、35…データ線、29,33,37,3952,62,72,82…加算回路51,71…2の補数乗算回路、61,81…2の補数積和演算回路

Claims (24)

  1. m(2以上の自然数)ビットの被乗数A(am−1 ,am−2 ,..,a,a)と、n(2以上の自然数)ビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって、m+nビットの積P(pm+n−1 m+n−2 ,..,p,pm−1 ,..,p,p)を算出する演算装置において、
    1≦q≦m−1の条件を満たす全ての自然数qについての部分積「a・bm−1−q 」と、部分積「a ̄・bn−1 」とを算出する第1の乗算手段と、
    前記第1の乗算手段によって算出された全ての部分積と、bn−1 と、pm−2 を算出する際のキャリデータとの加算を行なってpm−1 を算出する第1の加算手段と、
    2≦q≦m−1の条件を満たす全ての自然数qについての部分積「a・bm−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」とを算出する第2の乗算手段と、
    前記第2の乗算手段によって算出された全ての部分積と、am−1 と、前記第1の加算手段からのキャリデータとの加算を行なってpを算出する第2の加算手段と
    を有し、
    m=nの場合に、
    m+1ビットの被乗数A’(am−1 ,am−1 ,am−2 ,..,a,a)と、nビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行う
    演算装置。
  2. 前記被乗数A’と前記乗数Bとを2の補数乗算して得られた積P’(pm+n ,pm+n−1 m+n−2 ,..,p,pm−1 ,..,p,p)のうち、最上位ビットのpm+n を除く残りのビットを用いて、前記積Pを得る
    請求項1に記載の演算装置。
  3. 前記2の補数乗算は、バウウーリの2の補数乗算である
    請求項1に記載の演算装置。
  4. m(2以上の自然数)ビットの被乗数A(am−1 ,am−2 ,..,a,a)と、n(2以上の自然数)ビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって、m+nビットの積R(rm+n−1 m+n−2 ,..,r,rm−1 ,..,r,r)を算出し、前記積Rと、m+nビットのデータC(cm+n−1 m+n−2 ,..,c,cm−1 ,..,c,c)とを加算する演算装置において、
    1≦q≦m−1の条件を満たす全ての自然数qについての部分積「a・bm−1−q 」と、部分積「a ̄・bn−1 」とを算出する第1の乗算手段と、
    前記第1の乗算手段によって算出された全ての部分積と、bn−1 と、cm−1 と、pm−2 を算出する際のキャリデータとの加算を行なってpm−1 を算出する第1の加算手段と、
    2≦q≦m−1の条件を満たす全ての自然数qについての部分積「a・bm−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」とを算出する第2の乗算手段と、
    前記第2の乗算手段によって算出された全ての部分積と、am−1 と、cと、前記第1の加算手段からのキャリデータとの加算を行なってpを算出する第2の加算手段と
    を有し、
    m=nの場合に、
    m+1ビットの被乗数A’(am−1 ,am−1 ,am−2 ,..,a,a)と、nビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって前記積Rを算出し、前記積Rと前記データCとを加算する
    演算装置。
  5. 前記被乗数A’と前記乗数Bとを2の補数乗算して得られた積R’(rm+n ,rm+n−1 m+n−2 ,..,r,rm−1 ,..,r,r)のうち、最上位ビットのrm+n を除く残りのビットを用いて、前記積Rを得る
    請求項4に記載の演算装置。
  6. 前記2の補数乗算は、バウウーリの2の補数乗算である
    請求項4に記載の演算装置。
  7. m(2以上の自然数)ビットのA(am−1 ,am−2 ,..,a,a)と、n(2以上の自然数)ビットのB(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行い、m+nビットの積P(pm+n−1 m+n−2 ,..,p,pm−1 ,..,p,p)を算出する演算装置において、
    0≦q≦m−2の条件を満たす全ての自然数qについての部分積「a・bm−2−q 」と、部分積「1・bn−1 」とを算出する第1の乗算手段と、
    前記第1の乗算手段によって算出された全ての部分積と,bn−1 と,pm−2 を算出する際のキャリデータとの加算を行なってpm−1 を算出する第1の加算手段と、
    1≦q≦m−2の条件を満たす全ての自然数qについての部分積「a・bm−1−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」とを算出する第2の乗算手段と、
    前記第2の乗算手段によって算出された全ての部分積と、am−1 と、前記第1の加算手段からのキャリデータとの加算を行なって、pを算出する第2の加算手段とを有し、
    m=nの場合に、
    m+1ビットの被乗数A’(am−1 ,am−2 ,..,a,a,0)と、nビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行う
    演算装置。
  8. 前記被乗数A’と前記乗数Bとを2の補数乗算して得られた積P’(pm+n−1 m+n−2 ,..,p,pm−1 ,..,p,p,0)のうち、最下位ビットの0を除く残りのビットを用いて、前記積Pを得る
    請求項7に記載の演算装置。
  9. 前記2の補数乗算は、バウウーリの2の補数乗算である
    請求項7に記載の演算装置。
  10. m(2以上の自然数)ビットの被乗数A(am−1 ,am−2 ,..,a,a)と、n(2以上の自然数)ビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって、m+nビットの積R(rm+n−1 m+n−2 ,..,r,rm−1 ,..,r,r)を算出し、前記積Rと、m+nビットのデータC(cm+n−1 m+n−2 ,..,c,cm−1 ,..,c,c)とを加算する演算装置において、
    0≦q≦m−2の条件を満たす全ての自然数qについての部分積「a・bm−2−q 」と、部分積「1・bn−1 」とを算出する第1の乗算手段と、
    前記第1の乗算手段によって算出された全ての部分積と、bn−1 と、cm−1 と、pm−2 を算出する際のキャリデータとの加算を行なってpm−1 を算出する第1の加算手段と、
    1≦q≦m−2の条件を満たす全ての自然数qについての部分積「a・bm−1−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」とを算出する第2の乗算手段と、
    前記第2の乗算手段によって算出された全ての部分積と、am−1 と、cと、前記第1の加算手段からのキャリデータとの加算を行なってpを算出する第2の加算手段
    とを有し、
    m=nの場合に、
    m+1ビットの被乗数A’(am−1 ,am−2 ,..,a,a,0)と、nビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって前記積Rを算出し、前記積Rと前記データCとを加算する
    演算装置。
  11. 前記被乗数A’と前記乗数Bとを2の補数乗算して得られた積R’(rm+n−1 m+n−2 ,..,r,rm−1 ,..,r,r,0)のうち、最下位ビットの0を除く残りのビットを用いて、前記積Rを得る
    請求項10に記載の演算装置。
  12. 前記2の補数乗算は、バウウーリの2の補数乗算である
    請求項10に記載の演算装置。
  13. 複数の乗算回路と複数の加算回路とを用いて、m(2以上の自然数)ビットの被乗数A(am−1 ,am−2 ,..,a,a)と、n(2以上の自然数)ビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって、m+nビットの積P(pm+n−1 m+n−2 ,..,p,pm−1 ,..,p,p)を算出する演算方法において、
    m=nの場合に、
    m+1ビットの被乗数A’(am−1 ,am−1 ,am−2 ,..,a,a)と、nビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行うために、
    1≦q≦m−1の条件を満たす全ての自然数qについての部分積「a・bm−1−q 」と、部分積「a ̄・bn−1 」とを算出し、
    前記算出された全ての部分積「a・bm−1−q 」および部分積「a ̄・bn−1 」と、bn−1 と、pm−2 を算出する際のキャリデータとの加算を行なってpm−1 を算出し、
    2≦q≦m−1の条件を満たす全ての自然数qについての部分積「a・bm−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」とを算出し、前記算出された全ての部分積「a・bm−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」と、am−1 と、前記pm−1 を算出する際のキャリデータとの加算を行なってpを算出する
    演算方法。
  14. 前記被乗数A’と前記乗数Bとを2の補数乗算して得られた積P’(pm+n ,pm+n−1 m+n−2 ,..,p,pm−1 ,..,p,p)のうち、最上位ビットのpm+n を除く残りのビットを用いて、前記積Pを得る
    請求項13に記載の演算方法。
  15. 前記2の補数乗算は、バウウーリの2の補数乗算である
    請求項13に記載の演算方法。
  16. 複数の乗算回路と加算回路とを用いて、m(2以上の自然数)ビットの被乗数A(am−1 ,am−2 ,..,a,a)と、n(2以上の自然数)ビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって、m+nビットの積R(rm+n−1 m+n−2 ,..,r,rm−1 ,..,r,r)を算出し、前記積Rと、m+nビットのデータC(cm+n−1 m+n−2 ,..,c,cm−1 ,..,c,c)とを加算する演算方法において、
    m=nの場合に、
    m+1ビットの被乗数A’(am−1 ,am−1 ,am−2 ,..,a,a)と、nビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって前記積Rを算出し、前記積Rと前記データCとを加算するために、
    1≦q≦m−1の条件を満たす全ての自然数qについての部分積「a・bm−1−q 」と、部分積「a ̄・bn−1 」とを算出し、
    前記算出された全ての部分積「a・bm−1−q 」と、部分積「a ̄・bn−1 」と、bn−1 と、cm−1 と、pm−2 を算出する際のキャリデータとの加算を行なってpm−1 を算出し、
    2≦q≦m−1の条件を満たす全ての自然数qについての部分積「a・bm−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」とを算出し、前記算出された全ての部分積「a・bm−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」と、am−1 と、cと、pm−1 を算出する際のキャリデータとの加算を行なってpを算出する
    演算方法。
  17. 前記被乗数A’と前記乗数Bとを2の補数乗算して得られた積R’(rm+n ,rm+n−1 m+n−2 ,..,r,rm−1 ,..,r,r)のうち、最上位ビットのrm+n を除く残りのビットを用いて、前記積Rを得る
    請求項16に記載の演算方法。
  18. 前記2の補数乗算は、バウウーリの2の補数乗算である
    請求項16に記載の演算方法。
  19. 複数の乗算回路と複数の加算回路とを用いて、m(2以上の自然数)ビットのA(am−1 ,am−2 ,..,a,a)と、n(2以上の自然数)ビットのB(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって、m+nビットの積P(pm+n−1 m+n−2 ,..,p,pm−1 ,..,p,p)を算出する演算方法において、
    m=nの場合に、
    m+1ビットの被乗数A’(am−1 ,am−2 ,..,a,a,0)と、nビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行うために、
    0≦q≦m−2の条件を満たす全ての自然数qについての部分積「a・bm−2−q 」と、部分積「1・bn−1 」とを算出し、
    前記算出された全ての部分積「a・bm−2−q 」と、部分積「1・bn−1 」と、bn−1 と,pm−2 を算出する際のキャリデータとの加算を行なってpm−1 を算出し、
    1≦q≦m−2の条件を満たす全ての自然数qについての部分積「a・bm−1−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」とを算出し、前記算出された全ての部分積「a・bm−1−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」と、am−1 と、前記pm−1 を算出する際のキャリデータとの加算を行なってpを算出する
    演算方法。
  20. 前記被乗数A’と前記乗数Bとを2の補数乗算して得られた積P’(pm+n−1 m+n−2 ,..,p,pm−1 ,..,p,p,0)のうち、最下位ビットの0を除く残りのビットを用いて、前記積Pを得る
    請求項19に記載の演算方法。
  21. 前記2の補数乗算は、バウウーリの2の補数乗算である
    請求項19に記載の演算方法。
  22. 複数の乗算回路と複数の加算回路を用いて、(2以上の自然数)ビットの被乗数A(am−1 ,am−2 ,..,a,a)と、n(2以上の自然数)ビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行い、m+nビットの積R(rm+n−1 m+n−2 ,..,r,rm−1 ,..,r,r)を算出し、前記積Rと、m+nビットのデータC(cm+n−1 m+n−2 ,..,c,cm−1 ,..,c,c)とを加算する演算方法において、
    m=nの場合に、
    m+1ビットの被乗数A’(am−1 ,am−2 ,..,a,a,0)と、nビットの乗数B(bm−1 ,bm−2 ,..,b,b)との2の補数乗算を行なって前記積Rを算出し、前記積Rと前記データCとを加算するために、
    0≦q≦m−2の条件を満たす全ての自然数qについての部分積「a・bm−2−q 」と、部分積「1・bn−1 」とを算出し、
    前記算出された全ての部分積「a・bm−2−q 」と、部分積「1・bn−1 」と、bn−1 と、cm−1 と、pm−2 を算出する際のキャリデータとの加算を行なってpm−1 を算出し、
    1≦q≦m−2の条件を満たす全ての自然数qについての部分積「a・bm− 1−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」とを算出し、前記算出された全ての部分積「a・bm−1−q 」と、部分積「am−1 ・b ̄」、部分積「a ̄・bn−1 」と、am−1 と、cと、pm−1 を算出する際のキャリデータとの加算を行なってpを算出する
    演算方法。
  23. 前記被乗数A’と前記乗数Bとを2の補数乗算して得られた積R’(rm+n−1 m+n−2 ,..,r,rm−1 ,..,r,r,0)のうち、最下位ビットの0を除く残りのビットを用いて、前記積Rを得る
    請求項22に記載の演算方法。
  24. 前記2の補数乗算は、バウウーリの2の補数乗算である
    請求項22に記載の演算方法。
JP20666097A 1997-07-31 1997-07-31 演算装置およびその方法 Expired - Fee Related JP3612950B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20666097A JP3612950B2 (ja) 1997-07-31 1997-07-31 演算装置およびその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20666097A JP3612950B2 (ja) 1997-07-31 1997-07-31 演算装置およびその方法

Publications (2)

Publication Number Publication Date
JPH1153172A JPH1153172A (ja) 1999-02-26
JP3612950B2 true JP3612950B2 (ja) 2005-01-26

Family

ID=16527032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20666097A Expired - Fee Related JP3612950B2 (ja) 1997-07-31 1997-07-31 演算装置およびその方法

Country Status (1)

Country Link
JP (1) JP3612950B2 (ja)

Also Published As

Publication number Publication date
JPH1153172A (ja) 1999-02-26

Similar Documents

Publication Publication Date Title
JP2000259394A (ja) 浮動小数点乗算器
JPS6217770B2 (ja)
JPH05233228A (ja) 浮動小数点演算装置およびその演算方法
JPH0612229A (ja) 乗累算回路
JP3139466B2 (ja) 乗算器及び積和演算器
JP3276444B2 (ja) 除算回路
JP3436994B2 (ja) シフト装置
JP3556950B2 (ja) 高速算術演算装置のけた上げ先見加算器段の数を減少させる構造及び方法
JPH04205026A (ja) 除算回路
EP1049002A2 (en) Method and apparatus for efficient calculation of an approximate square of a fixed-precision number
JP3612950B2 (ja) 演算装置およびその方法
KR19990074385A (ko) 부동소수점 곱셈기에서 반올림과 덧셈을 동시에 수행하는 장치및 방법
JP3190826B2 (ja) 積和演算装置
JP3019796B2 (ja) 乗算器
JP4042215B2 (ja) 演算処理装置およびその方法
US5416733A (en) Apparatus for finding quotient in a digital system
JP2777265B2 (ja) 高基数開平演算装置
JP2734438B2 (ja) 乗算装置
JP3610564B2 (ja) 情報処理装置
JP3198868B2 (ja) 乗算処理装置
JP3130797B2 (ja) 積和演算処理方法およびその装置
GB2189630A (en) Multiplier
JP3153656B2 (ja) 乗算器
JP3077880B2 (ja) スティッキービット検出回路
JPH0527948A (ja) 演算装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040921

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041018

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

Free format text: PAYMENT UNTIL: 20071105

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081105

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091105

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees