JPH11203108A - 乗算回路 - Google Patents
乗算回路Info
- Publication number
- JPH11203108A JPH11203108A JP255098A JP255098A JPH11203108A JP H11203108 A JPH11203108 A JP H11203108A JP 255098 A JP255098 A JP 255098A JP 255098 A JP255098 A JP 255098A JP H11203108 A JPH11203108 A JP H11203108A
- Authority
- JP
- Japan
- Prior art keywords
- bits
- bit
- multiplicand
- result
- 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.)
- Withdrawn
Links
- 238000001514 detection method Methods 0.000 claims abstract description 52
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000000630 rising effect Effects 0.000 description 43
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
Abstract
(57)【要約】
【課題】 少ないゲート量で、乗算速度を向上する。
【解決手段】 例えば、8bitの被乗数IN1と乗数
IN2が入力されると、シフトレジスタ12によって1
サイクル毎に乗数IN2のMSB側から1bitずつ取
出される。この1bitと被乗数IN1とが乗算手段1
3で乗算される。この乗算結果と、アキュムレータ15
に格納された1サイクル前の加算結果とが加算器14で
加算され、該アキュムレータ15に格納される。これに
より、1サイクル毎に1bit分の加算が行われ、複数
のサイクルで乗算が終了する。被乗数IN1が0のとき
にはこれが“0”検出回路11で検出され、“0”検出
信号S11が“1”になり、直ちに乗算動作が終了す
る。
IN2が入力されると、シフトレジスタ12によって1
サイクル毎に乗数IN2のMSB側から1bitずつ取
出される。この1bitと被乗数IN1とが乗算手段1
3で乗算される。この乗算結果と、アキュムレータ15
に格納された1サイクル前の加算結果とが加算器14で
加算され、該アキュムレータ15に格納される。これに
より、1サイクル毎に1bit分の加算が行われ、複数
のサイクルで乗算が終了する。被乗数IN1が0のとき
にはこれが“0”検出回路11で検出され、“0”検出
信号S11が“1”になり、直ちに乗算動作が終了す
る。
Description
【0001】
【発明の属する技術分野】本発明は、複数のビット(以
下、「bit」という)の2進数でそれぞれ表現された
被乗数と乗数とを乗算する乗算回路に関するものであ
る。
下、「bit」という)の2進数でそれぞれ表現された
被乗数と乗数とを乗算する乗算回路に関するものであ
る。
【0002】
【従来の技術】複数bitの2進数でそれぞれ表現され
た被乗数と乗数との乗算は、これらの被乗数及び乗数の
各bit(桁)の加算で実現される。例えば、10進数
で表現された被乗数55と乗数103との乗算55*1
03=5665(但し、「*」は乗算記号)の方法は、
次のようになる。10進数の55は8bitの2進数で
表現すると“00110111”となり、10進数の1
03を8bitの2進数で表現すると“0110011
1”となる。これらの乗算例を図2に示す。図2に示す
ように、被乗数“00110111”と乗数“0110
0111”の乗算では、まず乗数“01100111”
のそれぞれのbit毎に被乗数“00110111”と
の間で乗算をして部分積を出し、次にこれらの部分積を
足して積を求める。即ち、乗数“01100111”を
bit毎に分解し、この分解したbitが“1”であれ
ば被乗数“00110111”を加算し、“0”であれ
ば加算せず、この処理を桁合わせをしながら行えば、乗
算結果5665が求まる。
た被乗数と乗数との乗算は、これらの被乗数及び乗数の
各bit(桁)の加算で実現される。例えば、10進数
で表現された被乗数55と乗数103との乗算55*1
03=5665(但し、「*」は乗算記号)の方法は、
次のようになる。10進数の55は8bitの2進数で
表現すると“00110111”となり、10進数の1
03を8bitの2進数で表現すると“0110011
1”となる。これらの乗算例を図2に示す。図2に示す
ように、被乗数“00110111”と乗数“0110
0111”の乗算では、まず乗数“01100111”
のそれぞれのbit毎に被乗数“00110111”と
の間で乗算をして部分積を出し、次にこれらの部分積を
足して積を求める。即ち、乗数“01100111”を
bit毎に分解し、この分解したbitが“1”であれ
ば被乗数“00110111”を加算し、“0”であれ
ば加算せず、この処理を桁合わせをしながら行えば、乗
算結果5665が求まる。
【0003】図3は、従来の乗算回路を示す構成図であ
る。この乗算回路は、8bitの被乗数IN1(=55
=“00110111”)と8bitの乗数IN2(=
103=“01100111”)とを乗算する回路であ
り、ANDゲートで構成された8個の部分積生成回路1
1 〜18 と、この部分積生成回路11 〜18 で求めた部
分積を加算する7個の加算器21 〜27 と、該加算器2
7 の加算結果(即ち、16bitの乗算結果)OUTを
記憶するレジスタ3とを備えている。この乗算回路で
は、被乗数IN1と乗数IN2とを部分積生成回路11
〜18で乗算して部分積を求め、この部分積を加算器2
1 〜27 で加算し、この加算結果(即ち、乗算結果)O
UTをレジスタ3に記憶する。そのため、1サイクルで
乗算し、この乗算結果を加算することができる。
る。この乗算回路は、8bitの被乗数IN1(=55
=“00110111”)と8bitの乗数IN2(=
103=“01100111”)とを乗算する回路であ
り、ANDゲートで構成された8個の部分積生成回路1
1 〜18 と、この部分積生成回路11 〜18 で求めた部
分積を加算する7個の加算器21 〜27 と、該加算器2
7 の加算結果(即ち、16bitの乗算結果)OUTを
記憶するレジスタ3とを備えている。この乗算回路で
は、被乗数IN1と乗数IN2とを部分積生成回路11
〜18で乗算して部分積を求め、この部分積を加算器2
1 〜27 で加算し、この加算結果(即ち、乗算結果)O
UTをレジスタ3に記憶する。そのため、1サイクルで
乗算し、この乗算結果を加算することができる。
【0004】図4は、従来の他の乗算回路を示す構成図
である。この乗算回路は、図3の乗算回路に比べてゲー
ト量を削減させた回路構成であり、シフトレジスタ4に
よって1サイクル毎に8bitの乗数IN2(=103
=“01100111”)の最上位bit(以下、「M
SB」という)側から1bitずつを取出す。この1b
itと8bitの被乗数IN1(=55=“00110
111”)とをANDゲート5で乗算し、2入力の16
bit加算器6の一方の入力端子Aへ送る。加算器6の
出力端子にはアキュムレータ(累算器)7が接続され、
このアキュムレータ7から出力される16bitの出力
信号のうち、下位15bitが加算器6の他方の入力端
子Bに入力される。加算器6では、2入力の桁合わせを
するために、ANDゲート5から出力される8bitの
出力信号を16bitになるようにシフトすると共に、
アキュムレータ7の出力信号16bitのうちの下位1
5bitをシフトして16bitにし、これらの2つの
入力信号を加算して16bitの加算結果をアキュムレ
ータ7に格納する。そのため、1サイクル毎にANDゲ
ート5で部分積が求められ、加算器6を通して8サイク
ルでアキュムレータ7に16bitの乗算結果OUTが
格納される。
である。この乗算回路は、図3の乗算回路に比べてゲー
ト量を削減させた回路構成であり、シフトレジスタ4に
よって1サイクル毎に8bitの乗数IN2(=103
=“01100111”)の最上位bit(以下、「M
SB」という)側から1bitずつを取出す。この1b
itと8bitの被乗数IN1(=55=“00110
111”)とをANDゲート5で乗算し、2入力の16
bit加算器6の一方の入力端子Aへ送る。加算器6の
出力端子にはアキュムレータ(累算器)7が接続され、
このアキュムレータ7から出力される16bitの出力
信号のうち、下位15bitが加算器6の他方の入力端
子Bに入力される。加算器6では、2入力の桁合わせを
するために、ANDゲート5から出力される8bitの
出力信号を16bitになるようにシフトすると共に、
アキュムレータ7の出力信号16bitのうちの下位1
5bitをシフトして16bitにし、これらの2つの
入力信号を加算して16bitの加算結果をアキュムレ
ータ7に格納する。そのため、1サイクル毎にANDゲ
ート5で部分積が求められ、加算器6を通して8サイク
ルでアキュムレータ7に16bitの乗算結果OUTが
格納される。
【0005】
【発明が解決しようとする課題】しかしながら、従来の
図3及び図4の乗算回路では、次の(a)〜(c)のよ
うな課題があった。 (a) 図3の乗算回路では、高速演算が可能である反
面、ゲート量が増大するという課題がある。 (b) 図4の乗算回路では、図3の乗算回路に比べて
加算器6の数を少なくしてゲート量を削減することがで
きるが、加算時間が長くなるという課題がある。 (c) 例えば、画像圧縮等の技術に利用される離散コ
サイン変換(以下、「DCT」という)の逆変換を行う
際には、被乗数IN1と乗数IN2の積を計算する必要
がある。この場合、被乗数IN1及び乗数IN2のう
ち、乗数IN2は固定(例えば、国際標準であるITU
−TH.263準拠の演算の場合は8種類)であり、被
乗数IN1は0である場合が多い。このような乗算を行
う場合、従来の図3又は図4の乗算回路では、ゲート量
を削減しつつ乗算速度の向上を図ることが困難である。
本発明は、前記従来技術が持っていた課題を解決し、少
ないゲート量で、乗算速度の速い乗算回路を提供するこ
とを目的とする。
図3及び図4の乗算回路では、次の(a)〜(c)のよ
うな課題があった。 (a) 図3の乗算回路では、高速演算が可能である反
面、ゲート量が増大するという課題がある。 (b) 図4の乗算回路では、図3の乗算回路に比べて
加算器6の数を少なくしてゲート量を削減することがで
きるが、加算時間が長くなるという課題がある。 (c) 例えば、画像圧縮等の技術に利用される離散コ
サイン変換(以下、「DCT」という)の逆変換を行う
際には、被乗数IN1と乗数IN2の積を計算する必要
がある。この場合、被乗数IN1及び乗数IN2のう
ち、乗数IN2は固定(例えば、国際標準であるITU
−TH.263準拠の演算の場合は8種類)であり、被
乗数IN1は0である場合が多い。このような乗算を行
う場合、従来の図3又は図4の乗算回路では、ゲート量
を削減しつつ乗算速度の向上を図ることが困難である。
本発明は、前記従来技術が持っていた課題を解決し、少
ないゲート量で、乗算速度の速い乗算回路を提供するこ
とを目的とする。
【0006】
【課題を解決するための手段】前記課題を解決するため
に、本発明のうちの請求項1に係る発明では、複数bi
tの2進数でそれぞれ表現された被乗数と乗数とを乗算
する乗算回路において、複数bitの乗数を入力し、1
サイクル毎に該乗数のMSB側から1bitずつを取出
して出力する選択手段と、前記選択手段の出力信号と前
記複数bitの被乗数の全bitとを乗算して複数bi
tの乗算結果を出力する乗算手段と、前記1サイクル毎
に複数bitの加算結果を更新しつつ記憶する記憶手段
と、前記記憶手段に記憶された1サイクル前の加算結果
と前記乗算手段の出力信号とを前記1サイクル毎に加算
して前記複数bitの加算結果を求め、この加算結果を
前記記憶手段に記憶させる加算手段と、前記複数bit
の被乗数が全bit“0”であるか否かを検出し、全b
it“0”のときには直ちに演算を終了させて全bit
“0”の最終乗算結果を出力させる出力制御手段とを、
備えている。このような構成を採用したことにより、被
乗数及び乗数が与えられると、選択手段によって1サイ
クル毎に乗数のMSB側から1bitずつが取出され、
この取出された1bitと被乗数とが乗算手段で乗算さ
れて部分積が求められる。この部分積が加算手段及び記
憶手段によって累加算されていく。これにより、1サイ
クル毎に1bit分の加算が行われ、複数のサイクルで
乗算が終了する。被乗数の全bitが“0”の時、これ
が出力制御手段で検出されると、直ちに演算が終了し、
全bit“0”の最終乗算結果が出力される。
に、本発明のうちの請求項1に係る発明では、複数bi
tの2進数でそれぞれ表現された被乗数と乗数とを乗算
する乗算回路において、複数bitの乗数を入力し、1
サイクル毎に該乗数のMSB側から1bitずつを取出
して出力する選択手段と、前記選択手段の出力信号と前
記複数bitの被乗数の全bitとを乗算して複数bi
tの乗算結果を出力する乗算手段と、前記1サイクル毎
に複数bitの加算結果を更新しつつ記憶する記憶手段
と、前記記憶手段に記憶された1サイクル前の加算結果
と前記乗算手段の出力信号とを前記1サイクル毎に加算
して前記複数bitの加算結果を求め、この加算結果を
前記記憶手段に記憶させる加算手段と、前記複数bit
の被乗数が全bit“0”であるか否かを検出し、全b
it“0”のときには直ちに演算を終了させて全bit
“0”の最終乗算結果を出力させる出力制御手段とを、
備えている。このような構成を採用したことにより、被
乗数及び乗数が与えられると、選択手段によって1サイ
クル毎に乗数のMSB側から1bitずつが取出され、
この取出された1bitと被乗数とが乗算手段で乗算さ
れて部分積が求められる。この部分積が加算手段及び記
憶手段によって累加算されていく。これにより、1サイ
クル毎に1bit分の加算が行われ、複数のサイクルで
乗算が終了する。被乗数の全bitが“0”の時、これ
が出力制御手段で検出されると、直ちに演算が終了し、
全bit“0”の最終乗算結果が出力される。
【0007】請求項2に係る発明では、複数bitの2
進数でそれぞれ表現された被乗数と乗数との乗算を行う
乗算回路において、前記複数bitの乗数を入力し、1
サイクル毎に該乗数をMSB側からbit毎にチェック
し、該bitが“1”ならば前の“1”であったbit
からどれだけ離れているかを示す値を出力する入力手段
と、前記1サイクル毎に複数bitの加算結果を更新し
つつ記憶する記憶手段と、前記記憶手段に記憶された1
サイクル前の加算結果を、前記入力手段の出力信号で示
されるbit数だけMSB側にシフトさせて出力するシ
フト手段と、前記複数bitの被乗数と前記シフト手段
の出力信号とを前記1サイクル毎に加算して前記複数b
itの加算結果を求め、この加算結果を前記記憶手段に
記憶させる加算手段とを、備えている。このような構成
を採用したことにより、被乗数及び乗数が与えられる
と、入力手段により、1サイクル毎に該乗数がMSB側
からbit毎にチェックされ、該bitが“1”ならば
前の“1”であったbitからどれだけ離れているかを
示す値が出力される。シフト手段により、記憶手段に記
憶された1サイクル前の加算結果が、入力手段の出力信
号で示されるbit数だけMSB側にシフトされる。こ
のシフト手段の出力信号と被乗数とが加算手段によって
1サイクル毎に加算され、この加算結果が記憶手段に記
憶される。これにより、1サイクル毎に1bit分の加
算が行われ、複数のサイクルで乗算が終了する。
進数でそれぞれ表現された被乗数と乗数との乗算を行う
乗算回路において、前記複数bitの乗数を入力し、1
サイクル毎に該乗数をMSB側からbit毎にチェック
し、該bitが“1”ならば前の“1”であったbit
からどれだけ離れているかを示す値を出力する入力手段
と、前記1サイクル毎に複数bitの加算結果を更新し
つつ記憶する記憶手段と、前記記憶手段に記憶された1
サイクル前の加算結果を、前記入力手段の出力信号で示
されるbit数だけMSB側にシフトさせて出力するシ
フト手段と、前記複数bitの被乗数と前記シフト手段
の出力信号とを前記1サイクル毎に加算して前記複数b
itの加算結果を求め、この加算結果を前記記憶手段に
記憶させる加算手段とを、備えている。このような構成
を採用したことにより、被乗数及び乗数が与えられる
と、入力手段により、1サイクル毎に該乗数がMSB側
からbit毎にチェックされ、該bitが“1”ならば
前の“1”であったbitからどれだけ離れているかを
示す値が出力される。シフト手段により、記憶手段に記
憶された1サイクル前の加算結果が、入力手段の出力信
号で示されるbit数だけMSB側にシフトされる。こ
のシフト手段の出力信号と被乗数とが加算手段によって
1サイクル毎に加算され、この加算結果が記憶手段に記
憶される。これにより、1サイクル毎に1bit分の加
算が行われ、複数のサイクルで乗算が終了する。
【0008】請求項3に係る発明では、複数bitの2
進数でそれぞれ表現された被乗数と乗数とを乗算する乗
算回路において、前記複数bitの乗数を入力し、該乗
数の各bitを“1”,“0”,“−1”で表現して
“1”及び“−1”の数が最小になるように変換し、こ
の変換結果を1サイクル毎にMSB側からbit毎にチ
ェックし、該bitが“1”又は“−1”ならば前の
“1”又は“−1”であったbitからどれだけ離れて
いるかを示す第1の信号を出力し、かつ該bitが
“1”のときには“0”、“−1”の時には“1”を示
す第2の信号を出力する入力手段と、前記複数bitの
被乗数を入力し、前記第2の信号が“0”のときには該
被乗数をそのまま出力し、該第2の信号が“1”のとき
には該被乗数の符号を反転して出力する符号反転手段
と、前記1サイクル毎に複数bitの加算結果を更新し
つつ記憶する記憶手段と、前記記憶手段に記憶された1
サイクル前の加算結果を、前記第1の信号で示されるb
it数だけMSB側にシフトさせて出力するシフト手段
と、前記符号反転手段の出力信号と前記シフト手段の出
力信号とを前記1サイクル毎に加算して前記複数bit
の加算結果を求め、この加算結果を前記記憶手段に記憶
させる加算手段とを、備えている。このような構成を採
用したことにより、被乗数及び乗数が与えられると、入
力手段から第1及び第2の信号が出力される。第2の信
号が“0”のときには、被乗数が符号反転手段をそのま
ま通過し、該第2の信号が“1”のときには、被乗数の
符号が符号反転手段で反転される。記憶手段に記憶され
た1サイクル前の加算結果が、シフト手段によって第1
の信号で示されるbit数だけMSB側にシフトされ
る。符号反転手段の出力信号とシフト手段の出力信号と
が、加算手段によって1サイクル毎に加算されて記憶手
段に記憶される。これにより、1サイクル毎に1bit
分の加算が行われ、複数のサイクルで乗算が終了する。
進数でそれぞれ表現された被乗数と乗数とを乗算する乗
算回路において、前記複数bitの乗数を入力し、該乗
数の各bitを“1”,“0”,“−1”で表現して
“1”及び“−1”の数が最小になるように変換し、こ
の変換結果を1サイクル毎にMSB側からbit毎にチ
ェックし、該bitが“1”又は“−1”ならば前の
“1”又は“−1”であったbitからどれだけ離れて
いるかを示す第1の信号を出力し、かつ該bitが
“1”のときには“0”、“−1”の時には“1”を示
す第2の信号を出力する入力手段と、前記複数bitの
被乗数を入力し、前記第2の信号が“0”のときには該
被乗数をそのまま出力し、該第2の信号が“1”のとき
には該被乗数の符号を反転して出力する符号反転手段
と、前記1サイクル毎に複数bitの加算結果を更新し
つつ記憶する記憶手段と、前記記憶手段に記憶された1
サイクル前の加算結果を、前記第1の信号で示されるb
it数だけMSB側にシフトさせて出力するシフト手段
と、前記符号反転手段の出力信号と前記シフト手段の出
力信号とを前記1サイクル毎に加算して前記複数bit
の加算結果を求め、この加算結果を前記記憶手段に記憶
させる加算手段とを、備えている。このような構成を採
用したことにより、被乗数及び乗数が与えられると、入
力手段から第1及び第2の信号が出力される。第2の信
号が“0”のときには、被乗数が符号反転手段をそのま
ま通過し、該第2の信号が“1”のときには、被乗数の
符号が符号反転手段で反転される。記憶手段に記憶され
た1サイクル前の加算結果が、シフト手段によって第1
の信号で示されるbit数だけMSB側にシフトされ
る。符号反転手段の出力信号とシフト手段の出力信号と
が、加算手段によって1サイクル毎に加算されて記憶手
段に記憶される。これにより、1サイクル毎に1bit
分の加算が行われ、複数のサイクルで乗算が終了する。
【0009】請求項4に係る発明では、複数bitの2
進数でそれぞれ表現された被乗数と乗数との乗算を行う
乗算回路において、請求項2又は3の乗算回路と、前記
複数bitの被乗数が全bit“0”であるか否かを検
出し、全bit“0”のときには直ちに演算を終了させ
て全bit“0”の最終乗算結果を出力させる出力制御
手段とを、備えている。このような構成を採用したこと
により、被乗数が全bit“0”のときにはこれが出力
制御手段で検出され、直ちに演算が終了して全bit
“0”の最終乗算結果が出力される。請求項5に係る発
明では、請求項1又は4の乗算回路において、前記出力
制御手段は、前記複数bitの被乗数が全bit“0”
であるか否かを検出して全bit“0”のときには
“0”検出信号を出力する“0”検出回路を有し、該
“0”検出信号によって前記記憶手段の出力信号を全b
it“0”に初期化する構成にしている。このような構
成を採用したことにより、被乗数が全bit“0”のと
きには、これが“0”検出回路で検出され、この“0”
検出信号によって記憶手段の出力信号が全bit“0”
に初期化される。
進数でそれぞれ表現された被乗数と乗数との乗算を行う
乗算回路において、請求項2又は3の乗算回路と、前記
複数bitの被乗数が全bit“0”であるか否かを検
出し、全bit“0”のときには直ちに演算を終了させ
て全bit“0”の最終乗算結果を出力させる出力制御
手段とを、備えている。このような構成を採用したこと
により、被乗数が全bit“0”のときにはこれが出力
制御手段で検出され、直ちに演算が終了して全bit
“0”の最終乗算結果が出力される。請求項5に係る発
明では、請求項1又は4の乗算回路において、前記出力
制御手段は、前記複数bitの被乗数が全bit“0”
であるか否かを検出して全bit“0”のときには
“0”検出信号を出力する“0”検出回路を有し、該
“0”検出信号によって前記記憶手段の出力信号を全b
it“0”に初期化する構成にしている。このような構
成を採用したことにより、被乗数が全bit“0”のと
きには、これが“0”検出回路で検出され、この“0”
検出信号によって記憶手段の出力信号が全bit“0”
に初期化される。
【0010】
【発明の実施の形態】第1の実施形態 図1は、本発明の第1の実施形態を示す乗算回路の構成
図である。この乗算回路は、複数bit(例えば、8b
it)の2進数でそれぞれ表現された被乗数IN1と乗
数IN2とを乗算して複数bit(例えば、16bi
t)の乗算結果OUTを出力する回路であり、被乗数I
N1を入力する出力制御手段(例えば、“0”検出回
路)11と、乗数IN2を入力する選択手段(例えば、
シフトレジスタ)12と、被乗数IN1とシフトレジス
タ12の出力信号とを乗算する乗算手段13とを有して
いる。“0”検出回路11は、被乗数IN1が全bit
“0”であるか否かを検出し、全bit“0”のときに
は“1”の“0”検出信号S11を出力する回路であ
る。シフトレジスタ12は、8bitの乗数IN2を入
力し、1サイクル毎に該乗数IN2のMSB側から1b
itずつを取出して乗算手段13へ出力する回路であ
る。乗算手段13は、シフトレジスタ12の1bitの
出力信号と8bitの被乗数IN1の全bitとを乗算
して8bitの乗算結果を出力する機能を有している。
図である。この乗算回路は、複数bit(例えば、8b
it)の2進数でそれぞれ表現された被乗数IN1と乗
数IN2とを乗算して複数bit(例えば、16bi
t)の乗算結果OUTを出力する回路であり、被乗数I
N1を入力する出力制御手段(例えば、“0”検出回
路)11と、乗数IN2を入力する選択手段(例えば、
シフトレジスタ)12と、被乗数IN1とシフトレジス
タ12の出力信号とを乗算する乗算手段13とを有して
いる。“0”検出回路11は、被乗数IN1が全bit
“0”であるか否かを検出し、全bit“0”のときに
は“1”の“0”検出信号S11を出力する回路であ
る。シフトレジスタ12は、8bitの乗数IN2を入
力し、1サイクル毎に該乗数IN2のMSB側から1b
itずつを取出して乗算手段13へ出力する回路であ
る。乗算手段13は、シフトレジスタ12の1bitの
出力信号と8bitの被乗数IN1の全bitとを乗算
して8bitの乗算結果を出力する機能を有している。
【0011】乗算手段13の出力端子は、2入力の加算
手段(例えば、16bitの加算器)14の一方の入力
端子Aに接続され、この加算器14の出力端子が記憶手
段(例えば、アキュムレータ)15の入力端子に接続さ
れ、該アキュムレータ15の出力端子の一部が加算器1
4の他方の入力端子Bに接続されている。加算器14
は、2入力のbit数の桁合わせのためのシフト機能を
有し、乗算手段13の8bitの出力信号の上位に
“0”を8bit付加した入力信号と、アキュムレータ
15の16bitの出力信号のうちの下位15bitに
対して下位に“0”を1bit付加した入力信号とを加
算し、16bitの加算結果を出力する回路である。ア
キュムレータ15は、1サイクル毎に加算器14で加算
された16bitの加算結果を更新しつつ記憶し、16
bitの乗算結果OUTを出力し、また“0”検出回路
11から出力される“1”の“0”検出信号S11によ
って該アキュムレータ15の出力信号が全bit“0”
に初期化される回路である。
手段(例えば、16bitの加算器)14の一方の入力
端子Aに接続され、この加算器14の出力端子が記憶手
段(例えば、アキュムレータ)15の入力端子に接続さ
れ、該アキュムレータ15の出力端子の一部が加算器1
4の他方の入力端子Bに接続されている。加算器14
は、2入力のbit数の桁合わせのためのシフト機能を
有し、乗算手段13の8bitの出力信号の上位に
“0”を8bit付加した入力信号と、アキュムレータ
15の16bitの出力信号のうちの下位15bitに
対して下位に“0”を1bit付加した入力信号とを加
算し、16bitの加算結果を出力する回路である。ア
キュムレータ15は、1サイクル毎に加算器14で加算
された16bitの加算結果を更新しつつ記憶し、16
bitの乗算結果OUTを出力し、また“0”検出回路
11から出力される“1”の“0”検出信号S11によ
って該アキュムレータ15の出力信号が全bit“0”
に初期化される回路である。
【0012】図5は、図1の“0”検出回路11の構成
例を示す回路図である。この“0”検出回路11は、8
bitの被乗数IN1のNOR論理を取り、該被乗数I
N1の全bitが“0”の時には“1”の“0”検出信
号S11を出力する8入力のNORゲート11aで構成
されている。図6は、図1の乗算手段13の構成例を示
す回路図である。この乗算手段13は、8bitの被乗
数IN1の各bit毎にシフトレジスタ12の1bit
の出力信号とAND論理を取る8個の2入力ANDゲー
ト13aで構成されている。8個の2入力ANDゲート
13aは、シフトレジスタ13の1bitの出力信号が
“1”のときには8bitの被乗数IN1をそのまま出
力し、“0”のときには8bitの全bit“0”の出
力信号を出力する機能を有している。
例を示す回路図である。この“0”検出回路11は、8
bitの被乗数IN1のNOR論理を取り、該被乗数I
N1の全bitが“0”の時には“1”の“0”検出信
号S11を出力する8入力のNORゲート11aで構成
されている。図6は、図1の乗算手段13の構成例を示
す回路図である。この乗算手段13は、8bitの被乗
数IN1の各bit毎にシフトレジスタ12の1bit
の出力信号とAND論理を取る8個の2入力ANDゲー
ト13aで構成されている。8個の2入力ANDゲート
13aは、シフトレジスタ13の1bitの出力信号が
“1”のときには8bitの被乗数IN1をそのまま出
力し、“0”のときには8bitの全bit“0”の出
力信号を出力する機能を有している。
【0013】次に、動作を説明する。画像圧縮等の技術
に利用されるDCTの逆変換を行う際に被乗数IN1と
乗数IN2の積を計算する必要があるが、この場合、乗
数IN2は固定であり、被乗数IN1は0である場合が
多い。本実施形態の乗算回路では、被乗数IN1の値が
0か、そうでないかにより積の計算方法が異なるので、
以下、(1)被乗数IN1≠0のときの動作と、(2)
被乗数IN1=0のときの動作を分けて説明する。
に利用されるDCTの逆変換を行う際に被乗数IN1と
乗数IN2の積を計算する必要があるが、この場合、乗
数IN2は固定であり、被乗数IN1は0である場合が
多い。本実施形態の乗算回路では、被乗数IN1の値が
0か、そうでないかにより積の計算方法が異なるので、
以下、(1)被乗数IN1≠0のときの動作と、(2)
被乗数IN1=0のときの動作を分けて説明する。
【0014】(1) 被乗数IN1≠0のときの動作 図7は、図1の被乗数IN1≠0のときの例えば被乗数
IN1=55(=“00110111”)と乗数IN2
=103(=“01100111”)との乗算動作を示
すタイムチャートである。このタイムチャートを参照し
つつ、図1の乗算回路の動作を説明する。図1の乗算回
路は、クロック信号CKに同期して乗算動作を行う。最
初に、全bitを“0”にする図示しない初期化手段に
より、シフトレジスタ12及びアキュムレータ15が
“0”に初期化される。時刻t1でクロック信号CKが
立上がると、8bitの被乗数IN1の55(=“00
110111”)と8bitの乗数IN2の103(=
“01100111”)が入力され、その8bitの乗
数IN2の“01100111”がシフトレジスタ12
に格納されていく。被乗数IN1は0でないので、乗算
中はこれが“0”検出回路11で検出され、“0”検出
信号S11が常に0である。
IN1=55(=“00110111”)と乗数IN2
=103(=“01100111”)との乗算動作を示
すタイムチャートである。このタイムチャートを参照し
つつ、図1の乗算回路の動作を説明する。図1の乗算回
路は、クロック信号CKに同期して乗算動作を行う。最
初に、全bitを“0”にする図示しない初期化手段に
より、シフトレジスタ12及びアキュムレータ15が
“0”に初期化される。時刻t1でクロック信号CKが
立上がると、8bitの被乗数IN1の55(=“00
110111”)と8bitの乗数IN2の103(=
“01100111”)が入力され、その8bitの乗
数IN2の“01100111”がシフトレジスタ12
に格納されていく。被乗数IN1は0でないので、乗算
中はこれが“0”検出回路11で検出され、“0”検出
信号S11が常に0である。
【0015】クロック信号CKの最初(1回目)の立上
がりエッジの時刻t1から次の2回目の立上がりエッジ
の時刻t3の間、“0”検出信号S11が“0”である
ので以降の演算を継続する。シフトレジスタ12は、格
納した8bitの乗数IN2のうちのMSB側から1b
itずつを出力する機能を有するので、時刻t1〜t3
の間、乗数IN2のMSB(=“0”)を出力し、乗算
手段13へ送る。乗算手段13では、シフトレジスタ1
2から出力される1bitの“0”と8bitの被乗数
IN1とのAND論理を取るため、8bitの出力信号
が“00000000”となり、これが加算器14の入
力端子Aへ送られる。このとき、アキュムレータ15の
内容は16bit全てが“0”のため、この下位15b
itも全て“0”であり、これが加算器14の入力端子
Bに入力されるので、該加算器14の加算結果が16b
it全て“0”である。よって、時刻t3のクロック信
号CKの立上がりエッジで、16bit全てが“0”の
加算結果がアキュムレータ15に取込まれる。
がりエッジの時刻t1から次の2回目の立上がりエッジ
の時刻t3の間、“0”検出信号S11が“0”である
ので以降の演算を継続する。シフトレジスタ12は、格
納した8bitの乗数IN2のうちのMSB側から1b
itずつを出力する機能を有するので、時刻t1〜t3
の間、乗数IN2のMSB(=“0”)を出力し、乗算
手段13へ送る。乗算手段13では、シフトレジスタ1
2から出力される1bitの“0”と8bitの被乗数
IN1とのAND論理を取るため、8bitの出力信号
が“00000000”となり、これが加算器14の入
力端子Aへ送られる。このとき、アキュムレータ15の
内容は16bit全てが“0”のため、この下位15b
itも全て“0”であり、これが加算器14の入力端子
Bに入力されるので、該加算器14の加算結果が16b
it全て“0”である。よって、時刻t3のクロック信
号CKの立上がりエッジで、16bit全てが“0”の
加算結果がアキュムレータ15に取込まれる。
【0016】クロック信号CKの2回目の立上がりエッ
ジの時刻t3から3回目の立上がりエッジの時刻t5の
間、シフトレジスタ12から乗数IN2のMSB側から
2bit目の“1”が出力される。そのため、乗算手段
13の乗算結果が“00110111”になり、加算器
14の入力端子Aへ入力される。加算器14の入力端子
Bには、アキュムレータ15の出力信号の下位15bi
t全てが“0”の信号が入力されるため、該加算器14
の加算結果が“00110111”となる。よって、時
刻t5のクロック信号CKの立上がりエッジで、“00
110111”がアキュムレータ15に取込まれる。ク
ロック信号CKの3回目の立上がりエッジの時刻t5か
ら4回目の立上がりエッジの時刻t7の間、シフトレジ
スタ12から乗数IN2のMSB側から3bit目の
“1”が出力される。そのため、乗算手段13の乗算結
果が“00110111”になり、加算器14の入力端
子Aに入力される。アキュムレータ15の出力信号は
“00110111”であり、この下位15bitが取
出されて加算器14の入力端子Bに入力され、この入力
端子B側でその下位15bitの下位に“0”の1bi
tが付加されて“01101110”となるので、該加
算器14の加算結果が“10100101”となる。よ
って、時刻t7のクロック信号CKの立上がりエッジ
で、“10100101”がアキュムレータ15に取込
まれる。
ジの時刻t3から3回目の立上がりエッジの時刻t5の
間、シフトレジスタ12から乗数IN2のMSB側から
2bit目の“1”が出力される。そのため、乗算手段
13の乗算結果が“00110111”になり、加算器
14の入力端子Aへ入力される。加算器14の入力端子
Bには、アキュムレータ15の出力信号の下位15bi
t全てが“0”の信号が入力されるため、該加算器14
の加算結果が“00110111”となる。よって、時
刻t5のクロック信号CKの立上がりエッジで、“00
110111”がアキュムレータ15に取込まれる。ク
ロック信号CKの3回目の立上がりエッジの時刻t5か
ら4回目の立上がりエッジの時刻t7の間、シフトレジ
スタ12から乗数IN2のMSB側から3bit目の
“1”が出力される。そのため、乗算手段13の乗算結
果が“00110111”になり、加算器14の入力端
子Aに入力される。アキュムレータ15の出力信号は
“00110111”であり、この下位15bitが取
出されて加算器14の入力端子Bに入力され、この入力
端子B側でその下位15bitの下位に“0”の1bi
tが付加されて“01101110”となるので、該加
算器14の加算結果が“10100101”となる。よ
って、時刻t7のクロック信号CKの立上がりエッジ
で、“10100101”がアキュムレータ15に取込
まれる。
【0017】クロック信号CKの4回目の立上がりエッ
ジの時刻t7から5回目の立上がりエッジの時刻t9の
間、シフトレジスタ12から乗数IN2のMSB側から
4bit目の“0”が出力される。そのため、乗算手段
13の乗算結果が8bit全て“0”になり、加算器1
4の入力端子Aに入力される。アキュムレータ15の出
力信号が“10100101”であるため、加算器14
の入力端子Bに入力された信号が“10100101
0”となり、該加算器14の加算結果が“101001
010”となる。よって、時刻t9のクロック信号CK
の立上がりエッジで、“101001010”がアキュ
ムレータ15に取込まれる。以降同様の繰返し演算が行
われ、乗数IN2のbit数(即ち、8サイクル)繰返
してクロック信号CKの9回目の立上がりエッジの時刻
t17で乗算が終わり、この乗算結果OUTの5665
(=“0001011000100001”)がアキュ
ムレータ15に格納される。
ジの時刻t7から5回目の立上がりエッジの時刻t9の
間、シフトレジスタ12から乗数IN2のMSB側から
4bit目の“0”が出力される。そのため、乗算手段
13の乗算結果が8bit全て“0”になり、加算器1
4の入力端子Aに入力される。アキュムレータ15の出
力信号が“10100101”であるため、加算器14
の入力端子Bに入力された信号が“10100101
0”となり、該加算器14の加算結果が“101001
010”となる。よって、時刻t9のクロック信号CK
の立上がりエッジで、“101001010”がアキュ
ムレータ15に取込まれる。以降同様の繰返し演算が行
われ、乗数IN2のbit数(即ち、8サイクル)繰返
してクロック信号CKの9回目の立上がりエッジの時刻
t17で乗算が終わり、この乗算結果OUTの5665
(=“0001011000100001”)がアキュ
ムレータ15に格納される。
【0018】(2) 被乗数IN1=0のときの動作 図8は、図1の被乗数IN1=0のときの例えば被乗数
IN1=0(=“00000000”)と乗数IN2=
103(=“01100111”)との乗算動作を示す
タイムチャートである。このタイムチャートを参照しつ
つ、図1の乗算回路の動作を説明する。最初に、図示し
ない初期化手段によってシフトレジスタ12及びアキュ
ムレータ15が“0”に初期化される。クロック信号C
Kの最初(1回目)の立上がりエッジの時刻t1で、被
乗数IN1=0(=“00000000”)と乗数IN
2=103(=“01100111”)が入力される。
乗数IN2はシフトレジスタ12に格納されていく。被
乗数IN1は0(=“00000000”)のため、乗
算中これが“0”検出回路11で検出され、この“0”
検出信号S11が“1”になる。クロック信号CKの1
回目の立上がりエッジの時刻t1から2回目の立上がり
エッジの時刻t3の間、“0”検出信号S11が“1”
となるので、例えば、この“1”によってアキュムレー
タ15が“0”に初期化され、以降の乗算を行わずに時
刻t3の最後で乗算動作が終了する。このとき、乗算結
果OUTを格納するアキュムレータ15の内容が“0”
のため、該乗算結果OUTと一致する。以上のように、
この第1の実施形態では、1サイクル毎に1bit分の
加算を行い、8サイクルで乗算を終了させる乗算回路に
おいて、被乗数IN1が“0”であることを検出する
“0”検出回路11を設けたので、該被乗数IN1が
“0”であるときには直ちに演算を終了する。そのた
め、被乗数IN1が“0”のときに乗算を高速に行うこ
とができる。
IN1=0(=“00000000”)と乗数IN2=
103(=“01100111”)との乗算動作を示す
タイムチャートである。このタイムチャートを参照しつ
つ、図1の乗算回路の動作を説明する。最初に、図示し
ない初期化手段によってシフトレジスタ12及びアキュ
ムレータ15が“0”に初期化される。クロック信号C
Kの最初(1回目)の立上がりエッジの時刻t1で、被
乗数IN1=0(=“00000000”)と乗数IN
2=103(=“01100111”)が入力される。
乗数IN2はシフトレジスタ12に格納されていく。被
乗数IN1は0(=“00000000”)のため、乗
算中これが“0”検出回路11で検出され、この“0”
検出信号S11が“1”になる。クロック信号CKの1
回目の立上がりエッジの時刻t1から2回目の立上がり
エッジの時刻t3の間、“0”検出信号S11が“1”
となるので、例えば、この“1”によってアキュムレー
タ15が“0”に初期化され、以降の乗算を行わずに時
刻t3の最後で乗算動作が終了する。このとき、乗算結
果OUTを格納するアキュムレータ15の内容が“0”
のため、該乗算結果OUTと一致する。以上のように、
この第1の実施形態では、1サイクル毎に1bit分の
加算を行い、8サイクルで乗算を終了させる乗算回路に
おいて、被乗数IN1が“0”であることを検出する
“0”検出回路11を設けたので、該被乗数IN1が
“0”であるときには直ちに演算を終了する。そのた
め、被乗数IN1が“0”のときに乗算を高速に行うこ
とができる。
【0019】第2の実施形態 図9は、本発明の第2の実施形態を示す乗算回路の構成
図であり、第1の実施形態を示す図1中の要素と共通の
要素には共通の符号が付されている。この第2の実施形
態の乗算回路では、図1のシフトレジスタ12及び乗算
手段13に代えて、入力手段21、“0”検出回路22
及びシフト手段23が設けられている。例えば、8bi
tの被乗数IN1は、“0”検出回路11に入力される
と共に加算器14の入力端子Aに入力される構成になっ
ている。入力手段21は、例えば8bitの乗数IN2
を入力し、クロック信号CKの各サイクル毎に該乗数I
N2をMSB側からbit毎にチェックし、そのbit
が“1”ならば前の“1”であったbitからどれだけ
離れているかを示す3bitの値を出力する。この値
は、8bitの乗数IN2の終了時に“0”となる。例
えば、乗数IN2が103(=“01100111”)
のときは、入力手段21から出力される値が各サイクル
毎に2,1,3,1,1,0となる。
図であり、第1の実施形態を示す図1中の要素と共通の
要素には共通の符号が付されている。この第2の実施形
態の乗算回路では、図1のシフトレジスタ12及び乗算
手段13に代えて、入力手段21、“0”検出回路22
及びシフト手段23が設けられている。例えば、8bi
tの被乗数IN1は、“0”検出回路11に入力される
と共に加算器14の入力端子Aに入力される構成になっ
ている。入力手段21は、例えば8bitの乗数IN2
を入力し、クロック信号CKの各サイクル毎に該乗数I
N2をMSB側からbit毎にチェックし、そのbit
が“1”ならば前の“1”であったbitからどれだけ
離れているかを示す3bitの値を出力する。この値
は、8bitの乗数IN2の終了時に“0”となる。例
えば、乗数IN2が103(=“01100111”)
のときは、入力手段21から出力される値が各サイクル
毎に2,1,3,1,1,0となる。
【0020】入力手段21の出力側には、“0”検出回
路22が接続されると共に、シフト手段23を介して加
算器14の入力端子Bが接続されている。“0”検出回
路22は、入力手段21から出力される3bitの出力
信号が全て“0”のときには“1”、そうでないときに
は“0”の“0”検出信号S22を出力する回路であ
り、例えば、この“0”検出信号S22が“0”のとき
には加算器14の動作が停止される。シフト手段23
は、入力手段31から出力される3bitの出力信号
と、アキュムレータ15から出力される16bitの出
力信号のうちの下位15bitとを入力し、その下位1
5bitを、入力手段21の3bitの出力信号で示さ
れるbit数だけ左(MSB側)にシフトさせ、空いた
最下位bit(以下、「LSB」という)側には必要な
数だけ“0”が挿入され、加算器14の入力端子Bに入
力する回路である。以上のように構成される乗算回路で
は、被乗数IN1の値が0か、そうでないかにより積の
計算方法が異なるので、以下、(1)被乗数IN1≠0
のときの動作と、(2)被乗数IN1=0のときの動作
を説明する。
路22が接続されると共に、シフト手段23を介して加
算器14の入力端子Bが接続されている。“0”検出回
路22は、入力手段21から出力される3bitの出力
信号が全て“0”のときには“1”、そうでないときに
は“0”の“0”検出信号S22を出力する回路であ
り、例えば、この“0”検出信号S22が“0”のとき
には加算器14の動作が停止される。シフト手段23
は、入力手段31から出力される3bitの出力信号
と、アキュムレータ15から出力される16bitの出
力信号のうちの下位15bitとを入力し、その下位1
5bitを、入力手段21の3bitの出力信号で示さ
れるbit数だけ左(MSB側)にシフトさせ、空いた
最下位bit(以下、「LSB」という)側には必要な
数だけ“0”が挿入され、加算器14の入力端子Bに入
力する回路である。以上のように構成される乗算回路で
は、被乗数IN1の値が0か、そうでないかにより積の
計算方法が異なるので、以下、(1)被乗数IN1≠0
のときの動作と、(2)被乗数IN1=0のときの動作
を説明する。
【0021】(1) 被乗数IN1≠0のときの動作 図10は、図9の被乗数IN1≠0のときの例えば被乗
数IN1=55(=“00110111”)と乗数IN
2=103(=“01100111”)との乗算動作を
示すタイムチャートである。このタイムチャートを参照
しつつ、図9の乗算回路の動作を説明する。最初に、図
示しない初期化手段によってアキュムレータ15が
“0”に初期化される。クロック信号CKの最初(1回
目)の立上がりエッジの時刻t1以降に、8bitの被
乗数IN1=55(=“00110111”)と乗数I
N2=103(=“01100111”)が入力され
る。入力手段21は、乗数IN2=103(=“011
00111”)を入力すると、3bitの出力信号の値
2を出力し、シフト手段23へ送る。乗算中は、被乗数
IN1が0でないため、これが“0”検出回路11で検
出され、“0”検出信号S11が常に“0”である。ま
た、被乗数IN1=55(=“00110111”)
が、乗算中常に加算器14の入力端子Aに入力されてい
る。
数IN1=55(=“00110111”)と乗数IN
2=103(=“01100111”)との乗算動作を
示すタイムチャートである。このタイムチャートを参照
しつつ、図9の乗算回路の動作を説明する。最初に、図
示しない初期化手段によってアキュムレータ15が
“0”に初期化される。クロック信号CKの最初(1回
目)の立上がりエッジの時刻t1以降に、8bitの被
乗数IN1=55(=“00110111”)と乗数I
N2=103(=“01100111”)が入力され
る。入力手段21は、乗数IN2=103(=“011
00111”)を入力すると、3bitの出力信号の値
2を出力し、シフト手段23へ送る。乗算中は、被乗数
IN1が0でないため、これが“0”検出回路11で検
出され、“0”検出信号S11が常に“0”である。ま
た、被乗数IN1=55(=“00110111”)
が、乗算中常に加算器14の入力端子Aに入力されてい
る。
【0022】クロック信号CKの2回目の立上がりエッ
ジの時刻t3から3回目の立上がりエッジの時刻t5ま
での間、被乗数IN1及び乗数IN2が0でないので、
これらが“0”検出回路11及び22で検出され、
“0”検出信号S11及びS22が“0”となり、以降
の演算が継続される。時刻t1〜t3の間、入力手段2
1から出力される3bitの出力信号の値が2のため、
シフト手段23は、アキュムレータ15から出力される
16bitの出力信号のうちの下位15bitに対して
2bit左へシフトした値(アキュムレータ15の16
bitの出力信号は全て“0”なので、この値が“0”
である)を出力し、加算器14の入力端子Bへ送る。そ
のために、加算器14の加算結果は、“0000000
000110111”である。よって、時刻t3のクロ
ック信号CKの立上がりエッジで、“00000000
00110111”がアキュムレータ15に取込まれ
る。
ジの時刻t3から3回目の立上がりエッジの時刻t5ま
での間、被乗数IN1及び乗数IN2が0でないので、
これらが“0”検出回路11及び22で検出され、
“0”検出信号S11及びS22が“0”となり、以降
の演算が継続される。時刻t1〜t3の間、入力手段2
1から出力される3bitの出力信号の値が2のため、
シフト手段23は、アキュムレータ15から出力される
16bitの出力信号のうちの下位15bitに対して
2bit左へシフトした値(アキュムレータ15の16
bitの出力信号は全て“0”なので、この値が“0”
である)を出力し、加算器14の入力端子Bへ送る。そ
のために、加算器14の加算結果は、“0000000
000110111”である。よって、時刻t3のクロ
ック信号CKの立上がりエッジで、“00000000
00110111”がアキュムレータ15に取込まれ
る。
【0023】クロック信号CKの2回目の立上がりエッ
ジの時刻t3から3回目の立上がりエッジの時刻t5ま
での間、入力手段21から出力される3bitの出力信
号が全て0でないので、これが“0”検出回路22で検
出され、“0”検出信号S22が“0”となり、以降の
演算が継続される。入力手段21の3bitの出力信号
の値が1のため、シフト手段23は、アキュムレータ1
5の16bitの出力信号のうちの下位15bitの内
容を1bitシフトした値(アキュムレータ15の16
bitの出力信号が“000000000011011
1”なので、この値は“00000000011011
10”である)を出力し、加算器14の入力端子Bへ入
力する。そのため、加算器14の加算結果は、“000
0000010100101”である。よって、時刻t
5のクロック信号CKの立上がりエッジで、“0000
000010100101”がアキュムレータ15に取
込まれる。
ジの時刻t3から3回目の立上がりエッジの時刻t5ま
での間、入力手段21から出力される3bitの出力信
号が全て0でないので、これが“0”検出回路22で検
出され、“0”検出信号S22が“0”となり、以降の
演算が継続される。入力手段21の3bitの出力信号
の値が1のため、シフト手段23は、アキュムレータ1
5の16bitの出力信号のうちの下位15bitの内
容を1bitシフトした値(アキュムレータ15の16
bitの出力信号が“000000000011011
1”なので、この値は“00000000011011
10”である)を出力し、加算器14の入力端子Bへ入
力する。そのため、加算器14の加算結果は、“000
0000010100101”である。よって、時刻t
5のクロック信号CKの立上がりエッジで、“0000
000010100101”がアキュムレータ15に取
込まれる。
【0024】クロック信号CKの3回目の立上がりエッ
ジの時刻t5から4回目の立上がりエッジの時刻t7の
間、“0”検出信号S22が“0”なので、以降の演算
が継続される。入力手段21から出力される3bitの
出力信号の値が3のため、シフト手段23は、アキュム
レータ15から出力される16bitの出力信号のうち
の下位3bitの内容を3bitシフトした値(アキュ
ムレータ15の出力信号は“000000001010
0101”なので、この値は“00000101001
01000”である)を出力し、加算器14の入力端子
Bに入力する。そのため、加算器14の加算結果は、
“0000010101011111”である。よっ
て、時刻t7のクロック信号CKの立上がりエッジで、
“0000010101011111”がアキュムレー
タ15に取込まれる。以降同様の繰返し演算が行われ、
クロック信号CKの6回目の立上がりエッジの時刻t1
1から7回目の立上がりエッジの時刻t13で、入力手
段21から出力される3bitの出力信号の値が全て
“0”となる。これが“0”検出回路22で検出され、
“0”検出信号S22が“1”になり、例えば加算器1
4の動作が停止されて乗算動作が終了する。このときの
乗算結果OUT(=5665=“0001011000
100001”)がアキュムレータ15に格納される。
ジの時刻t5から4回目の立上がりエッジの時刻t7の
間、“0”検出信号S22が“0”なので、以降の演算
が継続される。入力手段21から出力される3bitの
出力信号の値が3のため、シフト手段23は、アキュム
レータ15から出力される16bitの出力信号のうち
の下位3bitの内容を3bitシフトした値(アキュ
ムレータ15の出力信号は“000000001010
0101”なので、この値は“00000101001
01000”である)を出力し、加算器14の入力端子
Bに入力する。そのため、加算器14の加算結果は、
“0000010101011111”である。よっ
て、時刻t7のクロック信号CKの立上がりエッジで、
“0000010101011111”がアキュムレー
タ15に取込まれる。以降同様の繰返し演算が行われ、
クロック信号CKの6回目の立上がりエッジの時刻t1
1から7回目の立上がりエッジの時刻t13で、入力手
段21から出力される3bitの出力信号の値が全て
“0”となる。これが“0”検出回路22で検出され、
“0”検出信号S22が“1”になり、例えば加算器1
4の動作が停止されて乗算動作が終了する。このときの
乗算結果OUT(=5665=“0001011000
100001”)がアキュムレータ15に格納される。
【0025】(2) 被乗数IN1=0のときの動作 被乗数IN1が0(=“00000000”)のとき
は、第1の実施形態と同様に、“0”検出信号S11が
“1”となり、例えばアキュムレータ15が“0”に初
期化される。そのため、アキュムレータ15の16bi
t出力信号が全て“0”となり、乗算結果OUTと一致
する。以上のように、この第2の実施形態では、加算器
14による加算とシフト手段23によるシフトとの繰返
しによる計算を行うことにより、1サイクル毎に1bi
t分の加算を行い、5サイクルで乗算を終了させること
ができる。これにより、第1の実施形態よりも乗算を高
速に行うことができる。
は、第1の実施形態と同様に、“0”検出信号S11が
“1”となり、例えばアキュムレータ15が“0”に初
期化される。そのため、アキュムレータ15の16bi
t出力信号が全て“0”となり、乗算結果OUTと一致
する。以上のように、この第2の実施形態では、加算器
14による加算とシフト手段23によるシフトとの繰返
しによる計算を行うことにより、1サイクル毎に1bi
t分の加算を行い、5サイクルで乗算を終了させること
ができる。これにより、第1の実施形態よりも乗算を高
速に行うことができる。
【0026】第3の実施形態 図11は、本発明の第3の実施形態を示す乗算回路の構
成図であり、第2の実施形態を示す図9中の要素と共通
の要素には共通の符号が付されている。この第3の実施
形態の乗算回路では、図9の入力手段21に代えて構成
の異なる入力手段31が設けられ、さらに加算器14の
入力端子A側に符号反転手段(例えば、符号反転器)3
2が新たに追加されている。入力手段31は、乗数IN
2を入力して所定のデータ変換を行い、この変換結果を
第1の信号S31a及び第2の信号S31bとして各サ
イクル毎に出力し、該第1の信号S31aをシフト手段
23に与えると共に、第2の信号S31bを符号反転器
32に与える回路である。即ち、入力手段31は、例え
ば、8bitの乗数IN2を入力し、該乗数IN2の各
bitを“1”,“0”,“−1”で表現して“1”及
び“−1”の数が最小になるように変換し、この変換結
果を1サイクル毎にMSB側からbit毎にチェック
し、該bitが“1”又は“−1”ならば前の“1”又
は“−1”であったbitからどれだけ離れているかを
示す3bitの第1の信号S31aを出力し、かつ該b
itが“1”のときには“0”、“−1”のときには
“1”を示す1bitの第2の信号S31bを出力する
機能を有している。第1の信号S31a及び第2の信号
S31bは、乗数の終了時に共に“0”となる。例え
ば、乗数IN2が103(=“01100111”)の
とき、“01100111”を各bit“1”,
“0”,“−1”で記述して“1”又は“−1”の数を
減らすと、(1),(0),(−1),(0),
(1),(0),(0),(−1)のように記述でき
る。ここで、()内は各bitの値であり、各サイクル
で第2の信号S31b及び第1の信号S31aの値は、
(0,1),(1,2),(0,2),(1,3)とな
る。符号反転器32は、例えば、8bitの被乗数IN
1及び1bitの第2の信号S31bを入力し、第2の
信号S31bが“0”のとき、被乗数IN1をそのまま
出力し、該第2の信号S31bが“1”のとき、該被乗
数IN1の符号を反転して出力し、加算器14の入力端
子Aへ与える回路である。以上のように構成される乗算
回路では、被乗数IN1の値が0か、そうでないかによ
り積の計算方法が異なるので、以下、(1)被乗数IN
1≠0のときの動作と、(2)被乗数IN1=0のとき
の動作を分けて説明する。
成図であり、第2の実施形態を示す図9中の要素と共通
の要素には共通の符号が付されている。この第3の実施
形態の乗算回路では、図9の入力手段21に代えて構成
の異なる入力手段31が設けられ、さらに加算器14の
入力端子A側に符号反転手段(例えば、符号反転器)3
2が新たに追加されている。入力手段31は、乗数IN
2を入力して所定のデータ変換を行い、この変換結果を
第1の信号S31a及び第2の信号S31bとして各サ
イクル毎に出力し、該第1の信号S31aをシフト手段
23に与えると共に、第2の信号S31bを符号反転器
32に与える回路である。即ち、入力手段31は、例え
ば、8bitの乗数IN2を入力し、該乗数IN2の各
bitを“1”,“0”,“−1”で表現して“1”及
び“−1”の数が最小になるように変換し、この変換結
果を1サイクル毎にMSB側からbit毎にチェック
し、該bitが“1”又は“−1”ならば前の“1”又
は“−1”であったbitからどれだけ離れているかを
示す3bitの第1の信号S31aを出力し、かつ該b
itが“1”のときには“0”、“−1”のときには
“1”を示す1bitの第2の信号S31bを出力する
機能を有している。第1の信号S31a及び第2の信号
S31bは、乗数の終了時に共に“0”となる。例え
ば、乗数IN2が103(=“01100111”)の
とき、“01100111”を各bit“1”,
“0”,“−1”で記述して“1”又は“−1”の数を
減らすと、(1),(0),(−1),(0),
(1),(0),(0),(−1)のように記述でき
る。ここで、()内は各bitの値であり、各サイクル
で第2の信号S31b及び第1の信号S31aの値は、
(0,1),(1,2),(0,2),(1,3)とな
る。符号反転器32は、例えば、8bitの被乗数IN
1及び1bitの第2の信号S31bを入力し、第2の
信号S31bが“0”のとき、被乗数IN1をそのまま
出力し、該第2の信号S31bが“1”のとき、該被乗
数IN1の符号を反転して出力し、加算器14の入力端
子Aへ与える回路である。以上のように構成される乗算
回路では、被乗数IN1の値が0か、そうでないかによ
り積の計算方法が異なるので、以下、(1)被乗数IN
1≠0のときの動作と、(2)被乗数IN1=0のとき
の動作を分けて説明する。
【0027】(1) 被乗数IN1≠0のときの動作 図12は、図11の被乗数IN1≠0のときの例えば被
乗数IN1=55(=“00110111”)と乗数I
N2=103(=“01100111”)との乗算動作
を示すタイムチャートである。このタイムチャートを参
照しつつ、図11の乗算回路の動作を説明する。最初
に、図示しない初期化手段によってアキュムレータ15
が“0”に初期化される。クロック信号CKの最初(1
回目)の立上がりエッジの時刻t1以降に、8bitの
被乗数IN1=55(=“00110111”)と乗数
IN2=103(=“01100111”)が入力され
る。入力手段31では、8bitの乗数IN2を入力す
ると、1bitの信号S31b=“0”と3bitの信
号S31a=1を出力する。被乗数IN1は0でないの
で、これが“0”検出回路11で検出されて“0”検出
信号S11が乗算中常に“0”である。
乗数IN1=55(=“00110111”)と乗数I
N2=103(=“01100111”)との乗算動作
を示すタイムチャートである。このタイムチャートを参
照しつつ、図11の乗算回路の動作を説明する。最初
に、図示しない初期化手段によってアキュムレータ15
が“0”に初期化される。クロック信号CKの最初(1
回目)の立上がりエッジの時刻t1以降に、8bitの
被乗数IN1=55(=“00110111”)と乗数
IN2=103(=“01100111”)が入力され
る。入力手段31では、8bitの乗数IN2を入力す
ると、1bitの信号S31b=“0”と3bitの信
号S31a=1を出力する。被乗数IN1は0でないの
で、これが“0”検出回路11で検出されて“0”検出
信号S11が乗算中常に“0”である。
【0028】クロック信号CKの1回目の立上がりエッ
ジの時刻t1から2回目の立上がりエッジの時刻t3ま
での間、“0”検出信号S11及びS22が共に“0”
であるので、以降の演算を継続する。入力手段31から
出力される信号S31aの値が1のため、シフト手段2
3は、アキュムレータ15の出力信号が1bitシフト
した値(アキュムレータ15の出力信号は全て“0”な
ので、この値は“0”である)を出力し、加算器14の
入力端子Bに入力する。入力手段31から出力される信
号S31bは“0”のため、符号反転器32は、被乗数
IN1をそのまま透過して“000000000011
0111”を出力し、加算器14の入力端子Aに入力す
る。そのため、加算器14の加算結果は、“00000
00000110111”である。よって、時刻t3の
クロック信号CKの立上がりエッジで、“000000
0000110111”がアキュムレータ15に取込ま
れる。
ジの時刻t1から2回目の立上がりエッジの時刻t3ま
での間、“0”検出信号S11及びS22が共に“0”
であるので、以降の演算を継続する。入力手段31から
出力される信号S31aの値が1のため、シフト手段2
3は、アキュムレータ15の出力信号が1bitシフト
した値(アキュムレータ15の出力信号は全て“0”な
ので、この値は“0”である)を出力し、加算器14の
入力端子Bに入力する。入力手段31から出力される信
号S31bは“0”のため、符号反転器32は、被乗数
IN1をそのまま透過して“000000000011
0111”を出力し、加算器14の入力端子Aに入力す
る。そのため、加算器14の加算結果は、“00000
00000110111”である。よって、時刻t3の
クロック信号CKの立上がりエッジで、“000000
0000110111”がアキュムレータ15に取込ま
れる。
【0029】クロック信号CKの2回目の立上がりエッ
ジの時刻t3から3回目の立上がりエッジの時刻t5の
間、“0”検出信号S22が“0”のため、以降の演算
が継続される。入力手段31から出力される信号S31
aの値が2のため、シフト手段23は、アキュムレータ
15の出力信号を1bitシフトした値(アキュムレー
タ15の出力信号は“000000000011011
1”なので、この値は“00000000011011
10”である)を出力し、加算器14の入力端子Bに入
力する。入力手段31から出力される信号S31bが
“1”のため、符号反転器32は、被乗数IN1の符号
を反転して“1111111111001001”を出
力し、加算器14の入力端子Aに入力する。そのため、
加算器14の加算結果は、“000000001010
0101”となる。よって、時刻t5のクロック信号C
Kの立上がりエッジで、“0000000010100
101”がアキュムレータ15に取込まれる。
ジの時刻t3から3回目の立上がりエッジの時刻t5の
間、“0”検出信号S22が“0”のため、以降の演算
が継続される。入力手段31から出力される信号S31
aの値が2のため、シフト手段23は、アキュムレータ
15の出力信号を1bitシフトした値(アキュムレー
タ15の出力信号は“000000000011011
1”なので、この値は“00000000011011
10”である)を出力し、加算器14の入力端子Bに入
力する。入力手段31から出力される信号S31bが
“1”のため、符号反転器32は、被乗数IN1の符号
を反転して“1111111111001001”を出
力し、加算器14の入力端子Aに入力する。そのため、
加算器14の加算結果は、“000000001010
0101”となる。よって、時刻t5のクロック信号C
Kの立上がりエッジで、“0000000010100
101”がアキュムレータ15に取込まれる。
【0030】クロック信号CKの3回目の立上がりエッ
ジの時刻t5から4回目の立上がりエッジの時刻t7ま
での間、“0”検出信号S22が“0”であるので、以
降の演算が継続される。信号S31aの値が2のため、
シフト手段23は、アキュムレータ15の出力信号を2
bitシフトした値(アキュムレータ15の出力信号は
“0000000010100101”なので、この値
は“0000001010010100”である)を出
力し、加算器14の入力端子Bに入力する。信号S31
bが“0”のため、符号反転器32は被乗数IN1をそ
のまま透過して“0000000000110111”
を出力し、加算器14の入力端子Aに入力する。そのた
め、加算器14の加算結果は、“0000001011
001011”である。よって、時刻t7のクロック信
号CKの立上がりエッジで、“00000010110
01011”がアキュムレータ15に取込まれる。
ジの時刻t5から4回目の立上がりエッジの時刻t7ま
での間、“0”検出信号S22が“0”であるので、以
降の演算が継続される。信号S31aの値が2のため、
シフト手段23は、アキュムレータ15の出力信号を2
bitシフトした値(アキュムレータ15の出力信号は
“0000000010100101”なので、この値
は“0000001010010100”である)を出
力し、加算器14の入力端子Bに入力する。信号S31
bが“0”のため、符号反転器32は被乗数IN1をそ
のまま透過して“0000000000110111”
を出力し、加算器14の入力端子Aに入力する。そのた
め、加算器14の加算結果は、“0000001011
001011”である。よって、時刻t7のクロック信
号CKの立上がりエッジで、“00000010110
01011”がアキュムレータ15に取込まれる。
【0031】クロック信号CKの4回目の立上がりエッ
ジの時刻t7から5回目の立上がりエッジの時刻t9ま
での間、“0”検出信号S22が“0”なので、以降の
演算が継続される。信号S31aの値が3のため、シフ
ト手段23は、アキュムレータ15の出力信号を3bi
tシフトした値(アキュムレータ15の出力信号は“0
000001011001011”なので、この値は
“0001011001011000”である)を出力
し、加算器14の入力端子Bに入力する。信号S31b
は“1”のため、符号反転器32は、被乗数IN1の符
号を反転して“1111111111001001”を
出力し、加算器14の入力端子Aに入力する。そのた
め、加算器14の加算結果は“00010110001
00001”となる。よって、時刻t9のクロック信号
CKの立上がりエッジで、“000101100010
0001”がアキュムレータ15に取込まれる。クロッ
ク信号CKの5回目の立上がりエッジの時刻t9から6
回目の立上がりエッジの時刻t11までの間、信号S3
1aの値が0のため、“0”検出信号S22が“1”と
なる。“0”検出信号S22が“1”となると、例えば
加算器14の動作が停止し、乗算動作が終了する。この
乗算結果OUT(=5665=“0001011000
100001”)は、アキュムレータ15に格納され
る。 (2) 被乗数IN1=0のときの動作 被乗数IN1が0のときは、第1の実施形態と同様に、
“0”検出信号S11が“1”となり、例えばアキュム
レータ15が“0”に初期化され、以降の乗算が行われ
ずに終了する。乗算結果OUTを蓄えるアキュムレータ
15の内容は0であるため、該乗算結果OUTと一致す
る。以上のように、この第3の実施形態では、符号反転
器32を設けたので、第2の実施形態よりも乗算に必要
なサイクル数を減少でき、より乗算速度を高速にでき
る。
ジの時刻t7から5回目の立上がりエッジの時刻t9ま
での間、“0”検出信号S22が“0”なので、以降の
演算が継続される。信号S31aの値が3のため、シフ
ト手段23は、アキュムレータ15の出力信号を3bi
tシフトした値(アキュムレータ15の出力信号は“0
000001011001011”なので、この値は
“0001011001011000”である)を出力
し、加算器14の入力端子Bに入力する。信号S31b
は“1”のため、符号反転器32は、被乗数IN1の符
号を反転して“1111111111001001”を
出力し、加算器14の入力端子Aに入力する。そのた
め、加算器14の加算結果は“00010110001
00001”となる。よって、時刻t9のクロック信号
CKの立上がりエッジで、“000101100010
0001”がアキュムレータ15に取込まれる。クロッ
ク信号CKの5回目の立上がりエッジの時刻t9から6
回目の立上がりエッジの時刻t11までの間、信号S3
1aの値が0のため、“0”検出信号S22が“1”と
なる。“0”検出信号S22が“1”となると、例えば
加算器14の動作が停止し、乗算動作が終了する。この
乗算結果OUT(=5665=“0001011000
100001”)は、アキュムレータ15に格納され
る。 (2) 被乗数IN1=0のときの動作 被乗数IN1が0のときは、第1の実施形態と同様に、
“0”検出信号S11が“1”となり、例えばアキュム
レータ15が“0”に初期化され、以降の乗算が行われ
ずに終了する。乗算結果OUTを蓄えるアキュムレータ
15の内容は0であるため、該乗算結果OUTと一致す
る。以上のように、この第3の実施形態では、符号反転
器32を設けたので、第2の実施形態よりも乗算に必要
なサイクル数を減少でき、より乗算速度を高速にでき
る。
【0032】なお、本発明は上記実施形態に限定され
ず、種々の変形が可能である。この変形例としては、例
えば、次の(a)〜(c)のようなものがある。 (a) 図9及び図11のシフト手段23は、任意の数
だけシフトできるとしたが、このシフト数を制限するこ
とによってハード量を減らすことができる。なお、ハー
ド量を減らすと乗算時間が長くなる。 (b) 図9及び図11において、“0”検出回路11
は特に必要ではない。但し、“0”検出回路11を省略
した場合、被乗数IN1が0のとき、乗算時間が長くな
る。 (c) 図1、図9及び図11において、“0”検出信
号S11が“1”のとき、アキュムレータ15を“0”
に初期化せずに、他の手段によって直ちに乗算動作を終
了させるような構成にしてもよい。
ず、種々の変形が可能である。この変形例としては、例
えば、次の(a)〜(c)のようなものがある。 (a) 図9及び図11のシフト手段23は、任意の数
だけシフトできるとしたが、このシフト数を制限するこ
とによってハード量を減らすことができる。なお、ハー
ド量を減らすと乗算時間が長くなる。 (b) 図9及び図11において、“0”検出回路11
は特に必要ではない。但し、“0”検出回路11を省略
した場合、被乗数IN1が0のとき、乗算時間が長くな
る。 (c) 図1、図9及び図11において、“0”検出信
号S11が“1”のとき、アキュムレータ15を“0”
に初期化せずに、他の手段によって直ちに乗算動作を終
了させるような構成にしてもよい。
【0033】
【発明の効果】以上詳細に説明したように、請求項1に
係る発明によれば、1サイクル毎に1bit分の加算を
行い、複数のサイクルで乗算を終了させる乗算回路にお
いて、出力制御手段を設けたので、被乗数が0であると
きには直ちに乗算を終了させることができる。これによ
り、少ないゲート量で乗算速度の速い乗算回路を得るこ
とができる。請求項2に係る発明によれば、加算手段に
よる加算とシフト手段によるシフトとの繰返しによる計
算を行うことにより、1サイクル毎に1bit分の加算
を行い、複数のサイクルで乗算を終了させるようにした
ので、請求項1の発明よりもより乗算を高速に行うこと
ができる。請求項3に係る発明によれば、入力手段、符
号反転手段及びシフト手段を設けたので、乗算に必要な
サイクル数をより減少でき、請求項2に係る発明よりも
より乗算速度を高速に行うことができる。請求項4及び
5に係る発明によれば、出力制御手段を設けたので、被
乗数が0があるときには直ちに演算を終了し、また被乗
数が0でないときも、乗算に必要なサイクル数を減少さ
せて乗算速度を向上できる。
係る発明によれば、1サイクル毎に1bit分の加算を
行い、複数のサイクルで乗算を終了させる乗算回路にお
いて、出力制御手段を設けたので、被乗数が0であると
きには直ちに乗算を終了させることができる。これによ
り、少ないゲート量で乗算速度の速い乗算回路を得るこ
とができる。請求項2に係る発明によれば、加算手段に
よる加算とシフト手段によるシフトとの繰返しによる計
算を行うことにより、1サイクル毎に1bit分の加算
を行い、複数のサイクルで乗算を終了させるようにした
ので、請求項1の発明よりもより乗算を高速に行うこと
ができる。請求項3に係る発明によれば、入力手段、符
号反転手段及びシフト手段を設けたので、乗算に必要な
サイクル数をより減少でき、請求項2に係る発明よりも
より乗算速度を高速に行うことができる。請求項4及び
5に係る発明によれば、出力制御手段を設けたので、被
乗数が0があるときには直ちに演算を終了し、また被乗
数が0でないときも、乗算に必要なサイクル数を減少さ
せて乗算速度を向上できる。
【図1】本発明の第1の実施形態を示す乗算回路の構成
図である。
図である。
【図2】乗算例を示す図である。
【図3】従来の乗算回路を示す構成図である。
【図4】従来の他の乗算回路を示す構成図である。
【図5】図1の“0”検出回路11の回路図である。
【図6】図1の乗算手段13の回路図である。
【図7】図1の被乗数IN1≠0のときのタイムチャー
トである。
トである。
【図8】図1の被乗数IN1=0のときのタイムチャー
トである。
トである。
【図9】本発明の第2の実施形態を示す乗算回路の構成
図である。
図である。
【図10】図9の被乗数IN1≠0のときのタイムチャ
ートである。
ートである。
【図11】本発明の第3の実施形態を示す乗算回路の構
成図である。
成図である。
【図12】図11の被乗数IN1≠0のときのタイムチ
ャートである。
ャートである。
11,22 “0”検出回路 12 シフトレジスタ 13 乗算手段 14 加算器 15 アキュムレータ 21,31 入力手段 23 シフト手段 32 符号反転器
Claims (5)
- 【請求項1】 複数ビットの2進数でそれぞれ表現され
た被乗数と乗数のうちの該複数ビットの乗数を入力し、
1サイクル毎に該乗数の最上位ビット側から1ビットず
つを取出して出力する選択手段と、 前記選択手段の出力信号と前記複数ビットの被乗数の全
ビットとを乗算して複数ビットの乗算結果を出力する乗
算手段と、 前記1サイクル毎に複数ビットの加算結果を更新しつつ
記憶する記憶手段と、 前記記憶手段に記憶された1サイクル前の加算結果と前
記乗算手段の出力信号とを前記1サイクル毎に加算して
前記複数ビットの加算結果を求め、この加算結果を前記
記憶手段に記憶させる加算手段と、 前記複数ビットの被乗数が全ビット“0”であるか否か
を検出し、全ビット“0”の時には直ちに演算を終了さ
せて全ビット“0”の最終乗算結果を出力させる出力制
御手段とを、備えたことを特徴とする乗算回路。 - 【請求項2】 複数ビットの2進数でそれぞれ表現され
た被乗数と乗数のうちの該複数ビットの乗数を入力し、
1サイクル毎に該乗数を最上位ビット側からビット毎に
チェックし、該ビットが“1”ならば前の“1”であっ
たビットからどれだけ離れているかを示す値を出力する
入力手段と、 前記1サイクル毎に複数ビットの加算結果を更新しつつ
記憶する記憶手段と、 前記記憶手段に記憶された1サイクル前の加算結果を、
前記入力手段の出力信号で示されるビット数だけ最上位
ビット側にシフトさせて出力するシフト手段と、 前記複数ビットの被乗数と前記シフト手段の出力信号と
を前記1サイクル毎に加算して前記複数ビットの加算結
果を求め、この加算結果を前記記憶手段に記憶させる加
算手段とを、備えたことを特徴とする乗算回路。 - 【請求項3】 複数ビットの2進数でそれぞれ表現され
た被乗数と乗数のうちの該複数ビットの乗数を入力し、
該乗数の各ビットを“1”,“0”,“−1”で表現し
て“1”及び“−1”の数が最小になるように変換し、
この変換結果を1サイクル毎に最上位ビット側からビッ
ト毎にチェックし、該ビットが“1”又は“−1”なら
ば前の“1”又は“−1”であったビットからどれだけ
離れているかを示す第1の信号を出力し、かつ該ビット
が“1”の時には“0”、“−1”の時には“1”を示
す第2の信号を出力する入力手段と、 前記複数ビットの被乗数を入力し、前記第2の信号が
“0”の時には該被乗数をそのまま出力し、該第2の信
号が“1”の時には該被乗数の符号を反転して出力する
符号反転手段と、 前記1サイクル毎に複数ビットの加算結果を更新しつつ
記憶する記憶手段と、 前記記憶手段に記憶された1サイクル前の加算結果を、
前記第1の信号で示されるビット数だけ最上位ビット側
にシフトさせて出力するシフト手段と、 前記符号反転手段の出力信号と前記シフト手段の出力信
号とを前記1サイクル毎に加算して前記複数ビットの加
算結果を求め、この加算結果を前記記憶手段に記憶させ
る加算手段とを、備えたことを特徴とする乗算回路。 - 【請求項4】 請求項2又は3の乗算回路と、 前記複数ビットの被乗数が全ビット“0”であるか否か
を検出し、全ビット“0”の時には直ちに演算を終了さ
せて全ビット“0”の最終乗算結果を出力させる出力制
御手段とを、備えたことを特徴とする乗算回路。 - 【請求項5】 前記出力制御手段は、前記複数ビットの
被乗数が全ビット“0”であるか否かを検出して全ビッ
ト“0”の時には“0”検出信号を出力する“0”検出
回路を有し、該“0”検出信号によって前記記憶手段の
出力信号を全ビット“0”に初期化する構成にしたこと
を特徴とする請求項1又は4記載の乗算回路。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP255098A JPH11203108A (ja) | 1998-01-08 | 1998-01-08 | 乗算回路 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP255098A JPH11203108A (ja) | 1998-01-08 | 1998-01-08 | 乗算回路 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH11203108A true JPH11203108A (ja) | 1999-07-30 |
Family
ID=11532504
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP255098A Withdrawn JPH11203108A (ja) | 1998-01-08 | 1998-01-08 | 乗算回路 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH11203108A (ja) |
-
1998
- 1998-01-08 JP JP255098A patent/JPH11203108A/ja not_active Withdrawn
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS6228895B2 (ja) | ||
| JPH06348455A (ja) | 乗算における丸め込み方法及び乗算回路 | |
| JP3352887B2 (ja) | クランプ付除算器、このクランプ付除算器を備えた情報処理装置及び除算処理におけるクランプ方法 | |
| JP2585649B2 (ja) | 除算回路 | |
| JP2608165B2 (ja) | ディジタル信号処理システムにおける実時間2の補数コードの乗算方法及び装置 | |
| US4774686A (en) | Serial digital signal processing circuitry | |
| JP2006227939A (ja) | 演算装置 | |
| JP3003467B2 (ja) | 演算装置 | |
| CN1666173A (zh) | 快速乘法电路 | |
| JPH11203108A (ja) | 乗算回路 | |
| KR0147942B1 (ko) | 승산기에서의 부스 레코딩회로 | |
| WO2003096182A1 (en) | “emod” a fast modulus calculation for computer systems | |
| US5781465A (en) | Method and apparatus for fast carry generation detection and comparison | |
| JP2004166274A (ja) | 有限体での基底変換方法及び基底変換装置 | |
| JP2991788B2 (ja) | 復号器 | |
| JPH11317676A (ja) | 有限フィ―ルドでの任意要素の逆数具現回路 | |
| JP3071607B2 (ja) | 乗算回路 | |
| KR101100753B1 (ko) | 부스 곱셈기 | |
| US20100191787A1 (en) | Sequential Multiplier | |
| CN112732219B (zh) | 一种ssd主控芯片中乘法运算电路和方法 | |
| JP2838326B2 (ja) | ディジタル乗算器 | |
| US7472154B2 (en) | Multiplication remainder calculator | |
| US6457035B1 (en) | Table matching for multiplication of elements in Galois Field | |
| JP3851024B2 (ja) | 乗算器 | |
| JP4042215B2 (ja) | 演算処理装置およびその方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20050405 |