JP3461706B2 - ディジットシリアル乗算器 - Google Patents

ディジットシリアル乗算器

Info

Publication number
JP3461706B2
JP3461706B2 JP33677797A JP33677797A JP3461706B2 JP 3461706 B2 JP3461706 B2 JP 3461706B2 JP 33677797 A JP33677797 A JP 33677797A JP 33677797 A JP33677797 A JP 33677797A JP 3461706 B2 JP3461706 B2 JP 3461706B2
Authority
JP
Japan
Prior art keywords
digit
multiplier
partial
multiplicand
register
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
JP33677797A
Other languages
English (en)
Other versions
JPH11203109A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP33677797A priority Critical patent/JP3461706B2/ja
Publication of JPH11203109A publication Critical patent/JPH11203109A/ja
Application granted granted Critical
Publication of JP3461706B2 publication Critical patent/JP3461706B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ディジットシリア
ル型の乗算器に関するものである。
【0002】
【従来の技術】ディジットシリアル型の乗算器が米国特
許第4,910,700号に示されている。この乗算器
によれば、乗数を表すデータワードが複数のディジット
に分割される。各ディジットは、例えば4ビットからな
る。この種の乗算器によれば、ワードパラレル・アーキ
テクチャとビットシリアル・アーキテクチャとの双方の
利点を活かすことにより、高いスループットを実現でき
る。
【0003】
【発明が解決しようとする課題】上記従来のディジット
シリアル乗算器は、被乗数を表すデータワードがパラレ
ルに供給されるビットスライス型の乗算器であった。し
たがって、データバスが大規模になるという問題があっ
た。
【0004】本発明の目的は、被乗数及び乗数をディジ
ットシリアル形式で供給することができるディジットシ
リアル乗算器を提供することにある。
【0005】
【課題を解決するための手段】上記目的を達成するた
め、本発明の第1のディジットシリアル乗算器は、各々
被乗数ディジットと乗数ディジットとの乗算を実行する
ための複数のディジット乗算器をカスケード接続してな
る構成を採用し、かつ各ディジット乗算器を繰り返し動
作させるようにしたものである。積ディジットは、最終
段のディジット乗算器からシリアルに出力される。
【0006】また、本発明の第2のディジットシリアル
乗算器は、各々被乗数ディジットと乗数ディジットとの
乗算を実行するための複数のディジット乗算器を1個の
出力セレクタに並列接続してなる構成を採用し、かつ各
ディジット乗算器を繰り返し動作させるようにしたもの
である。積ディジットは、出力セレクタからシリアルに
出力される。
【0007】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施形態を説明する。ここでは、全ての数が、4ビッ
トで構成されたディジットを単位として扱われるものと
する。ただし、1ディジットを構成するビットの数は2
以上の任意の整数である。
【0008】図1は、本発明に係るディジットシリアル
乗算器の構成例を示している。これは、乗算C=A×B
を実行できるものである。ここに、Aは8ビットからな
る被乗数を、Bは8ビットからなる乗数を、Cは16ビ
ットからなる積をそれぞれ表している。被乗数A、乗数
B及び積Cは、いずれも2の補数表現の固定小数点数で
ある。
【0009】被乗数Aは、4ビット下位ディジットA0
と、4ビット上位ディジットA1とで構成される。ディ
ジットA0は最下位ディジット(Least Significant Di
git:LSD)であり、ディジットA1は最上位ディジ
ット(Most Significant Digit:MSD)である。図1
中のA_DIGITは、4ビット被乗数バス51を介し
て該ディジットシリアル乗算器に順次入力される被乗数
ディジットA0及びA1のいずれかを表している。この
被乗数バス51の上に現在供給されているディジットが
LSDであるかMSDであるかは、該ディジットシリア
ル乗算器に入力される被乗数ディジット位置表示A_I
NDによって示される。
【0010】乗数Bは、4ビット最下位ディジット(L
SD)B0と、4ビット最上位ディジット(MSD)B
1とで構成される。図1中のB_DIGITは、4ビッ
ト乗数バス52を介して該ディジットシリアル乗算器に
順次入力される乗数ディジットB0及びB1のいずれか
を表している。この乗数バス52の上に現在供給されて
いるディジットがLSDであるかMSDであるかは、該
ディジットシリアル乗算器に入力される乗数ディジット
位置表示B_INDによって示される。
【0011】積Cは、4ビット最下位ディジット(LS
D)C0と、第1の4ビット中間位ディジット(Interm
ediate Significant Digit:ISD)C1と、第2の4
ビット中間位ディジット(ISD)C2と、4ビット最
上位ディジット(MSD)C3とで構成される。図1中
のC_DIGITは、4ビット積バス53を介して該デ
ィジットシリアル乗算器から順次出力される積ディジッ
トC0、C1、C2及びC3のいずれかを表している。
この積バス53の上に現在供給されているディジットが
LSD、ISD及びMSDのうちのいずれであるかは、
該ディジットシリアル乗算器から出力される積ディジッ
ト位置表示C_INDによって示される。なお、図1の
構成では、積ディジット位置表示C_INDの出力のた
めに2ビットバスが用意されているだけでなく、被乗数
ディジット位置表示A_INDの入力及び乗数ディジッ
ト位置表示B_INDの入力のためにもそれぞれ2ビッ
トバスが用意されている。これは、被乗数A及び乗数B
の各々が3個以上のディジットからなる場合を考慮した
ものである。
【0012】図1のディジットシリアル乗算器は、各々
4ビット×4ビットの乗算を実行するための4個のディ
ジット乗算器10,11,12,13を備えている。上
記被乗数ディジットA_DIGITと、被乗数ディジッ
ト位置表示A_INDと、乗数ディジットB_DIGI
Tと、乗数ディジット位置表示B_INDとは、4個の
ディジット乗算器10,11,12,13に共通に入力
される。ただし、インデックス信号IDX(IDX0〜
IDX3)が個々のディジット乗算器に与えられる。そ
の結果、4個のディジット乗算器10,11,12,1
3がそれぞれインデックス0、1、2及び3で識別され
る。ディジット乗算器#0は、ディジット乗算器#1か
ら4ビット部分和SUM1を受け取り、かつ積ディジッ
トC_DIGIT及び積ディジット位置表示C_IND
を出力するものである。ディジット乗算器#1は、ディ
ジット乗算器#2から4ビット部分和SUM2を受け取
り、かつ部分和SUM1をディジット乗算器#0へ供給
するものである。ディジット乗算器#2は、ディジット
乗算器#3から4ビット部分和SUM3を受け取り、か
つ部分和SUM2をディジット乗算器#1へ供給するも
のである。ディジット乗算器#3は、4ビット定数00
00(2進数表記)を受け取り、かつ部分和SUM3を
ディジット乗算器#2へ供給するものである。
【0013】図2は、図1中のディジット乗算器#0の
内部構成を示している。図2のディジット乗算器10
は、5個のレジスタ、すなわちインデックス信号IDX
0を格納するためのインデックスレジスタ21と、被乗
数ディジットA_DIGITを格納するための被乗数レ
ジスタ22と、乗数ディジットB_DIGITを格納す
るための乗数レジスタ23と、部分和SUM1を格納す
るための部分和レジスタ24と、中間和を格納するため
の中間和レジスタ25とを備えている。該ディジット乗
算器10は、入力セレクタ26と、部分乗算器27と、
部分加算器28と、キャリー加算器29と、シーケンス
制御部30とを更に備えている。入力セレクタ26は、
被乗数レジスタ22に格納された被乗数ディジットA_
DIGITと、4ビット定数0000(2進数表記)
と、4ビット定数1111(2進数表記)とのいずれか
を被乗数オペランドとして部分乗算器27へ供給し、か
つ乗数レジスタ23に格納された乗数ディジットB_D
IGITと、4ビット定数0000と、4ビット定数1
111とのいずれかを乗数オペランドとして部分乗算器
27へ供給するものである。部分乗算器27は、被乗数
オペランドと乗数オペランドとの乗算、すなわち4ビッ
ト×4ビットの乗算を実行するものである。この乗算に
より求められた積は8ビットからなる部分積である。こ
の部分積のうちの下位4ビットLは部分加算器28へ、
上位4ビットUはキャリー加算器29へそれぞれ供給さ
れる。部分加算器28は、部分乗算器27から供給され
た部分積の下位4ビットと、部分和レジスタ24に格納
された部分和と、中間和レジスタ25に格納された中間
和との加算を実行するものである。この加算により求め
られた和は最大6ビットからなる。この和のうちの下位
4ビットで構成されたディジットSUMは積ディジット
C_DIGITとして出力され、上位2ビットすなわち
キャリーCYはキャリー加算器29へ供給される。キャ
リー加算器29は、部分乗算器27から供給された部分
積の上位4ビットと、部分加算器28から供給されたキ
ャリーとの加算を実行するものである。この加算により
求められた和、すなわち中間和は最大5ビットからな
り、該中間和が中間和レジスタ25に格納される。シー
ケンス制御部30は、インデックスレジスタ21から供
給されたインデックスを受け取る。また、該シーケンス
制御部30は、被乗数ディジット位置表示A_INDが
MSDである場合には被乗数ディジットA_DIGIT
の最上位ビット(Most Significant Bit:MSB)A_
MSBを参照し、乗数ディジット位置表示B_INDが
MSDである場合には乗数ディジットB_DIGITの
最上位ビットB_MSBを参照する。更に、該シーケン
ス制御部30は、被乗数レジスタ22、乗数レジスタ2
3、部分和レジスタ24及び中間和レジスタ25の各々
のラッチタイミングを制御し、かつ入力セレクタ26に
おける被乗数オペランド及び乗数オペランドの選択を制
御するための制御信号CNTを供給する。更に、該シー
ケンス制御部30は、積ディジット位置表示C_IND
を生成する機能を有する。
【0014】図1中の他の3個のディジット乗算器#
1,#2及び#3の各々の内部構成は、上記ディジット
乗算器#0の内部構成と同様である。ただし、ディジッ
ト乗算器#0のみが積ディジット位置表示C_INDを
生成する。
【0015】図3は、図1のディジットシリアル乗算器
による符号付き乗算の例を示している。該ディジットシ
リアル乗算器の中で、被乗数最上位ディジットA1の更
に上位の位置に2個の符号拡張ディジットA2及びA3
が付加される。これら符号拡張ディジットの数は、乗数
Bのディジット数(=2)と一致する。被乗数Aが非負
である場合、すなわち被乗数最上位ディジットA1のM
SB(符号ビット)が0値ビットである場合には、A2
=0000かつA3=0000である。被乗数Aが負で
ある場合、すなわち被乗数最上位ディジットA1のMS
Bが1値ビットである場合には、A2=1111かつA
3=1111である。また、該ディジットシリアル乗算
器の中で、乗数最上位ディジットB1の更に上位の位置
に2個の符号拡張ディジットB2及びB3が付加され
る。これら符号拡張ディジットの数は、被乗数Aのディ
ジット数(=2)と一致する。乗数Bが非負である場
合、すなわち乗数最上位ディジットB1のMSB(符号
ビット)が0値ビットである場合には、B2=0000
かつB3=0000である。乗数Bが負である場合、す
なわち乗数最上位ディジットB1のMSBが1値ビット
である場合には、B2=1111かつB3=1111で
ある。ディジット乗算器#0は、部分積A0×B0、A
1×B0、A2×B0及びA3×B0を順次計算する。
ディジット乗算器#1は、部分積A0×B1、A1×B
1及びA2×B1を順次計算する。ディジット乗算器#
2は、部分積A0×B2及びA1×B2を順次計算す
る。ディジット乗算器#3は、部分積A0×B3を計算
する。4個の積ディジットC0、C1、C2及びC3
は、計算された10個の部分積から求められる。
【0016】図4は、図1のディジットシリアル乗算器
の動作タイミングを示している。以下、該ディジットシ
リアル乗算器の動作を1サイクル毎に説明する。ただ
し、以下の動作に先立って、ディジット乗算器#0、#
1、#2及び#3の各々のインデックスレジスタ21の
内容はそれぞれ0、1、2及び3に初期化されているも
のとする。
【0017】サイクル1では、ディジットB0が乗数バ
ス52の上に供給される。ディジット乗算器#0、#
1、#2及び#3の各々のシーケンス制御部30は、乗
数ディジット位置表示B_INDがLSDであることか
ら乗算の開始を知る。これに伴い、ディジット乗算器#
0、#1、#2及び#3の各々の部分和レジスタ24の
内容がいずれも0000に、中間和レジスタ25の内容
がいずれも00000にそれぞれ初期化される。
【0018】サイクル2では、ディジット乗算器#0の
乗数レジスタ23がディジットB0を格納する。その
後、ディジットB1が乗数バス52の上に、ディジット
A0が被乗数バス51の上にそれぞれ供給される。ディ
ジット乗算器#2及び#3の各々のシーケンス制御部3
0は、ディジットB1のMSBから乗数Bの符号を知
る。
【0019】サイクル3では、ディジット乗算器#1の
乗数レジスタ23がディジットB1を格納する。また、
ディジット乗算器#0、#1、#2及び#3の各々の被
乗数レジスタ22がディジットA0を格納する。その
後、ディジットA1が被乗数バス51の上に供給され
る。ディジット乗算器#0及び#1の各々のシーケンス
制御部30は、ディジットA1のMSBから乗数Aの符
号を知る。ディジット乗算器#0の入力セレクタ26
は、被乗数レジスタ22に格納されたディジットA0
と、乗数レジスタ23に格納されたディジットB0とを
部分乗算器27へ供給する。ディジット乗算器#1の入
力セレクタ26は、被乗数レジスタ22に格納されたデ
ィジットA0と、乗数レジスタ23に格納されたディジ
ットB1とを部分乗算器27へ供給する。ディジット乗
算器#2の入力セレクタ26は、被乗数レジスタ22に
格納されたディジットA0と、乗数Bの符号に応じた符
号拡張ディジット(0000又は1111)B2とを部
分乗算器27へ供給する。ディジット乗算器#3の入力
セレクタ26は、被乗数レジスタ22に格納されたディ
ジットA0と、乗数Bの符号に応じた符号拡張ディジッ
ト(0000又は1111)B3とを部分乗算器27へ
供給する。その結果、ディジット乗算器#0、#1、#
2及び#3の各々の部分乗算器27は、それぞれ部分積
A0×B0、A0×B1、A0×B2及びA0×B3を
計算する。ディジット乗算器#0において、部分加算器
28は、部分乗算器27から供給された部分積A0×B
0の下位4ビットと、中間和レジスタ25から供給され
た00000と、部分和レジスタ24から供給された0
000との加算を実行する。この加算の結果のうちの下
位4ビットSUMは、積ディジットC0として出力され
る。該加算で生じたキャリーCY(=00)は、部分積
A0×B0の上位4ビットとともにキャリー加算器29
に供給される。したがって、部分積A0×B0の上位4
ビットがそのまま中間和レジスタ25に格納される。デ
ィジット乗算器#1において、部分加算器28は、部分
乗算器27から供給された部分積A0×B1の下位4ビ
ットと、中間和レジスタ25から供給された00000
と、部分和レジスタ24から供給された0000との加
算を実行する。この加算の結果のうちの下位4ビット
は、ディジット乗算器#0の部分和レジスタ24に格納
される。該加算で生じたキャリーCY(=00)は、部
分積A0×B1の上位4ビットとともに、ディジット乗
算器#1のキャリー加算器29に供給される。したがっ
て、部分積A0×B1の上位4ビットがそのままディジ
ット乗算器#1の中間和レジスタ25に格納される。デ
ィジット乗算器#2において、部分加算器28は、部分
乗算器27から供給された部分積A0×B2の下位4ビ
ットと、中間和レジスタ25から供給された00000
と、部分和レジスタ24から供給された0000との加
算を実行する。この加算の結果のうちの下位4ビット
は、ディジット乗算器#1の部分和レジスタ24に格納
される。該加算で生じたキャリーCY(=00)は、部
分積A0×B2の上位4ビットとともに、ディジット乗
算器#2のキャリー加算器29に供給される。したがっ
て、部分積A0×B2の上位4ビットがそのままディジ
ット乗算器#2の中間和レジスタ25に格納される。デ
ィジット乗算器#3において、部分加算器28は、部分
乗算器27から供給された部分積A0×B3の下位4ビ
ットと、中間和レジスタ25から供給された00000
と、部分和レジスタ24から供給された0000との加
算を実行する。この加算の結果のうちの下位4ビット
は、ディジット乗算器#2の部分和レジスタ24に格納
される。この時点以後のディジット乗算器#3の動作は
積Cの計算に影響しないので、その説明は省略する。デ
ィジット乗算器#0のシーケンス制御部30は、LSD
を示す積ディジット位置表示C_INDを出力する。
【0020】サイクル4では、ディジット乗算器#0、
#1及び#2の各々の被乗数レジスタ22がディジット
A1を格納する。ディジット乗算器#0の入力セレクタ
26は、被乗数レジスタ22に格納されたディジットA
1と、乗数レジスタ23に格納されたディジットB0と
を部分乗算器27へ供給する。ディジット乗算器#1の
入力セレクタ26は、被乗数レジスタ22に格納された
ディジットA1と、乗数レジスタ23に格納されたディ
ジットB1とを部分乗算器27へ供給する。ディジット
乗算器#2の入力セレクタ26は、被乗数レジスタ22
に格納されたディジットA1と、乗数Bの符号に応じた
符号拡張ディジット(0000又は1111)B2とを
部分乗算器27へ供給する。その結果、ディジット乗算
器#0、#1及び#2の各々の部分乗算器27は、それ
ぞれ部分積A1×B0、A1×B1及びA1×B2を計
算する。ディジット乗算器#0において、部分加算器2
8は、部分乗算器27から供給された部分積A1×B0
の下位4ビットと、中間和レジスタ25から供給された
中間和(部分積A0×B0の上位4ビット)と、部分和
レジスタ24から供給された部分和(部分積A0×B1
の下位4ビット)との加算を実行する。この加算の結果
のうちの下位4ビットSUMは、積ディジットC1とし
て出力される。該加算で生じたキャリーCYは、部分積
A1×B0の上位4ビットとともにキャリー加算器29
に供給される。したがって、部分積A1×B0の上位4
ビット(キャリー付き)が中間和レジスタ25に格納さ
れる。ディジット乗算器#1において、部分加算器28
は、部分乗算器27から供給された部分積A1×B1の
下位4ビットと、中間和レジスタ25から供給された中
間和(部分積A0×B1の上位4ビット)と、部分和レ
ジスタ24から供給された部分和(部分積A0×B2の
下位4ビット)との加算を実行する。この加算の結果の
うちの下位4ビットは、ディジット乗算器#0の部分和
レジスタ24に格納される。該加算で生じたキャリーC
Yは、部分積A1×B1の上位4ビットとともに、ディ
ジット乗算器#1のキャリー加算器29に供給される。
したがって、部分積A1×B1の上位4ビット(キャリ
ー付き)がディジット乗算器#1の中間和レジスタ25
に格納される。ディジット乗算器#2において、部分加
算器28は、部分乗算器27から供給された部分積A1
×B2の下位4ビットと、中間和レジスタ25から供給
された中間和(部分積A0×B2の上位4ビット)と、
部分和レジスタ24から供給された部分和(部分積A0
×B3の下位4ビット)との加算を実行する。この加算
の結果のうちの下位4ビットは、ディジット乗算器#1
の部分和レジスタ24に格納される。この時点以後のデ
ィジット乗算器#2の動作は積Cの計算に影響しないの
で、その説明は省略する。ディジット乗算器#0のシー
ケンス制御部30は、ISDを示す積ディジット位置表
示C_INDを出力する。
【0021】サイクル5では、ディジット乗算器#0の
入力セレクタ26は、被乗数Aの符号に応じた符号拡張
ディジット(0000又は1111)A2と、乗数レジ
スタ23に格納されたディジットB0とを部分乗算器2
7へ供給する。ディジット乗算器#1の入力セレクタ2
6は、被乗数Aの符号に応じた符号拡張ディジット(0
000又は1111)A2と、乗数レジスタ23に格納
されたディジットB1とを部分乗算器27へ供給する。
その結果、ディジット乗算器#0及び#1の各々の部分
乗算器27は、それぞれ部分積A2×B0及びA2×B
1を計算する。ディジット乗算器#0において、部分加
算器28は、部分乗算器27から供給された部分積A2
×B0の下位4ビットと、中間和レジスタ25から供給
された中間和(部分積A1×B0の上位4ビット)と、
部分和レジスタ24から供給された部分和(部分積A1
×B1の下位4ビットと、部分積A0×B1の上位4ビ
ットと、部分積A0×B2の下位4ビットとの和の下位
4ビット)との加算を実行する。この加算の結果のうち
の下位4ビットSUMは、積ディジットC2として出力
される。該加算で生じたキャリーCYは、部分積A2×
B0の上位4ビットとともにキャリー加算器29に供給
される。したがって、部分積A2×B0の上位4ビット
(キャリー付き)が中間和レジスタ25に格納される。
ディジット乗算器#1において、部分加算器28は、部
分乗算器27から供給された部分積A2×B1の下位4
ビットと、中間和レジスタ25から供給された中間和
(部分積A1×B1の上位4ビット)と、部分和レジス
タ24から供給された部分和(部分積A1×B2の下位
4ビットと、部分積A0×B2の上位4ビットと、部分
積A0×B3の下位4ビットとの和の下位4ビット)と
の加算を実行する。この加算の結果のうちの下位4ビッ
トは、ディジット乗算器#0の部分和レジスタ24に格
納される。この時点以後のディジット乗算器#1の動作
は積Cの計算に影響しないので、その説明は省略する。
ディジット乗算器#0のシーケンス制御部30は、IS
Dを示す積ディジット位置表示C_INDを出力する。
【0022】サイクル6では、ディジット乗算器#0の
入力セレクタ26は、被乗数Aの符号に応じた符号拡張
ディジット(0000又は1111)A3と、乗数レジ
スタ23に格納されたディジットB0とを部分乗算器2
7へ供給する。その結果、ディジット乗算器#0の部分
乗算器27は、部分積A3×B0を計算する。ディジッ
ト乗算器#0において、部分加算器28は、部分乗算器
27から供給された部分積A3×B0の下位4ビット
と、中間和レジスタ25から供給された中間和(部分積
A2×B0の上位4ビット)と、部分和レジスタ24か
ら供給された部分和(部分積A2×B1の下位4ビット
と、部分積A1×B1の上位4ビットと、サイクル5の
ディジット乗算器#1において部分和レジスタ24から
供給された部分和)との加算を実行する。ここに、サイ
クル5のディジット乗算器#1において部分和レジスタ
24から供給された部分和は、部分積A1×B2の下位
4ビットと、部分積A0×B2の上位4ビットと、部分
積A0×B3の下位4ビットとの和の下位4ビットであ
る。サイクル6のディジット乗算器#0における部分加
算器28の加算の結果のうちの下位4ビットSUMは、
積ディジットC3として出力される。ディジット乗算器
#0のシーケンス制御部30は、ISDを示す積ディジ
ット位置表示C_INDを出力する。
【0023】以上の動作により、積ディジットC0、C
1、C2及びC3が、その各々に対応する積ディジット
位置表示C_INDとともに得られた。
【0024】なお、図3から判るように、ディジット乗
算器#0及び#1のいずれでも乗数の符号拡張ディジッ
トB2及びB3を選択することはなく、ディジット乗算
器#2及び#3のいずれでも被乗数の符号拡張ディジッ
トA2及びA3を選択することはない。したがって、個
々のディジット乗算器のシーケンス制御部30は、イン
デックスレジスタ21から供給されたインデックスに応
じて、入力セレクタ26における被乗数オペランド及び
乗数オペランドの選択肢を制限するようになっている。
【0025】上記4個のディジット乗算器を備えたディ
ジットシリアル乗算器によれば、3ディジットからなる
被乗数(2の補数表現)と、1ディジットからなる乗数
(2の補数表現)との積を計算することもできる。この
場合には、被乗数に1個の符号拡張ディジットが、乗数
に3個の符号拡張ディジットがそれぞれ付加される。ま
た、1ディジットからなる被乗数(2の補数表現)と、
3ディジットからなる乗数(2の補数表現)との積を計
算することもできる。この場合には、被乗数に3個の符
号拡張ディジットが、乗数に1個の符号拡張ディジット
がそれぞれ付加される。
【0026】上記被乗数Aが常に非負であれば、A2=
A3=0000が常に成り立つので、図3に示した部分
積A2×B0、A3×B0及びA2×B1を計算する必
要がない。つまり、サイクル5及び6においてディジッ
ト乗算器#0及び#1の各々の部分乗算器27の動作を
停止することができる。上記乗数Bが常に非負であれ
ば、B2=B3=0000が常に成り立つので、図3に
示した部分積A0×B2、A1×B2及びA0×B3を
計算する必要がない。つまり、2個のディジット乗算器
#0及び#1で上記の積Cを計算することができる。上
記4個のディジット乗算器#0、#1、#2及び#3に
より、非負の16ビット被乗数と非負の16ビット乗数
との積を計算することもできる。
【0027】上記乗数Bに係る2個の符号拡張ディジッ
トB2及びB3は常に一致する。したがって、ディジッ
ト乗算器#2において求められた部分積A0×B2を部
分積A0×B3に代えて用いることとすれば、3個のデ
ィジット乗算器#0、#1及び#2で上記の積Cを計算
することができる。
【0028】図5は、図2の構成の変形例を示してい
る。図5によれば、乗数最下位ディジットB0、乗数最
上位ディジットB1、被乗数最下位ディジットA0及び
被乗数最上位ディジットA1が、この順序で4ビット共
通バス54に供給される。図5中のDIGITは、ディ
ジットB0、B1、A0及びA1のいずれかを表してい
る。共通バス54の上に現在供給されているディジット
がLSDであるかMSDであるかは、ディジット位置表
示INDによって示される。図5のディジット乗算器1
0aでは、乗数レジスタ23と共通バス54との間にテ
ンポラリレジスタ31が介在している。この構成によれ
ば、ある乗数ディジットがテンポラリレジスタ31に格
納された後、被乗数レジスタ22への被乗数最下位ディ
ジットA0の格納と同時に、テンポラリレジスタ31か
ら乗数レジスタ23への乗数ディジットの転送が行なわ
れる。
【0029】図6は、本発明に係るディジットシリアル
乗算器の他の構成例を示している。これは、乗算F=D
×Eを実行できるものである。ここに、Dは8ビットか
らなる被乗数を、Eは8ビットからなる乗数を、Fは1
6ビットからなる積をそれぞれ表している。被乗数D、
乗数E及び積Fは、いずれも符号なし(非負)の固定小
数点数である。
【0030】被乗数Dは、4ビット最下位ディジット
(LSD)D0と、4ビット最上位ディジット(MS
D)D1とで構成される。図6中のD_DIGITは、
4ビット被乗数バス61を介して該ディジットシリアル
乗算器に順次入力される被乗数ディジットD0及びD1
のいずれかを表している。この被乗数バス61の上に現
在供給されているディジットがLSDであるかMSDで
あるかは、該ディジットシリアル乗算器に入力される被
乗数ディジット位置表示D_INDによって示される。
【0031】乗数Eは、4ビット最下位ディジット(L
SD)E0と、4ビット最上位ディジット(MSD)E
1とで構成される。図6中のE_DIGITは、4ビッ
ト乗数バス62を介して該ディジットシリアル乗算器に
順次入力される乗数ディジットE0及びE1のいずれか
を表している。この乗数バス62の上に現在供給されて
いるディジットがLSDであるかMSDであるかは、該
ディジットシリアル乗算器に入力される乗数ディジット
位置表示E_INDによって示される。
【0032】積Fは、4ビット最下位ディジット(LS
D)F0と、第1の4ビット中間位ディジット(IS
D)F1と、第2の4ビット中間位ディジット(IS
D)F2と、4ビット最上位ディジット(MSD)F3
とで構成される。図6中のF_DIGITは、4ビット
積バス63を介して該ディジットシリアル乗算器から順
次出力される積ディジットF0、F1、F2及びF3の
いずれかを表している。この積バス63の上に現在供給
されているディジットがLSD、ISD及びMSDのう
ちのいずれであるかは、該ディジットシリアル乗算器か
ら出力される積ディジット位置表示F_INDによって
示される。
【0033】図6のディジットシリアル乗算器は、部分
積D0×E0及びD1×E0を順次計算するためのディ
ジット乗算器(#0)70と、部分積D0×E1及びD
1×E1を順次計算するためのディジット乗算器(#
1)80と、両ディジット乗算器70,80から供給さ
れた部分積のキャリー伝搬加算を実行するための加算回
路90と、該加算回路90によるキャリー伝搬加算の結
果を1ディジット毎に積バス63へ出力するための出力
セレクタ94と、上記被乗数ディジット位置表示D_I
ND及び乗数ディジット位置表示E_INDに応じて各
ブロックの動作を制御するように制御信号CNTを生成
するためのシーケンス制御部95とを備えている。上記
被乗数ディジットD_DIGITと、乗数ディジットE
_DIGITとは、2個のディジット乗算器70,80
に共通に入力される。
【0034】加算回路90は、5個のディジット加算器
71,81,91,92,93と、2個のキャリーセレ
クタ71,81と、3個のディジットレジスタ83,8
4,85とを備えている。5個のディジット加算器7
1,81,91,92,93はそれぞれキャリー伝搬加
算器(Ripple Carry Adder:RCA)であり、以後これ
らをディジットRCAという。ディジットRCA71
は、ディジット乗算器#0から供給されたディジットU
(D0×E0)、すなわち部分積D0×E0の上位4ビ
ットと、同ディジット乗算器#0から供給されたディジ
ットL(D1×E0)、すなわち部分積D1×E0の下
位4ビットとのキャリー伝搬加算を実行し、かつ該加算
により得られたディジットSUMをディジットRCA9
1へ供給するとともに、該加算で生じたキャリーCYを
一時保持するものである。該ディジットRCA71のキ
ャリー入力は、0値ビットに固定されている。キャリー
セレクタ72は、ディジットRCA71に一時保持され
たキャリーCYと、0値ビットとのいずれかをディジッ
ト乗算器#0へキャリー入力CINとして供給するもの
である。ディジットRCA81は、ディジット乗算器#
1から供給されたディジットU(D0×E1)、すなわ
ち部分積D0×E1の上位4ビットと、同ディジット乗
算器#1から供給されたディジットL(D1×E1)、
すなわち部分積D1×E1の下位4ビットとのキャリー
伝搬加算を実行し、かつ該加算により得られたディジッ
トSUMをディジットレジスタ84へ供給するととも
に、該加算で生じたキャリーCYを一時保持するもので
ある。該ディジットRCA81のキャリー入力は、0値
ビットに固定されている。キャリーセレクタ82は、デ
ィジットRCA81に一時保持されたキャリーCYと、
0値ビットとのいずれかをディジット乗算器#1へキャ
リー入力CINとして供給するものである。ディジット
RCA91は、ディジット乗算器#1からディジットレ
ジスタ83を介して供給されたディジットL(D0×E
1)、すなわち部分積D0×E1の下位4ビットと、デ
ィジットRCA71から供給されたディジットとのキャ
リー伝搬加算を実行し、かつ該加算により得られたディ
ジットSUMを出力セレクタ94へ供給するとともに、
該加算で生じたキャリーCYを一時保持するものであ
る。該ディジットRCA91のキャリー入力は、0値ビ
ットに固定されている。ディジットRCA92は、ディ
ジットRCA81からディジットレジスタ84を介して
供給されたディジットと、ディジット乗算器#0から供
給されたディジットU(D1×E0)、すなわち部分積
D1×E0の上位4ビットとのキャリー伝搬加算を実行
し、かつ該加算により得られたディジットSUMを出力
セレクタ94へ供給するとともに、該加算で生じたキャ
リーCYを一時保持するものである。該ディジットRC
A92のキャリー入力は、ディジットRCA91に一時
保持されたキャリーである。ディジットRCA93は、
ディジット乗算器#1からディジットレジスタ85を介
して供給されたディジットU(D1×E1)、すなわち
部分積D1×E1の上位4ビットと、4ビット定数00
00(2進数表記)とのキャリー伝搬加算を実行し、か
つ該加算により得られたディジットSUMを出力セレク
タ94へ供給するものである。該ディジットRCA93
のキャリー入力は、ディジットRCA92に一時保持さ
れたキャリーである。
【0035】出力セレクタ94は、ディジット乗算器#
0から供給されたディジットL(D0×E0)、すなわ
ち部分積D0×E0の下位4ビットと、ディジットRC
A91から供給されたディジットと、ディジットRCA
92から供給されたディジットと、ディジットRCA9
3から供給されたディジットとをそれぞれ積ディジット
F0、F1、F2及びF3として順次出力するものであ
る。シーケンス制御部95は、ディジット乗算器#0,
#1及びディジットRCA71,81,91,92のそ
れぞれに内蔵されたレジスタ並びにディジットレジスタ
83,84,85の各々のラッチタイミングを制御し、
かつキャリーセレクタ72,82及び出力セレクタ94
における選択を制御するための制御信号CNTを供給
し、かつ積ディジット位置表示F_INDを生成する機
能を有する。
【0036】図7は、図6中のディジット乗算器#0の
内部構成を示している。図7のディジット乗算器70
は、被乗数レジスタ100と、乗数レジスタ101と、
AND回路102と、CSA(Carry Save Adder:キャ
リー保存加算器)103と、中間レジスタ104と、R
CA(Ripple Carry Adder:キャリー伝搬加算器)10
5とを備えている。被乗数レジスタ100は、制御信号
CNTに応答して被乗数ディジットD_DIGITを格
納するためのレジスタである。この被乗数レジスタ10
0に格納されたディジットを構成する4ビットd0,d
1,d2,d3は、AND回路102へ供給される。乗
数レジスタ101は、制御信号CNTに応答して乗数デ
ィジットE_DIGITを格納するためのレジスタであ
る。この乗数レジスタ101に格納されたディジットを
構成する4ビットe0,e1,e2,e3も、AND回
路102へ供給される。AND回路102は、被乗数レ
ジスタ100に格納された被乗数ディジットと、乗数レ
ジスタ101に格納された乗数ディジットとのビット毎
の乗算を実行するものである。この乗算により求められ
た16個のビット積d0×e0〜d3×e3は、CSA
103へ供給される。CSA103は、AND回路10
2から供給された16個のビット積のキャリー保存加算
を実行するものである。この加算により求められた部分
和のうちの下位4ビットt0,t1,t2,t3は、8
ビット部分積のうちの下位4ビットからなるディジット
PPLとしてディジット乗算器70から出力される。ま
た、CSA103における加算によりそれぞれ得られた
上位3ビットの部分和u0,u1,u2と、上位3ビッ
トの部分キャリーv0,v1,v2とは、中間レジスタ
104を介してRCA105へ供給される。中間レジス
タ104のラッチタイミングは、制御信号CNTにより
制御される。RCA105は、上記キャリー入力CIN
を受け取り、かつ中間レジスタ104に格納された部分
和及び部分キャリーのキャリー伝搬加算を実行するもの
である。この加算により求められた和を構成する4ビッ
トt4,t5,t6,t7は、8ビット部分積のうちの
上位4ビットからなるディジットPPUとしてディジッ
ト乗算器70から出力される。なお、図6中のディジッ
ト乗算器#1の内部構成は、上記ディジット乗算器#0
の内部構成と同様である。
【0037】図8はCSA103の詳細構成を、図9は
RCA105の詳細構成をそれぞれ示している。図8及
び図9において、111〜113は各々HA(Half Add
er:半加算器)であり、114〜122は各々FA(Fu
ll Adder:全加算器)であり、s1〜s12は各々1ビ
ットの和であり、r1〜r12は各々1ビットのキャリ
ーである。これらの構成は特開昭58−31449号公
報により公知であるので、詳細な説明は省略する。
【0038】図10は、図6中のディジットRCA71
の詳細構成を示している。図10のディジットRCA7
1は、4個のFA123〜126と、1個のキャリーレ
ジスタ127とを備えている。図10において、s13
〜s16は各々1ビットの和であり、r13〜r16は
各々1ビットのキャリーである。最上位のFA126か
ら供給されたキャリーr16は、制御信号CNTに応答
してキャリーレジスタ127に格納される。
【0039】図6中の他の4個のディジットRCA8
1,91,92,93の各々の詳細構成は、上記ディジ
ットRCA71の詳細構成と同様である。ただし、ディ
ジットRCA93では、キャリーレジスタ127の配設
を省略できる。
【0040】図11は、図6のディジットシリアル乗算
器による乗算の例を示している。ディジット乗算器#0
は、部分積D0×E0及びD1×E0を順次計算する。
ディジット乗算器#1は、部分積D0×E1及びD1×
E1を順次計算する。4個の積ディジットF0、F1、
F2及びF3は、計算された4個の部分積から加算回路
90により求められる。詳細に説明すると、最下位の積
ディジットF0は、ディジット乗算器#0から供給され
たディジットL(D0×E0)である。ディジットRC
A71は、ディジット和U(D0×E0)+L(D1×
E0)を求めるように加算を実行する。この加算で生じ
たキャリーCYは、ディジット乗算器#0のRCA10
5においてディジットU(D1×E0)の計算に反映さ
れる。ディジットRCA91は、ディジット乗算器#1
から供給されたディジットL(D0×E1)と、上記デ
ィジット和U(D0×E0)+L(D1×E0)との加
算を実行し、この加算で生じたキャリーCYをディジッ
トRCA92へ供給する。この加算で得られたディジッ
トは第1中間位の積ディジットF1である。ディジット
RCA81は、ディジット和U(D0×E1)+L(D
1×E1)を求めるように加算を実行する。この加算で
生じたキャリーCYは、ディジット乗算器#1のRCA
105においてディジットU(D1×E1)の計算に反
映される。ディジットRCA92は、ディジット乗算器
#0から供給されたディジットU(D1×E0)と、上
記ディジット和U(D0×E1)+L(D1×E1)と
の加算を実行し、この加算で生じたキャリーCYをディ
ジットRCA93へ供給する。この加算で得られたディ
ジットは第2中間位の積ディジットF2である。ディジ
ットRCA93は、ディジット乗算器#1から供給され
たディジットU(D1×E1)に、ディジットRCA9
2から供給されたキャリーCYを反映させるように加算
を実行する。この加算で得られたディジットは最上位の
積ディジットF3である。
【0041】図12及び図13は、図6のディジットシ
リアル乗算器の動作タイミングを示している。このディ
ジットシリアル乗算器の動作を1サイクル毎に説明す
る。
【0042】サイクル1では、ディジットE0が乗数バ
ス62の上に供給される。シーケンス制御部95は、乗
数ディジット位置表示E_INDがLSDであることか
ら乗算の開始を知る。
【0043】サイクル2では、ディジット乗算器#0の
乗数レジスタ101がディジットE0を格納する。その
後、ディジットE1が乗数バス62の上に、ディジット
D0が被乗数バス61の上にそれぞれ供給される。
【0044】サイクル3では、ディジット乗算器#1の
乗数レジスタ101がディジットE1を格納する。ま
た、ディジット乗算器#0及び#1の各々の被乗数レジ
スタ100がディジットD0を格納する。その後、ディ
ジットD1が被乗数バス61の上に供給される。ディジ
ット乗算器#0では部分積D0×E0の計算のうちのキ
ャリー保存加算が、ディジット乗算器#1では部分積D
0×E1の計算のうちのキャリー保存加算がそれぞれ実
行される。その結果、ディジット乗算器#0において、
ディジットL(D0×E0)がCSA103から供給さ
れ、ディジットU(D0×E0)の計算のための各々3
ビットの中間和及び中間キャリーが中間レジスタ104
に格納される。また、ディジット乗算器#1において、
ディジットL(D0×E1)がCSA103から供給さ
れ、ディジットU(D0×E1)の計算のための各々3
ビットの中間和及び中間キャリーが中間レジスタ104
に格納される。ディジット乗算器#1のCSA103か
ら供給されたディジットL(D0×E1)は、ディジッ
トレジスタ83に格納される。
【0045】サイクル4では、ディジット乗算器#0の
CSA103から供給されたディジットL(D0×E
0)が、出力セレクタ94から積ディジットF0として
出力される。シーケンス制御部95は、LSDを示す積
ディジット位置表示F_INDを出力する。ディジット
乗算器#0及び#1の各々の被乗数レジスタ100は、
ディジットD1を格納する。ディジット乗算器#0では
部分積D0×E0の計算のうちのキャリー伝搬加算と部
分積D1×E0の計算のうちのキャリー保存加算とが、
ディジット乗算器#1では部分積D0×E1の計算のう
ちのキャリー伝搬加算と部分積D1×E1の計算のうち
のキャリー保存加算とがそれぞれ実行される。この際、
両キャリーセレクタ72,82はいずれも0値ビットを
選択する。その結果、ディジット乗算器#0において、
ディジットU(D0×E0)がRCA105から供給さ
れ、ディジットL(D1×E0)がCSA103から供
給され、ディジットU(D1×E0)の計算のための各
々3ビットの中間和及び中間キャリーが中間レジスタ1
04に格納される。また、ディジット乗算器#1におい
て、ディジットU(D0×E1)がRCA105から供
給され、ディジットL(D1×E1)がCSA103か
ら供給され、ディジットU(D1×E1)の計算のため
の各々3ビットの中間和及び中間キャリーが中間レジス
タ104に格納される。ディジットRCA71は、加算
U(D0×E0)+L(D1×E0)を実行し、この加
算で生じたキャリーCYを保持する。ディジットRCA
91は、ディジットレジスタ83から供給されたディジ
ットL(D0×E1)と、ディジットRCA71から供
給されたディジット和U(D0×E0)+L(D1×E
0)との加算を実行し、この加算で生じたキャリーCY
を保持する。ディジットRCA81は、加算U(D0×
E1)+L(D1×E1)を実行し、この加算で生じた
キャリーCYを保持する。このディジットRCA81か
ら供給されたディジット和U(D0×E1)+L(D1
×E1)は、ディジットレジスタ84に格納される。
【0046】サイクル5では、ディジットRCA91か
ら供給されたディジット和U(D0×E0)+L(D1
×E0)+L(D0×E1)が、出力セレクタ94から
積ディジットF1として出力される。シーケンス制御部
95は、ISDを示す積ディジット位置表示F_IND
を出力する。ディジット乗算器#0では部分積D1×E
0の計算のうちのキャリー伝搬加算が、ディジット乗算
器#1では部分積D1×E1の計算のうちのキャリー伝
搬加算がそれぞれ実行される。この際、キャリーセレク
タ72はディジットRCA71から供給されたキャリー
を、キャリーセレクタ82はディジットRCA81から
供給されたキャリーをそれぞれ選択する。その結果、デ
ィジット乗算器#0において、加算U(D0×E0)+
L(D1×E0)で生じたキャリーを反映したディジッ
トU(D1×E0)がRCA105から供給される。ま
た、ディジット乗算器#1において、加算U(D0×E
1)+L(D1×E1)で生じたキャリーを反映したデ
ィジットU(D1×E1)がRCA105から供給され
る。ディジット乗算器#1のRCA105から供給され
たディジットU(D1×E1)は、ディジットレジスタ
85に格納される。ディジットRCA92は、ディジッ
トレジスタ84から供給されたディジット和U(D0×
E1)+L(D1×E1)と、ディジット乗算器#0の
RCA105から供給されたディジットU(D1×E
0)との加算を実行し、この加算で生じたキャリーCY
を保持する。この際、ディジットRCA91から供給さ
れたキャリーCYが、ディジットRCA92の加算結果
に反映される。
【0047】サイクル6では、ディジットRCA92か
ら供給されたディジット和U(D1×E0)+U(D0
×E1)+L(D1×E1)が、出力セレクタ94から
積ディジットF2として出力される。シーケンス制御部
95は、ISDを示す積ディジット位置表示F_IND
を出力する。ディジットRCA93は、ディジットレジ
スタ85から供給されたディジットU(D1×E1)
と、4ビット定数0000との加算を実行する。この
際、ディジットRCA92から供給されたキャリーCY
が、ディジットRCA93の加算結果に反映される。
【0048】サイクル7では、ディジットRCA93か
ら供給されたディジット和U(D1×E1)+CYが、
出力セレクタ94から積ディジットF3として出力され
る。シーケンス制御部95は、MSDを示す積ディジッ
ト位置表示F_INDを出力する。
【0049】以上の動作により、積ディジットF0、F
1、F2及びF3が、その各々に対応する積ディジット
位置表示F_INDとともに得られた。
【0050】図6のディジットシリアル乗算器によれ
ば、加算回路90をキャリー先見加算器(Carry Look-a
head Adder:CLA)で構成する場合に比べて、ハード
ウェア量を低減できる。ディジット乗算器の数は、乗数
を構成するディジットの数に応じて変更できる。各ディ
ジット乗算器は、被乗数を構成するディジットの数だけ
繰り返し動作をする。乗数が1ディジットのみで構成さ
れる場合には、図6中のディジットRCA71の出力デ
ィジットと、ディジット乗算器#0の上位ディジットP
PUとを出力セレクタ94へ直接供給すればよい。
【0051】
【発明の効果】以上説明してきたとおり、本発明の第1
のディジットシリアル乗算器によれば、各々被乗数ディ
ジットと乗数ディジットとの乗算を実行するための複数
のディジット乗算器をカスケード接続してなる構成を採
用し、かつ各ディジット乗算器を繰り返し動作させるよ
うにしたので、被乗数及び乗数をディジットシリアル形
式で供給することができる。
【0052】また、本発明の第2のディジットシリアル
乗算器によれば、各々被乗数ディジットと乗数ディジッ
トとの乗算を実行するための複数のディジット乗算器を
1個の出力セレクタに並列接続してなる構成を採用し、
かつ各ディジット乗算器を繰り返し動作させるようにし
たので、被乗数及び乗数をディジットシリアル形式で供
給することができる。
【図面の簡単な説明】
【図1】本発明に係るディジットシリアル乗算器の構成
例を示すブロック図である。
【図2】図1中の4個のディジット乗算器のうちの1個
の内部構成を示すブロック図である。
【図3】図1のディジットシリアル乗算器による符号付
き乗算の例を示す図である。
【図4】図1のディジットシリアル乗算器の動作を示す
タイミング図である。
【図5】図2の構成の変形例を示すブロック図である。
【図6】本発明に係るディジットシリアル乗算器の他の
構成例を示すブロック図である。
【図7】図6中の2個のディジット乗算器のうちの1個
の内部構成を示すブロック図である。
【図8】図7中のCSA(キャリー保存加算器)の詳細
構成を示すブロック図である。
【図9】図7中のRCA(キャリー伝搬加算器)の詳細
構成を示すブロック図である。
【図10】図6中の5個のディジットRCAのうちの1
個の詳細構成を示すブロック図である。
【図11】図6のディジットシリアル乗算器による乗算
の例を示す図である。
【図12】図6のディジットシリアル乗算器中の2個の
ディジット乗算器の動作を示すタイミング図である。
【図13】図6のディジットシリアル乗算器の他の部分
の動作を示すタイミング図である。
【符号の説明】
10,11,12,13 ディジット乗算器 21 インデックスレジスタ 22 被乗数レジスタ 23 乗数レジスタ 24 部分和レジスタ 25 中間和レジスタ 26 入力レジスタ 27 部分乗算器 28 部分加算器 29 キャリー加算器 30 シーケンス制御部 31 テンポラリレジスタ 51 被乗数バス 52 乗数バス 53 積バス 54 共通バス 61 被乗数バス 62 乗数バス 63 積バス 70,80 ディジット乗算器 71,81 ディジットRCA(ディジット加算器) 72,82 キャリーセレクタ 83,84,85 ディジットレジスタ 90 加算回路 91,92,93 ディジットRCA 94 出力セレクタ 95 シーケンス制御部 100 被乗数レジスタ 101 乗数レジスタ 102 AND回路 103 CSA(キャリー保存加算器,第1の加算器) 104 中間レジスタ 105 RCA(キャリー伝搬加算器,第2の加算器) 111,112,113 HA(半加算器) 114〜126 FA(全加算器) 127 キャリーレジスタ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−216126(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 7/52 310

Claims (11)

    (57)【特許請求の範囲】
  1. 【請求項1】 各々1ディジットを構成するビットの数
    m(mは2以上の整数)に等しいバス幅を有する被乗数
    バス、乗数バス及び積バスと、 互いにカスケード接続され、前記被乗数バスと前記乗数
    バスとにそれぞれ共通に接続され、かつ前記被乗数バス
    の上に供給されているディジットに関する被乗数ディジ
    ット位置表示と、前記乗数バスの上に供給されているデ
    ィジットに関する乗数ディジット位置表示とをそれぞれ
    共通に受け取る複数のディジット乗算器とを備えたディ
    ジットシリアル乗算器であって、 前記複数のディジット乗算器の各々は、 前記被乗数バスを介して供給された被乗数ディジットを
    格納するための被乗数レジスタと、 前記乗数バスを介して供給された乗数ディジットを格納
    するための乗数レジスタと、 前段のディジット乗算器から供給された部分和を格納す
    るための部分和レジスタと、 中間和を格納するための中間和レジスタと、 前記被乗数レジスタに格納された被乗数ディジットと、
    前記乗数レジスタに格納された乗数ディジットとの乗算
    を実行し、該乗算の結果を2mビットの部分積として供
    給するための部分乗算器と、 前記部分積の下位mビットと、前記部分和レジスタに格
    納された部分和と、前記中間和レジスタに格納された中
    間和との加算を実行し、該加算の結果のうちの下位mビ
    ットで構成された部分和を次段のディジット乗算器へ供
    給するための部分加算器と、 前記部分積の上位mビットと、前記部分加算器で生じた
    キャリーとの加算を実行し、該加算の結果で構成された
    中間和を前記中間和レジスタへ供給するためのキャリー
    加算器と、 前記被乗数ディジット位置表示及び乗数ディジット位置
    表示に応じて、前記被乗数レジスタ、乗数レジスタ、部
    分和レジスタ及び中間和レジスタの各々のラッチタイミ
    ングを制御するためのシーケンス制御部とを備え、 最終段のディジット乗算器の前記部分加算器から供給さ
    れた部分和が前記積バスへ出力されることを特徴とする
    ディジットシリアル乗算器。
  2. 【請求項2】 請求項1記載のディジットシリアル乗算
    器において、 前記複数のディジット乗算器の各々は、個々のディジッ
    ト乗算器を識別するインデックス信号を格納するための
    インデックスレジスタを更に備え、 前記複数のディジット乗算器の各々の前記シーケンス制
    御部は、前記乗数レジスタに格納されるべき乗数ディジ
    ットを、前記インデックスレジスタから供給されたイン
    デックスに応じて選択する機能を有することを特徴とす
    るディジットシリアル乗算器。
  3. 【請求項3】 請求項1記載のディジットシリアル乗算
    器において、 前記最終段のディジット乗算器の前記シーケンス制御部
    は、前記積バスの上に出力されているディジットに関す
    る積ディジット位置表示を出力する機能を有することを
    特徴とするディジットシリアル乗算器。
  4. 【請求項4】 請求項1記載のディジットシリアル乗算
    器において、 前記被乗数バス及び乗数バスは、前記ビットの数mに等
    しいバス幅を有する共通バスに統合され、 前記複数のディジット乗算器の各々は、前記乗数レジス
    タと前記共通バスとの間に介在したテンポラリレジスタ
    を更に備えたことを特徴とするディジットシリアル乗算
    器。
  5. 【請求項5】 請求項1記載のディジットシリアル乗算
    器において、 前記複数のディジット乗算器のうちの出力側の半数は、
    被乗数に関する符号拡張ディジットを前記部分乗算器へ
    供給するための手段を更に備え、 残りのディジット乗算器は、乗数に関する符号拡張ディ
    ジットを前記部分乗算器へ供給するための手段を更に備
    えたことを特徴とするディジットシリアル乗算器。
  6. 【請求項6】 各々2の補数表現された被乗数Aと乗数
    Bとの積をディジットシリアル乗算器で計算するための
    方法であって、 前記被乗数Aの最上位ディジットの更に上位の位置に、
    乗数のディジット数NB(NBは整数)と同じ数の符号
    拡張ディジットを付加するステップと、 前記乗数Bの最上位ディジットの更に上位の位置に、被
    乗数のディジット数NA(NAは整数)と同じ数の符号
    拡張ディジットを付加するステップと、 各々前記符号拡張ディジットが付加された被乗数と乗数
    との積のうちの下位NA+NBディジットをそれぞれ計
    算するステップとを備えたことを特徴とする方法。
  7. 【請求項7】 各々1ディジットを構成するビットの数
    m(mは2以上の整数)に等しいバス幅を有する被乗数
    バス、乗数バス及び積バスと、 各々前記被乗数バスを介して共通に供給された被乗数デ
    ィジットと、前記乗数バスを介して供給された対応する
    乗数ディジットとの乗算を実行し、該乗算の結果を2m
    ビットの部分積として供給するための複数のディジット
    乗算器と、 前記複数のディジット乗算器から供給された各々2mビ
    ットからなる複数の部分積のキャリー伝搬加算を実行す
    るための加算回路と、 前記加算回路によるキャリー伝搬加算の結果を1ディジ
    ット毎に前記積バスへ出力するための出力セレクタと、 前記被乗数バスの上に供給されているディジットに関す
    る被乗数ディジット位置表示と、前記乗数バスの上に供
    給されているディジットに関する乗数ディジット位置表
    示とを受け取り、該両ディジット位置表示に基づいて前
    記出力セレクタを制御するためのシーケンス制御部とを
    備えたことを特徴とするディジットシリアル乗算器。
  8. 【請求項8】 請求項7記載のディジットシリアル乗算
    器において、 前記複数のディジット乗算器の各々は、 前記被乗数バスを介して供給された被乗数ディジットを
    格納するための被乗数レジスタと、 前記乗数バスを介して供給された乗数ディジットを格納
    するための乗数レジスタと、 前記被乗数レジスタに格納された被乗数ディジットと、
    前記乗数レジスタに格納された乗数ディジットとのビッ
    ト毎の乗算を実行し、該乗算の結果をm×m個のビット
    積として供給するためのAND回路と、 前記AND回路から供給されたm×m個のビット積のキ
    ャリー保存加算を実行し、かつ該加算により各々得られ
    た、前記2mビットの部分積のうちの下位mビットと、
    各々m−1ビットからなる部分和及び部分キャリーとを
    供給するための第1の加算器と、 前記第1の加算器から供給された部分和及び部分キャリ
    ーを格納するための中間レジスタと、 前記中間レジスタに格納された部分和及び部分キャリー
    のキャリー伝搬加算を実行し、該加算の結果を前記2m
    ビットの部分積のうちの上位mビットとして供給するた
    めの第2の加算器とを備えたことを特徴とするディジッ
    トシリアル乗算器。
  9. 【請求項9】 請求項8記載のディジットシリアル乗算
    器において、 前記加算回路は、 前記複数のディジット乗算器のうちの対応するディジッ
    ト乗算器の前記第2の加算器から供給された、ある部分
    積の上位mビットからなるディジットと、同ディジット
    乗算器の前記第1の加算器から供給された、次の部分積
    の下位mビットからなるディジットとのキャリー伝搬加
    算を実行し、かつ該加算により得られたディジットを供
    給するとともに、該加算で生じたキャリーを一時保持す
    るためのディジット加算器と、 同ディジット乗算器の前記第2の加算器へ、前記ディジ
    ット加算器に一時保持されたキャリーと、0値ビットと
    のいずれかをキャリー入力として供給するためのキャリ
    ーセレクタとを備えたことを特徴とするディジットシリ
    アル乗算器。
  10. 【請求項10】 請求項9記載のディジットシリアル乗
    算器において、 前記シーケンス制御部は、前記被乗数ディジット位置表
    示に応じて前記キャリーセレクタを制御する機能を更に
    有することを特徴とするディジットシリアル乗算器。
  11. 【請求項11】 請求項7記載のディジットシリアル乗
    算器において、 前記シーケンス制御部は、前記積バスの上に出力されて
    いるディジットに関する積ディジット位置表示を出力す
    る機能を更に有することを特徴とするディジットシリア
    ル乗算器。
JP33677797A 1997-11-11 1997-12-08 ディジットシリアル乗算器 Expired - Fee Related JP3461706B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33677797A JP3461706B2 (ja) 1997-11-11 1997-12-08 ディジットシリアル乗算器

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP9-308191 1997-11-11
JP30819197 1997-11-11
JP33677797A JP3461706B2 (ja) 1997-11-11 1997-12-08 ディジットシリアル乗算器

Publications (2)

Publication Number Publication Date
JPH11203109A JPH11203109A (ja) 1999-07-30
JP3461706B2 true JP3461706B2 (ja) 2003-10-27

Family

ID=26565443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33677797A Expired - Fee Related JP3461706B2 (ja) 1997-11-11 1997-12-08 ディジットシリアル乗算器

Country Status (1)

Country Link
JP (1) JP3461706B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100962126B1 (ko) 2007-12-26 2010-06-10 대구대학교 산학협력단 유한체상의 엠에스디우선 알고리즘을 이용한 디지트-시리얼곱셈기

Also Published As

Publication number Publication date
JPH11203109A (ja) 1999-07-30

Similar Documents

Publication Publication Date Title
US6349318B1 (en) Arithmetic processor for finite field and module integer arithmetic operations
JPH1195981A (ja) 乗算回路
JPH0713742A (ja) 乗算装置
US6295597B1 (en) Apparatus and method for improved vector processing to support extended-length integer arithmetic
EP0356153B1 (en) Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction
JPS6375932A (ja) ディジタル乗算器
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US6519621B1 (en) Arithmetic circuit for accumulative operation
US5957999A (en) Booth multiplier with squaring operation accelerator
JP3461706B2 (ja) ディジットシリアル乗算器
US3937941A (en) Method and apparatus for packed BCD sign arithmetic employing a two's complement binary adder
JPS58137045A (ja) 並列乗算器
JPH10111791A (ja) 除算装置
JP3110401B2 (ja) ディジットシリアル演算装置
JP3222313B2 (ja) 演算装置及び演算方法
US5309385A (en) Vector division processing method and system
US6792442B1 (en) Signal processor and product-sum operating device for use therein with rounding function
JP3203454B2 (ja) 乗算器
JP3231298B2 (ja) 乗算装置
JP2777265B2 (ja) 高基数開平演算装置
JP3205020B2 (ja) 演算装置
JP2001134556A (ja) 繰り返し型乗算器とアレイ型乗算器
SU1474671A1 (ru) Преобразователь формы представлени логических функций
JPS60108932A (ja) 十進演算処理装置
JP3656699B2 (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: 20030729

LAPS Cancellation because of no payment of annual fees