JPH0784763A - 乗算回路 - Google Patents

乗算回路

Info

Publication number
JPH0784763A
JPH0784763A JP5224129A JP22412993A JPH0784763A JP H0784763 A JPH0784763 A JP H0784763A JP 5224129 A JP5224129 A JP 5224129A JP 22412993 A JP22412993 A JP 22412993A JP H0784763 A JPH0784763 A JP H0784763A
Authority
JP
Japan
Prior art keywords
multiplication
bits
multiplier
bit
modified
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.)
Granted
Application number
JP5224129A
Other languages
English (en)
Other versions
JP3435744B2 (ja
Inventor
Takashi Imaizumi
隆 今泉
Tadashi Saito
正 斎藤
Toshiharu Katsuki
俊治 香月
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.)
Fujitsu Ltd
Fujitsu Electronics Inc
Original Assignee
Fujitsu Ltd
Fujitsu Electronics Inc
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 Fujitsu Ltd, Fujitsu Electronics Inc filed Critical Fujitsu Ltd
Priority to JP22412993A priority Critical patent/JP3435744B2/ja
Publication of JPH0784763A publication Critical patent/JPH0784763A/ja
Application granted granted Critical
Publication of JP3435744B2 publication Critical patent/JP3435744B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】図形処理に必要な演算等を高速に実行するため
に開発されたDSP等に搭載して好適な乗算回路に関
し、加算の段数を減らし、演算時間を短縮すると共に、
処理すべき論理量を低減化する。 【構成】2nビットの被乗数Xと2nビットの乗数Xと
の乗算を行う場合、被乗数Xを上位nビットのx1と下
位nビットのx0とに分けると共に、乗数Yを上位nビ
ットのy1と下位nビットのy0とに分け、乗算x1×
0、x0×y0、x1×y1、x0×y1を、それぞれ、修
正された第1、第2、第3、第4の2ビット・ブースの
方法で行い、乗算x1×y0、x0×y0、x1×y1、x0
×y1の乗算結果z1、z2、z3、z4を所定の規則の下
に加算する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、音声処理や、図形処理
に必要な演算等を高速に実行するために開発された、い
わゆるDSP(digital signal processor)等に搭載し
て好適な乗算回路に関する。
【0002】
【従来の技術】従来、2進数の乗算法としてシフト・ア
ンド・アッド(shift and add)法が知られており、こ
のシフト・アンド・アッド法を実行する方法として、並
列乗算器による方法や、2ビット・ブース(2bit−Bo
oth)の方法が知られている。
【0003】並列乗算器による方法は、被乗数Xと乗数
Yとの乗算を行う場合、数1に、たとえば、8ビット×
8ビット→16ビットの乗算を行う場合を例にして示す
ように、被乗数Xに乗数Yの1ビットを掛け合わせた部
分積を算出して、これら部分積を加算することにより、
乗算結果Z14〜Z0を得るというものである。なお、
数1において、S−SSは符号拡張を表わしている。
【0004】
【数1】
【0005】また、2ビット・ブースの方法は、数2
に、たとえば、8ビット×8ビット→16ビットの乗算
の場合を例にして示すように、乗数Yの最下位ビットY
0から2ビット単位での乗算を、最下位評価ビットとし
て0を設定し、表1に示すように、評価ビットを
2i+2、y2i+1、y2iとして部分積の操作を行うことに
より、乗算結果Z14〜Z0を得るというものである。
【0006】なお、この2ビット・ブースの方法では、
数値は全て2の補数表現とされ、符号は符号拡張とされ
る。
【0007】
【数2】
【0008】
【表1】
【0009】この2ビット・ブースの方法は、並列乗算
器による乗算方法に比較して、生成される部分積の個数
を減らし、加算過程を短縮することができるという利点
を有している。
【0010】
【発明が解決しようとする課題】しかし、この2ビット
・ブースの方法であっても、これを論理回路にする場
合、桁が大きくなると、加算の段数が多くなり、この結
果、演算に多大の時間を要し、論理量も増大してしまう
という問題点があった。
【0011】本発明は、かかる点に鑑み、加算の段数を
減らし、演算時間を短縮すると共に、処理すべき論理量
を減らすことができるようにした乗算回路を提供するこ
とを目的とする。
【0012】
【課題を解決するための手段】図1は本発明による乗算
回路の原理を示す図であり、本発明の乗算回路は2nビ
ット×2nビット→2nビット(結果の下位2nビット
は、切り捨て)の乗算を行うとするものである。
【0013】図中、Xは2nビットの被乗数(但し、n
=2以上の整数)、x1は被乗数Xの上位nビット、x0
は被乗数Xの下位nビット、Yは2nビットの乗数、y
1は乗数Yの上位nビット、y0は乗数Yの下位nビット
を示している。
【0014】また、10は乗算部であり、x1を被乗
数、y0を乗数とする乗算x1×y0、x 0を被乗数、y0
を乗数とする乗算x0×y0、x1を被乗数、y1を乗数と
する乗算x1×y1、x0を被乗数、y1を乗数とする乗算
0×y1を行うものである。
【0015】但し、この乗算部10は、乗算x1×y0
ついては、y0の評価ビットをy0.2 J+2、y0.2J+1
0.2J(但し、J=0、1・・・n/2)と記す場合
に、y0.2 J+2=1、y0.2J+1=0、y0.2J=0の場合に
は、部分積の操作について、x1の反転数(1の補数)
を左へ1ビットシフトした値を加えて2ビット右へシフ
トし、y0.2J+2=1、y0.2J+1=0、y0.2J=1の場
合、及び、y0.2J+2=1、y0. 2J+1=1、y0.2J=0の
場合には、部分積の操作について、x1の反転数を加え
て2ビット右へシフトするように修正された第1の2ビ
ット・ブースの方法に基づいて乗算を行うものである。
【0016】また、この乗算部10は、乗算x0×y0
ついては、符号は0を拡張するように修正された第2の
2ビット・ブースの方法に基づいて乗算を行うものであ
る。
【0017】また、この乗算部10は、乗算x1×y1
ついては、y1の評価ビットをy1.2 J+2、y1.2J+1
1.2Jと記す場合に、最下位評価ビットの値をy0の最
上位ビットの値Mとし、y1.2J+2=1、y1.2J+1=0、
1.2J=0の場合には、部分積の操作について、x1
反転数を左へ1ビットシフトした値を加えて2ビット右
へシフトし、y1.2J+2=1、y1.2J+1=0、y1.2J=1
の場合、及び、y1.2J+2=1、y1.2J+1=1、y1.2J
0の場合には、部分積の操作について、x1の反転数を
左へ1ビットシフトした値を加えて2ビット右へシフト
するように修正された第3の2ビット・ブースの方法に
基づいて加算を行うものである。
【0018】また、この乗算部10は、乗算x0×y1
ついては、最下位評価ビットの値をy0の最上位ビット
の値Mとし、符号は0を拡張するように修正された第4
の2ビット・ブースの方法に基づいて乗算を行うもので
ある。
【0019】また、11は加算部であり、この加算部1
1は、乗算x1×y0、x0×y0、x 1×y1、x0×y1
乗算結果z1、z2、z3、z4について、x1×y0、x0
×y1の乗算結果z1、z4については、桁を同一にし、
乗算x0×y0の乗算結果z2については、x1×y0、x0
×y1の乗算結果z1、z4に対して、nビット右へシフ
トし、乗算x1×y1の乗算結果z3については、乗算x1
×y0、x0×y1の乗算結果z1、z4に対して、nビッ
ト左へシフトした状態で、加算を行うものである。
【0020】
【作用】本発明においては、被乗数Xの上位nビットx
1、被乗数Xの下位nビットx0、乗数Yの上位nビット
1、乗数Yの下位nビットy0が乗算部10に転送され
る。
【0021】ここに、乗算部10においては、x1を被
乗数、y0を乗数とする乗算x1×y0と、x0を被乗数、
0を乗数とする乗算x0×y0と、x1を被乗数、y1
乗数とする乗算x1×y1と、x0を被乗数、y1を乗数と
する乗算x0×y1が行われる。
【0022】この場合、乗算x1×y0については、y0.
2J+2=1、y0.2J+1=0、y0.2J=0の場合には、部分
積の操作について、x1の反転数を左へ1ビットシフト
した値を加えて2ビット右へシフトし、y0.2J+2=1、
0.2J+1=0、y0.2J=1の場合、及び、y0.2J+2
1、y0.2J+1=1、y0.2J=0の場合には、部分積の操
作について、x1の反転数を加えて2ビット右へシフト
するように修正された第1の2ビット・ブースの方法に
基づいて乗算が行われる。即ち、表2に基づいた部分積
の操作による乗算が行われる。
【0023】
【表2】
【0024】また、乗算x0×y0については、符号は0
を拡張するように修正された第2の2ビット・ブースの
方法に基づいて乗算が行われる。即ち、表3に基づいた
部分積の操作による乗算が行われる。なお、2の補数と
は、反転数(1の補数)の最下位ビットに1を加えたも
のである。
【0025】
【表3】
【0026】また、乗算x1×y1については、最下位評
価ビットの値をy0の最上位ビットの値Mとし、y1.
2J+2=1、y1.2J+1=0、y1.2J=0の場合には、部分
積の操作について、x1の反転数を左へ1ビットシフト
した値を加えて2ビット右へシフトし、また、y1.2J+2
=1、y1.2J+1=0、y1.2J=1の場合、及び、y1.2J
+2=1、y1.2J+1=1、y1.2J=0の場合には、部分積
の操作について、x1の反転数を加えて2ビット右へシ
フトするように修正された第3の2ビット・ブースの方
法に基づいて乗算が行われる。即ち、表4に基づいた部
分積の操作による乗算が行われる。
【0027】
【表4】
【0028】また、乗算x0×y1については、最下位評
価ビットの値をy0の最上位ビットの値Mとし、符号は
0を拡張するように修正された第4の2ビット・ブース
の方法に基づいて乗算が行われる。即ち、表5に基づい
た部分積の操作による乗算が行われる。
【0029】
【表5】
【0030】そして、加算部11において、乗算x1×
0、x0×y0、x1×y1、x0×y1の乗算結果z1、z
2、z3、z4について、x1×y0、x0×y1の乗算結果
1、z4については、桁を同一にし、乗算x0×y0の乗
算結果z2については、x1×y0、x0×y1の乗算結果
1、z4に対して、nビット右へシフトし、乗算x1×
1の乗算結果z3については、乗算x1×y0、x0×y1
の乗算結果z1、z4に対して、nビット左へシフトした
状態での加算が行われ、ここに、被乗数をX、乗数をY
とする2nビット×2nビット→2nビット(結果の下
位2ビットは切り捨て)の乗算が完了する。
【0031】ここに、本発明による乗算回路を適用し
て、0111,0101,1111,1011,101
0,1111,1000,01112(1979428
7431 0)を被乗数Xとし、1010,0001,01
01,0110,1011,1110,0011,11
102(−158815072210)を乗数Yとする乗
算を行う場合の演算内容を示すと、次のようになる。
【0032】この場合、x1=0111,0101,1
111,1011、x0=1010,1111,100
0,0111、y1=1010,0001,0101,
0110、y0=1011,1110,0011,11
10となる。
【0033】したがって、乗算x1×y0の演算は数3に
示すように行われ、乗算x0×y0の演算は数4に示すよ
うに行われ、乗算x1×y1の演算は数5に示すように行
われ、乗算x0×y1の演算は数6に示すように行われ、
乗算x1×y0、x0×y0、x 1×y1、x0×y1の乗算結
果z1、z2、z3、z4の加算は数7に示すように行われ
る。
【0034】
【数3】
【0035】
【数4】
【0036】
【数5】
【0037】
【数6】
【0038】
【数7】
【0039】このように、本発明においては、2nビッ
トの被乗数Xと、2nビットの乗数Yとの乗算を行う場
合に、被乗数Xを上位nビットのx1と、下位nビット
のx0とに分け、また、乗数Yを上位nビットのy1と、
下位nビットのy0とに分けている。
【0040】そして、x1を被乗数、y0を乗数とする乗
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
【0041】したがって、本発明によれば、加算段数を
減らし、乗算時間を短縮化すると共に、処理すべき論理
量を低減化することができる。
【0042】なお、乗算x1×y0、x0×y0、x1×
1、x0×y1を修正された第1、第2、第3、第4の
2ビット・ブースの方法で行うことは一例であり、これ
らの方法以外で行うこともできることは勿論である。
【0043】
【実施例】以下、図2〜図7を参照して、本発明による
乗算回路の第1実施例〜第5実施例及び第4実施例の使
用例について説明する。
【0044】第1実施例・・図2 図2は本発明の第1実施例を示す回路図であり、20は
被乗数Xを格納する2nビットのレジスタ、21は乗数
Yを格納する2nビットのレジスタ、22は演算結果を
格納する2nビットのレジスタ、23はレジスタ20〜
22を制御する制御部である。
【0045】また、24は表2又は表4に基づいてnビ
ット×nビット→2nビットの乗算を行う乗算器、25
は表3又は表5に基づいてnビット×nビット→2nビ
ットの乗算を行う乗算器である。
【0046】また、26は乗算器24、25から出力さ
れる乗算結果と、レジスタ22の格納値とについて、3
nビット+3nビットの加算を行う加算器である。
【0047】この第1実施例においては、2nビット×
2nビット→2nビットの乗算が行われる場合、レジス
タ20に2nビットの被乗数Xが格納され、レジスタ2
1に2nビットの乗数Yが格納され、レジスタ22はク
リアされる。
【0048】次に、レジスタ20が格納する被乗数Xの
うち、上位nビットx1が被乗数として乗算器24に転
送され、下位ビットx0が乗算器25に転送されると共
に、レジスタ21が格納する乗数Yのうち、下位ビット
0が乗数として乗算器24、25に転送される。
【0049】ここに、乗算器24においては、表2に基
づいて、x1×y0なる乗算が行われ、その乗算結果z1
が加算器26に転送され、乗算器25においては、表3
に基づいて、x0×y0なる乗算が行われ、その乗算結果
2が加算器26に転送される。
【0050】加算器26においては、乗算x1×y0の乗
算結果z1と、乗算x0×y0の乗算結果z2とについて、
乗算結果z1については、その最下位ビットが加算の際
の最下位ビットとなるようにし、乗算結果z2について
は、n+1ビット目が加算の際の最下位ビットとなるよ
うにした状態で、3nビット+3nビットの加算が行わ
れ、この加算結果のうち、上位2nビットがレジスタ2
2に格納される。
【0051】次に、レジスタ21が格納する乗数Yのう
ち、上位nビットy1が乗数として乗算器24、25に
転送されると共に、最下位評価ビットとして、乗数Yの
下位ビットy0の最上位ビットMが乗算器24、25に
転送される。
【0052】ここに、乗算器24においては、表4に基
づいて、x1×y1なる乗算が行われ、その乗算結果z3
が加算器26に転送され、乗算器25においては、表5
に基づいて、x0×y1なる乗算が行われ、その乗算結果
4が加算器26に転送される。
【0053】加算器26においては、乗算x1×y1の乗
算結果z3と、乗算x0×y1の乗算結果z4と、レジスタ
22の格納値について、乗算結果z3については、その
最上位ビットが加算の際の最上位ビットとなるように
し、乗算結果z4については、その最下位ビットが加算
の際の最下位ビットとなるようにし、レジスタ22の格
納値については、その最上位ビットが加算の際の最上位
ビットとなるようにした状態で、3nビット+3nビッ
トの加算が行われ、この加算結果のうち、上位2nビッ
トがレジスタ22に格納される。
【0054】ここに、2nビットの被乗数Xと2nビッ
トの乗数Yとについて、2nビット×2nビット→2n
ビットなる乗算の結果がレジスタ22に得られ、乗算は
完了する。
【0055】このように、この第1実施例においては、
2nビットの被乗数Xと2nビットの乗数Yとの乗算を
行う場合、被乗数Xを上位nビットのx1と下位nビッ
トのx0とに分け、乗数Yを上位nビットのy1と下位n
ビットのy0とに分けるようにしている。
【0056】そして、x1を被乗数、y0を乗数とする乗
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
【0057】したがって、この第1実施例によれば、加
算段数を減らし、乗算時間を短縮すると共に、論理量を
低減化することができる。
【0058】第2実施例・・図3 図3は本発明の第2実施例を示す回路図であり、図中、
30は2nビットの被乗数Xの上位nビットx1が格納
されるnビットのレジスタ、31は2nビットの被乗数
Xの下位nビットx0が格納されるnビットのレジスタ
である。
【0059】また、32は2nビットの乗数Yの上位n
ビットy1が格納されるnビットのレジスタ、33は2
nビットの乗数Yの下位nビットy0が格納されるnビ
ットのレジスタである。
【0060】また、34は表2に基づいてnビット×n
ビット→2nビットの乗算を行う乗算器、35は表3に
基づいてnビット×nビット→2nビットの乗算を行う
乗算器である。
【0061】また、36は表4に基づいてnビット×n
ビット→2nビットの乗算を行う乗算器、37は表5に
基づいてnビット×nビット→2nビットの乗算を行う
乗算器である。
【0062】また、38は乗算器34、35、36、3
7から出力される乗算結果について、3nビット+3n
ビットの加算を行う加算器、39は加算器38から出力
される加算結果の上位2nビットを格納する2nビット
のレジスタである。
【0063】この第2実施例においては、2nビット×
2nビット→2nビットの乗算が行われる場合、レジス
タ30に被乗数Xの上位nビットx1が格納され、レジ
スタ31に被乗数Xの下位nビットx0が格納され、レ
ジスタ32に乗数Yの上位nビットy1が格納され、レ
ジスタ33に2nビットの乗数Yの下位nビットy0
格納される。
【0064】そして、レジスタ30に格納された被乗数
Xの上位nビットx1が被乗数として乗算器34、36
に転送され、レジスタ31に格納された被乗数Xの下位
nビットx0が被乗数として乗算器35、37に転送さ
れる。
【0065】また、レジスタ32に格納された乗数Yの
上位nビットy1が乗数として乗算器36、37に転送
され、レジスタ33に格納された乗数Yの下位nビット
0が乗数として乗算器34、35に転送される。
【0066】また、乗算器36、37における最下位評
価ビットとして、レジスタ33に格納された乗数Yの下
位nビットy0の最上位ビットMが乗算器36、37に
転送される。なお、乗算器34、35においては、最下
位評価ビットとして、0が設定される。
【0067】ここに、乗算器34においては、表2に基
づいて、x1を被乗数、y0を乗数とする乗算が行われ、
その乗算結果z1が加算器38に転送され、乗算器35
においては、表3に基づいて、x0を被乗数、y0を乗数
とする乗算が行われ、その乗算結果z2が加算器38に
転送される。
【0068】また、乗算器36においては、表4に基づ
いて、x1を被乗数、y1を乗数とする乗算が行われ、そ
の乗算結果z3が加算器38に転送され、乗算器37に
おいては、表5に基づいて、x0を被乗数、y1を乗数と
する乗算が行われ、その乗算結果z4が加算器38に転
送される。
【0069】加算器38においては、乗算x1×y0、x
0×y0、x1×y1、x0×y1の乗算結果z1、z2
3、z4について、乗算結果z1については、その最下
位ビットが加算の際の最下位ビットとなるようにし、乗
算結果z2については、n+1ビット目が加算の際の最
下位ビットとなるようにし、乗算結果z3については、
その最上位ビットが加算の際の最上位ビットとなるよう
にし、乗算結果z4については、その最下位ビットが加
算の際の最下位ビットとなるようにした状態で、加算が
行われ、この加算結果のうち、上位2nビットがレジス
タ39に格納される。
【0070】ここに、2nビットの被乗数Xと2nビッ
トの乗数Yとについて、2nビット×2nビット→2n
ビットなる乗算の結果がレジスタ39に得られ、乗算は
完了する。
【0071】このように、この第2実施例においても、
2nビットの被乗数Xと2nビットの乗数Yとの乗算を
行う場合、被乗数Xを上位nビットのx1と下位nビッ
トのx0とに分け、乗数Yを上位nビットのy1と下位n
ビットのy0とに分けるようにしている。
【0072】そして、x1を被乗数、y0を乗数とする乗
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
【0073】したがって、この第2実施例によっても、
加算段数を減らし、乗算時間の短縮化を図ることができ
る。
【0074】第3実施例・・図4 図4は本発明の第3実施例を示す回路図であり、40は
被乗数Xを格納する2nビットのレジスタ、41は乗数
Yを格納する2nビットのレジスタ、42は演算結果を
格納する2nビットのレジスタである。
【0075】また、43は表2、表3、表4又は表5に
基づいてnビット×nビット→2nビットの乗算を行う
乗算器、44はレジスタ40〜42及び乗算器43を制
御する制御部、45は乗算器43から出力される乗算結
果とレジスタ42の格納値との加算等を行う加減算器で
ある。
【0076】なお、乗算器43は、制御部44からモー
ド信号MD0を受けた場合は、表2又は表4に基づいた
乗算を行い、制御部44からモード信号MD1を受けた
場合は、表3又は表5に基づいた乗算を行うようにされ
ている。
【0077】この第3実施例においては、2nビット×
2nビット→2nビットの乗算が行われる場合、レジス
タ40に2nビットの被乗数Xが格納され、レジスタ4
1に2nビットの乗数Yが格納され、レジスタ42はク
リアされる。
【0078】次に、レジスタ40に格納されている被乗
数Xのうち、上位nビットx1が被乗数として乗算器4
3に転送されると共に、レジスタ41に格納されている
乗数Yのうち、下位nビットy0が乗数として乗算器4
3に転送される。
【0079】また、この場合、制御部44から乗算器4
3にモード信号MD0が与えられ、乗算器43において
は、表2に基づいて、x1×y0なる乗算が行われ、この
乗算結果z1が加減算器45に転送される。
【0080】加減算器45においては、乗算x1×y0
乗算結果z1と、レジスタ42の格納値とについて、乗
算結果z1については、その最下位ビットが加算の際の
最下位ビットとなるようにし、レジスタ42の格納値に
ついては、その最上位ビットが加算の際の最上位ビット
となるようにした状態で、加算が行われ、この加算結果
の上位2nビットがレジスタ42に格納される。
【0081】次に、レジスタ40に格納されている被乗
数Xのうち、下位nビットx0が被乗数として乗算器4
3に転送され、レジスタ41に格納されている乗数Yの
うち、下位nビットy0が乗数として乗算器43に転送
される。
【0082】また、この場合、制御部44から乗算器4
3にモード信号MD1が与えられ、乗算器43において
は、表3に基づいて、x0×y0なる乗算が行われ、この
乗算結果z2が加減算器45に転送される。
【0083】加減算器45においては、乗算x0×y0
乗算結果z2と、レジスタ42の格納値とについて、乗
算結果z2については、そのn+1ビット目が加算の際
の最下位ビットとなるようにし、レジスタ42の格納値
については、その最上位ビットが加算の際の最上位ビッ
トとなるようにした状態で、加算が行われ、この加算結
果の上位2nビットがレジスタ42に格納される。
【0084】次に、レジスタ40に格納されている被乗
数Xのうち、上位nビットx1が被乗数として乗算器4
3に転送され、レジスタ41に格納されている乗数Yの
うち、上位nビットy1が乗数として乗算器43に転送
される。
【0085】また、最下位評価ビットとして、レジスタ
41に格納されている乗数Yの下位nビットy0の最上
位ビットMが乗算器43に転送される。
【0086】また、この場合、制御部44から乗算器4
3にモード信号MD0が与えられ、乗算器43において
は、表4に基づいて、x1×y1なる乗算が行われ、この
乗算結果z3が加減算器45に転送される。
【0087】加減算器45においては、乗算x1×y1
乗算結果z3と、レジスタ42の格納値とについて、乗
算結果z3については、その最上位ビットが加算の際の
最上位ビットとなるようにし、レジスタ42の格納値に
ついては、その最上位ビットが加算の際の最上位ビット
となるようにした状態で、加算が行われ、この加算結果
の上位2nビットがレジスタ42に格納される。
【0088】次に、レジスタ40に格納されている被乗
数Xのうち、下位nビットx0が被乗数として乗算器4
3に転送され、レジスタ41に格納されている乗数Yの
うち、上位nビットy1が乗数として乗算器43に転送
される。
【0089】また、最下位評価ビットとして、レジスタ
41に格納されている乗数Yの下位nビットy0の最上
位ビットMが乗算器43に転送される。
【0090】また、この場合、制御部44から乗算器4
3にモード信号MD1が与えられ、乗算器43において
は、表5に基づいて、x0×y1なる乗算が行われ、この
乗算結果z3が加減算器45に転送される。
【0091】加減算器45においては、乗算x0×y1
乗算結果z4と、レジスタ42の格納値とについて、乗
算結果z4については、その最下位ビットが加算の際の
最下位ビットとなるようにし、レジスタ42の格納値に
ついては、その最上位ビットが加算の際の最上位ビット
となるようにした状態で、加算が行われ、この加算結果
の上位2nビットがレジスタ42に格納される。
【0092】ここに、2nビットの被乗数Xと2nビッ
トの乗数Yとについて、2nビット×2nビット→2n
ビットなる乗算の結果がレジスタ42に得られ、乗算は
完了する。
【0093】このように、この第3実施例においても、
2nビットの被乗数Xと2nビットの乗数Yとの乗算を
行う場合、被乗数Xを上位nビットのx1と下位nビッ
トのx0とに分け、乗数Yを上位nビットのy1と下位n
ビットのy0とに分けるようにしている。
【0094】そして、x1を被乗数、y0を乗数とする乗
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
【0095】したがって、この第3実施例によっても、
加算段数を減らし、乗算時間の短縮化を図ると共に、論
理量の低減化を図ることができる。
【0096】なお、この第3実施例によれば、2nビッ
ト×2nビット→2nビットなる乗算のほか、2nビッ
ト×2nビット系積和演算として、2nビット±2nビ
ット×2nビット→2nビットなる積和演算を行うこと
ができる。
【0097】また、2nビット×nビット系積和演算と
して、2nビット×nビット→2nビット、2nビット
±2nビット×nビット→2nビットなる積和演算を行
うことができる。
【0098】また、ダブルnビット×nビット系積和演
算として、nビット×nビット±nビット×nビット→
2nビット、2nビット±(nビット×nビット±nビ
ット×nビット)→2nビットなる積和演算を行うこと
ができる。
【0099】第4実施例・・図5 図5は本発明の第4実施例を示す回路図であり、50は
被乗数Xを格納する2nビットのレジスタ、51は乗数
Yを格納する2nビットのレジスタ、52は演算結果を
格納する2nビットのレジスタである。
【0100】また、53は表2又は表3に基づいてnビ
ット×nビット→2nビットの乗算を行う乗算器、54
は表4又は表5に基づいてnビット×nビット→2nビ
ットの乗算を行う乗算器である。
【0101】また、55はレジスタ50、51、52及
び乗算器53、54を制御する制御部、56は乗算器5
3、54から出力される乗算結果とレジスタ52の格納
値との加算等を行う加減算器である。
【0102】なお、乗算器53は、制御部55からモー
ド信号MD0を受けた場合は、表2又は表4に基づいた
乗算を行い、制御部55からモード信号MD1を受けた
場合は、表3又は表5に基づいた乗算を行うようにされ
ている。
【0103】また、乗算器54は、制御部55からモー
ド信号MD0を受けた場合は、表2又は表4に基づいた
乗算を行い、制御部55からモード信号MD1を受けた
場合は、表3又は表5に基づいた乗算を行うようにされ
ている。
【0104】この第4実施例においては、2nビット×
2nビット→2nビットの乗算が行われる場合、レジス
タ50に2nビットの被乗数Xが格納され、レジスタ5
1に2nビットの乗数Yが格納され、レジスタ52はク
リアされる。
【0105】次に、レジスタ50に格納された被乗数X
のうち、上位nビットx1が被乗数として乗算器53、
54に転送されると共に、レジスタ51に格納された乗
数Yのうち、下位nビットy0が乗数として乗算器53
に転送され、上位nビットy1が乗数として乗算器54
に転送される。
【0106】また、乗算器54における最下位評価ビッ
トとして、レジスタ51に格納されている乗数Yのう
ち、下位nビットy0の最上位ビットMが乗算器54に
転送される。乗算器53においては、最下位評価ビット
として、0が設定される。
【0107】また、この場合、制御部55から乗算器5
3、54にモード信号MD0が与えられ、乗算器53に
おいては、表2に基づいて、x1×y0なる乗算が行わ
れ、その乗算結果z1が加減算器56に転送され、乗算
器54においては、表4に基づいて、x1×y1なる乗算
が行われ、その乗算結果z3が加減算器56に転送され
る。
【0108】加減算器56においては、乗算x1×y0
乗算結果z1と、乗算x1×y1の乗算結果z3について、
乗算x1×y0の乗算結果z1については、その最下位ビ
ットが加算の際の最下位ビットとなるようにし、乗算x
1×y1の乗算結果z3については、その最上位ビットが
加算の際の最上位ビットとなるようにした状態で、加算
が行われ、その加算結果がレジスタ52に格納される。
【0109】次に、レジスタ50が格納する被乗数Xの
うち、下位nビットx0が被乗数として乗算器53、5
4に転送されると共に、レジスタ51が格納する乗数Y
のうち、下位nビットy0が乗数として乗算器53に転
送され、上位nビットy1が乗数として乗算器54に転
送される。
【0110】また、乗算器54における最下位評価ビッ
トとして、レジスタ51に格納されている乗数Yのう
ち、下位nビットy0の最上位ビットMが乗算器54に
転送される。乗算器53においては、最下位評価ビット
として、0が設定される。
【0111】また、この場合、制御部55から乗算器5
3、54にモード信号MD1が与えられ、乗算器53に
おいては、表3に基づいて、x0×y0なる乗算が行わ
れ、その乗算結果z2が加減算器56に転送され、乗算
器54においては、表5に基づいて、x0×y1なる乗算
が行われ、乗算結果z4が加減算器56に転送される。
【0112】加減算器56においては、乗算x0×y0
乗算結果z2と、乗算x0×y1の乗算結果z4と、レジス
タ52の格納値とについて、乗算x0×y0の乗算結果z
2については、そのn+1ビット目が加算の際の最下位
ビットとなるようにし、乗算x0×y1の乗算結果z4
ついては、その最下位ビットが加算の際の最下位ビット
となるようにし、レジスタ52の格納値については、そ
の最上位ビットが加算の際の最上位ビットになるように
した状態で、加算が行われ、その加算結果がレジスタ5
2に格納される。
【0113】ここに、2nビットの被乗数Xと2nビッ
トの乗数Yとについて、2nビット×2nビット→2n
ビットなる乗算の結果がレジスタ52に得られ、乗算は
完了する。
【0114】このように、この第4実施例においても、
2nビットの被乗数Xと2nビットの乗数Yとの乗算を
行う場合、被乗数Xを上位nビットのx1と下位nビッ
トのx0とに分け、乗数Yを上位nビットのy1と下位n
ビットのy0とに分けるようにしている。
【0115】そして、x1を被乗数、y0を乗数とする乗
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
【0116】したがって、この第4実施例によっても、
加算段数を減らし、乗算時間の短縮化を図ると共に、論
理量の低減化を図ることができる。
【0117】なお、この第4実施例によれば、2nビッ
ト×2nビット→2nビットなる乗算のほか、2nビッ
ト×2nビット系積和演算として、2nビット±2nビ
ット×2nビット→2nビットなる積和演算を行うこと
ができる。
【0118】また、2nビット×nビット系積和演算と
して、2nビット×nビット→2nビット、2nビット
±2nビット×nビット→2nビットなる積和演算を行
うことができる。
【0119】また、ダブルnビット×nビット系積和演
算として、nビット×nビット±nビット×nビット→
2nビット、2nビット±(nビット×nビット±nビ
ット×nビット)→2nビットなる積和演算を行うこと
ができる。
【0120】第5実施例・・図6 図6は本発明の第5実施例を示す回路図であり、60は
被乗数Xを格納する2nビットのレジスタ、61は乗数
Yを格納する2nビットのレジスタ、62は演算結果を
格納する2nビットのレジスタである。
【0121】また、63は表2、表3、表4又は表5に
基づいてnビット×nビット→2nビットの乗算を行う
乗算器、64は表2、表3、表4又は表5に基づいてn
ビット×nビット→2nビットの乗算を行う乗算器であ
る。
【0122】また、65は表2、表3、表4又は表5に
基づいてnビット×nビット→2nビットの乗算を行う
乗算器、66は表2、表3、表4又は表5に基づいてn
ビット×nビット→2nビットの乗算を行う乗算器であ
る。
【0123】また、67はレジスタ60、61、62及
び乗算器63、64、65、66を制御する制御部、6
8は乗算器63、64、65、66から出力される乗算
結果について、3nビット+3nビットの加算等を行う
加減算器である。
【0124】なお、乗算器63、64、65、66は、
制御部67からモード信号MD0を受けた場合は、表2
又は表4に基づいた乗算を行い、制御部67からモード
信号MD1を受けた場合は、表3又は表5に基づいた乗
算を行うようにされている。
【0125】この第5実施例においては、2nビット×
2nビット→2nビットの乗算が行われる場合、レジス
タ60に被乗数Xが格納され、レジスタ61に乗数Yが
格納される。
【0126】そして、レジスタ60に格納された被乗数
Xの上位nビットx1が被乗数として乗算器63、65
に転送され、下位nビットx0が被乗数として乗算器6
4、66に転送される。
【0127】また、レジスタ61に格納された乗数Yの
上位nビットy1が乗数として乗算器65、66に転送
され、下位nビットy0が乗数として乗算器63、64
に転送される。
【0128】また、乗算器65、66における最下位評
価ビットとして、レジスタ61に格納されている乗数Y
の下位nビットy0の最上位ビットMが乗算器65、6
6に転送される。なお、乗算器63、64においては、
最下位評価ビットとして、0が設定される。
【0129】なお、この場合、制御部67から乗算器6
3にモード信号MD0が与えられ、乗算器63において
は、表2に基づいて、x1を被乗数、y0を乗数とする乗
算が行われ、その乗算結果z1が加減算器68に転送さ
れる。
【0130】また、この場合、制御部67から乗算器6
4にモード信号MD1が与えられ、乗算器64において
は、表3に基づいて、x0を被乗数、y0を乗数とする乗
算が行われ、その乗算結果z2が加減算器68に転送さ
れる。
【0131】また、この場合、制御部67から乗算器6
5にモード信号MD0が与えられ、乗算器65において
は、表4に基づいて、x1を被乗数、y1を乗数とする乗
算が行われ、その乗算結果z3が加減算器68に転送さ
れる。
【0132】また、この場合、制御部67から乗算器6
5にモード信号MD1が与えられ、乗算器66において
は、表5に基づいて、x0を被乗数、y1を乗数とする乗
算が行われ、その乗算結果z4が加減算器68に転送さ
れる。
【0133】加減算器68においては、乗算x1×y0
0×y0、x1×y1、x0×y1の乗算結果z1、z2、z
3、z4について、乗算結果z1については、その最下位
ビットが加算の際の最下位ビットとなるようにし、乗算
結果z2については、n+1ビットが加算の際の最下位
ビットとなるようにし、乗算結果z3については、その
最上位ビットが加算の際の最上位ビットになるように
し、乗算結果z4については、その最下位ビットが加算
の際の最下位ビットとなるようにした状態で、加算が行
われ、この加算結果の上位2nビットがレジスタ62に
格納される。
【0134】ここに、2nビットの被乗数Xと2nビッ
トの乗数Yとについて、2nビット×2nビット→2n
ビットなる乗算の結果がレジスタ62に得られ、乗算は
完了する。
【0135】このように、この第5実施例においても、
2nビットの被乗数Xと2nビットの乗数Yとの乗算を
行う場合、被乗数Xを上位nビットのx1と下位nビッ
トのx0とに分け、乗数Yを上位nビットのy1と下位n
ビットのy0とに分けるようにしている。
【0136】そして、x1を被乗数、y0を乗数とする乗
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
【0137】したがって、この第5実施例によっても、
加算段数を減らし、乗算時間の短縮化を図ることができ
る。
【0138】なお、この第5実施例によれば、制御部6
7による制御により、2nビット×2nビット→2nビ
ットなる乗算のほか、2nビット×2nビット系積和演
算として、2nビット±2nビット×2nビット→2n
ビットなる積和演算を行うことができる。
【0139】また、2nビット×nビット系積和演算と
して、2nビット×nビット→2nビット、2nビット
±2nビット×nビット→2nビットなる積和演算を行
うことができる。
【0140】また、2nビット×2nビット系積和演算
として、2nビット×2nビット→2nビット、2nビ
ット±2nビット×2nビット→2nビットなる積和演
算を行うことができる。
【0141】また、ダブルnビット×nビット系積和演
算として、nビット×nビット±nビット×nビット→
2nビット、2nビット±(nビット×nビット±nビ
ット×nビット)→2nビットなる積和演算を行うこと
ができる。
【0142】使用例・・図7 図7は、図5に示す第4実施例(但し、n=16)を搭
載してなるDSPを示すブロック図である。
【0143】図中、70は演算部であり、71、72は
各種算術演算や論理演算や転送命令に使用される演算用
レジスタ、73、74は16ビット×16ビット→32
ビットの乗算を行う乗算器(MUL)、75は加減算器
(ADD/SUB)、76は演算論理ユニット(AL
U)、77は演算結果ラッチ(LTR)である。
【0144】但し、乗算系命令で被乗数X、乗数Yの格
納に使用することができるのは、演算用レジスタ71で
あり、演算用レジスタ72は、演算系命令に使用するこ
とができる。
【0145】ここに、演算用レジスタ71が図5に示す
レジスタ50、51に該当し、乗算器73、74が図5
に示す乗算器53、54に該当し、加減算器75が図5
に示す加減算器56に該当する。
【0146】また、80はシーケンサ部であり、81〜
83は命令レジスタ、いわゆるインストラクション・レ
ジスタ(IR1、IR1A、IR2)、84はループ処
理の実行時に使用されるループレジスタ(LPR)、8
5はデコーダであり、演算部70は、このシーケンサ部
80により制御される。即ち、シーケンサ部80は図5
に示す制御部55に該当する。
【0147】また、90はCPUインタフェース部であ
り、91はCPUアクセス制御部、92はシステム・デ
ータ・ラッチ(SDLT)、93はこのDSPの状態を
示すステータスレジスタ(STR)、94はシステム・
アドレス・ラッチ(SALT)である。
【0148】なお、CSXはチップセレクト信号、RW
Xはリード/ライト信号、DTACKXはデータアクノ
リッジ信号、D15〜0はデータ信号、A15〜0はア
ドレス信号である。
【0149】また、100はアドレス計算部であり、1
01、102は演算論理ユニット(XALU、YAL
U)、103はインデックスアドレッシング及びサーキ
ュラーアドレッシング時のオフセットとして使用される
オフセットレジスタ、104はプログラムの実行及び動
作モードを制御するコントロールレジスタ(CTR)で
ある。
【0150】また、105はPUSH/POP命令や、
サブルーチンコール命令の実行時のデータの退避/復帰
アドレスを示すスタックポインタ(SP)、106は内
部アドレス制御部である。
【0151】また、107は転送時のオペランドアドレ
スを指定するインデックスレジスタ、108は命令コー
ドが格納されているメモリアドレスを示すプログラムカ
ウンタ(PC)である。
【0152】また、110は命令RAM部であり、11
1は256ワード×16ビットの規模を有する命令RA
M(random access memory)、112は命令RAM11
1との接続を図る命令RAMインタフェース部である。
【0153】また、120はプログラム/データ共用の
64Kワード×16ビットの規模を有する外部ROM
(read only memory)との接続を図るメモリ・インタフ
ェース部である。
【0154】ここに、121はメモリアクセス制御部、
122はメモリアドレス(MADDR)制御部、123
はメモリデータラッチ(MDLT)、MMはメモリモー
ド信号、MCEXはメモリチップイネーブル信号、MA
15〜0はメモリアドレス、MD15〜0はメモリデー
タである。
【0155】また、130はデータRAM部であり、1
31、132は256ワード×16ビットの規模を有す
るデータRAM、133はデータRAM131、132
との接続を図るデータRAMインタフェース部である。
【0156】また、140は制御部であり、141はク
ロック制御部、142はテスト用回路、RSTXはリセ
ット信号、CLK1は内部クロック信号、CLK0は外
部同期用クロック信号、TEST2〜0はテスト用信号
である。
【0157】このDSPにおいては、16ビット×16
ビット→32ビットの乗算を行う2個の乗算器73、7
4が搭載されているので、16ビット×16ビット系積
和演算として、16ビット×16ビット→32ビット、
32ビット±16ビット×16ビット→32ビットの積
和演算を行うことができる。
【0158】また、32ビット×16ビット系積和演算
として、32ビット×16ビット→32ビット、32ビ
ット±32ビット×16ビット→32ビットの積和演算
を行うことができる。
【0159】また、32ビット×32ビット系積和演算
として、32ビット×32ビット→32ビット、32ビ
ット±32ビット×32ビット→32ビットなる積和演
算を行うことができる。
【0160】また、ダブル16ビット×16ビット系積
和演算として、16ビット×16ビット±16ビット×
16ビット→32ビット、32ビット±(16ビット×
16ビット±16ビット×16ビット)→32ビットな
る積和演算を行うことができる。
【0161】このように、このDSPにおいては、たと
えば、32ビットの被乗数Xと32ビットの乗数Yとの
乗算を行う場合、被乗数Xを上位16ビットのx1と下
位16ビットのx0に分けると共に、乗数Yを上位16
ビットのy1と下位16ビットのy0とに分けるように
し、x1を被乗数、y0を乗数とする乗算x1×y0と、x
0を被乗数、y0を乗数とする乗算x0×y0と、x1を被
乗数、y1を乗数とする乗算x1×y1と、x0を被乗数、
1を乗数とする乗算x0×y1とを、それぞれ、表2、
表3、表4、表5に示す修正された第1、第2、第3、
第4の2ビット・ブースの方法で行い、これら乗算x1
×y0、x0×y0、x1×y1、x0×y1の乗算結果z1
2、z3、z4を、図1に示す加算部11を示すブロッ
ク内に示した所定の規則の下に加算することができる。
【0162】したがって、このDSPによれば、図形処
理を行うに必要な演算を行う場合に、加算段数を減ら
し、演算時間の短縮化を図ると共に、論理量の低減化を
図ることができる。
【0163】
【発明の効果】以上のように、本発明によれば、2nビ
ットの被乗数Xと2nビットの乗数Yとの乗算を行う場
合に、被乗数Xを上位nビットのx1と下位nビットの
0とに分けると共に、乗数Yを上位nビットのy1と下
位nビットのy0とに分け、x1を被乗数、y0を乗数と
する乗算x1×y0と、x0を被乗数、y0を乗数とする乗
算x0×y0と、x1を被乗数、y1を乗数とする乗算x1
×y1と、x0を被乗数、y1を乗数とする乗算x0×y1
とを、それぞれ、たとえば、表2、表3、表4、表5に
示す修正された第1、第2、第3、第4の2ビット・ブ
ースの方法で行い、これら乗算x1×y0、x0×y0、x
1×y1、x0×y1の結果を所定の規則の下に加算すると
しているので、加算段数を減らし、乗算時間の短縮化を
図ることができると共に、処理すべき論理量の低減化を
図ることができる。
【図面の簡単な説明】
【図1】本発明の原理を示す図である。
【図2】本発明の第1実施例を示す回路図である。
【図3】本発明の第2実施例を示す回路図である。
【図4】本発明の第3実施例を示す回路図である。
【図5】本発明の第4実施例を示す回路図である。
【図6】本発明の第5実施例を示す回路図である。
【図7】本発明の第4実施例の使用例を示すブロック図
である。
【符号の説明】
X 被乗数 Y 乗数 10 乗算部 11 加算部
フロントページの続き (72)発明者 香月 俊治 東京都千代田区丸の内2丁目6番1号 富 士通デバイス株式会社内

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】2nビット(但し、n=2以上の整数)の
    被乗数(X)の上位nビット(x1)を被乗数、2nビ
    ットの乗数(Y)の下位nビット(y0)を乗数とする
    第1の乗算(x1×y0)と、 前記被乗数(X)の下位nビット(x0)を被乗数、前
    記乗数(Y)の下位nビット(y0)を乗数とする第2
    の乗算(x0×y0)と、 前記被乗数(X)の上位nビット(x1)を被乗数、前
    記乗数(Y)の上位nビット(y1)を乗数とする第3
    の乗算(x1×y1)と、 前記被乗数(X)の下位nビット(x0)を被乗数、前
    記乗数(Y)の上位nビット(y1)を乗数とする第4
    の乗算(x0×y1)とを行う演算部(10)と、 前記第1、第2、第3及び第4の乗算(x1×y0、x0
    ×y0、x1×y1、x0×y1)の乗算結果(z1、z2
    3、z4)を所定の規則に基づいて加算を行う加算部
    (11)とを設け、 前記被乗数(X)と前記乗数(Y)との乗算を行うよう
    にされていることを特徴とする乗算回路。
  2. 【請求項2】2nビット(但し、n=2以上の整数)の
    被乗数(X)の上位nビット(x1)を被乗数、2nビ
    ットの乗数(Y)の下位nビット(y0)を乗数とする
    第1の乗算(x1×y0)と、 前記被乗数(X)の下位nビット(x0)を被乗数、前
    記乗数(Y)の下位nビット(y0)を乗数とする第2
    の乗算(x0×y0)と、 前記被乗数(X)の上位nビット(x1)を被乗数、前
    記乗数(Y)の上位nビット(y1)を乗数とする第3
    の乗算(x1×y1)と、 前記被乗数(X)の下位nビット(x0)を被乗数、前
    記乗数(Y)の上位nビット(y1)を乗数とする第4
    の乗算(x0×y1)とを、 前記第1の乗算(x1×y0)については、前記乗数
    (Y)の下位nビット(y 0)の評価ビットを
    0.2J+2、y0.2J+1、y0.2J(但し、J=0、1・・・
    n/2)と記す場合に、y0.2J+2=1、y0.2J+1=0、
    0.2J=0の場合には、部分積の操作について、前記被
    乗数(X)の上位nビット(x1)の反転数を左へ1ビ
    ットシフトした値を加えて2ビット右へシフトし、y0.
    2J+2=1、y0.2J+1=0、y0.2J=1の場合、及び、y
    0.2J+2=1、y0.2J+1=1、y0.2J=0の場合には、部
    分積の操作について、前記被乗数(X)の上位nビット
    (x1)の反転数を加えて2ビット右へシフトするよう
    に修正された第1の2ビット・ブースの方法に基づいて
    行い、 前記第2の乗算(x0×y0)については、符号は0を拡
    張するように修正された第2の2ビット・ブースの方法
    に基づいて行い、 前記第3の乗算(x1×y1)については、前記乗数
    (Y)の上位ビット(y1)の評価ビットをy1.2J+2
    1.2J+1、y1.2Jと記す場合に、最下位評価ビットの値
    を前記乗数(Y)の下位nビット(y0)の最上位ビッ
    トの値(M)とし、y1.2J+2=1、y1.2J+1=0、y1.
    2J=0の場合には、部分積の操作について、前記被乗数
    (X)の上位nビット(x1)の反転数を左へ1ビット
    シフトした値を加えて2ビット右へシフトし、y1.2J+2
    =1、y1.2J+1=0、y1.2J=1の場合、及び、y1.
    2J+2=1、y1.2J+1=1、y1.2J=0の場合には、部分
    積の操作について、前記被乗数(X)の上位nビット
    (x1)の反転数を加えて2ビット右へシフトするよう
    に修正された第3の2ビット・ブースの方法に基づいて
    行い、 前記第4の乗算(x0×y1)については、最下位評価ビ
    ットの値を前記乗数(Y)の下位nビット(y0)の最
    上位ビットの値(M)とし、符号は0を拡張するように
    修正された第4の2ビット・ブースの方法に基づいて行
    う乗算部(10)と、 前記第1、第2、第3及び第4の乗算(x1×y0、x0
    ×y0、x1×y1、x0×y1)の乗算結果(z1、z2
    3、z4)について、前記第1及び第4の乗算(x1×
    0、x0×y1)の乗算結果(z1、z4)については、
    桁を同一にし、前記第2の演算(x0×y0)の乗算結果
    (z2)については、前記第1及び第4の乗算(x1×y
    0、x0×y1)の乗算結果(z1、z4)に対して、nビ
    ット右へシフトし、前記第3の乗算(x1×y1)の乗算
    結果(z3)については、前記第1及び第4の乗算(x1
    ×y0、x0×y1)の乗算結果(z1、z4)に対して、
    nビット左へシフトした状態で、加算を行う加算部(1
    1)とを設け、 前記被乗数(X)と前記乗数(Y)との乗算を行うよう
    にされていることを特徴とする乗算回路。
  3. 【請求項3】前記乗算部(10)は、前記第1の乗算
    (x1×y0)を前記修正された第1の2ビット・ブース
    の方法に基づいて行い、前記第3の乗算(x1×y1)を
    前記修正された第3の2ビット・ブースの方法に基づい
    て行う第1の乗算器と、前記第2の乗算(x0×y0)を
    前記修正された第2の2ビット・ブースの方法に基づい
    て行い、前記第4の乗算(x0×y1)を前記修正された
    第4の2ビット・ブースの方法に基づいて行う第2の乗
    算器とを設けて構成されていることを特徴とする請求項
    1記載の乗算回路。
  4. 【請求項4】前記乗算部(10)は、前記第1の乗算
    (x1×y0)を前記修正された第1の2ビット・ブース
    の方法に基づいて行う第1の乗算器と、前記第2の乗算
    (x0×y0)を前記修正してなる第2の2ビット・ブー
    スの方法に基づいて行う第2の乗算器と、前記第3の乗
    算(x1×y1)を前記修正してなる第3の2ビット・ブ
    ースの方法に基づいて行う第3の乗算器と、前記第4の
    乗算(x0×y1)を前記修正された第4の2ビット・ブ
    ースの方法に基づいて行う第4の乗算器とを設けて構成
    されていることを特徴とする請求項1記載の乗算回路。
  5. 【請求項5】前記乗算部(10)は、前記第1の乗算
    (x1×y0)を前記修正された第1の2ビット・ブース
    の方法に基づいて行い、前記第2の乗算(x0×y0)を
    前記修正された第2の2ビット・ブースの方法に基づい
    て行い、前記第3の乗算(x1×y1)を前記修正された
    第3の2ビット・ブースの方法に基づいて行い、前記第
    4の乗算(x0×y1)を前記修正された第4の2ビット
    ・ブースの方法に基づいて行う乗算器を設けて構成され
    ていることを特徴とする請求項1記載の乗算回路。
  6. 【請求項6】前記乗算部(10)は、前記第1の乗算
    (x1×y0)を前記修正された第1の2ビット・ブース
    の方法に基づいて行い、前記第2の乗算(x0×y0)を
    前記修正された第2の2ビット・ブースの方法に基づい
    て行う第1の乗算器と、前記第3の乗算(x1×y1)を
    前記修正された第3の2ビット・ブースの方法に基づい
    て行い、前記第4の乗算(x0×y1)を前記修正された
    第4の2ビット・ブースの方法に基づいて行う第2の乗
    算器とを設けて構成されていることを特徴とする請求項
    1記載の乗算回路。
  7. 【請求項7】前記乗算部(10)は、前記第1の乗算
    (x1×y0)を前記修正された第1の2ビット・ブース
    の方法、前記修正された第2の2ビット・ブースの方
    法、前記修正された第3の2ビット・ブースの方法又は
    前記修正された第4の2ビット・ブースの方法に基づい
    て行う第1の乗算器と、前記第2の乗算(x0×y0)を
    前記修正された第1の2ビット・ブースの方法、前記修
    正された第2の2ビット・ブースの方法、前記修正され
    た第3の2ビット・ブースの方法又は前記修正された第
    4の2ビット・ブースの方法に基づいて行う第2の乗算
    器と、前記第3の乗算(x1×y1)を前記修正された第
    1の2ビット・ブースの方法、前記修正された第2の2
    ビット・ブースの方法、前記修正された第3の2ビット
    ・ブースの方法又は前記修正された第4の2ビット・ブ
    ースの方法に基づいて行う第3の乗算器と、前記第4の
    乗算(x0×y1)を前記修正された第1の2ビット・ブ
    ースの方法、前記修正された第2の2ビット・ブースの
    方法、前記修正された第3の2ビット・ブースの方法又
    は前記修正された第4の2ビット・ブースの方法に基づ
    いて行う第4の乗算器とを設けて構成されていることを
    特徴とする請求項1記載の乗算回路。
JP22412993A 1993-09-09 1993-09-09 乗算回路 Expired - Fee Related JP3435744B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22412993A JP3435744B2 (ja) 1993-09-09 1993-09-09 乗算回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22412993A JP3435744B2 (ja) 1993-09-09 1993-09-09 乗算回路

Publications (2)

Publication Number Publication Date
JPH0784763A true JPH0784763A (ja) 1995-03-31
JP3435744B2 JP3435744B2 (ja) 2003-08-11

Family

ID=16809000

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22412993A Expired - Fee Related JP3435744B2 (ja) 1993-09-09 1993-09-09 乗算回路

Country Status (1)

Country Link
JP (1) JP3435744B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217805A (ja) * 2001-10-05 2008-09-18 Intel Corp 単一命令複数データ(simd)命令用の積和演算(mac)ユニット
US7769797B2 (en) 2004-01-20 2010-08-03 Samsung Electronics Co., Ltd. Apparatus and method of multiplication using a plurality of identical partial multiplication modules
WO2019082511A1 (ja) * 2017-10-23 2019-05-02 日立オートモティブシステムズ株式会社 演算装置及び車載制御装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217805A (ja) * 2001-10-05 2008-09-18 Intel Corp 単一命令複数データ(simd)命令用の積和演算(mac)ユニット
JP4555356B2 (ja) * 2001-10-05 2010-09-29 インテル・コーポレーション 単一命令複数データ(simd)命令用の積和演算(mac)ユニット
US7769797B2 (en) 2004-01-20 2010-08-03 Samsung Electronics Co., Ltd. Apparatus and method of multiplication using a plurality of identical partial multiplication modules
WO2019082511A1 (ja) * 2017-10-23 2019-05-02 日立オートモティブシステムズ株式会社 演算装置及び車載制御装置
JP2019079183A (ja) * 2017-10-23 2019-05-23 日立オートモティブシステムズ株式会社 演算装置及び車載制御装置

Also Published As

Publication number Publication date
JP3435744B2 (ja) 2003-08-11

Similar Documents

Publication Publication Date Title
US4597053A (en) Two-pass multiplier/accumulator circuit
US5001662A (en) Method and apparatus for multi-gauge computation
JP3110288B2 (ja) 指数対数変換回路
US6668266B2 (en) Data processing device having a central processing unit and digital signal processing unit
US5457805A (en) Microcomputer enabling high speed execution of product-sum operation
JPH08234962A (ja) 24ビットおよび16ビット算術演算の双方を実行するための装置および方法
KR860001433B1 (ko) Rom을 사용하여 10진 승산을 수행하는 데이터 프로세서
JPH04127364A (ja) 積和算器
EP0530372B1 (en) Numerical expression converter and vector processor using the same
JP3476960B2 (ja) 算術論理演算装置及び制御方法
US4677582A (en) Operation processing apparatus
JP3435744B2 (ja) 乗算回路
US3840727A (en) Binary multiplication by addition with non-verlapping multiplier recording
US5751999A (en) Processor and data memory for outputting and receiving data on different buses for storage in the same location
JPS5968058A (ja) フロ−テイング乗算器
JP2001216136A (ja) 加算回路およびプロセッサ
US6792442B1 (en) Signal processor and product-sum operating device for use therein with rounding function
JP3441847B2 (ja) データメモリを有するプロセッサ
JPH04314126A (ja) 逆数発生装置
US7590677B2 (en) Processor with summation instruction using overflow counter
JP3522167B2 (ja) 演算処理回路及び演算処理方法
US7580968B2 (en) Processor with scaled sum-of-product instructions
JP2675087B2 (ja) マイクロコンピュータ
JP2624738B2 (ja) 丸め処理方式
JPH0215089B2 (ja)

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20030506

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

Free format text: PAYMENT UNTIL: 20090606

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees