JPH0477819A - 乗算器 - Google Patents
乗算器Info
- Publication number
- JPH0477819A JPH0477819A JP18611690A JP18611690A JPH0477819A JP H0477819 A JPH0477819 A JP H0477819A JP 18611690 A JP18611690 A JP 18611690A JP 18611690 A JP18611690 A JP 18611690A JP H0477819 A JPH0477819 A JP H0477819A
- Authority
- JP
- Japan
- Prior art keywords
- multiplier
- bits
- multiplication
- multiplicand
- result
- 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.)
- Pending
Links
- 239000000284 extract Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 235000000396 iron Nutrition 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野]
本発明は、プログラマブルコントローラ等の演算用に用
いられる乗算器に関するものである。
いられる乗算器に関するものである。
[従来の技術]
従来のプログラマブルコントローラ等では第3図に示す
乗算器が演算用に用いられている。こび)乗算器では乗
数と被乗数とを夫々16ビツ1−ずつに分割し、1.6
X 16ビツトの乗算を4回行って32ビツトの乗数
と32ビツトの被乗数との乗算を行うもので、具体的に
は乗数と被乗数とを夫々32ビツトラツチ151.15
2にラッチしておき、このラッチ151.15□からセ
レクタ161.16□で乗数及び被乗数の上位あるいは
下位の16ビツトを選択し、夫々選択した]6ビツトす
−)の乗数と被乗数との乗算を16 X 16ビントの
並列乗算器17で4回繰り返して行って、その結果を3
2ビツトラツチ18にラッチし、このラッチ]8にラッ
チされた各回の乗算結果をシフタ19により桁自わぜを
行い、桁自わせ後の各回の乗算結果を64ヒツトの加算
器20及び64ビツトラツチ21を用いて加算して、3
2X32ビツトの乗算結果を得るようにしである。なお
、」1記セレクタ161、 t 62及びシフタ19は
2ビツトカウンタ22の切換信号に応じて動作する。
乗算器が演算用に用いられている。こび)乗算器では乗
数と被乗数とを夫々16ビツ1−ずつに分割し、1.6
X 16ビツトの乗算を4回行って32ビツトの乗数
と32ビツトの被乗数との乗算を行うもので、具体的に
は乗数と被乗数とを夫々32ビツトラツチ151.15
2にラッチしておき、このラッチ151.15□からセ
レクタ161.16□で乗数及び被乗数の上位あるいは
下位の16ビツトを選択し、夫々選択した]6ビツトす
−)の乗数と被乗数との乗算を16 X 16ビントの
並列乗算器17で4回繰り返して行って、その結果を3
2ビツトラツチ18にラッチし、このラッチ]8にラッ
チされた各回の乗算結果をシフタ19により桁自わぜを
行い、桁自わせ後の各回の乗算結果を64ヒツトの加算
器20及び64ビツトラツチ21を用いて加算して、3
2X32ビツトの乗算結果を得るようにしである。なお
、」1記セレクタ161、 t 62及びシフタ19は
2ビツトカウンタ22の切換信号に応じて動作する。
[発明が解決しようとする課題1
しかしながら、上述の従来の乗算器の構成であると、6
4ヒツl〜の加算器2oを構成するために全加算器が6
4個必要であり、ケート1規模が大きくなるという問題
があった。
4ヒツl〜の加算器2oを構成するために全加算器が6
4個必要であり、ケート1規模が大きくなるという問題
があった。
本発明は上述の点に鑑みて為されたものであり、その目
的とするところは、比較的に小さなゲート規模で構成で
きる乗算器を提供することにある。
的とするところは、比較的に小さなゲート規模で構成で
きる乗算器を提供することにある。
1課題を解決するための手段コ
上記目的を達成するために、本発明は乗数を下位ビット
から所定ビット毎に分割し、分割された乗数の下位の所
定ビットがら被乗数と順次乗算する直並列乗算手段と、
この直並列乗算手段による分割された乗数の所定ビット
と被乗数との乗算結果を前回の分割された乗数の所定ビ
ットと被乗数との乗算結果に逐次加算していく加算手段
と、この加算手段による加算結果で確定する下位の所定
ビットを順次記憶していく第1の記憶手段と、上記確定
した所定ビットを除く乗算結果の残りの不確定な複数ビ
ットを順次記憶し上記加算手段に前回の乗算結果として
逐次与える第2の記憶手段とを備えている。
から所定ビット毎に分割し、分割された乗数の下位の所
定ビットがら被乗数と順次乗算する直並列乗算手段と、
この直並列乗算手段による分割された乗数の所定ビット
と被乗数との乗算結果を前回の分割された乗数の所定ビ
ットと被乗数との乗算結果に逐次加算していく加算手段
と、この加算手段による加算結果で確定する下位の所定
ビットを順次記憶していく第1の記憶手段と、上記確定
した所定ビットを除く乗算結果の残りの不確定な複数ビ
ットを順次記憶し上記加算手段に前回の乗算結果として
逐次与える第2の記憶手段とを備えている。
なお、乗数及び被乗数を記憶するラッチの制御を同一ク
ロックで行えるようにする場なには、乗数の上記所定ヒ
ツトと被乗数の各ビットとを乗算するために設けられ被
乗数を下位ピッ1〜がら順次シフl−L、なから−時記
憶する上記直並列乗算手段の被乗数のシフト用の複数個
のう・ソチの個数を少なくとも乗数の分割ビット数の2
倍設ければ良い。
ロックで行えるようにする場なには、乗数の上記所定ヒ
ツトと被乗数の各ビットとを乗算するために設けられ被
乗数を下位ピッ1〜がら順次シフl−L、なから−時記
憶する上記直並列乗算手段の被乗数のシフト用の複数個
のう・ソチの個数を少なくとも乗数の分割ビット数の2
倍設ければ良い。
[作用]
本発明は、上述のように直並列乗算手段で乗数を下位ピ
ッ1へから所定ビット毎に分割し、分割ビット数の乗数
と被乗数との乗算を上記乗数の分割数繰り返して行い、
且−)直並列乗算手段による分割された乗数の所定ビッ
トと被乗数との乗算結果を前回の分割された乗数の所定
ピッI・と被乗数との乗算結果に加算器で逐次加算して
、乗数と被乗数との加算を行うことにより、全加算器の
個数を分割ビット数に1を加えた個数にすることがてき
るようにして、比較的に小さなゲート規模で乗算器を構
成できるようにしたものである。
ッ1へから所定ビット毎に分割し、分割ビット数の乗数
と被乗数との乗算を上記乗数の分割数繰り返して行い、
且−)直並列乗算手段による分割された乗数の所定ビッ
トと被乗数との乗算結果を前回の分割された乗数の所定
ピッI・と被乗数との乗算結果に加算器で逐次加算して
、乗数と被乗数との加算を行うことにより、全加算器の
個数を分割ビット数に1を加えた個数にすることがてき
るようにして、比較的に小さなゲート規模で乗算器を構
成できるようにしたものである。
また、乗数の上記所定ビットと被乗数の各ビットとを乗
算するために設けられ被乗数を下位ビットから順次シフ
トしながら一時記憶する上記直並列乗算手段の被乗数の
シフト用の複数個のラッチの個数を少なくとも乗数の分
割ビット数の2倍設けると、乗数の所定ビットと被乗数
との乗算と、乗数の次の所定ビットと被乗数との乗算と
の間に、乗数の所定ビットをクロックに従ってシフトさ
せる期間を設けることができ、乗数及び被乗数を記憶す
るラッチの制御を同一クロックで行えるようにもてきる
。
算するために設けられ被乗数を下位ビットから順次シフ
トしながら一時記憶する上記直並列乗算手段の被乗数の
シフト用の複数個のラッチの個数を少なくとも乗数の分
割ビット数の2倍設けると、乗数の所定ビットと被乗数
との乗算と、乗数の次の所定ビットと被乗数との乗算と
の間に、乗数の所定ビットをクロックに従ってシフトさ
せる期間を設けることができ、乗数及び被乗数を記憶す
るラッチの制御を同一クロックで行えるようにもてきる
。
[実施例]−1
第1図に本発明の一実施例を示す。本実施例の乗算器は
、乗数Xを下位から4ピツ1〜ずつに分け、この4ピツ
I・ずつに分割された乗数Xを下位のものから順次被乗
数Yと乗算して、計8回の直並列乗算を行い、この乗算
結果を桁合わせを行いながら加算して、32ビット×3
2ビットの乗算を結果を得るものである。この乗算器て
は、32ビツトの乗数Xを記憶するラッチ1と、被乗数
Yを記憶するラッチ2と、ラッチ2に記憶された被乗数
Yの下位1ビツトをタロツクに従って順次右シストしな
がらラッチしていく4個のラッチ3゜−33と、ラッチ
1から夫々出力される乗数Xの下位4ビツトX0〜X3
の夫々と上記ラッチ3゜〜33に記憶した被乗数Yの1
ビツトとのアンドをとるアンドゲート4゜〜43と、ア
ンドケート4゜〜43の出力に夫々接続され乗数Xの分
割ビットの桁に応じたクロック数だけアンドゲート4゜
〜43の出力を遅延させるラッチ5゜・5.と、乗数X
の分割ビットの桁毎に設けられ乗数Xと被乗数Yとの1
ビツトずつの加算を行う全加算器60.−63と、全加
算器6゜〜61Iの加算結果を1タロツクだけ保持する
ラッチ7o〜・73とを備え、これら各ゲー1〜により
直並列乗算手段を構成しである。さらに、この乗算器で
は」1記直並列乗算手段の乗算結果を桁合わせを行って
加算して32X32ビツトの乗算結果を得るために、上
記直並列乗算手段による分割された乗数Xの4ビットと
被乗数Yとの乗算結果を前回の分割された乗数Xの4ビ
ツトと被乗数Yとの乗算結果に逐次加算していく加算手
段としての全加算器8と、この全加算器8による加算結
果で確定する下位の所定ピッl−(乗数Xの分割ヒツト
数が4ピツI・であるので、4ビツト)を順次記憶して
いく第1ぴ)記憶手段としての64個のラッチ9゜〜9
63と、」1記確定した所定ビットく4ビツト)を除く
乗算結果び)残りの不確定な複数ビットく直並列乗算手
段による乗数Xの4ビット×被乗数Yの32ビツトの乗
算結果は36ビツトとなるので、不確定なヒラ1〜数は
32ビツトとなる)を順次記憶し、」1記全加算器8に
前回の乗算結果として逐次与える第2y+記憶手段とし
てのセレクタ10及び32個のラッチ]−1゜〜1]3
1とを備えている。なお、この乗算器においては最終的
な32ビツト×32ビツト(64ビツト)の乗算結果か
ラッチ9゜〜96゜から得られる。
、乗数Xを下位から4ピツ1〜ずつに分け、この4ピツ
I・ずつに分割された乗数Xを下位のものから順次被乗
数Yと乗算して、計8回の直並列乗算を行い、この乗算
結果を桁合わせを行いながら加算して、32ビット×3
2ビットの乗算を結果を得るものである。この乗算器て
は、32ビツトの乗数Xを記憶するラッチ1と、被乗数
Yを記憶するラッチ2と、ラッチ2に記憶された被乗数
Yの下位1ビツトをタロツクに従って順次右シストしな
がらラッチしていく4個のラッチ3゜−33と、ラッチ
1から夫々出力される乗数Xの下位4ビツトX0〜X3
の夫々と上記ラッチ3゜〜33に記憶した被乗数Yの1
ビツトとのアンドをとるアンドゲート4゜〜43と、ア
ンドケート4゜〜43の出力に夫々接続され乗数Xの分
割ビットの桁に応じたクロック数だけアンドゲート4゜
〜43の出力を遅延させるラッチ5゜・5.と、乗数X
の分割ビットの桁毎に設けられ乗数Xと被乗数Yとの1
ビツトずつの加算を行う全加算器60.−63と、全加
算器6゜〜61Iの加算結果を1タロツクだけ保持する
ラッチ7o〜・73とを備え、これら各ゲー1〜により
直並列乗算手段を構成しである。さらに、この乗算器で
は」1記直並列乗算手段の乗算結果を桁合わせを行って
加算して32X32ビツトの乗算結果を得るために、上
記直並列乗算手段による分割された乗数Xの4ビットと
被乗数Yとの乗算結果を前回の分割された乗数Xの4ビ
ツトと被乗数Yとの乗算結果に逐次加算していく加算手
段としての全加算器8と、この全加算器8による加算結
果で確定する下位の所定ピッl−(乗数Xの分割ヒツト
数が4ピツI・であるので、4ビツト)を順次記憶して
いく第1ぴ)記憶手段としての64個のラッチ9゜〜9
63と、」1記確定した所定ビットく4ビツト)を除く
乗算結果び)残りの不確定な複数ビットく直並列乗算手
段による乗数Xの4ビット×被乗数Yの32ビツトの乗
算結果は36ビツトとなるので、不確定なヒラ1〜数は
32ビツトとなる)を順次記憶し、」1記全加算器8に
前回の乗算結果として逐次与える第2y+記憶手段とし
てのセレクタ10及び32個のラッチ]−1゜〜1]3
1とを備えている。なお、この乗算器においては最終的
な32ビツト×32ビツト(64ビツト)の乗算結果か
ラッチ9゜〜96゜から得られる。
以下、本実施例の乗算器の動作を説明する。
まず、タロツクTLlが入力されると、ラッチ2に記憶
された被乗数Yの最下位ビットデータY0をラッチ31
.が−時記憶し、次にクロックT1が入力されると、ラ
ッチ3゜に保持していたビットデータY。がラッチ3.
にシフトされ、ラッチ3゜が新たに被乗数Yの次のとッ
トデータY1を一時記憶するというようにラッチ3.〜
3.はタロツク]゛11に従って順次布シストを行いな
がら被乗数Yのビットデータを記憶していく。この様子
を下記の表ここで、クロックT、が入力された時点では
、アントゲ−1−4、による上記Y。と乗数Xの最下位
ビットデータX0とのアンド出力、つまりは乗数Xと被
乗数Yとの最下位ビットの乗算結果(X、Yo)がラッ
チ5゜に入力される。
された被乗数Yの最下位ビットデータY0をラッチ31
.が−時記憶し、次にクロックT1が入力されると、ラ
ッチ3゜に保持していたビットデータY。がラッチ3.
にシフトされ、ラッチ3゜が新たに被乗数Yの次のとッ
トデータY1を一時記憶するというようにラッチ3.〜
3.はタロツク]゛11に従って順次布シストを行いな
がら被乗数Yのビットデータを記憶していく。この様子
を下記の表ここで、クロックT、が入力された時点では
、アントゲ−1−4、による上記Y。と乗数Xの最下位
ビットデータX0とのアンド出力、つまりは乗数Xと被
乗数Yとの最下位ビットの乗算結果(X、Yo)がラッ
チ5゜に入力される。
次に、タロツクT2が入力された時点て、ラッチ5゜に
保持していた乗算結果(xoy、、)が全加算器6゜に
入力され、全加算結果がラッチ7゜に記憶される。但し
、この全加算器6゜は最下位桁であり、桁上げ入力がな
いので、ラッチ7゜にはアンドゲート4゜の出力(X
o Y o >がそのまま記憶されることになる。この
とき、アンドゲート4゜による乗算結果(X OY l
)がラッチ5.に入力され、アンドゲート41による乗
算結果(x+yo>がラッチ51に入力される。
保持していた乗算結果(xoy、、)が全加算器6゜に
入力され、全加算結果がラッチ7゜に記憶される。但し
、この全加算器6゜は最下位桁であり、桁上げ入力がな
いので、ラッチ7゜にはアンドゲート4゜の出力(X
o Y o >がそのまま記憶されることになる。この
とき、アンドゲート4゜による乗算結果(X OY l
)がラッチ5.に入力され、アンドゲート41による乗
算結果(x+yo>がラッチ51に入力される。
クロックT3が入力されると、全加算器6、で上記ラッ
チ7゜に保持された加算結果(X o Y a >とラ
ッチ52に保持された乗算結果との加算が行われる。但
し、このタロツクT3か入力された時点ではラッチ51
からラッチ52にアンドゲート4.の乗算結果(XIY
o)がシフl〜されるだけで、ラッチ52からは全加算
器6Iに乗算結果が入力されないので、全加算器6Iの
加算結果はX。Y、となり、この加算結果(x OY
o)はラッチ7、で保持される。
チ7゜に保持された加算結果(X o Y a >とラ
ッチ52に保持された乗算結果との加算が行われる。但
し、このタロツクT3か入力された時点ではラッチ51
からラッチ52にアンドゲート4.の乗算結果(XIY
o)がシフl〜されるだけで、ラッチ52からは全加算
器6Iに乗算結果が入力されないので、全加算器6Iの
加算結果はX。Y、となり、この加算結果(x OY
o)はラッチ7、で保持される。
二のとき、全加算器6゜には新たにアンドゲート4゜の
乗算結果(XoYl)がラッチ5゜から入力され、全加
算器6゜の加算結果としてラッチ7のにX。Yが保持さ
れる。これと同時にラッチ5゜にアンドゲート4 oの
新たな乗算結果(X o Y 2 )が入力され、ラッ
チ5.に保持していた乗算結果(XIYo)がラッチ5
2にシフトされると共に、アンドゲート4の新たな乗算
結果(x+y+)がラッチ5.に入力され、ラッチ5.
にアンドゲート42の乗算結果(X2’1’0)が入力
される。
乗算結果(XoYl)がラッチ5゜から入力され、全加
算器6゜の加算結果としてラッチ7のにX。Yが保持さ
れる。これと同時にラッチ5゜にアンドゲート4 oの
新たな乗算結果(X o Y 2 )が入力され、ラッ
チ5.に保持していた乗算結果(XIYo)がラッチ5
2にシフトされると共に、アンドゲート4の新たな乗算
結果(x+y+)がラッチ5.に入力され、ラッチ5.
にアンドゲート42の乗算結果(X2’1’0)が入力
される。
クロックT、が入力されると、全加算器6□で上記ラッ
チ7、に保持された加算結果(xoy、)とラッチ55
に保持された乗算結果との加算が行われる。但し、この
クロックT、が入力された時点ではラッチ5.に記憶し
た乗算結果(X2YO)がラッチ5.にシストされる状
態にあり、ラッチ55からは全加算器62に乗算結果が
入力されないので、全加算器62の加算結果はX。Yo
となり、この加算結果〈XoYLl〉はラッチ7□て保
持される。このとき、全加算器61では上記ラッチ7
(+に保持された加算結果(X oY + )とラッチ
52に保持された乗算結果(X IY o)との加算が
行われ、その加算結果(XIYO+XoY、)がラッチ
7、で保持される。さらに、全加算器6゜には新たにア
ンドゲート4゜の乗算結果(X。Y、)がラッチ5゜か
ら入力され、全加算器6゜の加算結果としてラッチ7゜
にX。Y2が保持される。これと同時に、ラッチ5゜に
乗算結果(XoY]>、ラッチ51に乗算結果(XIY
2)が入力され、ラッチ52に乗算結果くX1Y1)が
シストされ、ラッチ53に乗算結果(X2Yl)が入力
され、ラッチ5.に乗算結果(x2YO)がシストされ
、さらにラッチ56にアンドゲート43による乗算結果
(X:1YO)が入力される。
チ7、に保持された加算結果(xoy、)とラッチ55
に保持された乗算結果との加算が行われる。但し、この
クロックT、が入力された時点ではラッチ5.に記憶し
た乗算結果(X2YO)がラッチ5.にシストされる状
態にあり、ラッチ55からは全加算器62に乗算結果が
入力されないので、全加算器62の加算結果はX。Yo
となり、この加算結果〈XoYLl〉はラッチ7□て保
持される。このとき、全加算器61では上記ラッチ7
(+に保持された加算結果(X oY + )とラッチ
52に保持された乗算結果(X IY o)との加算が
行われ、その加算結果(XIYO+XoY、)がラッチ
7、で保持される。さらに、全加算器6゜には新たにア
ンドゲート4゜の乗算結果(X。Y、)がラッチ5゜か
ら入力され、全加算器6゜の加算結果としてラッチ7゜
にX。Y2が保持される。これと同時に、ラッチ5゜に
乗算結果(XoY]>、ラッチ51に乗算結果(XIY
2)が入力され、ラッチ52に乗算結果くX1Y1)が
シストされ、ラッチ53に乗算結果(X2Yl)が入力
され、ラッチ5.に乗算結果(x2YO)がシストされ
、さらにラッチ56にアンドゲート43による乗算結果
(X:1YO)が入力される。
クロックT、か入力された時点ては、全加算器6、の加
算結果が」二連の場斤と同様にしてX。Y。
算結果が」二連の場斤と同様にしてX。Y。
となり、この加算結果(xoYo)がラッチ73に保持
される。また、全加算器6.ではラッチ7、に保持され
た加算結果(x + y o + x OY I >と
ラッチ55との加算を行う。この場合にもラッチ5.に
は乗算結果がシストされていないので、全加算器6□の
加算結果はX、 + Y o + X o Y 1とな
り、この加算結果がラッチ7、で保持される。全加算器
6.ではラッチ7゜に保持された加算結果くχ。Y2)
とラッチ52に保持された乗算結果(XIYI>との加
算が行jわれ、この加算結果(x + y + + x
OY 2 )がラッチ7で保持される。この時点にお
ける全加算器6゜の加算結果はX。Y3となり、この加
算結果がラッチ7oに入力される。さらに、これと同時
に、ラッチ50.5+、53.5Gに夫々X、Y、、X
、Y、、X2Y2、x3y、が入力され、ラッチ52.
5−.55.57にX、 I ¥3、X 2 Y 1.
X 2 Y o 、 X 3Y +がシストされる。
される。また、全加算器6.ではラッチ7、に保持され
た加算結果(x + y o + x OY I >と
ラッチ55との加算を行う。この場合にもラッチ5.に
は乗算結果がシストされていないので、全加算器6□の
加算結果はX、 + Y o + X o Y 1とな
り、この加算結果がラッチ7、で保持される。全加算器
6.ではラッチ7゜に保持された加算結果くχ。Y2)
とラッチ52に保持された乗算結果(XIYI>との加
算が行jわれ、この加算結果(x + y + + x
OY 2 )がラッチ7で保持される。この時点にお
ける全加算器6゜の加算結果はX。Y3となり、この加
算結果がラッチ7oに入力される。さらに、これと同時
に、ラッチ50.5+、53.5Gに夫々X、Y、、X
、Y、、X2Y2、x3y、が入力され、ラッチ52.
5−.55.57にX、 I ¥3、X 2 Y 1.
X 2 Y o 、 X 3Y +がシストされる。
タロツクT6が入力されると、全加算器63〜6゜の夫
々の加算結果か、X、Yo−1−X、Y、、X 2 Y
o 十XIY1+XoY2、X、Y2+XOY、、X
o Y 4となり、以下同様にして乗数Xの下位4ビ
ツトど被乗数Yとの直並列乗算が行われ、表2に示す演
算結果が得られる。そして、上述の直並列乗算が終了し
た時点で、乗数Xの4ピツ1へをシフl−した後に、次
の4ビツト・と被乗数Yとの直並列乗算を同様に行うと
いうようにして、乗数Xの上位4ビツトまで計8回の被
乗数Yとの直並列乗算を繰り返す。
々の加算結果か、X、Yo−1−X、Y、、X 2 Y
o 十XIY1+XoY2、X、Y2+XOY、、X
o Y 4となり、以下同様にして乗数Xの下位4ビ
ツトど被乗数Yとの直並列乗算が行われ、表2に示す演
算結果が得られる。そして、上述の直並列乗算が終了し
た時点で、乗数Xの4ピツ1へをシフl−した後に、次
の4ビツト・と被乗数Yとの直並列乗算を同様に行うと
いうようにして、乗数Xの上位4ビツトまで計8回の被
乗数Yとの直並列乗算を繰り返す。
−/l−
上述のようにして乗数Xの4ビツトと被乗数Yとの直並
列乗算を行った桁毎の結果であるラッチ73に保持され
た加算結果は全加算器8に逐次入力°される。今、乗数
Xの下位4ピツ1へと被乗数Yとの直並列乗算を行って
いるとすると、この場合には最初の直並列乗算であるの
て、ラッチ1]−o〜113、には何らのデータも記憶
されていない。従って、全加算器8の結果はそのままラ
ッチ73に保持された直並列乗算結果となる。
列乗算を行った桁毎の結果であるラッチ73に保持され
た加算結果は全加算器8に逐次入力°される。今、乗数
Xの下位4ピツ1へと被乗数Yとの直並列乗算を行って
いるとすると、この場合には最初の直並列乗算であるの
て、ラッチ1]−o〜113、には何らのデータも記憶
されていない。従って、全加算器8の結果はそのままラ
ッチ73に保持された直並列乗算結果となる。
ところで、本実施例の場合の乗数Xの4ビツト。
と被乗数)lとの直並列乗算は、表3中に平行四辺例え
ば乗数Xの下位4ビツトと被乗数Yとの直並列乗算を行
った結果の下位4ビツトのデータP。・・P、は、その
上の乗数Xの4ビツトと被乗数Yとの直並列乗算の結果
を待たずに確定することになる。よって、本実施例の場
合には、その確定ヒツトデータとしての下位4ビツトデ
ータP。〜P3をラッチ9゜〜963に記憶する。そし
て、セレクタ10で残りのビットデータを選択してラッ
チ11゜〜1131に記憶する。、二こて°、4ヒツト
×32ビツトの乗算を行った場合の乗算結果は36ビツ
トとなるので、上記4ピツI・の確定ビットを除くと、
32ビツトのデータがラッチ1.1o〜113.に逐次
記憶されることになる。
ば乗数Xの下位4ビツトと被乗数Yとの直並列乗算を行
った結果の下位4ビツトのデータP。・・P、は、その
上の乗数Xの4ビツトと被乗数Yとの直並列乗算の結果
を待たずに確定することになる。よって、本実施例の場
合には、その確定ヒツトデータとしての下位4ビツトデ
ータP。〜P3をラッチ9゜〜963に記憶する。そし
て、セレクタ10で残りのビットデータを選択してラッ
チ11゜〜1131に記憶する。、二こて°、4ヒツト
×32ビツトの乗算を行った場合の乗算結果は36ビツ
トとなるので、上記4ピツI・の確定ビットを除くと、
32ビツトのデータがラッチ1.1o〜113.に逐次
記憶されることになる。
その後、乗数Xの次の4ビツトと被乗数Yとの直並列乗
算を行った場合、全加算器8ではラッチ73に保持され
たデータを逐次ラッチ11o〜11゜に記憶したデータ
と加算していく。この際にも、下位4ビットデータP、
〜P7は乗数Xのさらに上位の4ピツl〜と被乗数Yと
の直並列乗算を待たずに確定するので、このデータP、
・F”7をラッチ9゜〜963に記憶し、残りのデータ
をセレクタ10を介してラッチllo〜113.に記憶
していく。このようにして演算を繰り返して行えば、乗
数Xの上位4ビツトと被乗数Yの直並列乗算により最後
の36ビツトデータP211〜F’63が確定して、ラ
ッチ9o〜963に記憶されたデータが乗数Xの32ビ
ット×被乗数Yの32ビツトの乗算結果となる。本実施
例の乗算器のように構成すれば、全加算器を5個にする
ことができ、比較的に小さいゲート規模て乗算器を構成
することができる。
算を行った場合、全加算器8ではラッチ73に保持され
たデータを逐次ラッチ11o〜11゜に記憶したデータ
と加算していく。この際にも、下位4ビットデータP、
〜P7は乗数Xのさらに上位の4ピツl〜と被乗数Yと
の直並列乗算を待たずに確定するので、このデータP、
・F”7をラッチ9゜〜963に記憶し、残りのデータ
をセレクタ10を介してラッチllo〜113.に記憶
していく。このようにして演算を繰り返して行えば、乗
数Xの上位4ビツトと被乗数Yの直並列乗算により最後
の36ビツトデータP211〜F’63が確定して、ラ
ッチ9o〜963に記憶されたデータが乗数Xの32ビ
ット×被乗数Yの32ビツトの乗算結果となる。本実施
例の乗算器のように構成すれば、全加算器を5個にする
ことができ、比較的に小さいゲート規模て乗算器を構成
することができる。
[実施例2]
第2図に本発明の他の実施例を示す。本実族□例では第
1の実施例のラッチ3゜〜33の後段に4個のラッチ3
.〜37を付加したもので、その他の構成は第1の実施
例と全・く同しものである。
1の実施例のラッチ3゜〜33の後段に4個のラッチ3
.〜37を付加したもので、その他の構成は第1の実施
例と全・く同しものである。
上述の第1の実施例の場合、乗数Xの4ビツトと被乗数
Yの直並列乗算の演算終了時点で、ラッチ1の乗数Xを
4ビツトシフトさせた後に乗数Xの次の4ビツトと被乗
数Yとの演算を行わなればならず、このためラッチ1.
2のクロックタイミングを異ならせなけれはならず、ラ
ッチ1.2の制御が複雑になる。そこで、この点を改良
するために、本実施例では上述のようにラッチ3゜へ3
3の後段に4個のラッチ3.〜37を付加した。このよ
うにすれば、乗数Xの次の4ピツ■・と被乗数Yとの直
並列乗算を行う前に、5クロツク分く表4のT35〜T
39参照)たけラッチ33、−33をデータが0の状態
にすることができ、この間の4クロツクを乗数χのビッ
トのシフト用のタロツクとして用いれば、ラッチ1,2
のタロツクを変えずに済む[発明の効果] 本発明は上述のように、乗数を下位ビットから所定ビッ
ト毎に分割し、分割された乗数の下位の所定ビットから
被乗数と順次乗算する直並列乗算手段と、この直並列乗
算手段による分割された乗数の所定ビットと被乗数との
乗算結果を前回の分割された乗数の所定ビットと被乗数
との乗算結果に逐次加算していく加算手段と、この加算
手段による加算結果て確定する下位の所定ビットを順次
記憶していく第1の記憶手段と、上記確定した所定ビッ
トを除く乗算結果の残りの不確定な複数ビットを抽出し
て順次記憶し上記加算手段に前回の乗算結果として逐次
与える第2の記憶手段とを備えているので、全加算器の
個数を分割ビット数に1を加えた個数に削減することが
でき、比較的に小さなゲート規模で乗算器を構成できる
。
Yの直並列乗算の演算終了時点で、ラッチ1の乗数Xを
4ビツトシフトさせた後に乗数Xの次の4ビツトと被乗
数Yとの演算を行わなればならず、このためラッチ1.
2のクロックタイミングを異ならせなけれはならず、ラ
ッチ1.2の制御が複雑になる。そこで、この点を改良
するために、本実施例では上述のようにラッチ3゜へ3
3の後段に4個のラッチ3.〜37を付加した。このよ
うにすれば、乗数Xの次の4ピツ■・と被乗数Yとの直
並列乗算を行う前に、5クロツク分く表4のT35〜T
39参照)たけラッチ33、−33をデータが0の状態
にすることができ、この間の4クロツクを乗数χのビッ
トのシフト用のタロツクとして用いれば、ラッチ1,2
のタロツクを変えずに済む[発明の効果] 本発明は上述のように、乗数を下位ビットから所定ビッ
ト毎に分割し、分割された乗数の下位の所定ビットから
被乗数と順次乗算する直並列乗算手段と、この直並列乗
算手段による分割された乗数の所定ビットと被乗数との
乗算結果を前回の分割された乗数の所定ビットと被乗数
との乗算結果に逐次加算していく加算手段と、この加算
手段による加算結果て確定する下位の所定ビットを順次
記憶していく第1の記憶手段と、上記確定した所定ビッ
トを除く乗算結果の残りの不確定な複数ビットを抽出し
て順次記憶し上記加算手段に前回の乗算結果として逐次
与える第2の記憶手段とを備えているので、全加算器の
個数を分割ビット数に1を加えた個数に削減することが
でき、比較的に小さなゲート規模で乗算器を構成できる
。
また、乗数の上記所定ビットと被乗数の各ビットとを乗
算するために設けられ被乗数を下位ビットから順次シフ
トシながら一時記憶する上記直並列乗算手段の被乗数の
シフト用の複数個のラッチの個数を少なくとも乗数の分
割ビット数の2倍設けると、乗数の所定ピッl−と被乗
数との乗算と、乗数の次の所定ビットと被乗数との乗算
との間に、乗数の所定ビットをクロックに従ってシフト
させる期間を設けることができ、乗数及び被乗数を記憶
するラッチの制御を同一クロックで行える。
算するために設けられ被乗数を下位ビットから順次シフ
トシながら一時記憶する上記直並列乗算手段の被乗数の
シフト用の複数個のラッチの個数を少なくとも乗数の分
割ビット数の2倍設けると、乗数の所定ピッl−と被乗
数との乗算と、乗数の次の所定ビットと被乗数との乗算
との間に、乗数の所定ビットをクロックに従ってシフト
させる期間を設けることができ、乗数及び被乗数を記憶
するラッチの制御を同一クロックで行える。
第1図は本発明の一実施例の構成図5第2図は他の実施
例の構成図、第3図は従来例の構成図である。 Xけ乗数、Yは被乗数、1.2.31〜3y、5o〜5
5,7o〜73.90〜9+13.1.10〜]−1,
、はラッチ、4゜〜43はアンドゲート、6o〜61,
8は全加算器、]0はセレクタ、3o〜37はラッチで
ある。 代理人 弁理士 石 1)長 七
例の構成図、第3図は従来例の構成図である。 Xけ乗数、Yは被乗数、1.2.31〜3y、5o〜5
5,7o〜73.90〜9+13.1.10〜]−1,
、はラッチ、4゜〜43はアンドゲート、6o〜61,
8は全加算器、]0はセレクタ、3o〜37はラッチで
ある。 代理人 弁理士 石 1)長 七
Claims (2)
- (1)乗数を下位ビットから所定ビット毎に分割し、分
割された乗数の下位の所定ビットから被乗数と順次乗算
する直並列乗算手段と、この直並列乗算手段による分割
された乗数の所定ビットと被乗数との乗算結果を前回の
分割された乗数の所定ビットと被乗数との乗算結果に逐
次加算していく加算手段と、この加算手段による加算結
果で確定する下位の所定ビットを順次記憶していく第1
の記憶手段と、上記確定した所定ビットを除く乗算結果
の残りの不確定な複数ビットを抽出して順次記憶し上記
加算手段に前回の乗算結果として逐次与える第2つ記憶
手段とを備えて成る乗算器。 - (2)乗数の上記所定ビットと被乗数の各ビットとを乗
算するために設けられ被乗数を下位ビットから順次シフ
トしながら一時記憶する上記直並列乗算手段の被乗数の
シフト用の複数個のラッチの個数を少なくとも乗数の分
割ビット数の2倍設けて成ることを特徴とする請求項1
記載の乗算器。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP18611690A JPH0477819A (ja) | 1990-07-14 | 1990-07-14 | 乗算器 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP18611690A JPH0477819A (ja) | 1990-07-14 | 1990-07-14 | 乗算器 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0477819A true JPH0477819A (ja) | 1992-03-11 |
Family
ID=16182644
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP18611690A Pending JPH0477819A (ja) | 1990-07-14 | 1990-07-14 | 乗算器 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0477819A (ja) |
-
1990
- 1990-07-14 JP JP18611690A patent/JPH0477819A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS6347874A (ja) | 算術演算装置 | |
| US3795880A (en) | Partial product array multiplier | |
| JPH0477338B2 (ja) | ||
| US6519621B1 (en) | Arithmetic circuit for accumulative operation | |
| JPH0234054B2 (ja) | ||
| JPH0317132B2 (ja) | ||
| JPH0477819A (ja) | 乗算器 | |
| JPS61166628A (ja) | 除算装置 | |
| JPH05197525A (ja) | オペランドを否定するための否定方法及び否定回路 | |
| JPS58129653A (ja) | 乗算方式 | |
| GB1565460A (en) | Fibonacci code adders | |
| CN220208247U (zh) | 除法运算电路 | |
| JPH03116327A (ja) | 乗算方式 | |
| US3192367A (en) | Fast multiply system | |
| JPH03265925A (ja) | プログラマブルコントローラ用乗算器 | |
| JPH043221A (ja) | ディジタル演算装置 | |
| JPS60186933A (ja) | 2進化10進乗算方式 | |
| JP2675087B2 (ja) | マイクロコンピュータ | |
| JPH0113129B2 (ja) | ||
| JP3460780B2 (ja) | 数値演算装置 | |
| JP3477866B2 (ja) | 除算器の除算方法 | |
| JPS6115232A (ja) | 乗算装置 | |
| JPS61177543A (ja) | 乗算装置 | |
| JPH04330519A (ja) | 乗算回路 | |
| JPS5969841A (ja) | デ−タ処理装置 |