JPH06223097A - 乗算器、積和演算器の回路記述の発生方法 - Google Patents
乗算器、積和演算器の回路記述の発生方法Info
- Publication number
- JPH06223097A JPH06223097A JP5009384A JP938493A JPH06223097A JP H06223097 A JPH06223097 A JP H06223097A JP 5009384 A JP5009384 A JP 5009384A JP 938493 A JP938493 A JP 938493A JP H06223097 A JPH06223097 A JP H06223097A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- product
- description
- multiplier
- output
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
【目的】 要求仕様を満たしたまま、回路要素の少ない
回路記述を生成する。 【構成】 ステップ〔1〕において、発生する積和演算
器の各種パラメータを読み込む。パラメータには、被乗
数の語長m、乗数の語長n、入力加数及び演算出力の語
長w、動作サイクル時間C、全加算器の動作時間Tがあ
る。ステップ〔2〕において、乗算による部分積と入力
加数に定数0を補って規則正しい形にし、全加算器を横
方向にw個、縦方向に(n+2)個複製し、第1の加算
回路の記述を生成する。ステップ〔3〕において、出力
の冗長度数rを式C/T−nによって決定する。ステッ
プ〔4〕において、出力をrビットごとに分割し、それ
ぞれについてrビットの桁上げ加算を行う第2の加算回
路の記述を生成する。ステップ〔5〕において、冗長回
路削除プログラムを用いて、回路記述から無駄な回路を
除去する。ステップ〔6〕において、回路記述(ネット
リスト)を出力する。
回路記述を生成する。 【構成】 ステップ〔1〕において、発生する積和演算
器の各種パラメータを読み込む。パラメータには、被乗
数の語長m、乗数の語長n、入力加数及び演算出力の語
長w、動作サイクル時間C、全加算器の動作時間Tがあ
る。ステップ〔2〕において、乗算による部分積と入力
加数に定数0を補って規則正しい形にし、全加算器を横
方向にw個、縦方向に(n+2)個複製し、第1の加算
回路の記述を生成する。ステップ〔3〕において、出力
の冗長度数rを式C/T−nによって決定する。ステッ
プ〔4〕において、出力をrビットごとに分割し、それ
ぞれについてrビットの桁上げ加算を行う第2の加算回
路の記述を生成する。ステップ〔5〕において、冗長回
路削除プログラムを用いて、回路記述から無駄な回路を
除去する。ステップ〔6〕において、回路記述(ネット
リスト)を出力する。
Description
【0001】
【産業上の利用分野】本発明は、ディジタル信号処理回
路をLSI化する場合等に使用される乗算器の回路記述
の発生方法及び積和演算器の回路記述の発生方法に関す
るものである。
路をLSI化する場合等に使用される乗算器の回路記述
の発生方法及び積和演算器の回路記述の発生方法に関す
るものである。
【0002】
【従来の技術】2つのベクトルA(a,b,c)とB
(d,e,f)の内積ad+be+cfを計算するため
に、図5に示すような内積演算回路が考えられる。図5
において、Rは高速動作のためのパイプラインレジスタ
を表す。図5は、図6に示すような積和演算器を組み合
わせることで実現できる。
(d,e,f)の内積ad+be+cfを計算するため
に、図5に示すような内積演算回路が考えられる。図5
において、Rは高速動作のためのパイプラインレジスタ
を表す。図5は、図6に示すような積和演算器を組み合
わせることで実現できる。
【0003】積和演算器(図6)の動作は、図7に示す
ようなものである。すなわち、被乗数(X3 ,X2 ,X
1 ,X0 )および乗数(Y2 ,Y1 ,Y0 )による部分
積X i ×Yj と、加数(L7 ,L6 ,L5 ,L4 ,
L3 ,L2 ,L1 ,L0 )を加算して、演算結果
(P7 ,P6 ,P5 ,P4 ,P3 ,P2 ,P1 ,P0 )
を得るものである。
ようなものである。すなわち、被乗数(X3 ,X2 ,X
1 ,X0 )および乗数(Y2 ,Y1 ,Y0 )による部分
積X i ×Yj と、加数(L7 ,L6 ,L5 ,L4 ,
L3 ,L2 ,L1 ,L0 )を加算して、演算結果
(P7 ,P6 ,P5 ,P4 ,P3 ,P2 ,P1 ,P0 )
を得るものである。
【0004】図7を実際に計算する場合は、キャリーセ
ーブ方式で上から順に加算(同じ桁の3本の信号を全加
算器で加算してキャリーとサムの2本の信号にし、順次
部分積を減らしていく加算方法)していき、加算すべき
データが最終的に1桁あたりキャリーとサムの2つの信
号になった時点で桁上げ加算を行い、演算結果Pを得
る。
ーブ方式で上から順に加算(同じ桁の3本の信号を全加
算器で加算してキャリーとサムの2本の信号にし、順次
部分積を減らしていく加算方法)していき、加算すべき
データが最終的に1桁あたりキャリーとサムの2つの信
号になった時点で桁上げ加算を行い、演算結果Pを得
る。
【0005】図7の演算で、最も時間のかかるのは、加
算における桁上げの処理である。そこで一般には、桁上
げ加算のいらない冗長2進表現形式が入出力に用いられ
る。冗長2進形式を用いた積和演算器の動作を、図8に
示す。
算における桁上げの処理である。そこで一般には、桁上
げ加算のいらない冗長2進表現形式が入出力に用いられ
る。冗長2進形式を用いた積和演算器の動作を、図8に
示す。
【0006】図8の積和演算器では、最後の桁上げ加算
を行わないため、演算結果が冗長表現(J7 ,J6 ,J
5 ,J4 ,J3 ,J2 ,J1 ,J0 )と(K7 ,K6 ,
K5,K4 ,K3 ,K2 ,K1 ,K0 )で得られる。
を行わないため、演算結果が冗長表現(J7 ,J6 ,J
5 ,J4 ,J3 ,J2 ,J1 ,J0 )と(K7 ,K6 ,
K5,K4 ,K3 ,K2 ,K1 ,K0 )で得られる。
【0007】図8の積和演算器を組み合わせて内積演算
回路を構成する場合、ある積和演算器の出力が次の積和
演算器の加数入力に接続されるので、入力加数も冗長表
現(A7 ,A6 ,A5 ,A4 ,A3 ,A2 ,A1 ,
A0 )と(B7 ,B6 ,B5 ,B 4 ,B3 ,B2 ,
B1 ,B0 )で表される数を入力している。
回路を構成する場合、ある積和演算器の出力が次の積和
演算器の加数入力に接続されるので、入力加数も冗長表
現(A7 ,A6 ,A5 ,A4 ,A3 ,A2 ,A1 ,
A0 )と(B7 ,B6 ,B5 ,B 4 ,B3 ,B2 ,
B1 ,B0 )で表される数を入力している。
【0008】ある冗長2進表現のデータにおいて、r桁
ごとにサムとキャリーの2ビットによる表現がされてい
るとき、rをこのデータの冗長度数と呼ぶ。図8のデー
タの場合の冗長度数rは1である。
ごとにサムとキャリーの2ビットによる表現がされてい
るとき、rをこのデータの冗長度数と呼ぶ。図8のデー
タの場合の冗長度数rは1である。
【0009】図8の積和演算器を図9のように表す。図
9において、入力加数及び演算結果が2本の矢印で表さ
れているのは、1桁あたりキャリーとサムの2本の信号
でデータを表していることを示している。
9において、入力加数及び演算結果が2本の矢印で表さ
れているのは、1桁あたりキャリーとサムの2本の信号
でデータを表していることを示している。
【0010】図9の積和演算器を用いた内積演算回路を
図10に示す。図10の内積演算回路の場合、演算結果
を得るための桁上げ加算器は最終段の1つだけでよい。
したがって、各積和演算器が桁上げ加算を行わなくても
よい分、高速で動作できる。しかし、図5のように冗長
表現を用いない場合に比べ、データの伝達に必要なレジ
スタの数は、2倍の個数が必要になる。
図10に示す。図10の内積演算回路の場合、演算結果
を得るための桁上げ加算器は最終段の1つだけでよい。
したがって、各積和演算器が桁上げ加算を行わなくても
よい分、高速で動作できる。しかし、図5のように冗長
表現を用いない場合に比べ、データの伝達に必要なレジ
スタの数は、2倍の個数が必要になる。
【0011】従来、図8に示す積和演算器の回路記述
を、乗数、被乗数、加数、出力のそれぞれの語長を与え
ることにより自動発生するプログラムがあった。その原
理は、まず図11に示すように、部分積の形の不規則な
部分に定数0を補い、図12に示すように、規則的に並
べた全加算器(FA)に信号を割り当てるものであっ
た。
を、乗数、被乗数、加数、出力のそれぞれの語長を与え
ることにより自動発生するプログラムがあった。その原
理は、まず図11に示すように、部分積の形の不規則な
部分に定数0を補い、図12に示すように、規則的に並
べた全加算器(FA)に信号を割り当てるものであっ
た。
【0012】すなわち、図8の部分積は不規則な形にな
っているので、この回路記述を自動発生するのは困難で
あったので、図11に示すように故意に定数0を付加し
て、部分積を規則的な形にして、回路記述の自動発生を
行いやすくしている。
っているので、この回路記述を自動発生するのは困難で
あったので、図11に示すように故意に定数0を付加し
て、部分積を規則的な形にして、回路記述の自動発生を
行いやすくしている。
【0013】つまり、部分積と入力加数の形が8×5の
長方形状になるので、回路記述の自動発生プログラム
は、全加算器を8×5個生成して、対応する信号を図1
2に示すように接続するという簡単なものでよい。
長方形状になるので、回路記述の自動発生プログラム
は、全加算器を8×5個生成して、対応する信号を図1
2に示すように接続するという簡単なものでよい。
【0014】図12には、常に定数0同士の加算を行う
ような、無駄な全加算器が含まれる。このような冗長な
回路を取り除くためのプログラムとして、本願出願人は
先に特願平4−167727号「論理回路圧縮方法」を
提案した。この方法は、与えられた回路を、等価でより
規模の小さい回路に変換するものである。この方法によ
れば、定数が入力されている全加算器等は、その出力値
も定数に確定しているので、全加算器の代わりに単なる
定数の供給回路に置き換えることができる。
ような、無駄な全加算器が含まれる。このような冗長な
回路を取り除くためのプログラムとして、本願出願人は
先に特願平4−167727号「論理回路圧縮方法」を
提案した。この方法は、与えられた回路を、等価でより
規模の小さい回路に変換するものである。この方法によ
れば、定数が入力されている全加算器等は、その出力値
も定数に確定しているので、全加算器の代わりに単なる
定数の供給回路に置き換えることができる。
【0015】この冗長回路削除プログラムを用いると、
上記の無駄な全加算器等は回路から削除され、図13に
示すような無駄のない回路が得られる。図13は不規則
な回路であり、このような回路の記述を自動的に発生す
るためのプログラムを作成することは困難であるが、上
記の手順によれば、最初から図13に示す回路記述を発
生させるのと同じことが、簡単な自動発生プログラムと
冗長回路削除プログラムを用いて実現できた。
上記の無駄な全加算器等は回路から削除され、図13に
示すような無駄のない回路が得られる。図13は不規則
な回路であり、このような回路の記述を自動的に発生す
るためのプログラムを作成することは困難であるが、上
記の手順によれば、最初から図13に示す回路記述を発
生させるのと同じことが、簡単な自動発生プログラムと
冗長回路削除プログラムを用いて実現できた。
【0016】ところが上述の内積演算回路の構成では、
各積和演算器がデータを冗長度数1の冗長表現で伝える
ので、冗長表現を用いない場合に比べて、パイプライン
用レジスタの数が2倍必要であった。一方、各々の積和
演算器は、桁上げ加算器を分離したことにより、高速動
作が可能となり、要求される動作サイクル時間よりも十
分速く演算を終了し、なおかつ時間が余ることがあっ
た。
各積和演算器がデータを冗長度数1の冗長表現で伝える
ので、冗長表現を用いない場合に比べて、パイプライン
用レジスタの数が2倍必要であった。一方、各々の積和
演算器は、桁上げ加算器を分離したことにより、高速動
作が可能となり、要求される動作サイクル時間よりも十
分速く演算を終了し、なおかつ時間が余ることがあっ
た。
【0017】これに対し、従来の回路記述発生方法で
は、時間が余った場合でも常にパイプラインレジスタの
多い回路を発生していた。すなわち従来の回路記述発生
方法では、動作時間がもっと遅くてもよいから規模の小
さい回路記述を発生したいという要望に答えられていな
かった。
は、時間が余った場合でも常にパイプラインレジスタの
多い回路を発生していた。すなわち従来の回路記述発生
方法では、動作時間がもっと遅くてもよいから規模の小
さい回路記述を発生したいという要望に答えられていな
かった。
【0018】
【発明が解決しようとする課題】解決しようとする問題
点は、動作時間がもっと遅くてもよいから規模の小さい
回路記述を発生したいという要望に答えられていなかっ
たというものである。
点は、動作時間がもっと遅くてもよいから規模の小さい
回路記述を発生したいという要望に答えられていなかっ
たというものである。
【0019】
【課題を解決するための手段】本発明による第1の手段
は、入力されてくる乗数の語長及び被乗数の語長によ
り、各部分積を加算して、各ビットを冗長表現形式で出
力する第1の加算回路の回路記述を発生し、入力されて
くる最大許容遅延時間から上記第1の加算回路での遅延
時間を引いた時間に応じて、冗長度数rを決定し、上記
第1の加算回路の出力である各ビットが冗長表現形式で
あるデータを入力とし、rビット毎に分割した上記デー
タを加算し、rビット毎の冗長表現形式で出力する第2
の加算回路の回路記述を発生することを特徴とする乗算
器の回路記述の発生方法である。
は、入力されてくる乗数の語長及び被乗数の語長によ
り、各部分積を加算して、各ビットを冗長表現形式で出
力する第1の加算回路の回路記述を発生し、入力されて
くる最大許容遅延時間から上記第1の加算回路での遅延
時間を引いた時間に応じて、冗長度数rを決定し、上記
第1の加算回路の出力である各ビットが冗長表現形式で
あるデータを入力とし、rビット毎に分割した上記デー
タを加算し、rビット毎の冗長表現形式で出力する第2
の加算回路の回路記述を発生することを特徴とする乗算
器の回路記述の発生方法である。
【0020】本発明による第2の手段は、入力されてく
る乗数の語長、被乗数の語長及び加数の語長により、乗
数と被乗数の積及び加数から成る部分積を加算して、各
ビットを冗長表現形式で出力する第1の加算回路の回路
記述を発生し、入力されてくる最大許容遅延時間から上
記第1の加算回路での遅延時間を引いた時間に応じて、
冗長度数rを決定し、上記第1の加算回路の出力である
各ビットが冗長表現形式であるデータを入力とし、rビ
ット毎に分割した上記データを加算し、rビット毎の冗
長表現形式で出力する第2の加算回路の回路記述を発生
することを特徴とする積和演算器の回路記述の発生方法
である。
る乗数の語長、被乗数の語長及び加数の語長により、乗
数と被乗数の積及び加数から成る部分積を加算して、各
ビットを冗長表現形式で出力する第1の加算回路の回路
記述を発生し、入力されてくる最大許容遅延時間から上
記第1の加算回路での遅延時間を引いた時間に応じて、
冗長度数rを決定し、上記第1の加算回路の出力である
各ビットが冗長表現形式であるデータを入力とし、rビ
ット毎に分割した上記データを加算し、rビット毎の冗
長表現形式で出力する第2の加算回路の回路記述を発生
することを特徴とする積和演算器の回路記述の発生方法
である。
【0021】
【作用】これによれば、第2の加算回路により、rビッ
トごとに冗長な出力が得られるので、従来の積和演算器
の出力に比べ、r桁あたり(r−1)個分だけ、パイプ
ラインレジスタの数が少なくて済む。また余った時間を
有効に利用することで、要求仕様を満たしたまま、パイ
プラインレジスタの数が少ない回路の記述を生成するこ
とができる。
トごとに冗長な出力が得られるので、従来の積和演算器
の出力に比べ、r桁あたり(r−1)個分だけ、パイプ
ラインレジスタの数が少なくて済む。また余った時間を
有効に利用することで、要求仕様を満たしたまま、パイ
プラインレジスタの数が少ない回路の記述を生成するこ
とができる。
【0022】
【実施例】本発明の方法により自動発生される回路記述
は以下のようなものである。すなわち、要求仕様を満た
したまま、パイプラインレジスタの数が従来より少ない
回路の記述である。
は以下のようなものである。すなわち、要求仕様を満た
したまま、パイプラインレジスタの数が従来より少ない
回路の記述である。
【0023】各々の積和演算器から出力される冗長表現
のデータに対し、余った時間内で出来る限りの桁上げ加
算を行う。例えば、図14のPA〜PEのデータを、キ
ャリーセーブ方式で加算していくと、全加算器により3
つのデータを2つのデータに変換することを繰り返すの
で、冗長2進表現のデータPJ〜PKを得るには、図1
4の様に3回全加算器による加算が必要になる。
のデータに対し、余った時間内で出来る限りの桁上げ加
算を行う。例えば、図14のPA〜PEのデータを、キ
ャリーセーブ方式で加算していくと、全加算器により3
つのデータを2つのデータに変換することを繰り返すの
で、冗長2進表現のデータPJ〜PKを得るには、図1
4の様に3回全加算器による加算が必要になる。
【0024】図14におけるPA〜PE,PJ,PK
は、それぞれ図11における PA=(0,0,0,0,X3 Y0 ,X2 Y0 ,X1 Y
0 ,X0 Y0 ) PB=(0,0,0,X3 Y1 ,X2 Y1 ,X1 Y1 ,
X0 Y1 ,0) PC=(0,0,X3 Y2 ,X2 Y2 ,X1 Y2 ,X0
Y2 ,0,0) PD=(A7 ,A6 ,A5 ,A4 ,A3 ,A2 ,A1 ,
A0 ) PE=(B7 ,B6 ,B5 ,B4 ,B3 ,B2 ,B1 ,
B0 ) PJ=(J7 ,J6 ,J5 ,J4 ,J3 ,J2 ,J1 ,
J0 ) PK=(K7 ,K6 ,K5 ,K4 ,K3 ,K2 ,K1 ,
K0 ) に対応している。
は、それぞれ図11における PA=(0,0,0,0,X3 Y0 ,X2 Y0 ,X1 Y
0 ,X0 Y0 ) PB=(0,0,0,X3 Y1 ,X2 Y1 ,X1 Y1 ,
X0 Y1 ,0) PC=(0,0,X3 Y2 ,X2 Y2 ,X1 Y2 ,X0
Y2 ,0,0) PD=(A7 ,A6 ,A5 ,A4 ,A3 ,A2 ,A1 ,
A0 ) PE=(B7 ,B6 ,B5 ,B4 ,B3 ,B2 ,B1 ,
B0 ) PJ=(J7 ,J6 ,J5 ,J4 ,J3 ,J2 ,J1 ,
J0 ) PK=(K7 ,K6 ,K5 ,K4 ,K3 ,K2 ,K1 ,
K0 ) に対応している。
【0025】全加算器が1回の加算を行うのに例えば5
nsかかるとすると、5×3=15nsで上記の加算は
実行できる。回路に要求される動作時間が例えば30n
sであった場合、30−15=15nsの時間が余る。
nsかかるとすると、5×3=15nsで上記の加算は
実行できる。回路に要求される動作時間が例えば30n
sであった場合、30−15=15nsの時間が余る。
【0026】今、余った時間で図2(A)のような冗長
2進表現のデータの桁上げ加算を行うことを考える。1
桁分の桁上げ加算に対し全加算器が1回分、すなわち5
nsの時間がかかるので、15nsでは、15/5=3
桁分の桁上げ加算が実行できる。
2進表現のデータの桁上げ加算を行うことを考える。1
桁分の桁上げ加算に対し全加算器が1回分、すなわち5
nsの時間がかかるので、15nsでは、15/5=3
桁分の桁上げ加算が実行できる。
【0027】そこで、図2(B)のように出力を3桁ご
とに区切って、それぞれ図2(C)のように桁上げ加算
を行い、分割する前の状態に戻すと、図2(D)のよう
なデータが得られる。これは元のデータを冗長度数3で
冗長表現したもので、データの表す内容は同じものであ
る。この冗長度数3のデータを出力すると、元の冗長度
数1のデータを出力するのに比べ、必要なパイプライン
レジスタの数が16個から10個に減少する。
とに区切って、それぞれ図2(C)のように桁上げ加算
を行い、分割する前の状態に戻すと、図2(D)のよう
なデータが得られる。これは元のデータを冗長度数3で
冗長表現したもので、データの表す内容は同じものであ
る。この冗長度数3のデータを出力すると、元の冗長度
数1のデータを出力するのに比べ、必要なパイプライン
レジスタの数が16個から10個に減少する。
【0028】つまり、内積演算回路を構成した場合、積
和演算回路間に接続されているパイプラインレジスタの
個数は、従来は冗長度数が1の回路記述しか自動生成で
きなかったので、(語長×2)=16個必要であった。
それに比べ、本発明の方法により生成される回路記述は
上述の回路(冗長度数3)であり、図2(D)に示すよ
うに、10個で済む。
和演算回路間に接続されているパイプラインレジスタの
個数は、従来は冗長度数が1の回路記述しか自動生成で
きなかったので、(語長×2)=16個必要であった。
それに比べ、本発明の方法により生成される回路記述は
上述の回路(冗長度数3)であり、図2(D)に示すよ
うに、10個で済む。
【0029】本発明は、動作サイクル時間をパラメータ
として与えることにより、上記のような回路の回路記述
を自動的に発生する方法である。図1に、本発明のフロ
ーチャート図を示す。
として与えることにより、上記のような回路の回路記述
を自動的に発生する方法である。図1に、本発明のフロ
ーチャート図を示す。
【0030】まず、積和演算器での演算に必要な時間を
求める。積和演算器の演算時間は、ほとんどが部分積の
加算回路によって費やされると考えられる。そこで、積
和演算器の演算時間は、部分積の加算回路における入力
から出力までの全加算器の最大通過段数と、全加算器1
段あたりの動作時間の積を用いる。
求める。積和演算器の演算時間は、ほとんどが部分積の
加算回路によって費やされると考えられる。そこで、積
和演算器の演算時間は、部分積の加算回路における入力
から出力までの全加算器の最大通過段数と、全加算器1
段あたりの動作時間の積を用いる。
【0031】部分積の加算回路における全加算器の段数
は、乗数、被乗数の語長、乗算方法の種類、加算方法の
種類などから求めることができる。
は、乗数、被乗数の語長、乗算方法の種類、加算方法の
種類などから求めることができる。
【0032】例えば、図8の積和演算器では、mビット
×nビットの乗算を行った場合、乗算による部分積の数
はn個になる。さらに、冗長表現の入力加数を含める
と、全部でn+2個のデータを加算することになる。n
+2個の部分積をキャリーセーブ方式で加算すると、n
段の全加算器が必要になる。
×nビットの乗算を行った場合、乗算による部分積の数
はn個になる。さらに、冗長表現の入力加数を含める
と、全部でn+2個のデータを加算することになる。n
+2個の部分積をキャリーセーブ方式で加算すると、n
段の全加算器が必要になる。
【0033】全加算器1段の演算にT(ns)の時間が
かかるものとすると、この場合の部分積の加算回路の演
算時間はT×n(ns)となる。したがって、積和演算
器の演算時間もT×n(ns)である。
かかるものとすると、この場合の部分積の加算回路の演
算時間はT×n(ns)となる。したがって、積和演算
器の演算時間もT×n(ns)である。
【0034】一方、この積和演算器に要求される動作サ
イクル時間がC(ns)であるとすると、C−T×n
(ns)だけ時間が余る。
イクル時間がC(ns)であるとすると、C−T×n
(ns)だけ時間が余る。
【0035】ここで、冗長度数r=C/T−nとする
と、余った時間でr段の全加算器を介した分の演算がで
きる。すなわち、r桁分の桁上げ加算が実行できる。
と、余った時間でr段の全加算器を介した分の演算がで
きる。すなわち、r桁分の桁上げ加算が実行できる。
【0036】そこで、出力をr桁ごとに区切って、それ
ぞれに小さな桁上げ加算器を付加する。この結果、冗長
度数rの出力が得られる。
ぞれに小さな桁上げ加算器を付加する。この結果、冗長
度数rの出力が得られる。
【0037】さらに図1と対応させながら詳しく述べ
る。ステップ〔1〕において、発生する積和演算器の各
種パラメータを読み込む。パラメータには、被乗数の語
長m、乗数の語長n、入力加数及び演算出力の語長w、
動作サイクル時間C、全加算器の動作時間Tがある。ス
テップ〔2〕において、乗算による部分積と入力加数に
定数0を補って規則正しい形(図11)にし、全加算器
を横方向にw個、縦方向に(n+2)個複製し、図12
に示すような、第1の加算回路の記述を生成する。ステ
ップ〔3〕において、出力の冗長度数rを式C/T−n
によって決定する。ステップ〔4〕において、出力をr
ビットごとに分割し、それぞれについてrビットの桁上
げ加算を行う第2の加算回路の記述を生成する。ステッ
プ〔5〕において、冗長回路削除プログラムを用いて、
回路記述から無駄な回路を除去する。ステップ〔6〕に
おいて、回路記述(ネットリスト)を出力する。
る。ステップ〔1〕において、発生する積和演算器の各
種パラメータを読み込む。パラメータには、被乗数の語
長m、乗数の語長n、入力加数及び演算出力の語長w、
動作サイクル時間C、全加算器の動作時間Tがある。ス
テップ〔2〕において、乗算による部分積と入力加数に
定数0を補って規則正しい形(図11)にし、全加算器
を横方向にw個、縦方向に(n+2)個複製し、図12
に示すような、第1の加算回路の記述を生成する。ステ
ップ〔3〕において、出力の冗長度数rを式C/T−n
によって決定する。ステップ〔4〕において、出力をr
ビットごとに分割し、それぞれについてrビットの桁上
げ加算を行う第2の加算回路の記述を生成する。ステッ
プ〔5〕において、冗長回路削除プログラムを用いて、
回路記述から無駄な回路を除去する。ステップ〔6〕に
おいて、回路記述(ネットリスト)を出力する。
【0038】ここで、従来の積和演算器と本発明による
積和演算器の比較を、図3に示す。図3においてm、n
はそれぞれ乗算器の被乗数、乗数の語長を、wは入力加
数および出力の語長を表す。また、rは本発明による積
和演算器の演算結果の冗長度数を表している。
積和演算器の比較を、図3に示す。図3においてm、n
はそれぞれ乗算器の被乗数、乗数の語長を、wは入力加
数および出力の語長を表す。また、rは本発明による積
和演算器の演算結果の冗長度数を表している。
【0039】積和演算器の動作は、乗算による部分積と
入力加数をすべて加算し、冗長2進表現の演算結果を出
力することである。これは、例えば従来の積和演算器で
あれば、(m×n+w×2)ビットからなるデータを、
加算器によって(w×2)ビットにまで圧縮することを
意味する。
入力加数をすべて加算し、冗長2進表現の演算結果を出
力することである。これは、例えば従来の積和演算器で
あれば、(m×n+w×2)ビットからなるデータを、
加算器によって(w×2)ビットにまで圧縮することを
意味する。
【0040】1つの全加算器は、3ビットのデータを2
ビットに変換するので、全加算器1つで1ビットのデー
タを減らすことができる。したがって、(m×n)ビッ
トのデータを減らすためには、(m×n)個の全加算器
が必要である。
ビットに変換するので、全加算器1つで1ビットのデー
タを減らすことができる。したがって、(m×n)ビッ
トのデータを減らすためには、(m×n)個の全加算器
が必要である。
【0041】このことは、本発明による積和演算器でも
同様である。すなわち、本発明による積和演算器では、
(n×m+w+w/r)ビットからなるデータを、(w
+w/r)にまで圧縮するので、これに必要な全加算器
の数は(m×n)個で、従来の積和演算器と同じであ
る。
同様である。すなわち、本発明による積和演算器では、
(n×m+w+w/r)ビットからなるデータを、(w
+w/r)にまで圧縮するので、これに必要な全加算器
の数は(m×n)個で、従来の積和演算器と同じであ
る。
【0042】しかるに、本発明による積和演算器では、
演算結果を保持するために必要なレジスタの数は、従来
の積和演算器に比べr桁あたり(r−1)個分少なくて
済む。
演算結果を保持するために必要なレジスタの数は、従来
の積和演算器に比べr桁あたり(r−1)個分少なくて
済む。
【0043】なおこれまでの説明ではキャリーセーブ型
で加算する回路について述べたが、Wallace Tree型で加
算する回路についても適用できることは言うまでもな
い。
で加算する回路について述べたが、Wallace Tree型で加
算する回路についても適用できることは言うまでもな
い。
【0044】こうして冗長表現を用いた積和演算回路を
組み合わせて内積演算回路を構成する際、本発明により
自動発生される積和演算回路を用いれば、要求される動
作サイクル時間内でできる限りの桁上げ加算を行う加算
器が付加されるので、従来よりもパイプランレジスタの
個数を少なくすることができるものである。
組み合わせて内積演算回路を構成する際、本発明により
自動発生される積和演算回路を用いれば、要求される動
作サイクル時間内でできる限りの桁上げ加算を行う加算
器が付加されるので、従来よりもパイプランレジスタの
個数を少なくすることができるものである。
【0045】また、乗算器についても本発明は適用でき
る。すなわち、図3の積和演算回路において、加数入力
部を取り除いた回路は乗算器として働くので、積和演算
回路の回路記述を発生させるのと同様な方法で、出力が
rビットごとに冗長であるような乗算器の回路記述を発
生することができる。このことを図4を用いて説明す
る。
る。すなわち、図3の積和演算回路において、加数入力
部を取り除いた回路は乗算器として働くので、積和演算
回路の回路記述を発生させるのと同様な方法で、出力が
rビットごとに冗長であるような乗算器の回路記述を発
生することができる。このことを図4を用いて説明す
る。
【0046】まず、乗算器での演算に必要な時間を求め
る。乗算器の演算時間は、ほとんどが部分積の加算回路
によって費やされると考えられる。そこで、乗算器の演
算時間は、部分積の加算回路における入力から出力まで
の全加算器の段数と、全加算器1段あたりの動作時間の
積を用いる。
る。乗算器の演算時間は、ほとんどが部分積の加算回路
によって費やされると考えられる。そこで、乗算器の演
算時間は、部分積の加算回路における入力から出力まで
の全加算器の段数と、全加算器1段あたりの動作時間の
積を用いる。
【0047】部分積の加算回路における全加算器の段数
は、乗数、被乗数の語長、乗算方法の種類、加算方法の
種類などから求めることができる。
は、乗数、被乗数の語長、乗算方法の種類、加算方法の
種類などから求めることができる。
【0048】図4の乗算器では、mビット×nビットの
乗算を行った場合、乗算による部分積の数はn個にな
る。n個の部分積をキャリーセーブ方式で加算すると、
(n−2)段の全加算器が必要になる。
乗算を行った場合、乗算による部分積の数はn個にな
る。n個の部分積をキャリーセーブ方式で加算すると、
(n−2)段の全加算器が必要になる。
【0049】全加算器1段の演算にT(ns)の時間が
かかるものとすると、この場合の部分積の加算回路の演
算時間はT×(n−2)(ns)となる。したがって、
乗算器の演算時間もT×(n−2)(ns)である。
かかるものとすると、この場合の部分積の加算回路の演
算時間はT×(n−2)(ns)となる。したがって、
乗算器の演算時間もT×(n−2)(ns)である。
【0050】一方、この乗算器に要求される動作サイク
ル時間がC(ns)であるとすると、C−T×(n−
2)(ns)だけ時間が余る。
ル時間がC(ns)であるとすると、C−T×(n−
2)(ns)だけ時間が余る。
【0051】ここで、冗長度数r=C/T−(n−2)
とすると、余った時間でr段の全加算器を介した分の演
算ができる。すなわち、r桁分の桁上げ加算が実行でき
る。
とすると、余った時間でr段の全加算器を介した分の演
算ができる。すなわち、r桁分の桁上げ加算が実行でき
る。
【0052】そこで、出力をr桁ごとに区切って、それ
ぞれに小さな桁上げ加算器を付加する。この結果、冗長
度数rの出力が得られる。
ぞれに小さな桁上げ加算器を付加する。この結果、冗長
度数rの出力が得られる。
【0053】
【発明の効果】本発明により自動生成される乗算器及び
積和演算器の回路記述では、演算結果を保持するために
必要なレジスタの数は、従来の乗算器及び積和演算器に
比べr桁あたり(r−1)個分少なくて済むようになっ
た。
積和演算器の回路記述では、演算結果を保持するために
必要なレジスタの数は、従来の乗算器及び積和演算器に
比べr桁あたり(r−1)個分少なくて済むようになっ
た。
【図1】本発明による積和演算器の回路記述の発生方法
の一例のフローチャート図である。
の一例のフローチャート図である。
【図2】本発明による第2の桁上げ加算回路の説明のた
めの図である。
めの図である。
【図3】本発明による積和演算回路と従来の積和演算回
路の比較図である。
路の比較図である。
【図4】本発明による乗算回路と従来の乗算回路の比較
図である。
図である。
【図5】内積演算回路の説明のための図である。
【図6】積和演算回路の説明のための図である。
【図7】積和演算回路の説明のための図である。
【図8】冗長表現を用いた積和演算回路の説明のための
図である。
図である。
【図9】冗長表現を用いた積和演算回路の説明のための
図である。
図である。
【図10】冗長表現を用いた内積演算回路の説明のため
の図である。
の図である。
【図11】冗長表現を用いた積和演算回路の説明のため
の図である。
の図である。
【図12】冗長表現を用いた積和演算回路の説明のため
の図である。
の図である。
【図13】冗長表現を用いた積和演算回路の説明のため
の図である。
の図である。
【図14】キャリーセーブアレイ方式による加算方法の
説明のための図である。
説明のための図である。
[1]発生する積和演算器のパラメータを読み込むステ
ップ [2]第1の加算回路を発生するステップ [3]出力の冗長度数を決定するステップ [4]第2の加算回路を発生するステップ [5]冗長な回路を削除するステップ [6]発生した回路を出力するステップ
ップ [2]第1の加算回路を発生するステップ [3]出力の冗長度数を決定するステップ [4]第2の加算回路を発生するステップ [5]冗長な回路を削除するステップ [6]発生した回路を出力するステップ
Claims (2)
- 【請求項1】 入力されてくる乗数の語長及び被乗数の
語長により、各部分積を加算して、各ビットを冗長表現
形式で出力する第1の加算回路の回路記述を発生し、 入力されてくる最大許容遅延時間から上記第1の加算回
路での遅延時間を引いた時間に応じて、冗長度数rを決
定し、 上記第1の加算回路の出力である各ビットが冗長表現形
式であるデータを入力とし、rビット毎に分割した上記
データを加算し、 rビット毎の冗長表現形式で出力する第2の加算回路の
回路記述を発生することを特徴とする乗算器の回路記述
の発生方法。 - 【請求項2】 入力されてくる乗数の語長、被乗数の語
長及び加数の語長により、乗数と被乗数の積及び加数か
ら成る部分積を加算して、各ビットを冗長表現形式で出
力する第1の加算回路の回路記述を発生し、 入力されてくる最大許容遅延時間から上記第1の加算回
路での遅延時間を引いた時間に応じて、冗長度数rを決
定し、 上記第1の加算回路の出力である各ビットが冗長表現形
式であるデータを入力とし、rビット毎に分割した上記
データを加算し、 rビット毎の冗長表現形式で出力する第2の加算回路の
回路記述を発生することを特徴とする積和演算器の回路
記述の発生方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5009384A JPH06223097A (ja) | 1993-01-22 | 1993-01-22 | 乗算器、積和演算器の回路記述の発生方法 |
US08/184,628 US5473558A (en) | 1993-01-22 | 1994-01-21 | Method for generating hardware description of multiplier and/or multiplier-adder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5009384A JPH06223097A (ja) | 1993-01-22 | 1993-01-22 | 乗算器、積和演算器の回路記述の発生方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06223097A true JPH06223097A (ja) | 1994-08-12 |
Family
ID=11718960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5009384A Pending JPH06223097A (ja) | 1993-01-22 | 1993-01-22 | 乗算器、積和演算器の回路記述の発生方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5473558A (ja) |
JP (1) | JPH06223097A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0642093A2 (en) * | 1993-09-02 | 1995-03-08 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for automatically designing a multiplier circuit |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764558A (en) * | 1995-08-25 | 1998-06-09 | International Business Machines Corporation | Method and system for efficiently multiplying signed and unsigned variable width operands |
EP1308836A1 (en) * | 2001-10-31 | 2003-05-07 | Motorola, Inc. | Adder tree structure with reduced carry ripple adder stage |
US8346831B1 (en) * | 2006-07-25 | 2013-01-01 | Vivante Corporation | Systems and methods for computing mathematical functions |
GB201111243D0 (en) * | 2011-06-30 | 2011-08-17 | Imagination Tech Ltd | Method and apparatus for use in the sysnthesis of lossy integer multipliers |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4736335A (en) * | 1984-11-13 | 1988-04-05 | Zoran Corporation | Multiplier-accumulator circuit using latched sums and carries |
JPS6347874A (ja) * | 1986-08-16 | 1988-02-29 | Nec Corp | 算術演算装置 |
JP3205969B2 (ja) * | 1991-07-10 | 2001-09-04 | ソニー株式会社 | 回路記述合成装置 |
-
1993
- 1993-01-22 JP JP5009384A patent/JPH06223097A/ja active Pending
-
1994
- 1994-01-21 US US08/184,628 patent/US5473558A/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0642093A2 (en) * | 1993-09-02 | 1995-03-08 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for automatically designing a multiplier circuit |
EP0642093A3 (en) * | 1993-09-02 | 1996-03-13 | Matsushita Electric Ind Co Ltd | Method and device for the automatic design of a multiplier circuit. |
EP1475699A2 (en) * | 1993-09-02 | 2004-11-10 | Matsushita Electric Industrial Co., Ltd. | Multiplier |
Also Published As
Publication number | Publication date |
---|---|
US5473558A (en) | 1995-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5815422A (en) | Computer-implemented multiplication with shifting of pattern-product partials | |
Lim | Single-precision multiplier with reduced circuit complexity for signal processing applications | |
US5500812A (en) | Multiplication circuit having rounding function | |
US5506799A (en) | Booth array multiplying circuit having carry correction | |
JPH0235348B2 (ja) | ||
US4740906A (en) | Digital lattice filter with multiplexed fast adder/full adder for performing sequential multiplication and addition operations | |
JPH06223097A (ja) | 乗算器、積和演算器の回路記述の発生方法 | |
JPH05181896A (ja) | 離散コサイン変換処理装置 | |
JP3221076B2 (ja) | ディジタルフィルタ設計法 | |
JP2607735B2 (ja) | 倍数器の部分積加算方法 | |
Sacristán et al. | A reusable Inner Product Unit for DSP applications | |
KR102272518B1 (ko) | 시스톨릭 어레이 장치 | |
JP2734438B2 (ja) | 乗算装置 | |
Yedukondalu et al. | Implementation of 16-Bit Multiplier-Accumulator Using Modified Booth Algorithm | |
JPS60254372A (ja) | 積和演算装置 | |
JPS59194242A (ja) | ディジタル乗算累積加算装置 | |
Naidu | IMPLEMENTATION OF WALLACE TREE MULTIPLIER USING XILINX WITH VERILOG | |
JPS6259828B2 (ja) | ||
JPH06103299A (ja) | 積和演算器 | |
JP2953918B2 (ja) | 演算装置 | |
JP2608090B2 (ja) | 高基数非回復型除算装置 | |
JP3457082B2 (ja) | 演算装置 | |
KR950010451B1 (ko) | 그룹 트리구조 알고리즘(GTSM ; Group Tree Structure Method)을 적용한 고속 승산기 | |
JPH0583930B2 (ja) | ||
KR0153759B1 (ko) | 고속 승산-누산회로 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |