JP2972498B2 - 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器 - Google Patents
論理回路の自動設計方法、そのシステム及びその装置並びに乗算器Info
- Publication number
- JP2972498B2 JP2972498B2 JP5218780A JP21878093A JP2972498B2 JP 2972498 B2 JP2972498 B2 JP 2972498B2 JP 5218780 A JP5218780 A JP 5218780A JP 21878093 A JP21878093 A JP 21878093A JP 2972498 B2 JP2972498 B2 JP 2972498B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- information indicating
- multiplicand
- partial product
- multiplier
- 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
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/52—Multiplying; Dividing
-
- 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/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
-
- 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/4824—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 using signed-digit representation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Complex Calculations (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Image Generation (AREA)
Description
法、特に、乗算器又は乗算器を含む論理回路の自動設計
方法、そのシステム及びその装置並びに乗算器に関する
ものである。
単体のLSIとして用いられるほか、DSP(digital
signal processor)などのLSIへの内蔵用としても多
く用いられている。この種の乗算器においては、乗算ビ
ット幅の増大や用途の多様化などに伴い、一層の高速化
や、回路規模、チップ面積の低減が求められ、種々の乗
算方法を適用した回路方式が提案されている。
る、2ビットブースのリコード方式を用いた乗算方法
が、「日経エレクトロニクス」(1978年5月29日
号76頁〜89頁)に示されている。この乗算方法は、
以下のようなアルゴリズムによって乗算の高速化などを
図っている。
の被乗数Xとを乗算する場合、乗数Yは2の補数表現で
次の(1)式のように表される。
場合にq=m/2で示され、mが奇数の場合にq=(m
−1)/2で示される。また、y0 は便宜上の値でy0
=0である。
れ0又は1の値をとるから、(y2i+y2i+1−2
y2i+2)は、(表1)に示すように、0、±1又は±2
となり、各部分積は、0、±X又は±2Xの何れかに2
2iを乗じたものになる。
して被乗数±Xを2倍するために1ビットシフトするシ
フタと、仮数(0、±X又は±2X)を22i倍(重み付
け)するために2ビットずつシフトするシフタとから構
成することができる。
数は、部分積の数がq=m/2個(mが偶数)又はq=
(m−1)/2個(mが奇数)となるので、2入力加算
器を2分木状に接続する場合、概log2 m−1段(m
が偶数)又はlog2 (m−1)−1段(mが奇数)に
なる。
の高速乗算器として、冗長二進数による乗算器が特許公
開平03−017737号公報に提案されている。
4ビットの場合、部分積数が12個、論理段数が4段と
なる。
は、前記のような乗算アルゴリズムの性能向上によるも
のに限らず、論理素子レベルでの回路の最適化などによ
っても図られている。
む論理回路は、多くの場合自動設計装置を用いて設計さ
れる。この種の装置においては、論理素子レベルの回路
情報をチップに実装される実装素子レベルの回路情報に
展開する際などに、回路の一部をより論理素子や論理段
数の少ない等価な回路に置換するなどして、冗長な回路
部分の削除などを行なうようになっている。
れる機能がハードウェア記述言語などにより表された機
能記述情報が入力されると、これを、主として、機能の
みが定義された仮想の機能素子から成る回路を表す、内
部表現形式の機能回路情報に変換し、さらに、実際に存
在する論理素子から成る回路を示す論理回路情報に変換
した後、特定のテクノロジーで実装される実装素子が割
り付けられた回路を示す実装回路情報を生成するように
なっている。
機能に乗算が含まれる場合には、例えば、あらかじめハ
ードウェアマクロとしてライブラリに登録された所定の
ビット幅(4、8、17、32ビットなど)の汎用的な
乗算器が適用可能であれば、それが割り付けられたり、
ライブラリに登録されていない乗算器が必要な場合に
は、加算シフト型の乗算器などを構成する論理回路が新
たに生成されたりするようになっている。なお、乗数又
は被乗数の何れか一方が定数で、且つ、その値が2のべ
き乗である場合には、通常、シフタを用いる回路が生成
されるようになっている。
ある場合、乗数における値が0のビットに対応する部分
積は全ビットの値が0になるので、そのような部分積を
生成する回路や、加算する回路は常に一定の信号状態に
なる。
乗数及び被乗数が変数である乗算回路と定数を発生させ
る回路とを生成した後、前述のように、論理素子レベル
での回路の最適化によって、例えば常に信号レベルが一
定になる論理素子の削除などを行なうようになってい
た。
自動設計装置においては、論理素子レベルでの回路の最
適化は、例えば、あらかじめ設定された所定のパターン
に合致する回路部分だけが、より論理素子や論理段数の
少ない等価な回路に置換されることにより行なわれるた
め、乗数又は被乗数が定数である場合には、このような
最適化を行なっても、必ずしも回路全体の論理素子数な
どが最少になるような回路を生成することはできないと
いう問題点がある。特に、部分積を加算するために桁上
げ保存加算器を木状に接続する場合、全ビットの値が0
になる部分積の加算回路に関連する部分を省略すると、
通常、木のバランスが崩れるので、部分的な回路の置換
によって論理素子数や論理段数を最少にすることなどが
困難である。さらに、全ビットの値が0になる部分積を
増やすような配慮がされていない。
て、乗数又は被乗数が定数である乗算を行なう乗算器や
このような乗算器を含む論理回路を生成する場合に、論
理素子数や論理段数が少ない回路を生成できる論理回路
の自動設計方法、そのシステム及びその装置、並びに、
乗数又は被乗数が定数である乗算を行ない且つ論理素子
数や論理段数が少なくてLSI化に適した高速な乗算器
を提供することを目的としている。
め、具体的に請求項1の発明が講じた解決手段は、乗数
と被乗数との積を求める論理回路を示す情報を生成する
論理回路の自動設計方法を対象とし、乗数の各ビットに
対応して、(a)乗数が変数であるか又は定数であるか
を判定する処理と、(b)乗数が変数である場合には、
乗数の当該ビットの値に基づいて被乗数を表す信号及び
0を表す信号のうちの一方の信号を選択し且つ選択され
た信号を部分積として出力する回路を示す情報を生成す
る処理と、(c)乗数が定数である場合には、乗数の当
該ビットの値が1であるか否かを判定する処理と、
(d)乗数の当該ビットの値が1である場合には、被乗
数を表す信号を部分積として出力する回路を示す情報を
生成する処理と、(e)(a)〜(d)の処理を実行し
た後に、被乗数を表す信号を1ビットシフトするシフト
回路を示す情報を生成し該シフト回路の出力信号を新た
に(a)〜(d)の処理で用いられる被乗数を表す信号
として設定する処理とを備え、乗数の全てのビットに対
応して、(a)〜(e)の処理を繰り返し実行する構成
とするものである。
乗数との積を求める論理回路を示す情報を生成する論理
回路の自動設計方法を対象とし、乗数の各ビットと被乗
数との積としての複数個の部分積がn個ずつに分割され
て成る部分積群のそれぞれに対応して、(a)当該部分
積群に属するn個の部分積を入力し且つ該n個の部分積
同士の和をm(<n)個の部分積として出力する加算回
路を示す情報を生成する処理と、前記複数個の部分積の
全てに対応して、(b)(a)の処理を繰り返し実行し
た後に、(a)の処理で生成された加算回路の出力であ
る部分積の全てと、前記複数個の部分積のうち(a)の
処理で生成された加算回路の入力信号にならなかった部
分積とを、新たに(a)の処理が施される複数個の部分
積として設定する処理とを備え、(a)及び(b)の処
理を繰り返し実行する構成とするものである。
乗数との積を求める論理回路を示す情報を生成する論理
回路の自動設計方法を対象とし、乗数の各ビットと被乗
数との積としての複数個の部分積が3個ずつに分割され
て成る部分積群のそれぞれに対応して、(a)当該部分
積群に属する3個の部分積を入力し且つ該3個の部分積
同士の和を2個の部分積として出力する桁上げ保存加算
器を示す情報を生成する処理と、前記複数個の部分積の
全てに対応して、(b)(a)の処理を繰り返し実行し
た後に、(a)の処理で生成された桁上げ保存加算器の
出力である部分積の全てと、前記複数個の部分積のうち
(a)の処理で生成された桁上げ保存加算器の入力信号
にならなかった部分積とを、新たに(a)の処理が施さ
れる複数個の部分積として設定する処理とを備え、
(b)の処理で設定される新たな部分積の個数が2個に
なるまで(a)及び(b)の処理を繰り返し実行する構
成とするものである。
乗数との積を求める論理回路を示す情報を生成する論理
回路の自動設計方法を対象とし、(a)乗数の各ビット
と被乗数との積としての部分積の個数がいくつであるか
を判定する処理と、(b)部分積の個数がn個以上の場
合には、複数個の部分積がn個ずつに分割されて成る部
分積群のそれぞれに対応して、(b-1 )当該部分積群に
属するn個の部分積を入力し且つ該n個の部分積同士の
和をm(<n)個の部分積として出力する加算回路を示
す情報を生成し、前記複数個の部分積の全てに対応し
て、(b-2 )(b-1 )の処理を繰り返し実行した後に、
(b-1 )の処理で生成された加算回路の出力である部分
積の全てと、前記複数個の部分積のうち(b-1 )の処理
で生成された加算回路の入力信号にならなかった部分積
とを、新たに(b-1 )の処理が施される複数個の部分積
として設定し、(b-2 )の処理で設定される新たな部分
積の個数がm個になるまで(b-1 )及び(b-2 )の処理
を繰り返し実行する処理と、(c)部分積の個数がm個
以下且つ2個以上である場合には、当該個数の部分積を
入力し且つ該部分積同士を加算することにより乗数と被
乗数との積を求める最終和回路を示す情報を生成する処
理とを備えている構成とするものである。
乗数との積を求める論理回路を示す情報を生成する論理
回路の自動設計方法を対象とし、(a)乗数の各ビット
に対応して、(a-1 )乗数が変数であるか又は定数であ
るかを判定し、(a-2 )乗数が変数である場合には、乗
数の当該ビットの値に基づいて被乗数を表す信号及び0
を表す信号のうちの一方の信号を選択し且つ選択された
信号を部分積として出力する回路を示す情報を生成し、
(a-3 )乗数が定数である場合には、乗数の当該ビット
の値が1であるか否かを判定し、(a-4 )乗数の当該ビ
ットの値が1である場合には、被乗数を表す信号を部分
積として出力する回路を示す情報を生成し、(a-5 )
(a-1 )〜(a-4 )の処理を実行した後に、被乗数を表
す信号を1ビットシフトするシフト回路を示す情報を生
成し該シフト回路の出力信号を新たに(a-1 )〜(a-4
)の処理で用いられる被乗数を表す信号として設定
し、乗数の全てのビットに対応して、(a-1 )〜(a-5
)の処理を繰り返し実行することによって乗数の各ビ
ットと被乗数との積としての部分積を生成する処理と、
(b)該部分積の個数がいくつであるかを判定する処理
と、(c)部分積の個数がn個以上の場合には、複数個
の部分積がn個ずつに分割されて成る部分積群のそれぞ
れに対応して、 (c-1 )当該部分積群に属するn個の
部分積を入力し且つ該n個の部分積同士の和をm(<
n)個の部分積として出力する加算回路を示す情報を生
成し、前記複数個の部分積の全てに対応して、(c-2 )
(c-1 )の処理を繰り返し実行した後に、(c-1 )の処
理で生成された加算回路の出力である部分積の全てと、
前記複数個の部分積のうち(c-1 )の処理で生成された
加算回路の入力信号にならなかった部分積とを、新たに
(c-1 )の処理が施される複数個の部分積として設定
し、(c-2 )の処理で設定される新たな部分積の個数が
m個になるまで(c-1 )及び(c-2 )の処理を繰り返し
実行する処理と、(d)部分積の個数がm個以下且つ2
個以上である場合には、当該個数の部分積を入力し且つ
該部分積同士を加算することにより乗数と被乗数との積
を求める最終和回路を示す情報を生成する処理とを備え
ている構成とするものである。
乗数との積を求める論理回路を示す情報を生成する論理
回路の自動設計方法を対象とし、(a)2つの定数A
1、A2を、定数A1と定数A2との差A1−A2が定
数の乗数Aに等しくなるように決定する処理と、(b)
定数A1と被乗数Xとを入力しそれらの部分積を出力す
る第1の部分積生成回路を示す情報を生成する処理と、
(c)定数A2と被乗数Xとを入力しそれらの部分積を
出力する第2の部分積生成回路を示す情報を生成する処
理と、(d)前記第2の部分積生成回路の出力信号を入
力しその論理否定信号を出力する論理否定回路を示す情
報を生成する処理と、(e)前記第1の部分積生成回路
の出力信号と前記論理否定回路の出力信号と補正信号と
を入力しそれらの和を求めて乗数Aと被乗数Xとの積と
して出力する回路を示す情報を生成する処理とを備えて
いる構成とするものである。
乗数との積を求める論理回路を示す情報を生成する論理
回路の自動設計方法を対象とし、(a)2つの定数A
1、A2を、定数A1と定数A2との差A1−A2が定
数の乗数Aに等しくなり且つ定数A1における値が1で
あるビットの個数と定数A2における値が1であるビッ
トの個数との和が最小になるように決定する処理と、
(b)定数A1と被乗数Xとを入力しそれらの部分積を
出力する第1の部分積生成回路を示す情報を生成する処
理と、(c)定数A2と被乗数Xとを入力しそれらの部
分積を出力する第2の部分積生成回路を示す情報を生成
する処理と、(d)前記第2の部分積生成回路の出力信
号を入力しその論理否定信号を出力する論理否定回路を
示す情報を生成する処理と、(e)前記第1の部分積生
成回路の出力信号と前記論理否定回路の出力信号と補正
信号とを入力しそれらの和を求めて乗数Aと被乗数Xと
の積として出力する部分積和回路を示す情報を生成する
処理とを備えている構成とするものである。
の発明の構成に、(e)の処理は、(e-1 )前記第1の
部分積生成回路の出力信号と前記論理否定回路の出力信
号とを入力しそれらの加算結果を所定の個数の部分積と
して出力する部分積加算回路を示す情報を生成する処理
と、(e-2 )前記部分積加算回路の出力信号と補正信号
とを入力しそれらの和を求めて乗数Aと被乗数Xとの積
として出力する最終和回路を示す情報を生成する処理と
を有している構成を付加するものである。
の発明の構成に、(e)の処理は、(e-1 )複数個の部
分積がn個ずつに分割されて成る部分積群のそれぞれに
対応して、(e-1-1 )当該部分積群に属するn個の部分
積を入力し且つ該n個の部分積同士の和をm(<n)個
の部分積として出力する加算回路を示す情報を生成し、
前記複数個の部分積の全てに対応して、(e-1-2 )(e-
1-1 )の処理を繰り返し実行した後に、(e-1-1 )の処
理で生成された加算回路の出力である部分積の全てと、
前記複数個の部分積のうち(e-1-1 )の処理で生成され
た加算回路の入力信号にならなかった部分積とを、新た
に(e-1-1 )の処理が施される複数個の部分積として設
定し、(e-1-1 )及び(e-1-2 )の処理を繰り返し実行
することによって、m個の部分積を出力する部分積加算
回路を示す情報を生成する処理と、(e-2 )前記部分積
加算回路の出力信号と補正信号とを入力しそれらの和を
求めて乗数Aと被乗数Xとの積として出力する最終和回
路を示す情報を生成する処理とを有している構成を付加
するものである。
6の発明の構成に、(e)の処理は、(e-1 )定数A1
における値が1であるビットの個数と定数A2における
値が1であるビットの個数との和が、所定の個数と等し
いか、該所定の個数よりも大きいか否かを判定する処理
と、(e-2 )定数A1における値が1であるビットの個
数と定数A2における値が1であるビットの個数との和
が前記所定の個数と等しい場合には、前記第1の部分積
生成回路の出力信号と前記論理否定回路の出力信号と補
正信号とを入力しそれらの和を求めて乗数Aと被乗数X
との積として出力する最終和回路を示す情報を生成する
処理と、(e-3 )定数A1における値が1であるビット
の個数と定数A2における値が1であるビットの個数と
の和が前記所定の個数よりも大きい場合には、(e-3-1
)前記第1の部分積生成回路の出力信号と前記論理否
定回路の出力信号とを入力しそれらの加算結果を前記所
定の個数の部分積として出力する部分積加算回路を示す
情報を生成し、(e-3-2 )前記部分積加算回路の出力信
号と補正信号とを入力しそれらの和を求めて乗数Aと被
乗数Xとの積として出力する最終和回路を示す情報を生
成する処理とを有している構成を付加するものである。
6の発明に構成に、(e)の処理は、(e-1 )定数A1
における値が1であるビットの個数と定数A2における
値が1であるビットの個数との和が、1であるか、2で
あるか又は2よりも大きいかを判定する処理と、(e-2
)定数A1における値が1であるビットの個数と定数
A2における値が1であるビットの個数との和が1であ
る場合には、前記第1の部分積生成回路の出力信号を乗
数Aと被乗数Xとの積として出力する回路を示す情報を
生成する処理と(e-3 )定数A1における値が1である
ビットの個数と定数A2における値が1であるビットの
個数との和が2である場合には、前記第1の部分積生成
回路の出力信号と前記論理否定回路の出力信号と補正信
号とを入力しそれらの和を求めて乗数Aと被乗数Xとの
積として出力する最終和回路を示す情報を生成する処理
と、(e-4 )定数A1における値が1であるビットの個
数と定数A2における値が1であるビットの個数との和
が2よりも大きい場合には、(e-4-1 )木状に構成され
た桁上げ保存加算器から成り且つ前記第1の部分積生成
回路の出力信号と前記論理否定回路の出力信号とを入力
しそれらの加算結果を2個の部分積として出力する部分
積加算回路を示す情報を生成し、(e-4-2 )前記部分積
加算回路の出力信号と補正信号とを入力しそれらの和を
求めて乗数Aと被乗数Xとの積として出力する最終和回
路を示す情報を生成する処理とを有している構成を付加
するものである。
被乗数との積を求める論理回路を示す情報を生成する論
理回路の自動設計方法を対象とし、(a)2つの定数A
1、A2を、定数A1と定数A2との差A1−A2が定
数の乗数Aに等しくなるように決定する処理と、(b)
定数A1の各ビットに対応して、(b-1 )定数A1の当
該ビットの値が1であるか否かを判定し、(b-2 )定数
A1の当該ビットの値が1である場合には、被乗数Xを
表す信号を部分積として出力する回路を示す情報を生成
し、(b-3 )(b-1 )及び(b-2 )の処理を実行した後
に、被乗数Xを表す信号を1ビットシフトする第1のシ
フト回路を示す情報を生成し該第1のシフト回路の出力
信号を新たに(b-1 )及び(b-2 )の処理で用いられる
被乗数Xを表す信号として設定し、定数A1の全てのビ
ットに対応して、(b-1 )〜(b-3 )の処理を繰り返し
実行することによって第1の部分積生成回路を生成する
処理と、(c)定数A2の各ビットに対応して、(c-1
)定数A2の当該ビットの値が1であるか否かを判定
し、(c-2 )定数A2の当該ビットの値が1である場合
には、被乗数Xを表す信号を部分積として出力する回路
を示す情報を生成し、(c-3 )(c-1 )及び(c-2 )の
処理を実行した後に、被乗数Xを表す信号を1ビットシ
フトする第2のシフト回路を示す情報を生成し該第2の
シフト回路の出力信号を新たに(c-1 )及び(c-2 )の
処理で用いられる被乗数Xを表す信号として設定し、定
数A2の全てのビットに対応して、(c-1 )〜(c-3 )
の処理を繰り返し実行することによって第2の部分積生
成回路を生成する処理と、(d)前記第2の部分積生成
回路の出力信号を入力しその論理否定信号を出力する論
理否定回路を示す情報を生成する処理と、(e)前記第
1の部分積生成回路の出力信号と前記論理否定回路の出
力信号と補正信号とを入力しそれらの和を求めて乗数A
と被乗数Xとの積として出力する回路を示す情報を生成
する処理とを備えている構成とするものである。
被乗数との積を求める論理回路を示す情報を生成する論
理回路の自動設計方法を対象とし、(a)定数の乗数A
から乗数Aの論理否定信号を作成する処理と、(b)前
記乗数Aの論理否定信号の各ビットに対応して、(b-1
)前記乗数Aの論理否定信号の当該ビットの値が1で
あるか否かを判定し、(b-2 )前記乗数Aの論理否定信
号の当該ビットの値が1である場合には、被乗数Xを表
す信号を部分積として出力する回路を示す情報を生成
し、(b-3 )(b-1 )及び(b-2 )の処理を実行した後
に、被乗数Xを表す信号を1ビットシフトするシフト回
路を示す情報を生成し該シフト回路の出力信号を新たに
(b-1 )及び(b-2 )の処理で用いられる被乗数Xを表
す信号として設定し、前記乗数Aの論理否定信号の全て
のビットに対応して、(b-1 )〜(b-3 )の処理を繰り
返し実行することによって部分積生成回路を示す情報を
生成する処理と、(c)前記部分積生成回路の出力信号
の全てと被乗数Xを表す信号とを入力しそれらの加算結
果を所定の個数の部分積として出力する部分積加算回路
を示す情報を生成する処理と、(d)前記部分積加算回
路の出力信号を入力しその論理否定信号を出力する論理
否定回路を示す情報を生成する処理と、(e)被乗数X
から補正信号を作成する処理と、(f)前記補正信号と
前記論理否定回路の出力信号とを入力しそれらの和を求
めて乗数Aと被乗数Xとの積として出力する最終和回路
を示す情報を生成する処理とを備えている構成とするも
のである。
被乗数との積を求める論理回路を示す情報を生成する論
理回路の自動設計方法を対象とし、(a)定数の乗数A
から乗数Aの論理否定信号を作成する処理と、(b)前
記乗数Aの論理否定信号の各ビットに対応して、(b-1
)前記乗数の論理否定信号の当該ビットの値が1であ
るか否かを判定し、(b-2 )前記乗数の論理否定信号の
当該ビットの値が1である場合には、被乗数Xを表す信
号を部分積として出力する回路を示す情報を生成し、
(b-3 )(b-1 )及び(b-2 )の処理を実行した後に、
被乗数Xを表す信号を1ビットシフトするシフト回路を
示す情報を生成し該シフト回路の出力信号を新たに(b-
1 )及び(b-2)の処理で用いられる被乗数Xを表す信号
として設定し、前記乗数Aの論理否定信号の全てのビッ
トに対応して、(b-1 )〜(b-3 )の処理を繰り返し実
行することによって部分積生成回路を示す情報を生成す
る処理と、(c)前記部分積生成回路の出力信号の全て
と被乗数Xを表す信号とから構成される複数の入力信号
がn個ずつに分割されて成る入力信号群のそれぞれに対
応して、(c-1 )当該入力信号群に属するn個の入力信
号を入力し且つ該n個の入力信号同士の和をm(<n)
個の信号として出力する加算回路を示す情報を生成し、
前記複数の入力信号の全てに対応して、(c-2 )(c-1
)の処理を繰り返し実行した後に、(c-1 )の処理で
生成された加算回路の出力信号の全てと、前記複数の入
力信号のうち(c-1 )の処理で生成された加算回路の入
力信号にならなかった入力信号とを、新たに(c-1 )の
処理が施される複数個の入力信号として設定し、(c-1
)及び(c-2 )の処理を繰り返し実行することによっ
て部分積加算回路を示す情報を生成する処理と、(d)
前記部分積加算回路の出力信号を入力しその論理否定信
号を出力する論理否定回路を示す情報を生成する処理
と、(e)被乗数Xから補正信号を作成する処理と、
(f)前記補正信号と前記論理否定回路の出力信号とを
入力しそれらの和を求めて乗数Aと被乗数Xとの積とし
て出力する最終和回路を示す情報を生成する処理とを備
えている構成とするものである。
被乗数との積を求める論理回路を示す情報を生成する論
理回路の自動設計方法を対象とし、(a)2つの定数A
1、A2を、定数A1と定数A2との差A1−A2が定
数の乗数Aに等しくなるように決定する処理と、(b)
定数A2が0であるか否かを判定する処理と、(c)定
数A2が0である場合には、(c-1 )乗数A1と被乗数
Xとを入力しそれらの部分積を出力する第1の部分積生
成回路を示す情報を生成し、(c-2 )前記第1の部分積
生成回路の出力信号の全てを入力しそれらの和を求めて
乗数Aと被乗数Xとの積として出力する第1の部分積和
回路を示す情報を生成する処理と、(d)定数A2が0
でない場合には、(d-1 )定数A1と被乗数Xとを入力
しそれらの部分積を出力する第2の部分積生成回路を示
す情報を生成し、(d-2 )定数A2と被乗数Xとを入力
しそれらの部分積を出力する第3の部分積生成回路を示
す情報を生成し、(d-3 )前記第3の部分積生成回路の
出力信号を入力しその論理否定信号を出力する論理否定
回路を示す情報を生成し、(d-4 )前記第2の部分積生
成回路の出力信号と前記論理否定回路の出力信号と補正
信号とを入力しそれらの和を求めて乗数Aと被乗数Xと
の積として出力する第2の部分積和回路を示す情報を生
成する処理とを備えている構成とするものである。
被乗数との積を求める論理回路を示す情報を生成する論
理回路の自動設計方法を対象とし、(a)3つの定数A
1、A2、A3を、定数A1と定数A2、A3の和との
差A1−(A2+A3)が定数の乗数Aに等しくなるよ
うに決定する処理と、(b)定数A1が乗数Aに等しい
か、定数A2、A3が共に0であるか否かを判定する処
理と、(c)定数A1が乗数Aに等しい場合には、(c-
1 )定数A1と被乗数Xとを入力しそれらの部分積を出
力する第1の部分積生成回路を示す情報を生成し、(c-
2 )前記第1の部分積生成回路の出力信号の全てを入力
しそれらの和を求めて乗数Aと被乗数Xとの積として出
力する第1の部分積和回路を示す情報を生成する処理
と、(d)定数A1が乗数Aに等しくなく且つ定数A2
及びA3のうち少なくとも一方が0でない場合には、
(d-1 )定数A1と被乗数Xとを入力しそれらの部分積
を出力する第2の部分積生成回路を示す情報を生成し、
(d-2 )定数A2、A3と被乗数Xとを入力しそれらの
部分積を出力する第3の部分積生成回路を示す情報を生
成し、(d-3 )前記第3の部分積生成回路の出力信号を
入力しその論理否定信号を出力する第1の論理否定回路
を示す情報を生成し、(d-4 )前記第2の部分積生成回
路の出力信号と前記第1の論理否定回路の出力信号と第
1の補正信号とを入力しそれらの和を求めて乗数Aと被
乗数Xとの積として出力する第2の部分積和回路を示す
情報を生成する処理とを備えている構成とするものであ
る。
被乗数との積を求める論理回路を示す情報を生成する論
理回路の自動設計方法を対象とし、(a)3つの定数A
1、A2、A3を、定数A1と定数A2、A3の和との
差A1−(A2+A3)が定数の乗数Aに等しくなり、
且つ、定数A1における値が1であるビットの個数と定
数A2における値が1であるビットの個数と定数A3に
おける値が1であるビットの個数との総和が最小になる
ように決定する処理と、(b)定数A1が乗数Aに等し
いか、定数A2、A3が共に0であるか否かを判定する
処理と、(c)定数A1が乗数Aに等しい場合には、
(c-1 )定数A1と被乗数Xとを入力しそれらの部分積
を出力する第1の部分積生成回路を示す情報を生成し、
(c-2 )前記第1の部分積生成回路の出力信号の全てを
入力しそれらの和を求めて乗数Aと被乗数Xとの積とし
て出力する第1の部分積和回路を示す情報を生成する処
理と、(d)定数A1が乗数Aに等しくなく且つ定数A
2及びA3のうち少なくとも一方が0でない場合には、
(d-1 )定数A1と被乗数Xとを入力しそれらの部分積
を出力する第2の部分積生成回路を示す情報を生成し、
(d-2 )定数A2、A3と被乗数Xとを入力しそれらの
部分積を出力する第3の部分積生成回路を示す情報を生
成し、(d-3 )前記第3の部分積生成回路の出力信号を
入力しその論理否定信号を出力する第1の論理否定回路
を示す情報を生成し、(d-4 )前記第2の部分積生成回
路の出力信号と前記第1の論理否定回路の出力信号と第
1の補正信号とを入力しそれらの和を求めて乗数Aと被
乗数Xとの積として出力する第2の部分積和回路を示す
情報を生成する処理とを備えている構成とするものであ
る。
16又は請求項17の構成に、(e)定数A2が乗数A
の論理否定に等しく且つ定数A3が1であるかを判定す
る処理と、(f)定数A2が乗数Aの論理否定に等しく
且つ定数A3が1である場合に、(f-1 )定数A2と被
乗数Xとを入力しそれらの部分積を出力する第4の部分
積生成回路を示す情報を生成し、(f-2 )前記第4の部
分積生成回路の出力信号の全てと被乗数Xを表す信号と
を入力しそれらの加算結果を部分積として出力する部分
積加算回路を示す情報を生成し、(f-3 )前記部分積加
算回路の出力信号を入力しその論理否定信号を出力する
第2の論理否定回路を示す情報を生成し、(f-4 )被乗
数Xから第2の補正信号を作成し、(f-5 )前記第2の
補正信号と前記第2の論理否定回路の出力信号とを入力
しそれらの和を求めて乗数Aと被乗数Xとの積として出
力する最終和回路を示す情報を生成する処理とをさらに
備えている構成を付加するものである。
16又は請求項17の構成に、(c-1 )の処理は、定数
A1の各ビットに対応して、(c-1-1 )定数A1の当該
ビットの値が1であるか否かを判定し、(c-1-2 )定数
A1の当該ビットの値が1である場合には、被乗数Xを
表す信号を部分積として出力する回路を示す情報を生成
し、(c-1-3 )(c-1-1 )及び(c-1-2 )の処理を実行
した後に、被乗数Xを表す信号を1ビットシフトする第
1のシフト回路を示す情報を生成し該第1のシフト回路
の出力信号を新たに(c-1-1 )及び(c-1-2 )の処理で
用いられる被乗数Xを表す信号として設定し、定数A1
の全てのビットに対応して、(c-1-4 )(c-1-1 )〜
(c-1-3 )の処理を繰り返し実行することによって第1
の部分積生成回路を生成する処理を有し、(d-1 )の処
理は、定数A1の各ビットに対応して、(d-1-1 )定数
A1の当該ビットの値が1であるか否かを判定し、(d-
1-2)定数A1の当該ビットの値が1である場合には、
被乗数Xを表す信号を部分積として出力する回路を示す
情報を生成し、(d-1-3 )(d-1-1 )及び(d-1-2 )の
処理を実行した後に、被乗数Xを表す信号を1ビットシ
フトする第2のシフト回路を示す情報を生成し該第2の
シフト回路の出力信号を新たに(d-1-1 )及び(d-1-2
)の処理で用いられる被乗数Xを表す信号として設定
し、定数A1の全てのビットに対応して、(d-1-1 )〜
(d-1-3 )の処理を繰り返し実行することによって第2
の部分積生成回路を生成する処理を有し、(d-2 )の処
理は、定数A2、A3の各ビットに対応して、(d-2-1
)定数A2、A3の当該ビットの値が1であるか否か
を判定し、(d-2-2 )定数A2、A3の当該ビットの値
が1である場合には、被乗数Xを表す信号を部分積とし
て出力する回路を示す情報を生成し、(d-2-3 )(d-2-
1 )及び(d-2-2 )の処理を実行した後に、被乗数Xを
表す信号を1ビットシフトする第3のシフト回路を示す
情報を生成し該第3のシフト回路の出力信号を新たに
(d-2-1 )及び(d-2-2 )の処理で用いられる被乗数X
を表す信号として設定し、定数A2、A3の全てのビッ
トに対応して、(d-2-1 )〜(d-2-3 )の処理を繰り返
し実行することによって第3の部分積生成回路を生成す
る処理を有している構成を付加するものである。
18の構成に、(c-1 )の処理は、定数A1の各ビット
に対応して、(c-1-1 )定数A1の当該ビットの値が1
であるか否かを判定し、(c-1-2 )定数A1の当該ビッ
トの値が1である場合には、被乗数Xを表す信号を部分
積として出力する回路を示す情報を生成し、(c-1-3)
(c-1-1 )及び(c-1-2 )の処理を実行した後に、被乗
数Xを表す信号を1ビットシフトする第1のシフト回路
を示す情報を生成し該第1のシフト回路の出力信号を新
たに(c-1-1 )及び(c-1-2 )の処理で用いられる被乗
数Xを表す信号として設定し、定数A1の全てのビット
に対応して、(c-1-1 )〜(c-1-3 )の処理を繰り返し
実行することによって第1の部分積生成回路を生成する
処理を有し、(d-1 )の処理は、定数A1の各ビットに
対応して、(d-1-1 )定数A1の当該ビットの値が1で
あるか否かを判定し、(d-1-2 )定数A1の当該ビット
の値が1である場合には、被乗数Xを表す信号を部分積
として出力する回路を示す情報を生成し、(d-1-3 )
(d-1-1 )及び(d-1-2 )の処理を実行した後に、被乗
数Xを表す信号を1ビットシフトする第2のシフト回路
を示す情報を生成し該第2のシフト回路の出力信号を新
たに(d-1-1 )及び(d-1-2 )の処理で用いられる被乗
数Xを表す信号として設定し、定数A1の全てのビット
に対応して、(d-1-1 )〜(d-1-3 )の処理を繰り返し
実行することによって第2の部分積生成回路を生成する
処理を有し、(d-2 )の処理は、定数A2、A3の各ビ
ットに対応して、(d-2-1 )定数A2、A3の当該ビッ
トの値が1であるか否かを判定し、(d-2-2 )定数A
2、A3の当該ビットの値が1である場合には、被乗数
Xを表す信号を部分積として出力する回路を示す情報を
生成し、(d-2-3 )(d-2-1)及び(d-2-2 )の処理を
実行した後に、被乗数Xを表す信号を1ビットシフトす
る第3のシフト回路を示す情報を生成し該第3のシフト
回路の出力信号を新たに(d-2-1 )及び(d-2-2 )の処
理で用いられる被乗数Xを表す信号として設定し、定数
A2、A3の全てのビットに対応して、(d-2-1 )〜
(d-2-3 )の処理を繰り返し実行することによって第3
の部分積生成回路を生成する処理を有し、(f-1 )の処
理は、定数A2の各ビットに対応して、(f-1-1 )定数
A2の当該ビットの値が1であるか否かを判定し、(f-
1-2 )定数A2の当該ビットの値が1である場合には、
被乗数Xを表す信号を部分積として出力する回路を示す
情報を生成し、(f-1-3 )(f-1-1 )及び(f-1-2 )の
処理を実行した後に、被乗数Xを表す信号を1ビットシ
フトする第4のシフト回路を示す情報を生成し該第4の
シフト回路の出力信号を新たに(f-1-1 )及び(f-1-2
)の処理で用いられる被乗数Xを表す信号として設定
し、定数A2の全てのビットに対応して、(f-1-1 )〜
(f-1-3 )の処理を繰り返し実行することによって第4
の部分積生成回路を生成する処理を有している構成を付
加するものである。
16又は請求項17の発明の構成に、(c-2 )の処理
は、前記第1の部分積生成回路の出力信号から構成され
る第1の複数個の部分積がn個ずつに分割されて成る部
分積群のそれぞれに対応して、(e-1-1 )当該部分積群
に属するn個の部分積を入力し且つ該n個の部分積同士
の和をm(<n)個の部分積として出力する加算回路を
示す情報を生成し、前記第1の複数個の部分積の全てに
対応して、(e-1-2 )(e-1-1 )の処理を繰り返し実行
した後に、(e-1-1 )の処理で生成された加算回路の出
力である部分積の全てと、前記第1の複数個の部分積の
うち(e-1-1 )の処理で生成された加算回路の入力信号
にならなかった部分積とを、新たに(e-1-1 )の処理が
施される第1の複数個の部分積として設定し、(e-1-1
)及び(e-1-2 )の処理を繰り返し実行することによ
って第1の部分積和回路を示す情報を生成する処理を有
し、(d-4 )の処理は、前記第2の部分積生成回路の出
力信号と前記第1の論理否定回路の出力信号と第1の補
正信号とから構成される第2の複数個の部分積がn個ず
つに分割されて成る部分積群のそれぞれに対応して、
(d-4-1 )当該部分積群に属するn個の部分積を入力し
且つ該n個の部分積同士の和をm(<n)個の部分積と
して出力する加算回路を示す情報を生成し、前記第2の
複数個の部分積の全てに対応して、(d-4-2 )(d-4-1
)の処理を繰り返し実行した後に、(d-4-1)の処理で
生成された加算回路の出力である部分積の全てと、前記
第2の複数個の部分積のうち(d-4-1 )の処理で生成さ
れた加算回路の入力信号にならなかった部分積とを、新
たに(d-4-1 )の処理が施される第2の複数個の部分積
として設定し、(d-4-1 )及び(d-4-2 )の処理を繰り
返し実行することによって第2の部分積和回路を示す情
報を生成する処理を有している構成を付加するものであ
る。
18の発明の構成に、(c-2 )の処理は、前記第1の部
分積生成回路の出力信号から構成される第1の複数個の
部分積がn個ずつに分割されて成る部分積群のそれぞれ
に対応して、(e-1-1 )当該部分積群に属するn個の部
分積を入力し且つ該n個の部分積同士の和をm(<n)
個の部分積として出力する加算回路を示す情報を生成
し、前記第1の複数個の部分積の全てに対応して、(e-
1-2 )(e-1-1 )の処理を繰り返し実行した後に、(e-
1-1 )の処理で生成された加算回路の出力である部分積
の全てと、前記第1の複数個の部分積のうち(e-1-1 )
の処理で生成された加算回路の入力信号にならなかった
部分積とを、新たに(e-1-1 )の処理が施される第1の
複数個の部分積として設定し、(e-1-1 )及び(e-1-2
)の処理を繰り返し実行することによって第1の部分
積和回路を示す情報を生成する処理を有し、(d-4 )の
処理は、前記第2の部分積生成回路の出力信号と前記第
1の論理否定回路の出力信号と第1の補正信号とから構
成される第2の複数個の部分積がn個ずつに分割されて
成る部分積群のそれぞれに対応して、(d-4-1 )当該部
分積群に属するn個の部分積を入力し且つ該n個の部分
積同士の和をm(<n)個の部分積として出力する加算
回路を示す情報を生成し、前記第2の複数個の部分積の
全てに対応して、(d-4-2 )(d-4-1 )の処理を繰り返
し実行した後に、(d-4-1 )の処理で生成された加算回
路の出力である部分積の全てと、前記第2の複数個の部
分積のうち(d-4-1 )の処理で生成された加算回路の入
力信号にならなかった部分積とを、新たに(d-4-1 )の
処理が施される第2の複数個の部分積として設定し、
(d-4-1 )及び(d-4-2 )の処理を繰り返し実行するこ
とによって第2の部分積和回路を示す情報を生成する処
理を有し、(f-2 )の処理は、前記第4の部分積生成回
路の出力信号と被乗数Xを表す信号とから構成される第
3の複数個の部分積がn個ずつに分割されて成る部分積
群のそれぞれに対応して、(f-2-1 )当該部分積群に属
するn個の部分積を入力し且つ該n個の部分積同士の和
をm(<n)個の部分積として出力する加算回路を示す
情報を生成し、前記第3の複数個の部分積の全てに対応
して、(f-2-2 )(f-2-1 )の処理を繰り返し実行した
後に、(f-2-1 )の処理で生成された加算回路の出力で
ある部分積の全てと、前記第3の複数個の部分積のうち
(f-2-1 )の処理で生成された加算回路の入力信号にな
らなかった部分積とを、新たに(f-2-1 )の処理が施さ
れる第3の複数個の部分積として設定し、(f-2-1 )及
び(f-2-2 )の処理を繰り返し実行することによっての
部分積加算回路を示す情報を生成する処理を有している
構成を付加するものである。
被乗数との積を求める論理回路を示す情報を生成する論
理回路の自動設計方法を対象とし、(a)2つの定数A
1、A2を、定数A1と定数A2との差A1−A2が定
数の乗数Aに等しくなるように決定する処理と、(b)
乗数Aにおける値が1であるビットの個数と、定数A1
における値が1であるビットの個数と定数A2における
値が1であるビットの個数との和とのうち何れが最小で
あるかを判定する処理と、(c)乗数Aにおける値が1
であるビットの個数が最小である場合には、(c-1 )乗
数Aと被乗数Xとを入力し且つ乗数Aの各ビットと被乗
数Xとの積を部分積として出力する第1の部分積生成回
路を示す情報を生成し、(c-2 )前記第1の部分積生成
回路の出力信号の全てを入力しそれらの和を求めて乗数
Aと被乗数Xとの積として出力する第1の部分積和回路
を示す情報を生成する処理と、(d)定数A1における
値が1であるビットの個数とA2における値が1である
ビットの個数との和が最小である場合には、(d-1 )定
数A1と被乗数Xとを入力しそれらの部分積を出力する
第2の部分積生成回路を示す情報を生成し、(d-2 )定
数A2と被乗数Xとを入力しそれらの部分積を出力する
第3の部分積生成回路を示す情報を生成し、(d-3 )前
記第3の部分積生成回路の出力信号を入力しその論理否
定信号を出力する論理否定回路を示す情報を生成し、
(d-4 )前記第2の部分積生成回路の出力信号と前記論
理否定回路の出力信号と補正信号とを入力しそれらの和
を求めて乗数Aと被乗数Xとの積として出力する第2の
部分積和回路を示す情報を生成する処理とを備えている
構成とするものである。
報を入力する入力手段と、処理中の各種情報を記憶する
記憶手段と、前記入力手段から入力された乗数と被乗数
との積を求める論理回路を示す情報を作成する演算処理
手段と、該演算処理手段により作成された論理回路を示
す情報を出力する出力手段とを備えた論理回路の自動設
計システムを対象とし、前記演算処理手段は、(a)2
つの定数A1、A2を、定数A1と定数A2との差A1
−A2が定数の乗数Aに等しくなるように決定する処理
と、(b)乗数Aにおける値が1であるビットの個数
と、定数A1における値が1であるビットの個数と定数
A2における値が1であるビットの個数との和とのうち
何れが最小であるかを判定する処理と、(c)乗数Aに
おける値が1であるビットの個数が最小である場合に
は、(c-1 )乗数Aと被乗数Xとを入力し且つ乗数Aの
各ビットと被乗数Xとの積を部分積として出力する第1
の部分積生成回路を示す情報を生成し、(c-2 )前記第
1の部分積生成回路の出力信号の全てを入力しそれらの
和を求めて乗数Aと被乗数Xとの積として出力する第1
の部分積和回路を示す情報を生成する処理と、(d)定
数A1における値が1であるビットの個数とA2におけ
る値が1であるビットの個数との和が最小である場合に
は、(d-1 )定数A1と被乗数Xとを入力しそれらの部
分積を出力する第2の部分積生成回路を示す情報を生成
し、(d-2 )定数A2と被乗数Xとを入力しそれらの部
分積を出力する第3の部分積生成回路を示す情報を生成
し、(d-3)前記第3の部分積生成回路の出力信号を入
力しその論理否定信号を出力する論理否定回路を示す情
報を生成し、(d-4 )前記第2の部分積生成回路の出力
信号と前記論理否定回路の出力信号と補正信号とを入力
しそれらの和を求めて乗数Aと被乗数Xとの積として出
力する第2の部分積和回路を示す情報を生成する処理と
を実行する構成とするものである。
報を入力する入力手段と、処理中の各種情報を記憶する
記憶手段と、前記入力手段から入力された乗数と被乗数
との積を求める論理回路を示す情報を作成する演算処理
手段と、該演算処理手段により作成された論理回路を示
す情報を出力する出力手段とを備えた論理回路の自動設
計システムを対象とし、前記演算処理手段は、(a)2
つの定数A1、A2を、定数A1と定数A2との差A1
−A2が定数の乗数Aに等しくなるように決定する処理
と、(b)乗数Aにおける値が1であるビットの個数
と、定数A1における値が1であるビットの個数と定数
A2における値が1であるビットの個数との和と、乗数
Aにおける値が0であるビットの個数と2との和とのう
ち何れが最小であるかを判定する処理と、(c)乗数A
における値が1であるビットの個数が最小である場合に
は、(c-1 )乗数Aと被乗数Xとを入力し且つ乗数Aの
各ビットと被乗数Xとの積を部分積として出力する第1
の部分積生成回路を示す情報を生成し、(c-2 )前記第
1の部分積生成回路の出力信号の全てを入力しそれらの
和を求めて乗数Aと被乗数Xとの積として出力する第1
の部分積和回路を示す情報を生成する処理と、(d)定
数A1における値が1であるビットの個数とA2におけ
る値が1であるビットの個数との和が最小である場合に
は、(d-1 )定数A1と被乗数Xとを入力しそれらの部
分積を出力する第2の部分積生成回路を示す情報を生成
し、(d-2 )定数A2と被乗数Xとを入力しそれらの部
分積を出力する第3の部分積生成回路を示す情報を生成
し、(d-3 )前記第3の部分積生成回路の出力信号を入
力しその論理否定信号を出力する第1の論理否定回路を
示す情報を生成し、(d-4 )前記第2の部分積生成回路
の出力信号と前記第1の論理否定回路の出力信号と第1
の補正信号とを入力しそれらの和を求めて乗数Aと被乗
数Xとの積として出力する第2の部分積和回路を示す情
報を生成する処理と、(e)乗数Aにおける値が0であ
るビットの個数と2との和が最小である場合には、(e-
1 )乗数Aから乗数Aの論理否定信号を作成し、(e-2
)前記乗数Aの論理否定信号と被乗数Xとを入力し前
記乗数Aの論理否定信号の各ビットと被乗数Xとの積を
部分積として出力する第4の部分積生成回路を示す情報
を生成し、(e-3 )前記第4の部分積生成回路の出力信
号の全てと被乗数Xを表す信号とを入力しそれらの加算
結果を部分積として出力する部分積加算回路を示す情報
を生成し、(e-4 )前記部分積加算回路の出力信号を入
力しその論理否定信号を出力する第2の論理否定回路を
示す情報を生成し、(e-5 )被乗数Xから第2の補正信
号を作成し、(e-6 )前記第2の補正信号と前記第2の
論理否定回路の出力信号とを入力しそれら和を求めて乗
数Aと被乗数Xとの積として出力する最終和回路を示す
情報を生成する処理とを実行する構成とするものであ
る。
24の発明の構成に、前記演算処理手段が実行する(c-
2 )の処理で生成される第1の部分積和回路は、入力さ
れた信号を加算しその加算結果を部分積として出力する
第1の部分積加算回路と、少なくとも前記第1の部分積
加算回路の出力信号を入力しそれらの和を求めて乗数A
と被乗数Xとの積として出力する第1の最終和回路とを
有し、前記演算処理手段が実行する(d-4 )の処理で生
成される第2の部分積和回路は、入力された信号を加算
しその加算結果を部分積として出力する第2の部分積加
算回路と、少なくとも前記第2の部分積加算回路の出力
信号を入力しそれらの和を求めて乗数Aと被乗数Xとの
積として出力する第2の最終和回路とを有している構成
を付加するものである。
被乗数との積を求める乗算機能を有する論理回路の自動
設計装置を対象とし、乗数Aを示す情報、被乗数Xを示
す情報及び積Pを示す情報などの各種情報を外部から入
力する入力手段と、乗数Aを示す情報を入力し、数A1
を示す情報と定数A2を示す情報とを数A1と定数A2
との差A1−A2が乗数Aに等しくなるように決定する
乗数分割手段と、数A1を示す情報と被乗数Xを示す情
報とを入力し、数A1と被乗数Xとを入力し且つ数A1
における値が0でない各ビットと被乗数Xとの積を部分
積として出力する第1の部分積生成回路を示す情報を生
成する第1の部分積生成回路生成手段と、定数A2を示
す情報と被乗数Xを示す情報とを入力し、定数A2と被
乗数Xとを入力し且つ定数A2における値が0でない各
ビットと被乗数Xとの積を部分積として出力する第2の
部分積生成回路を示す情報を生成する第2の部分積生成
回路生成手段と、前記第2の部分積生成回路の出力信号
を示す情報を入力し、前記第2の部分積生成回路の出力
信号を入力しその論理否定信号を出力する論理否定回路
を示す情報を生成する論理否定回路生成手段と、前記第
1の部分積生成回路及び論理否定回路の出力信号の個数
の総数を判定する部分積総数判定手段と、前記第1の部
分積生成回路の出力信号を示す情報と論理否定回路の出
力信号を示す情報とを入力し、前記第1の部分積生成回
路及び論理否定回路の出力信号の全てを入力しそれらの
加算結果を部分積として出力する部分積加算回路を示す
情報を生成する部分積加算回路生成手段と、前記論理否
定回路の出力信号を示す情報又は第2の部分積生成回路
の出力信号を示す情報の何れかの情報を入力し、該何れ
かの情報が示す出力信号の個数から補正信号を生成する
補正信号生成手段と、前記部分積加算回路の出力信号を
示す情報と前記補正信号を示す情報と積Pを示す情報と
を入力し、前記部分積加算回路の出力信号と前記補正信
号との和を求め該和を乗数Aと被乗数Xとの積として積
Pに設定し該積Pを出力する部分積和回路を示す情報を
生成する最終和回路生成手段とを備えている構成とする
ものである。
被乗数との積を求める乗算機能を有する論理回路の自動
設計装置を対象とし、乗数Aを示す情報、被乗数Xを示
す情報及び積Pを示す情報などの各種情報を外部から入
力する入力手段と、乗数Aを示す情報を入力し、数A1
を示す情報と定数A2を示す情報とを数A1と定数A2
との差A1−A2が乗数Aに等しくなるように決定する
乗数分割手段と、数A1を示す情報と被乗数Xを示す情
報とを入力し、数A1と被乗数Xとを入力し且つ数A1
における値が0でない各ビットと被乗数Xとの積を部分
積として出力する第1の部分積生成回路を示す情報を生
成する第1の部分積生成回路生成手段と、定数A2を示
す情報と被乗数Xを示す情報とを入力し、定数A2と被
乗数Xとを入力し且つ定数A2における値が0でない各
ビットと被乗数Xとの積を部分積として出力する第2の
部分積生成回路を示す情報を生成する第2の部分積生成
回路生成手段と、前記第2の部分積生成回路の出力信号
を示す情報を入力し、前記第2の部分積生成回路の出力
信号を入力しその論理否定信号を出力する論理否定回路
を示す情報を生成する論理否定回路生成手段と、前記第
1の部分積生成回路及び論理否定回路の出力信号の個数
の総数を判定する部分積総数判定手段と、前記論理否定
回路の出力信号を示す情報又は第2の部分積生成回路の
出力信号を示す情報の何れかの情報を入力し、該何れか
の情報が示す出力信号の個数から補正信号を生成する補
正信号生成手段と、前記第1の部分積生成回路の出力信
号を示す情報と論理否定回路の出力信号を示す情報と前
記補正信号を示す情報とを入力し、前記第1の部分積生
成回路及び論理否定回路の出力信号の全てと前記補正信
号とを入力しそれらの加算結果を部分積として出力する
部分積加算回路を示す情報を生成する部分積加算回路生
成手段と、前記部分積加算回路の出力信号を示す情報と
積Pを示す情報とを入力し、前記部分積加算回路の出力
信号の総和を求め該総和を乗数Aと被乗数Xとの積とし
て積Pに設定し該積Pを出力する部分積和回路を示す情
報を生成する最終和回路生成手段とを備えている構成と
するものである。
被乗数との積を求める乗算機能を有する論理回路の自動
設計装置を対象とし、乗数Aを示す情報、被乗数Xを示
す情報及び積Pを示す情報などの各種情報を外部から入
力する入力手段と、乗数Aを示す情報を入力し、乗数A
の論理否定信号を作成する論理否定信号作成手段と、前
記乗数Aの論理否定信号を示す情報と被乗数Xを示す情
報とを入力し、前記乗数Aの論理否定信号と被乗数Xと
を入力し且つ前記乗数Aの論理否定信号における値が0
でない各ビットと被乗数Xとの積を部分積として出力す
る部分積生成回路を示す情報を生成する部分積生成回路
生成手段と、前記部分積生成回路の出力である部分積を
示す情報と被乗数Xを示す情報とを入力し、前記部分積
生成回路の出力である部分積の全てと被乗数Xとを入力
しそれらの加算結果を部分積として出力する部分積加算
回路を示す情報を生成する部分積加算回路生成手段と、
前記部分積加算回路の出力信号を示す情報を入力し、前
記部分積加算回路の出力信号を入力しその論理否定信号
を出力する論理否定回路を示す情報を生成する論理否定
回路生成手段と、被乗数Xを示す情報を入力し、被乗数
Xから補正信号を生成する補正信号生成手段と、前記補
正信号を示す情報と前記部分積加算回路の出力信号を示
す情報と積Pを示す情報とを入力し、前記補正信号と前
記部分積加算回路の出力信号との和を求め該和を乗数A
と被乗数Xとの積として積Pに設定し該積Pを出力する
部分積和回路を示す情報を生成する最終和回路生成手段
とを備えている構成とするものである。
被乗数との積を求める乗算機能を有する論理回路の自動
設計装置を対象とし、乗数Aを示す情報、被乗数Xを示
す情報及び積Pを示す情報などの各種情報を外部から入
力する入力手段と、乗数Aを示す情報と被乗数Xを示す
情報とを入力し、乗数Aと被乗数Xとを入力し且つ乗数
Aにおける値が0でない各ビットと被乗数Xとの積を部
分積として出力する部分積生成回路を示す情報を生成す
る部分積生成回路生成手段と、前記部分積生成回路の出
力信号の個数を判定する部分積数判定手段と、前記部分
積生成回路の出力信号を示す情報を入力し、前記部分積
生成回路の出力信号の全てを入力しそれらの加算結果を
部分積として出力する部分積加算回路を示す情報を生成
する部分積加算回路生成手段と、前記部分積加算回路の
出力信号を示す情報と積Pを示す情報とを入力し、前記
部分積加算回路の出力信号の全てを入力しそれらの和を
求め該和を乗数Aと被乗数Xとの積として積Pに設定し
該積Pを出力する部分積和回路を示す情報を生成する最
終和回路生成手段とを備えている構成とするものであ
る。
27、請求項28、請求項29又は請求項30の発明の
構成に、前記部分積加算回路生成手段は、木状に配列さ
れた加算器から成る部分積加算回路を示す情報を生成す
る構成を付加するものである。
1、A2に対してA=A1−A2となる乗数Aと被乗数
Xとの積を出力する乗算器を対象とし、定数A1と被乗
数Xとを入力し、定数A1における値が1である各ビッ
トに対する部分積のみを出力する第1の部分積生成手段
と、定数A2と被乗数Xとを入力し、定数A2における
値が1である各ビットに対する部分積のみを出力する第
2の部分積生成手段と、該第2の部分積生成手段の出力
信号を入力しその論理否定信号を出力する論理否定手段
と、前記第1の部分積生成手段の出力信号と前記論理否
定手段の出力信号と補正信号とを入力しそれらの和を求
めて乗数Aと被乗数Xとの積として出力する部分積和手
段とを備えている構成とするものである。
32の発明の構成に、前記部分積和手段は、前記第1の
部分積生成手段の出力信号と前記論理否定手段の出力信
号とを入力し、前記第1の部分積生成手段の出力信号と
前記論理否定手段の出力信号とを1段又は複数段の加算
手段により加算し、その加算結果を部分積として出力す
る部分積加算手段と、該部分積加算手段の出力信号と補
正信号とを入力し、それらの和を求めて乗数Aと被乗数
Xとの積として出力する最終和手段とを有している構成
を付加するものである。
33の発明の構成に、前記加算手段は、桁上げ保存加算
器を含んでいる構成を付加するものである。
と被乗数Xとの積を出力する乗算器を対象とし、乗数A
の論理否定信号と被乗数Xとを入力し、前記乗数Aの論
理否定信号の値が1である各ビットに対する部分積のみ
を出力する部分積生成手段と、該部分積生成手段の出力
信号と被乗数Xとを入力し、前記部分積生成手段の出力
信号と被乗数Xとを1段又は複数段の加算手段により加
算し、その加算結果を部分積として出力する部分積加算
手段と、該部分積加算手段の出力信号を入力しその論理
否定信号を出力する論理否定手段と、該論理否定手段の
出力信号と被乗数Xから生成可能な補正信号とを入力
し、前記論理否定手段の出力信号と前記補正信号との和
を求めて乗数Aと被乗数Xとの積として出力する部分積
和手段とを備えている構成とするものである。
35の発明の構成に、前記加算手段は、桁上げ保存加算
器を含んでいる構成を付加するものである。
る論理回路の設計段階において、乗数が定数である場合
には、乗数における値が1であるビットと被乗数との積
を部分積として求める回路のみが生成され、乗数におけ
る値が0であるビットに関する部分積を求める回路は生
成されない。これにより、生成される論理回路におい
て、部分積を求める回路の個数を低減でき、さらに、部
分積を加算する回路の面積を縮小できる。
乗算機能を有する論理回路の設計段階において、部分積
を加算するための回路を、桁上げの伝搬のない加算器を
木状に構成することによって生成することができる。こ
のため、生成される論理回路において、部分積の加算段
数を低減でき、個々の加算における桁上げが伝搬しな
い。
により、乗算機能を有する論理回路の設計段階におい
て、定数の乗数Aにおける値が1であるビットの個数が
多い場合にも、乗数AをA=A1−A2を満たす定数A
1、A2に分割する(又は、乗数AをA=A1−(A2
+A3)を満たす定数A1、A2、A3に分割する)こ
とによって、定数A1及びA2(又は、定数A1、A2
及びA3)における値が1であるビットの総数を乗数A
における値が1であるビットの個数よりも少なくするこ
とが可能である。このため、前記論理回路における部分
積の個数を低減することができる。
算機能を有する論理回路の設計段階において、定数の乗
数Aにおける値が1であるビットの個数が多い場合に
は、乗数Aの論理否定信号を作成し、該乗数Aの論理否
定信号における値が1であるビットに対する部分積を求
める回路のみを生成することができる。これにより、前
記論理回路における部分積を求める回路の個数を乗数A
のビット数の半数以下に抑えることができる。
上のように部分積の個数や加算の論理段数を低減できる
論理回路を、自動設計システムの演算処理手段が各処理
を実行する、又は、自動設計装置の各手段がそれぞれの
処理を実行することによって容易に生成することができ
る。
部分積生成手段では、乗数Aの論理否定信号又はA=A
1−A2を満たす定数A1、A2における値が1である
各ビットに対する部分積のみが出力されるため、部分積
の個数を低減することが可能である。さらに、部分積の
加算は、部分積加算手段で桁上げ保存加算器の加算木に
よって行なわれるので、加算の論理段数を低減でき乗算
速度の高速化を図ることができる。
自動設計システムを図面に基づいて説明する。
ードウェア構成を図1及び図2に基づいて説明する。
ドウェア構成の一例を示すブロック図であり、図1にお
いて、入力装置11は、自動設計システムに設計させよ
うとする回路についての機能記述情報などを入力するも
のである。この入力装置11としては、キーボード、マ
ウス、ライトペン、カードリーダー、スケマティックエ
ントリーシステムなどが用いられる。また、直接オペレ
ータの操作によって入力するものに限らず、あらかじめ
前記のような装置によって入力された情報をファイルと
して記憶する磁気ディスク装置や、他の装置から送られ
る情報を受信するネットワーク装置などを用いることも
できる。
を実行することにより、論理合成や回路最適化などの回
路設計処理を行うものである。
処理結果である回路情報や、処理に関する各種情報など
を出力するものである。この出力装置13としては、グ
ラフィックディスプレイ、キャラクタディスプレイ、プ
リンタ、プロッタなどが用いられる。また、入力装置1
1と同様に、磁気ディスク装置やネットワーク装置など
も用いることができる。
に、設計処理記憶部21と素子ライブラリ記憶部22と
回路データ記憶部23とを有し、入力装置11から入力
された情報や、回路設計処理に関するプログラムやデー
タなどを記憶するものである。
1には、中央処理装置12が設計処理を実行するための
種々の処理プログラムや、それらの処理で適用される変
換規則情報などが格納される。
能素子、論理素子、実装素子などの機能や、面積、遅延
時間、駆動力などを示す情報が素子ライブラリとして格
納される。
から入力される機能記述情報や、回路設計処理によって
生成される機能回路情報、論理回路情報、実装回路情報
などが格納される。
回路に要求される機能がハードウェア記述言語などによ
り表された情報である。また、機能回路情報は、主とし
て、機能のみが定義された仮想の機能素子から成る回路
を内部表現形式で表す情報である。論理回路情報は、製
造プロセスや設計手法などに殆ど依存しない論理レベル
の、実際に存在する論理素子から成る回路を示す情報で
ある。また、実装回路情報は、製造プロセスや設計手法
などに密に依存し、特定のテクノロジーで実装される実
装素子(例えば、CMOS型トランジスタによるスタン
ダードセルや、ゲートアレイのライブラリ中のセル、あ
るいはTTL、ECLなどの製造プロセスに依存する素
子)が割り付けられた回路を示す情報である。
えば、複数ビットの加算器は、複数ビット幅の2数を加
算する機能素子を表す。コンパレータは、複数ビット幅
の2数を比較する機能素子を表す。複数ビットのand
は、複数ビット幅の2つの信号の各ビットごとの論理積
を求める機能素子を表す。また、複数ビットのinv
は、複数ビット幅の信号の各ビットごとの論理否定を求
める機能素子を表す。
程において、複数ビットの信号を便宜上まとめて扱った
り、分割したりすることを示す機能素子で、最終的に実
装素子から成る回路に変換され、全ての信号が1ビット
の信号ごとに扱われる際には、削除される機能素子であ
る。
る、実装素子から成る回路は存在せず、一旦それらの機
能を実現する論理素子から成る回路に展開された後に、
実装素子から成る回路に置き換えられる。
表3で、例えば、1ビット同士の加算器は、ビット幅が
1ビットである2つの信号を加算する素子を表す。ま
た、1ビットのandは、ビット幅が1ビットである2
つ以上の信号の論理積を求める論理素子を表す。
ら成る回路は、あらかじめ定められており、設計処理の
最終段階において置き換えが行われる。
機能記述情報や機能回路情報の具体例を図16及び図1
7に基づいて説明する。これらの情報は、例えばテキス
トデータとして格納される。
ト2入力のandゲートと1ビット3入力の加算器とか
ら成る回路は、図16(b)に示すような機能記述情報
として記述される。また、この機能記述情報は、設計処
理によって、例えば、図16(c)に示すような機能回
路情報、又は、論理回路情報に変換される。なお、この
ように機能記述情報が論理素子から構成される回路に直
接対応する場合には、機能回路情報と論理回路情報とは
特に区別がない場合がある。
は、個々の素子を識別するための識別名31と、属性コ
ード32と属性値33との複数の対とを含んでいる。各
対の属性コード32と属性値33とは“::”で対応づ
けられ、各対は“;”で区切られ、識別名31
は、“:::”によって他のデータと区別されている。
属性コード32としては、“a_kind_of”、
“input”、“output”などがあり、それぞ
れ、対応する属性値33が、素子の種類、入力信号、出
力信号に関するものであることを表している。
r(加算器)であり、その入力信号はsig1,sig
2,sig3、出力信号はsig4,sig5である一
方、gate02の素子はandであり、その入力信号
はsig6,sig7、出力信号はsig3であること
が表されている。また、gate01とgate02と
は信号sig3によって接続されていることが表されて
いる。
な、機能素子である乗算器51と、値が130(16進
表記で82h)である8ビット幅の定数の乗数が入力さ
れる信号線52と、8ビット幅の被乗数aが入力される
信号線53と、16ビット幅の乗算結果bが出力される
信号線54とから構成される回路は、図17(b)に示
すような機能記述情報として記述され、図17(c)に
示すような機能回路情報に変換される。なお、ここで、
乗数、被乗数の区別は変換処理における便宜上のもので
ある。
aは、0ビットから7ビットまでの8ビット幅の信号で
あり、変数bは0ビットから15ビットまでの16ビッ
ト幅の信号であり、この変数bの値は、被乗数aと、8
ビット幅の信号で表わされる値が130の乗数との積で
あることが示されている。
1行目で、機能素子の識別名がgate1であり、その
機能素子がmultiplier(乗算器)であること
が示され、2、4行目の記述では、記号i1で示される
信号は入力信号aで、ビット幅が8ビットであることが
示され、3、5行目の記述では、記号i2で示される信
号は入力信号で、ビット幅が8ビットで値が130の定
数であることが示され、6行目の記述では、記号oで示
される信号は出力信号bで、ビット幅が16ビットであ
ることが示されている。
ステムで行われる回路設計処理を図面に基づいて説明す
る。なお、以下の説明においては、簡単化のために、情
報の種類における機能記述情報、機能回路情報又は論理
回路情報の区別に関らず、図16(a)や図17(a)
のような模式図によって情報の内容を表す。また、混同
しない範囲で必要に応じて、乗数、被乗数の語は、これ
らの値、又は、それぞれ乗数を表す信号、被乗数を表す
信号を示す意味でも用い、回路の語は回路を示す情報の
意味でも用いる。
用いる。数Xの最下位ビットから数えてaビット目から
bビット目(但しa>b)間でのビットから成る(a−
b+1)ビット幅の数をX(a:b)と表記する。ま
た、数Xのaビット目の値をX(a)と表す。
ビット幅で表現された信号Yについて、値が1であるビ
ットの個数をposibits(Y)、値が0であるビ
ットの個数をnegabits(Y)と定義する。ま
た、最下位ビットから数えて、値が1であるビットの個
数がP個(但し、P<k)となるビットまでのビット数
をeffbitwidth(Y,P)と定義する。ま
た、これらの関数の値を求める処理は容易に実現できる
ので、詳細な説明は省略する。
れる回路設計処理のメインルーチンを示すフローチャー
トである。
の機能設計者が機能仕様に基づいて作成した機能記述情
報を入力装置11から入力し、回路データ記憶部23に
格納する処理である。なお、機能記述情報に限らず、例
えば比較的簡単な回路部分についての機能回路情報や論
理回路情報などの入力も受け付けるようにしてもよい。
た機能記述情報を解釈し、機能素子から構成され、機能
記述情報で示された機能を有する回路を内部表現形式で
表した機能回路情報を生成して回路データ記憶部23に
格納する処理である。
全ての機能素子を論理素子に変換し、論理回路情報とし
て回路データ記憶部23に格納する処理である。また、
乗算器を含む回路に関して、機能素子レベルでの回路の
最適化も行われる。このステップ43の詳細な処理内容
については後述する。
全ての論理素子を、所定の変換規則情報に基づく素子変
換処理によって実装素子に割り付け、実装回路情報とし
て回路データ記憶部23に格納する処理である。また、
ステップ44では、論理素子を実装素子に割り付ける過
程で、論理素子レベルでの回路の最適化も行われる。
いて、回路図やネットリストを生成し、出力装置13に
出力する処理である。ここで、前記ネットリストは、例
えば、実装素子から構成される回路における実装素子の
接続関係を示す情報である。
については、それぞれ、特開平3−15984号公報、
米国特許USP5043914号公報に示されているも
のと同様なため、詳細な説明を省略する。
素子変換処理の詳細を図4に基づいて説明する。
詳細を示すフローチャートであり、図4に示すように、
ステップ81では、機能回路情報に含まれる機能素子を
1つ選択する。
された機能素子が加算器であるか、乗算器であるかを判
定し、加算器であればステップ84に移行し、乗算器で
あればステップ85に移行し、また、加算器でも乗算器
でもなければステップ86に移行する。
された機能素子を他の機能素子及び論理素子のうちの少
なくとも一方から構成された同一の機能を有する回路に
変換してその回路情報を生成し、その後、ステップ87
に移行する。
まれているかどうかを判定し、機能素子が含まれていれ
ば、ステップ81に戻ってステップ81〜86の処理を
繰り返す一方、機能素子が含まれていなければ、すなわ
ち、論理素子だけから構成される回路に変換されていれ
ば、ステップ43の機能素子変換処理は終了しメインル
ーチンにリターンする。
も1回の処理で論理素子だけから構成される回路に変換
されずに、一旦、他の機能素子を含む回路に変換される
ことがある。この場合には、ステップ87で機能素子が
含まれていると判定され、同様の変換処理が再帰的に繰
り返して行われることにより、最終的に論理回路だけに
よって構成された回路に変換される。具体的には、例え
ば、複数ビットの加算器は、ステップ84によって、よ
りビット数の少ない加算器(機能素子)と1ビットの加
算器(論理素子)とから成る回路への変換が繰り返され
ることにより、最終的に、1ビットの加算器だけから成
る回路に変換される。また、減算器や除算器などは、ス
テップ86で加算器などの機能素子と論理素子とから構
成される回路に変換され、その後、加算器がステップ8
4で1ビット同士の加算器に変換される。このように再
帰的に変換処理を行うことにより、各処理の簡素化を図
ることが容易になる。
テップ85で変換が行われる乗算器は、例えば、図18
(a)〜(d)に示すような機能を有するものである。
図18(a)〜(d)の乗算器は、mビット幅の信号で
表わされた乗数を、nビット幅の信号で表わされた被乗
数に乗算し、n+mビット幅の信号で表わされた積Pを
出力する機能を共通に有している。しかし、入力される
乗数及び被乗数が定数であるか変数であるかという点が
異なっており、図18(a)の乗算器は乗数及び被乗数
が共に定数であり、図18(b)の乗算器は乗数が変数
で且つ被乗数が定数であり、図18(c)の乗算器は乗
数が定数で且つ被乗数が変数であり、図18(d)の乗
算器は乗数及び被乗数が共に変数である。
めに、定数Aは正数として説明する。定数Aが負数の場
合には、定数Aを符号反転したA’についての乗算回路
とその乗算結果の符号を反転する回路との回路情報を生
成することにより容易に対応可能である。また、変数X
は正負の値をとり得るものとして説明するが、正数に限
る場合には、後述するビット幅合わせのための符号拡張
において、0拡張を行うようにしてもよい。
器生成処理の詳細を図5、図18及び図19に基づいて
説明する。この乗算器生成処理は、乗算器を、他の機能
素子(乗算器、加算器など)や、論理素子から構成され
る回路に変換する処理である。
細を示すフローチャートであり、図5に示すように、ス
テップ1001では、乗数及び被乗数が共に定数である
かどうかを判定し、図18(a)に示すように、共に定
数であれば、ステップ1002に移行し、ステップ10
02で積を算出しその値を2進数で表す信号を発生する
回路に変換する。具体的には、被乗数A=4、乗数B=
5の場合には、図19(a)に示すように、値4×5=
20(2進表現で‘10100’)を示す信号をP
(4:0)として出力し、値0を示す信号をP(n+m
−1:5)として出力する回路に変換する。
のうち少なくとも一方が変数であると判定されると、ス
テップ1003に移行し、ステップ1003で被乗数が
定数であるかどうかを判定し、被乗数が定数であればス
テップ1004に移行し、ステップ1004で乗数と被
乗数とを入れ換えてからステップ1005に移行する一
方、被乗数が定数でなければそのままステップ1005
に移行する。すなわち、図18(b)に示すような乗算
器の場合には、図18(c)に示すような乗算器に変換
され、少なくとも被乗数は常に変数になるようにする。
は、乗数が特殊な定数すなわち0、1、又は2のべき乗
数であるかどうかを判定し、乗数が0であれば、図19
(b)に示すように、全ビットの値が0であることを示
す信号を出力する回路に変換する(ステップ100
6)。乗数が1であれば、図19(c)に示すように、
被乗数の値を示す信号をそのままP(n−1:0)とし
て出力すると共に、値がX(n−1)の信号をP(n+
m−1:n)として(符号拡張して)出力する回路に変
換する(ステップ1008)。また、乗数が2のべき乗
数例えば8(=23)である場合には、図19(d)に
示すように、被乗数の値を示す信号をP(n+2:3)
として出力すると共に、値が0の信号をP(2:0)と
して、また、各ビットの値がX(n−1)の信号をP
(n+m−1:n+3)として(符号拡張して)出力す
る回路に変換する(ステップ1010)。なお、変数X
が正数に限定される場合には、前述のように、上位ビッ
トを符号拡張せずに0拡張すればよい。
あるか又は2ビット以上であるかどうかを判定し、乗数
が1ビットであれば、ステップ1012に移行し、ステ
ップ1012で、例えば、図20に示すように、乗算器
131をAND回路132〜135から成る回路に変換
する処理を行う。一方、乗数が2ビット以上であれば、
ステップ1013に移行し、ステップ1013で他の機
能素子(ビット幅のより小さい乗算器や加算器など)及
び論理素子のうちの少なくとも一方から成る複数ビット
幅の乗算器に変換する処理を行う。なお、ステップ10
11で乗数が1ビットであると判定されるのは、乗数が
変数である場合に限られる。なぜならば、乗数が1ビッ
トの定数であればステップ1005、1007で「YE
S」と判定されるからである。一方、乗数が2ビット以
上であると判定されるのは、乗数が変数である場合と定
数である場合とが含まれる。
010、1012で行われる回路の変換は、あらかじめ
設計処理記憶部21に記憶されている変換規則情報に基
づいて行われる。
機能素子変換処理の詳細を図6及び図20に基づいて説
明する。この機能素子変換処理では、図20(b)に示
す変換規則1が用いられ、図6に示すような処理により
変換が行われる。
理の詳細を示すフローチャートであり、図6に示すよう
に、まず、ステップ71で、図20(b)の変換規則情
報における「==>」の前に示される条件節と、元の回
路情報とを比較し、変換適用条件を満たしていれば、信
号線の名称などの対応付けを行う。
算器を示す回路情報を回路データ記憶部23から削除す
る。
則情報における「==>」の後に示される結果節の中の
機能素子又は論理素子を示す回路情報と前記対応付けと
に基づいて、変換する回路を示す情報を生成し、回路デ
ータ記憶部23に登録する。
理の機能素子や論理素子が残っているかどうかを判定
し、残っていればステップ73に戻る一方、残っていな
ければステップ1012の機能素子変換処理は終了す
る。
価な回路に変換できることの証明については、他の変換
規則についての証明と共に後に示す。但し、このような
変換規則情報に基づく具体的な素子変換処理について
は、米国特許USP5043914号公報に示されてい
るので、詳細な説明は省略する。また、変換規則情報
は、実際には図20(b)に示すような内部表現形式で
表されているが、以下の説明においては、簡単化のため
に原則として図20(a)に示すような模式図によって
説明する。
乗算器生成処理の詳細を図7に基づいて説明する。この
乗算器生成処理では、概略、次のようにして部分積数及
び部分積和を求める回路の論理段数を少なく抑えるよう
になっている。すなわち、乗数が定数である場合には、
部分積数を少なくするために、乗数若しくは乗数の全ビ
ットの論理否定をとった数又はその差が乗数に等しい2
つの数において、値が1であるビットに関してのみ部分
積を求める回路に変換する。また、乗数が定数である場
合及び変数である場合の何れの場合にも、部分積和を求
める回路の論理段数を少なくするために、キャリーの伝
搬を少なくした加算木を用いた回路に変換する。
詳細を示すフローチャートであり、図7に示すように、
まず、ステップ141では、乗数が変数であるかどうか
を判定し、乗数が変数であれば、変数同士の乗算である
のでステップ142に移行し、ステップ142で加算木
を用いた乗算器生成処理を行なう。一方、乗数が定数A
であると判定された場合には、ステップ143に移行
し、ステップ143で乗数Aを差がAに等しい2つの定
数A1、A2に分割する。
の乗数Aと被乗数Xとの乗算器を、図21に示す変換規
則2を適用して、部分積加算木、加算器及び部分積生成
回路のうちの少なくとも一つから成る回路に変換する乗
算器生成処理である。
し、且つ、posibits(A1)+posibit
s(A2)の値が最小となるようなA1とA2とを決定
する処理である。具体的には、本実施例では図13に示
すフローチャートにしたがって処理を行なう。その詳細
な説明は後述する。
1であるビットの個数が、A1における値が1であるビ
ットの個数とA2における値が1であるビットの個数と
の和よりも大きいかどうか、つまり、posibits
(A)>posibits(A1)+posibits
(A2)の判定を行なう。この判定で、posibit
s(A)>posibits(A1)+posibit
s(A2)が成立する場合にはステップ147に移行
し、ステップ147でさらに判定処理を行なう一方、p
osibits(A)>posibits(A1)+p
osibits(A2)が成立しない場合にはステップ
145に移行し、ステップ145で別の判定処理を行な
う。
1であるビットの個数が値が0であるビットの個数と2
との和よりも大きいかどうか、つまり、posibit
s(A)>m/2+1の判定を行なう。posibit
s(A)>m/2+1が成立する場合には、ステップ1
46に移行し、ステップ146で符号反転による乗算器
生成処理を行なう。一方、posibits(A)>m
/2+1が成立しない場合には、ステップ142へ移行
し、ステップ142で加算木を用いた乗算器生成処理を
行なう。
7を適用して、乗数Aの全ビットの論理否定をとった値
を乗数A0として、この乗数A0と被乗数Xとの積を求
める部分積生成回路と、部分積加算木と、その出力の論
理否定回路と、最終和回路とから成る回路に変換する処
理である。ここでは、乗数Aの論理否定をとることによ
ってposibits(A0)の値がposibits
(A)の値よりも小さくなるので、値が1であるビット
の個数が元の乗数Aよりも少なくなると共に、値が1の
ビットだけについて部分積を求める回路が生成されるの
で、部分積を求める回路の個数と部分積和を求める回路
の論理段数とが少なく抑えられる。
であるビットの個数とA2における値が1であるビット
の個数との和が、乗数Aにおける値が0であるビットの
個数と2との和よりも大きいかどうか、つまり、pos
ibits(A1)+posibits(A2)>m−
posibits(A)+2の判定を行なう。この判定
で、posibits(A1)+posibits(A
2)>m−posibits(A)+2が成立する場合
には、ステップ146に移行し、ステップ146で符号
反転による乗算器生成処理を行なう。一方、posib
its(A1)+posibits(A2)>m−po
sibits(A)+2が成立しない場合には、ステッ
プ148に移行し、ステップ148で分割による乗算器
生成処理を行なう。
8を適用して、前記定数A1と被乗数Xとの積を求める
部分積生成回路と、前記定数A2と被乗数Xとの積を求
める部分積生成回路と、その出力の論理否定回路と、部
分積加算木と、最終和回路とから成る回路に変換する処
理である。ここでは、posibits(A1)の値と
posibits(A2)の値との和がposibit
s(A)の値よりも小さくなるので、値が1であるビッ
トの個数が元の乗数Aよりも少なくなると共に、値が1
のビットだけについて部分積を求める回路が生成される
ので、部分積を求める回路の個数と部分積和を求める回
路の論理段数とが少なく抑えられる。
47の判定処理は、本実施例では3つの判定処理である
が、その代わりに、posibits(A)とposi
bits(A1)+posibits(A2)とneg
abits(A)+2(つまり、m+2−posibi
ts(A))との大小関係の判定を行なう判定処理でも
よい。その際、判定結果によって、posibits
(A)が最も小さい(且つ、他と等しい場合も含む)場
合にはステップ142に移行し、posibits(A
1)+posibits(A2)が最も小さい(且つn
egabits(A)+2と等しい場合も含む)場合に
はステップ148に移行し、negabits(A)+
2が最も小さい(単独で小さい場合のみ)場合にはステ
ップ146に移行する。
算木を用いた乗算器生成処理の詳細を図8及び図21に
基づいて説明する。
で用いられる変換規則2を示す模式図であり、図21に
示すように、変換規則2は、ビット幅がmの変数の乗数
Y又はビット幅がmの定数の乗数Aをビット幅がnの被
乗数Xに乗算してビット幅がLの積Pを出力する乗算器
191を、乗数Y又はAを被乗数Xに乗算して部分積P
1 、・・・・・、Pk を求める部分積生成回路192
と、これらの部分積P1、・・・・・、Pk を加算する
部分積加算木193と、最終和回路とから構成される回
路に変換することを示すものである。但し、前記最終和
回路は、部分積加算木193の出力Q1 、Q2 の重複す
るビット以下のビットについてだけ加算すればよいの
で、部分積Q2 の下位 L−1ビットを1ビットシフト
(つまり、2倍)した信号Rと部分積Q1 とを加算する
加算器194から構成される。
が2個(つまり、k=2又はposibits(A)=
2)の場合には、乗算器191を、乗数Aを被乗数Xに
乗算して部分積P1 、P2 を求める部分積生成回路19
5と、これらの部分積P1 、P2 を加算する最終和回路
196とから構成される回路に変換することを示すもの
である。
個(つまり、k=1又はposibits(A)=1)
の場合には、乗算器191を、乗数Aを被乗数Xに乗算
して部分積Pを求める部分積生成回路197に変換する
ことを示すものである。
95、197は、乗数Y(m−1:0)又はA(m−
1:0)を、被乗数X(n−1:0)に乗算し、部分積
としてk個の Lビット幅の信号P1 ( L−1:0)、・
・・・・、Pk ( L−1:0)を出力する回路である。
但し、部分積生成回路197は、 Lビット幅の信号P
(L−1:0)を出力する回路である。
積P1 ( L−1:0)、・・・・・、Pk ( L−1:
0)を入力し、それらを加算し、その加算結果を部分和
としてLビット幅の信号Q1 ( L−1:0)と部分桁上
げとして Lビット幅の信号Q2( L−1:0)とを出力
する回路である。
と、上位n−1ビットが信号Q2 (L−2:0)、最下
位ビットが‘0’である信号R( L−1:0)(つま
り、R( L−1:1)=Q2 ( L−2:0)、R(0)
=0)とを加算し、その和である Lビット幅の信号P
( L−1:0)を出力する回路である。
とP2 ( L−1:0)とを加算し、その和である Lビッ
ト幅の信号P( L−1:0)を出力する回路である。
は共に桁上げ先見加算器(CLA)であるが、他の加算
器でもよい。
いた乗算器生成処理の詳細を示すフローチャートであ
り、図8に示すように、ステップ151は、図22に示
す変換規則3を適用して、被乗数Xと変数の乗数Y又は
定数の乗数Aとから部分積を生成する回路を生成する処
理である。
られる部分積の個数が1個か2個かそれより大きいかを
判定する処理、つまり、乗数が定数且つposibit
s(A)=1か、乗数が定数且つposibits
(A)=2か、それ以外かの3つのケースの何れかを判
定する判定処理である。その判定により、部分積の個数
が1(つまり、乗数が定数且つposibits(A)
=1)ならば、ステップ155に移行し、ステップ15
5で前記処理で回路が生成された乗算器を回路データか
ら削除する。また、部分積の個数が2個(つまり、乗数
が定数且つposibits(A)=2)ならば、ステ
ップ154に移行し、ステップ154でその2つの部分
積を加算し最終和を求める回路を生成する。さらに、部
分積の個数が3個以上(つまり、乗数が変数、又は、乗
数が定数且つposibits(A)>2)ならば、ス
テップ153に移行し、ステップ153でそれらの部分
積を加算する部分積加算木を生成する。
算木193を、図23に示す変換規則4を適用して、数
ステージの加算器からなる、キャリーの伝搬を少なくし
た加算木として生成する処理である。
94及び196を示す回路情報を生成し、回路データ記
憶部23に登録する処理である。具体的には、部分積加
算木193の2つの出力Q1 、Q2 の桁合わせをして加
算する加算器194(つまり、Q2 を1ビット上位へシ
フトして最下位ビットを0にしたものとQ1 とを加算す
る加算器)、又は、部分積生成回路195の2つの出力
P1 、P2 を加算する加算器196を生成する処理であ
る。なお、本実施例では、加算器194及び196は共
に桁上げ先見加算器(CLA)であるが、他の加算器で
もよい。
に対応する乗算器を示す回路情報を回路データ記憶部2
3から削除する処理である。
分積生成回路生成処理の詳細を図9及び図22に基づい
て説明する。
生成処理で用いられる変換規則3を示す模式図であり、
図22に示すように、変換規則3は、乗数が変数の場合
には、ビット幅がm−Kの変数の乗数Y(m−1:K)
をビット幅がnの被乗数X(n−1:0)に乗算してビ
ット幅が Lの部分積P1 、P2 、・・・・を出力する部
分積生成回路161を、乗数の1ビットY(K)と被乗
数Xとを入力してY(K)=1ならばX(n−1:0)
を出力する一方、Y(K)=0ならばnビットの値0の
信号を出力するセレクター回路162と、その出力信号
Rの上位に各ビットの値が0の信号を合成して(つま
り、0拡張して)下位から Lビットの信号をP1 ( L−
1:0)とする回路と、ビット幅がm−K−1の乗数Y
(m−1:K+1)をビット幅がn+1の被乗数X(n
−1:0)×2(つまり、X(n−1:0)の下位1ビ
ットに値が0である信号を合成したn+1ビットの信
号)に乗算してビット幅が Lの部分積P2 、・・・・を
出力する部分積生成回路163とから構成される回路に
変換することを示すものである(但し、Kは0≦K<m
を満たす整数である)。但し、部分積生成回路163は
K=m−1の場合には生成されず、この場合の回路は、
セレクター回路162と、その出力信号Rの上位に各ビ
ットの値が0の信号を合成して下位から Lビットの信号
をP1 ( L−1:0)する回路とから構成される。な
お、図22ではセレクター回路162として1ビット信
号Y(K)とnビットの被乗数X(n−1:0)との論
理積回路に変換しているが、1ビット信号Y(K)によ
ってnビットの被乗数X(n−1:0)か0値信号かを
選択するセレクターでもよい。
は、ビット幅がm−Kの定数の乗数A(m−1:K)を
ビット幅がnの被乗数X(n−1:0)に乗算してビッ
ト幅が Lの部分積P1 、P2 、・・・・を出力する部分
積生成回路161を、乗数の1ビットA(K)が1なら
ば、nビットの信号X(n−1:0)の上位に各ビット
の値が0の信号を合成して(つまり、0拡張して)下位
から Lビットの信号をP1 ( L−1:0)とする回路
と、ビット幅がm−K−1の乗数A(m−1:K+1)
をビット幅がn+1の被乗数X(n−1:0)×2(つ
まり、X(n−1:0)の下位1ビットに値が0である
信号を合成したn+1ビットの信号)に乗算してビット
幅が Lの部分積P2 、・・・・を出力する部分積生成回
路164とから構成される回路に変換し、乗数の1ビッ
トA(K)が0ならば、部分積生成回路164のみから
構成される回路に変換することを示すものである(但
し、Kは0≦K<mを満たす整数である)。但し、部分
積生成回路164はK=m−1の場合には生成されず、
この場合の回路は、セレクター回路162と、その出力
信号Rの上位に各ビットの値が0の信号を合成して下位
から Lビットの信号をP1 ( L−1:0)とする回路と
から構成される。
積生成回路163及び164は、同じ変換規則3をK=
m−1となるまで繰り返し適用することによって再帰的
に変換される。
成処理の詳細を示すフローチャートであり、図9に示す
ように、ステップ121は、乗数Y又はAのビット位置
を示す変数Kに初期値0を設定する処理である。つま
り、K=0を設定する。
どうかを判定する判定処理である。乗数が変数Yである
ならばステップ124に移行し、ステップ124でセレ
クター回路生成処理を行ない、乗数が定数Aであるなら
ばステップ123に移行し、ステップ123で別の判定
処理を行なう。
(K)の値が1であるかどうかを判定する判定処理であ
る。A(K)=1ならばステップ125に移行し、ステ
ップ125で信号の0拡張処理を行ない、A(K)=0
ならばステップ126に移行し、ステップ126でビッ
ト位置変数Kのカウントアップを行なう。
ト信号Y(K)とnビットの被乗数X(n−1:0)と
の論理積回路162を示す回路情報を生成し、回路デー
タ記憶部23に登録するセレクト回路生成処理である。
1ビットY(K)若しくはA(K)に対応する部分積X
(n−1:0)×Y(K)(つまり、R)、又は、X
(n−1:0)の0ビット拡張を行ない、下位から Lビ
ットの信号をP1( L−1:0)とする回路を示す回路
情報を生成し、回路データ記憶部23に登録する処理で
ある。
を1増やす、つまりカウントアップを行なう処理であ
る。
うために、図22に示す次の部分積生成回路163又は
164の設定に当たる処理である。具体的には、nビッ
トの被乗数Xを2倍した値X×2を持つn+1ビットの
信号を改めて被乗数Xとおき、さらにそのビット幅nの
値を1増やす処理である。
数のビット幅mよりも小さいかどうかを判定する判定処
理である。Kがmよりも小さければ(つまり、K<mな
らば)、ステップ122に移行し、ステップ126及び
127で更新された被乗数X、そのビット幅n及びビッ
ト位置変数Kに対してステップ122〜127の処理を
繰り返し実行する。そして、Kがmに等しくなったなら
ば、ステップ151の部分積生成回路生成処理は終了す
る。
分積加算木生成処理の詳細を図10、図23、図24及
び図25に基づいて説明する。
成処理で用いられる変換規則4を示す模式図であり、図
23に示すように、変換規則4は、部分積の個数Kが3
よりも大きい(つまり、K>3)場合には、K個の部分
積P0 、・・・、PK-1 を加算して部分和Q0 と部分桁
上げQ1 とを出力する部分積加算木181を、K個の部
分積P0 、・・・、PK-1 を加算する1ステージの加算
器182とその出力を入力とする部分積加算木183と
から構成される回路に変換することを示すものである。
と等しい(つまり、K=3)場合には、部分積加算木1
81を、3個の部分積P0 、P1 、P2 を加算して部分
和Q0 と部分桁上げQ1 とを出力する桁上げ保存加算器
(CSA)184に変換する。
積加算木183は同じ変換規則4をK=3となるまで繰
り返し適用することによって再帰的に変換されることを
示すものである。
2を生成するための変換規則5を示す模式図であり、図
24において、Kは初期の部分積の個数を表し、このう
ちIはこれまで処理した部分積の個数を表し、Jはこれ
までの処理で生成された次ステージの入力となる部分積
の個数を表す(ここで、I、J、Kは0≦J≦I<Kを
満たす整数である)。
(つまり、I<K−3)場合には、3個の部分積PI 、
PI+1 、PI+2 を加算して部分和QJ と部分桁上げQ
J+1 とを出力する桁上げ保存加算器(CSA)192
と、部分積PI+3 、・・・、PK-1を加算する1ステー
ジの加算器193とに変換することを示すものである。
(つまり、I=K−3)場合には、3個の部分積PI 、
PI+1 、PK-1 を加算して部分和QJ と部分桁上げQ
J+1 とを出力する桁上げ保存加算器(CSA)194に
変換することを示すものである。
い(つまり、I=K−2)場合には、PK-2 、PK-1 を
それぞれnビットの信号QJ 、QJ+1 として出力する回
路に変換することを示し、IがK−1に等しい(つま
り、I=K−1)場合には、PK-1 をnビットの信号Q
J+1 として出力する回路に変換することを示すものであ
る。
算器(CSA)192又は194の出力の桁合わせのた
め、桁上げ保存加算器(CSA)192又は194の出
力Rの下位に値0の1ビット信号を合成して下位からn
ビットの信号である。
成処理の詳細を示すフローチャートであり、図10に示
すように、ステップ170は、部分積の個数をKに設定
する処理である。具体的には、図21の例では、乗数が
変数Yである場合には、Kに乗数のビット幅mと等しい
値を設定し、乗数が定数Aである場合には、Kにpos
ibits(A)と等しい値を設定する。
0を設定する(つまり、I=0、J=0とする)処理で
ある。
た1ステージの加算器182を生成する処理である。
分積PI 、PI+1 、PI+2 を加算して部分和QJ と部分
桁上げQJ+1 とを出力する桁上げ保存加算器(CSA)
192又は194を含む回路を示す回路情報を生成し、
回路データ記憶部23に登録する処理である。
又は194は、図25に示す変換規則6を用いて1ビッ
トずつ全加算器(full adder)202又は2
04に展開して、n個の全加算器から構成される回路と
して生成できることが容易に分かる。
れ更新する処理である。具体的には、Iの値をI+3の
値に、Jの値をJ+2の値にそれぞれ更新する処理であ
る。
かどうかを判定する判定処理である。
72に移行し、ステップ173で更新されたI、Jに対
してステップ172、173の処理を繰り返し実行す
る。そして、IがK−3よりも大きくなった(つまり、
I>K−3)ならば、ステップ175に移行して次の判
定を行なう。
かを判定する判定処理である。IがKに等しい(つま
り、I=K)ならばステップ178に移行し、ステップ
178で別の判定処理を行なう一方、IがKに等しくな
いならばステップ176に移行し、ステップ176でP
I をQJ に接続する処理を行なう。
示す回路情報を生成し、回路データ記憶部23に登録す
る処理である(但し、I=K−1又はI=K−2)。
れカウントアップする処理である。具体的には、Iの値
をI+1の値に、Jの値をJ+1の値にそれぞれ更新す
る処理である。本処理を終了すると、更新されたI、J
に対してステップ175に戻り判定処理を行なう。
かを判定する判定処理である。Jが2に等しい(つま
り、J=2)ならば、ステップ153の部分積加算木生
成処理は終了する。一方、Jが2に等しくないならば、
ステップ179に移行し、以降、部分積加算木の再帰的
処理を行なう。
うために、図23に示す次の部分積加算木183の設定
に当たる処理である。具体的には、図23の1ステージ
の加算器182の出力Q0 、・・・・、QJ-1 を、部分
積加算木183の入力となる部分積P0 、・・・・、P
J-1 として設定する。
る。つまり、図23に示す部分積加算木183の入力と
なる部分積の個数JをKに設定する処理である。
及び部分積P0 、・・・・、PK-1に対してステップ1
71〜177の処理を繰り返し実行する。
キャリーの伝搬のない加算器をバランスのよい階層構造
状に接続して部分積和を求める回路を構成できるため、
論理段数を小さく抑えることができる。
号反転による乗算器生成処理の詳細を図11及び図26
に基づいて説明する。この乗算器生成処理では、乗数A
と被乗数Xとの積を求めるために、乗数Aの論理否定定
数A0と被乗数Xとの積を補正する必要がある。
で前記補正のための回路も含む回路に変換するための変
換規則7を示す模式図であり、図26に示すように、変
換規則7は、ビット幅がmの定数の乗数Aをビット幅が
nの被乗数Xに乗算してビット幅が Lの積Pを出力する
乗算器221を、乗数Aの論理否定A0を被乗数Xに乗
算して部分積P0 、・・・・・、Pk-1 を求める部分積
生成回路222と、これらの部分積P0 、・・・・・、
Pk-1 と被乗数Xとを加算する部分積加算木223と、
その出力である部分和Q0 、部分桁上げQ1 の論理否定
をそれぞれとるLビットの論理否定回路224、225
と、それらの出力R1、R2と値がX×2m +2である
信号の下位 Lビット信号R3とを加算する最終和回路と
から構成される回路に変換することを示すものである。
但し、部分桁上げQ1 は、部分和Q0 との桁合わせを行
なうため、部分積加算木223の部分桁上げ出力の下位
L−1ビットを1ビットシフト(つまり、2倍)した信
号である。また、前記最終和回路は、図26の例では桁
上げ保存加算器(CSA)226と桁上げ先見加算器
(CLA)227とから構成されている。図26では、
乗数Aの論理否定A0を求めるために論理否定回路22
0を挿入しているが、あらかじめ計算によりA0を求め
てもよい。
号反転による乗算器生成処理の詳細を示すフローチャー
トであり、図11に示すように、ステップ211は、乗
数Aの論理否定を計算により求めて値をmビットの定数
A0とする論理否定信号作成処理である。具体的には、
乗数Aの各ビット毎に論理否定演算を行なったものをA
0とする。つまり、i=0〜m−1の各iに対して、A
0(i)= *A(i)を行なう。但し、 *A(i)は1
ビットA(i)の論理否定演算を表す。
で行なわれる部分積生成回路生成処理と同様の処理であ
り、図26に示す部分積生成回路222を生成する処理
である。つまり、図22に示す変換規則3を適用して、
被乗数Xと乗数Aの論理否定定数A0とから部分積を生
成する回路を生成する処理である。
で行なわれる部分積加算木生成処理と同様の処理であ
り、図26に示す部分積加算木223を生成する処理で
ある。つまり、図26に示す部分積加算木223を、図
23に示す変換規則4を適用して、数ステージの加算器
からなる、キャリーの伝搬を少なくした加算木として生
成する処理である。
算木223の出力を入力とする論理否定回路224及び
225を示す回路情報を生成し、回路データ記憶部23
に登録する処理である。本例では、論理否定回路224
及び225は、それぞれ Lビットのインバータである。
R3を被乗数Xから作成する処理であり、具体的には、
Lビット補正信号R3は計算式X×2m +2から求まる
信号の下位 Lビット信号として作成できる。
回路224及び225の出力R1、R2と補正信号R3
とを加算する最終和回路を示す回路情報を生成し、回路
データ記憶部23に登録する処理である。具体的には、
図26の例では、R1、R2と補正信号R3とを加算す
る桁上げ保存加算器(CSA)226と、その出力であ
る部分和と部分桁上げとを加算する桁上げ先見加算器
(CLA)227とを生成する処理である。但し、桁上
げ先見加算器(CLA)227において桁上げ保存加算
器(CSA)226の出力である部分和と部分桁上げと
を加算する際に、その2つの出力の桁合わせをして加算
する(つまり、部分桁上げ信号を1ビット上位へシフト
して最下位ビットを0にしたものと部分和とを加算す
る)。
保存加算器(CSA)226と桁上げ先見加算器(CL
A)227とで構成しているが、他の構成でも何ら差し
障りない。さらに、ステップ215において、 Lビット
補正信号をR3=X×2m +2としたが、R3=X×2
m +1又はR3=X×2m とし、桁上げ先見加算器(C
LA)227において1又は2をそれぞれ足し込んでも
よい。但し、1の足し込み方法としては、桁上げ先見加
算器(CLA)227のキャリーインを1にするか、又
は、桁上げ保存加算器(CSA)226の部分桁上げ信
号を1ビット上位へシフトして最下位ビットを1にした
ものと部分和とを桁上げ先見加算器(CLA)227で
加算する。また、2の足し込み方法としては、桁上げ保
存加算器(CSA)226の部分桁上げ信号を1ビット
上位へシフトして最下位ビットを1にしたものと部分和
とを、キャリーインを1にして桁上げ先見加算器(CL
A)227で加算する。
に対応する乗算器を示す回路情報を回路データ記憶部2
3から削除する処理である。
割による乗算器生成処理の詳細を図12及び図27に基
づいて説明する。
器生成処理で用いられる変換規則8を示す模式図であ
り、図27に示すように、変換規則8は、ビット幅がm
の定数の乗数Aをビット幅がnの被乗数Xに乗算してビ
ット幅が Lの積Pを出力する乗算器241を、posi
bits(A1)+posibits(A2)>2の場
合、図7のステップ143で決定されたA1を被乗数X
に乗算して部分積P0 、・・・・・、Pk-1 を求める部
分積生成回路242と、ステップ143で決定されたA
2を被乗数Xに乗算して部分積O0 、・・・・・、O
H-1 を求める部分積生成回路243と、これらの部分積
O0 、・・・・・、OH-1 の論理否定をそれぞれとる L
ビットの論理否定回路244と、・・・・・、245
と、それらの出力R0 、・・・・・、RH-1 と部分積P
0 、・・・・・、Pk とを加算する部分積加算木246
と、その出力である部分和Q0 と部分桁上げQ1 と補正
数Hとを加算する最終和回路とから構成される回路に変
換することを示すものである。
り、補正数Hは2であるので、前記最終和回路は、部分
積加算木246の出力である部分和Q0 と、部分桁上げ
Q1に対して値が計算式Q1 ×2+1である信号の下位
Lビット信号とをキャリーインを1にして加算する桁上
げ先見加算器(CLA)247から構成される回路に変
換することを示すものである。ここで、桁上げ先見加算
器(CLA)247に入力される部分桁上げQ1 に対応
する信号は、部分和Q0 との桁合わせを行なうため部分
積加算木246の部分桁上げ出力Q1の下位 L−1ビッ
トを1ビットシフト(つまり、2倍)して、最下位ビッ
トの値を1にした信号である。 特に、補正数Hが1で
ある場合には、より簡単に、前記最終和回路は、部分積
加算木246の出力である部分和Q0 と部分桁上げQ1
とをキャリーインを1にして加算する桁上げ先見加算器
(CLA)から構成される回路(つまり、図27の桁上
げ先見加算器(CLA)240と同様の回路)に変換す
るものである。
り一般的な場合には、部分積加算木246の入力に補正
数Hを追加して加算し、最終和回路は、その部分積加算
木の出力である部分和Q0 と、部分桁上げQ1 とを加算
する桁上げ先見加算器(CLA)から構成される回路に
変換することが可能である。
(A1)+posibits(A2)=2の場合、ステ
ップ143で決定されたA1を被乗数Xに乗算して部分
積P0を求める部分積生成回路248と、ステップ14
3で決定されたA2を被乗数Xに乗算して部分積O0 を
求める部分積生成回路249と、この部分積O0 の論理
否定をとる Lビットの論理否定回路250と、その出力
R0 と部分積P0 とをキャリーインを1にして加算する
桁上げ先見加算器(CLA)240とから構成される回
路に変換することを示すものである。
先見加算器(CLA)247、240であるが、他の加
算器でもよい。
よる乗算器生成処理の詳細を示すフローチャートであ
り、図12に示すように、ステップ231は、図8のス
テップ151で行なわれる部分積生成回路生成処理と同
様の処理であり、乗数Aの代わりにステップ143で決
定された定数A1を被乗数Xに乗算する図27に示す部
分積生成回路242を生成する処理である。つまり、図
22に示す変換規則3を適用して、被乗数Xと前記定数
A1とから部分積を生成する回路を生成する処理であ
る。
の処理であり、乗数Aの代わりにステップ143で決定
された定数A2を被乗数Xに乗算する図27に示す部分
積生成回路243を生成する処理である。つまり、図2
2に示す変換規則3を適用して、被乗数Xと前記定数A
2とから部分積を生成する回路を生成する処理である。
された、図27に示す部分積生成回路243の出力
O0 、・・・・・、OH-1 を入力とする論理否定回路2
44、・・・・・、245を示す回路情報を生成し、回
路データ記憶部23に登録する処理である。本例では、
論理否定回路244、・・・・・、245は、それぞれ
Lビットのインバータである。
1)+posibits(A2)が2に等しい(つま
り、posibits(A1)+posibits(A
2)=2)かどうかを判定する判定処理である。pos
ibits(A1)+posibits(A2)が2に
等しいならばステップ236に移行し、ステップ236
で最終和回路の生成を行なう一方、posibits
(A1)+posibits(A2)が2に等しくない
ならばステップ235に移行し、ステップ235で部分
積加算木の生成を行なう。
で行なわれる部分積加算木生成処理と同様の処理であ
り、ステップ231、233で生成された回路の出力に
対して図27に示す部分積加算木246を生成する処理
である。つまり、図27に示す、部分積P0 、・・・・
・、Pk-1 と、R0 、・・・・・、RH-1 とを加算する
部分積加算木246を、図23に示す変換規則4を適用
して、数ステージの加算器からなる、キャリーの伝搬を
少なくした加算木として生成する処理である。
加算木246から出力される部分和Q0 と部分桁上げQ
1 と補正数Hとを加算するか、又は、部分積生成回路2
48の出力P0 と論理否定回路250の出力R0 と補正
数1とを加算する最終和回路を示す回路情報を生成し、
回路データ記憶部23に登録する処理である。
の場合)では、部分積加算木246から出力される部分
和Q0 と部分桁上げQ1 に対して値が計算式Q1 ×2+
1である信号の下位 Lビット信号とをキャリーインを1
にして加算する桁上げ先見加算器(CLA)247を生
成する処理である。但し、桁上げ先見加算器(CLA)
247における補正数1の加算の方法としては、桁上げ
先見加算器(CLA)のキャリーインを1にするか、又
は、部分桁上げ信号Q1 を1ビット上位へシフトして最
下位ビットを1にしたものと部分和とを桁上げ先見加算
器(CLA)で加算する。補正数2の加算の方法として
は、部分桁上げ信号Q1 を1ビット上位へシフトして最
下位ビットを1にしたものと部分和とをキャリーインを
1にして桁上げ先見加算器(CLA)247で加算す
る。また、posibits(A1)+posibit
s(A2)=2の場合には、部分積生成回路248の出
力P0 と論理否定回路250の出力R0 とをキャリーイ
ンを1にして加算する桁上げ先見加算器(CLA)24
0を生成する処理である。
回路において、桁上げ先見加算器(CLA)247、2
40を用いて加算しているが、この構成であるとHが2
以下の場合しか対応できない。しかし、最終和回路は前
記部分和Q0 と部分桁上げQ1 と補正数Hとの加算さえ
できれば他の構成でも何ら差し障りない。さらに、図2
7で説明したように、補正数Hを最終和回路において加
算しないで、ステップ235で補正数Hも加算する部分
積加算木を生成してもよい。
に対応する乗算器を示す回路情報を回路データ記憶部2
3から削除する処理である。
数Aの分割処理すなわちA1、A2の決定処理の詳細を
図13に基づいて説明する。
定処理の詳細を示すフローチャートであり、図13に示
すように、ステップ251は、ビット位置変数iと、候
補ビット位置集合Uとに初期値を設定する。つまり、i
に0を設定し、Uに空集合(つまり、φ)を設定する。
(i+3:i)が2進表現‘1101’に等しいかどう
かを判定する判定処理である。等しいならばステップ2
53に移行し、ステップ253で候補ビット位置集合U
への設定を行なう。一方、等しくないならばステップ2
54に移行し、ステップ254で次の判断処理を行な
う。
に要素i+1とi+2を追加する処理である。つまり、
Uと{i+1,i+2}との和集合U U{i+1,i+
2}を改めてUと設定する。
(i+3:i)が2進表現‘1100’に等しいかどう
かを判定する判定処理である。等しいならばステップ2
55に移行し、ステップ255で候補ビット位置集合U
への設定を行なう。一方、等しくないならばステップ2
56に移行し、ステップ256で次の判断処理を行な
う。
に要素i+2を追加する処理である。つまり、Uと{i
+2}との和集合U U{i+2}を改めてUと設定す
る。
に対して判定したかどうか、つまり、ビット位置変数i
がm−3よりも小さいかどうかを判定する判定処理であ
る。iがm−3よりも小さいならばステップ257に移
行し、ステップ257でビット位置変数iをカウントア
ップする。一方、iがm−3以上ならばステップ258
に移行し、ステップ258で別の初期値設定処理を行な
う。
処理するため、ビット位置変数iをi+1の値に更新す
る処理である。本処理の終了後、ステップ252に戻
り、更新されたiに対してステップ252〜255の処
理を繰り返し実行する。
ーjに初期値を設定する処理である。つまり、A1に乗
数Aを、A2に0を、jに1をそれぞれ設定する。
の中から選んだj個の要素からなる集合Vを、posi
bits(A+Σ2α)が最小になるように決定する処
理である。ここで、αは集合Vの任意の要素を表し、Σ
2αは集合Vの各要素α毎に求められる2αを全ての要
素αについて加算した総和を表すものとする。
された集合Vに対して、posibits(A+Σ
2α)+j+δと、posibits(A1)+pos
ibits(A2)との大小関係の判定を行なう判定処
理である。但し、δは、posibits(A2)=2
の場合には1であり、その他の場合には0である。この
δは、posibits(A2)=2の場合には、図1
2の説明で述べた補正数Hが3以上となり、図27の部
分積加算木246においてこの補正数を加算する必要が
あるためである。ステップ260の判定で、posib
its(A+Σ2α)+j+δがposibits(A
1)+posibits(A2)よりも小さいならばス
テップ261に移行し、ステップ261でA1、A2の
更新処理を行なう。一方、posibits(A+Σ2
α)+j+δがposibits(A1)+posib
its(A2)以上であればステップ262に移行し、
ステップ262で終了判定を行なう。
αの値を設定し、A2にΣ2αの値を設定する更新処理
である。
置集合Uと等しい(つまり、V=U)かどうかを判定す
る判定処理である。等しいならば、ステップ143のA
1、A2の決定処理は終了する一方、等しくなければ、
ステップ263に移行し、ステップ263でカウンター
jをカウントアップする。
の値に更新する処理である。本処理の終了後、ステップ
259に戻り、更新されたjに対してステップ259〜
261の処理を繰り返し実行する。
V=Uとなるまで全てのjに対して処理を行っている
が、簡単化のため、ステップ260の判定処理でpos
ibits(A+Σ2α)+j+δがposibits
(A1)+posibits(A2)以上であれば、ス
テップ262に移行しないで終了してもよい。さらに、
ステップ262の判定処理をj=2かどうかを判定する
処理に代えても、posibits(A1)+posi
bits(A2)はposibits(A)よりも小さ
くなるので部分積の数を減らす効果はある。
算器と等価な回路に変換できることを数式を用いて証明
する。但し、変換規則2〜6は自明であるので割愛す
る。また、一般性を失う事なく、 L=m+nとして説明
する。
−1)と1ビット幅の変数の乗数Y(0)との論理積P
(n−1)をとるAND回路であり、133は、1ビッ
ト幅の被乗数X(n−2)と1ビット幅の変数の乗数Y
(0)との論理積P(n−2)をとるAND回路であ
り、・・・・・、134は、1ビット幅の被乗数X
(1)と1ビット幅の変数の乗数Y(0)との論理積P
(1)をとるAND回路であり、135は、1ビット幅
の被乗数X(0)と1ビット幅の変数の乗数Y(0)と
の論理積P(0)をとるAND回路である。
ので、 X(i)・Y(0)=X(i)andY(0) である。よって、 P(i)=X(i)andY(0) (0≦i≦n
−1) P(n)=0 となる。
数を *Zで表す。
+[Q1 の2の補数] となる。よって、(3)式は、 P=X・A =X・2m +[Q0 の2の補数]+[Q1 の2の補数] =X・2m + *Q0 +1+ *Q1 +1 = *Q0 + *Q1 +X・2m +2 = *Q0 + *Q1 +(X・2m +2) …(5) となる。
すmビットの信号と被乗数Xを表す信号の合成により信
号R3として求められる。
1 は、それぞれ、部分積加算木223の出力である部分
和Q0 、部分桁上げQ1 の論理否定である。但し、Q0
とQ1 とは桁合わせを図26に示すようにしている。し
たがって、積Pは、(5)式の第1項から第3項まで
を、桁上げ保存加算器(CSA)226及び桁上げ先見
加算器(CLA)227から成る最終和回路により加算
して求められる。
6のA0であり、右辺第1項X・ *Aは部分積生成回路
222により、部分積P0 、・・・、PK-1 として求め
られる。また、(6)式の左辺のQ0 、Q1 は、部分積
P0 、・・・、PK-1 と右辺第2項のXとを部分積加算
木223により加算することによって、部分和Q0 、部
分桁上げQ1 として求められる。但し、(6)式の右辺
第2項のXを部分積加算木223で加算する際には、X
の0拡張した信号を入力する。
数を *Zで表す。
と被乗数Xとの部分積であり、部分積生成回路242に
より求められる。また、第2項の各 *Oi はmビット信
号A2と被乗数Xとの部分積であり、部分積生成回路2
43と論理否定回路244、・・・、245とにより求
められる。一般に、これらの部分積Pi (但し、i=
0,・・・,K−1)と *Oi (但し、i=0,・・
・,H−1)と第3項のHとを、部分積加算木246と
最終和回路247とで加算することにより積Pを求める
ことが出来る。
(H>0)の場合には、
2は、部分積Pi (但し、i=0,・・・,K−1)と
*Oi (但し、i=0,・・・,H−1)とを加算する
部分積加算木246の部分和Q0 と部分桁上げQ1 とし
て求められる。また、第2項Q1 ・2+1は、図27に
示すように部分桁上げQ1 の下位に値1の1ビット信号
を合成した信号である。但し、最上位ビット(つまり、
m+nビット目)Q1 (m+n−1)は考慮しない。さ
らに、第1項Q0 、第2項Q1 ・2+1、第3項H−1
は最終和回路247で加算され、積Pを求めることがで
きる。
合と捉えることができる。つまり、定数Aについて、 −A= *A+1−2m ←→ A=2m −( *A+1) が成立ち、変換規則8において、 A1=2m であり、且つ、 A2=( *A+1) である場合に当たる。
部分積加算木の入力である。したがって、積Pは、前記
部分積加算木の出力と第4項K+1とを最終和回路によ
り加算して求められる。
ビットシフトしたものであり、第2項は乗数の論理否定
*Aと被乗数Xとを入力とする部分積生成回路の出力で
あり、第3項は被乗数Xを入力とする論理否定回路の出
力である。
場合と捉えることができる。つまり、変換規則8で、A
1=A、A2=0にすることによって、容易に変換規則
2が導き出せる。
設計システムにおいては、乗算器に入力される乗数が定
数Aである場合に、乗数Aにおける値が1であるビット
の総個数が3以上であると、乗数Aにおける値が1であ
るビットに対応する部分積を求める回路が生成され、部
分積和を求める回路が桁上げ保存加算器の加算木により
構成される。これにより、加算の論理段数を少なく抑え
ることができると共に、乗算速度を高速にすることが可
能となる。
の総個数が2以下であると、値が1であるビットに関し
てのみ部分積を求める回路が構成される。これにより、
部分積数を少なく抑えることができ、回路面積の削減が
可能となる。
の総個数が多数であると、乗数Aの論理否定数と被乗数
とから部分積を求める回路と、その部分積と補正信号と
を加算する桁上げ保存加算器の加算木と、それらを補正
する回路とが構成される。これにより、部分積数や回路
面積の削減が可能となる。
ットの総個数が多数であると、差が乗数Aに等しく、且
つ、値が1であるビットの総個数が最小となる定数A
1、A2(但し、A=A1−A2)に対して、定数A1
と被乗数とから部分積を求める回路と、定数A2と被乗
数とから部分積を求める回路と、定数A2に対する部分
積の論理否定を求める回路と、A1に対する部分積とA
2に対する部分積の論理否定とを加算する桁上げ保存加
算器の加算木と、それらを補正する回路とが構成され
る。これにより、部分積数や回路面積の削減が可能とな
る。
る論理回路の自動設計システムについて説明する。 実
施例2の自動設計システムは、実施例1と同様のハード
ウェア構成を持ち、その回路設計処理において、実施例
1における図7の乗算器生成処理の代わりに図14に示
す乗算器生成処理を行なうものである。
る乗算器生成処理の詳細を示すフローチャートであり、
この乗算器生成処理は、実施例1における図12の分割
による乗算器生成処理を拡張した処理である。この乗算
器生成処理では、概略、次のようにして、部分積数と部
分積和を求める回路の論理段数とを少なく抑えるように
なっている。すなわち、乗数が定数である場合には、部
分積数を少なくするために、差が乗数に等しい2つの定
数において、値が1であるビットに関してのみ部分積を
求める回路に変換する。また、乗数が定数である場合及
び乗数が変数である場合の何れの場合にも、部分積和を
求める回路の論理段数を少なくするために、キャリーの
伝搬を少なくした加算木を用いた回路に変換する。
0は、図7のステップ141と同様の判定処理であり、
乗数が変数であれば、変数同士の乗算であるのでステッ
プ271に移行し、ステップ271で2つの定数A1、
A2の設定を行なう。一方、乗数が定数Aであれば、ス
テップ272に移行し、ステップ272で乗数Aを差が
Aに等しい2つの定数A1、A2に分割する。
の設定を行なう処理であり、具体的には、A1に乗数A
を、A2に0(つまり、A1=A、A2=0)をそれぞ
れ設定する処理である。本処理の終了後、ステップ27
3に移行する。
143と同様な処理であり、図13に示すフローチャー
トにしたがって、A=A1−A2を満たし、且つ、po
sibits(A1)+posibits(A2)の値
が最小となるようなA1とA2とを決定する処理であ
る。なお、変換規則2に対応するA1=A、A2=0、
及び変換規則9に対応するA1=2m 、A2=( *A+
1)も特殊なケースとして含む。
1と同様の処理であり、乗数Aの代わりにステップ27
1又は272で決定されたA1に対して、図9で説明し
た部分積生成回路生成処理を行なう。つまり、前記A1
と被乗数Xとから、図22に示す変換規則3を適用して
部分積を生成する回路を生成する処理である。
かどうかの判定を行なう。A2が0に等しい(つまりA
2=0)ならば、ステップ275及び276のA2に対
する処理を省いてステップ277に移行する一方、A2
が0に等しくなければ、ステップ275に移行し、ステ
ップ275でA2に対する部分積生成回路を生成する処
理を行なう。
2と同様の処理であり、乗数Aの代わりにステップ27
1又は272で決定された定数A2に対して、図9で説
明した部分積生成回路生成処理を行なう。つまり、図2
2に示す変換規則3を適用して、被乗数Xと前記定数A
2とから部分積を生成する回路を生成する処理である。
3と同様の処理であり、ステップ275で生成された部
分積生成回路の出力を入力とする論理否定回路を示す回
路情報を生成し、回路データ記憶部23に登録する処理
である。本例では、論理否定回路はインバータである。
個数とA2に対する部分積の個数との和、つまり、po
sibits(A1)+posibits(A2)が1
に等しいか、2に等しいか、又は、2よりも大きいかを
判定する判定処理である。部分積総数が1に等しい(つ
まり、posibits(A1)+posibits
(A2)=1)ならば、ステップ280に移行し、ステ
ップ280で最終の乗算器の削除処理を行ない、部分積
総数が2に等しい(つまり、posibits(A1)
+posibits(A2)=2)ならば、ステップ2
79に移行し、ステップ279で最終和回路の生成を行
ない、部分積総数が2よりも大きいならば、ステップ2
78に移行し、ステップ278で部分積加算木の生成を
行なう。但し、A1が変数(つまり、乗数が変数)であ
る場合には、A1に対する部分積の個数はそのビット幅
mに等しい。
5と同様の処理であり、ステップ273、276で生成
された回路の出力に対して、図10で説明した部分積加
算木生成処理を行ない、部分積加算木を生成する処理で
ある。つまり、図23に示す変換規則4を適用して、数
ステージの加算器からなる、キャリーの伝搬を少なくし
た加算木として生成する処理である。
あるいは図12のステップ236と同様な処理であり、
部分積加算木から出力される部分和Q0 、部分桁上げQ
1 と補正数Hとを加算する、又は、部分積生成回路の出
力と論理否定回路の出力と補正数1とを加算する、又
は、部分積加算木からの出力を加算する、又は、部分積
生成回路の出力を加算する最終和回路を示す回路情報を
生成し、回路データ記憶部23に登録する処理である。
5、図11のステップ217又は図12のステップ23
7と同様の処理であり、乗算器を示す回路情報を回路デ
ータ記憶部23から削除する処理である。
る論理回路の自動設計装置を図面に基づいて説明する。
ける図5のステップ1013すなわち図7のステップ1
41〜148と同様の処理を行うものである。
示すブロック図であり、図15において、2600は入
力手段、2601〜2604は判定手段、2611は乗
数AをA1、A2に分割する乗数分割手段、2612は
論理否定信号作成手段、2613は補正数作成手段、2
614は補正信号作成手段、2621〜2624は部分
積生成回路生成手段、2651、2652は論理否定回
路生成手段、2661〜2663は部分積加算木生成手
段、2671は信号接続回路生成手段、2681〜26
85は最終和回路生成手段、2690は乗算器削除手段
(回路削除手段)である。
27にそれぞれ示す元の機能素子である乗算器191、
221又は241を示す回路情報を図2の回路データ記
憶部23から読み出し、乗算器191、221又は24
1の入力がmビットの乗数Y又はAであることを示す情
報を判定手段2601及び乗算器削除手段(回路削除手
段)2690に出力し、且つ、もう一方の入力がnビッ
トの被乗数Xであることを示す情報を部分積生成回路生
成手段2621〜2624、補正信号作成手段2614
及び乗算器削除手段(回路削除手段)2690に出力す
る。また、乗算器191、221又は241の出力が L
ビットの積Pであることを示す情報を最終和回路生成手
段2681〜2685、信号接続回路生成手段2671
及び乗算器削除手段(回路削除手段)2690に出力す
る。
1又は241の乗数が変数Yであるか定数Aであるかを
判定する手段であり、乗数が変数Yであるならば乗数Y
を示す情報を部分積生成回路生成手段2621に出力す
る。また、乗数が定数Aであるならば乗数Aを示す情報
を乗数分割手段2611に出力する。
定数A1と定数A2に分割するため、A=A1−A2を
満たし、且つ、posibits(A1)+posib
its(A2)が最小となる定数A1、A2を図13に
示す方法で決定する。さらに、定数A1、A2と元の乗
数Aとを示す情報を判定手段2602に出力する。
(A)、posibits(A1)+posibits
(A2)及びnegabits(A)+2(つまり、m
−posibits(A)+2)のうちの何れが最小で
あるかを判定する手段であり、posibits(A)
が最小(他と等しい場合も含む)であるならば、乗算器
191の乗数Aを示す情報を部分積生成回路生成手段2
621に出力する。また、posibits(A1)+
posibits(A2)が最小(negabits
(A)+2と等しい場合も含む)であるならば、乗算器
241の乗数Aに対して乗数分割手段2611で決定さ
れたA1を示す情報を部分積生成回路生成手段2622
に出力し、A2を示す情報を部分積生成回路生成手段2
623及び補正数作成手段2613に出力する。さら
に、negabits(A)+2が単独で最小であるな
らば、乗算器221の乗数Aを示す情報を論理否定信号
作成手段2612に出力する。
221の乗数Aを論理否定した定数A0を求める手段で
あり、その定数A0を示す情報を部分積生成回路生成手
段2624に出力する。
4は、乗算器191、221又は241の被乗数Xと乗
数Y、A、A1、A2又はA0の何れかとを示す情報を
入力してそれらの積を部分積として出力する部分積生成
回路を示す回路情報を生成し、回路データ記憶部23に
登録する手段である。
1は、乗算器191の被乗数Xと乗数Y又はAの何れか
を示す情報を入力して、それらの部分積P1 、・・・、
PKを出力する部分積生成回路を生成し、回路データ記
憶部23に登録する手段であり、前記部分積P1 、・・
・、PK を示す情報を判定手段2603に出力する。
器241の被乗数Xと前記定数A1とを示す情報を入力
して、それらの部分積P0 、・・・、PK-1 を出力する
部分積生成回路を生成し、回路データ記憶部23に登録
する手段であり、前記部分積P0 、・・・、PK-1 を示
す情報を判定手段2604に出力する。
器241の被乗数Xと前記定数A2とを示す情報を入力
して、それらの部分積Q0 、・・・、QH-1 を出力する
部分積生成回路を生成し、回路データ記憶部23に登録
する手段であり、前記部分積Q0 、・・・、QH-1 を論
理否定回路生成手段2651に出力する。
器221の被乗数Xと乗数Aの論理否定定数A0とを示
す情報を入力して、それらの部分積P0 、・・・、P
K-1 を出力する部分積生成回路を生成し、回路データ記
憶部23に登録する手段であり、前記部分積P0 、・・
・、PK-1 を示す情報を部分積加算木生成手段2663
に出力する。
分積Q0 、・・・、QH-1 を示す情報を入力して、それ
らの個々の論理否定信号R0 、・・・、RH-1 を出力す
る論理否定回路を生成し、回路データ記憶部23に登録
する手段であり、前記部分積R0 、・・・、RH-1 を示
す情報を判定手段2604に出力する。
・・、PK の個数Kが1か2か3以上の何れであるかを
判定する手段であり、前記部分積の個数Kが1であるな
らば、その部分積P1 を示す情報を信号接続回路生成手
段2671に出力する。また、前記部分積の個数Kが2
であるならば、その部分積P1 、P2 を示す情報を最終
和回路生成手段2681に出力する。さらに、前記部分
積の個数Kが3以上であるならば、その部分積P1 、・
・・、PK を示す情報を部分積加算木生成手段2661
に出力する。
・・、PK-1 と部分積R0 、・・・・、RH-1 の個数の
和K+Hが2(つまり、K=1且つH=1)か3以上の
何れであるかを判定する手段であり、その個数の和K+
Hが2(つまり、K=1&H=1)であるならば、その
部分積P0 、R0 を示す情報を示す情報を最終和回路生
成手段2684に出力する。さらに、前記部分積の個数
の和K+Hが3以上であるならば、その部分積P0 、・
・・、PK-1 、R0 、・・・、RH-1 を示す情報を部分
積加算木生成手段2662に出力する。
は、部分積P1 、・・・、PK 、部分積P0 、・・・、
PK-1 、R0 、・・・、RH-1 、又は、部分積P0 、・
・・、PK-1 の何れかを示す情報を入力してそれらの部
分積同士を加算し、部分和及び部分桁上げ(Q1 、Q2
又はQ0 、Q1 )を出力する部分積加算木を示す回路情
報を生成し、回路データ記憶部23に登録する手段であ
る。
は、部分積P1 、・・・、PK を示す情報を入力して、
それらの部分和Q1 及び部分桁上げQ2 を出力する部分
積加算木を生成し、回路データ記憶部23に登録する手
段であり、前記部分和Q1 及び部分桁上げQ2 を示す情
報を最終和回路生成手段2682に出力する。
P0 、・・・、PK-1 、R0 、・・・、RH-1 を示す情
報を入力して、それらの部分和Q0 及び部分桁上げQ1
を出力する部分積加算木を生成し、回路データ記憶部2
3に登録する手段であり、前記部分和Q0 及び部分桁上
げQ1 を示す情報を最終和回路生成手段2683に出力
する。
P0 、・・・、PK-1 を示す情報を入力して、それらの
部分和Q0 及び部分桁上げQ1 を出力する部分積加算木
を生成し、回路データ記憶部23に登録する手段であ
り、前記部分和Q0 及び部分桁上げQ1 を示す情報を論
理否定回路生成手段2652に出力する。
分和Q0 及び部分桁上げQ1 を示す情報を入力して、そ
れらの個々の論理否定信号R1 、R2 を出力する論理否
定回路を生成し、回路データ記憶部23に登録する手段
であり、その論理否定信号R1 、R2 を示す情報を最終
和回路生成手段2685に出力する。
を示す情報を入力して、最終和の補正数としてH=po
sibits(A2)を求める手段であり、その補正数
Hを示す情報を最終和回路生成手段2683に出力す
る。
示す情報及び数値2を入力して、最終和の補正信号R3
を図26に示すように計算式X×2m +2から求まる信
号の下位 Lビット信号として作成する手段であり、その
補正信号R3 を示す情報を最終和回路生成手段2685
に出力する。
は、部分積P1 、P2 、又は、部分和Q1 及び部分桁上
げQ2 、又は、部分和Q0 、部分桁上げQ1 及び補正数
H、又は、部分積P0 、R0 、又は、信号R1 、R2 、
R3 の何れかを示す情報を入力してそれらを加算し、そ
の最終和を乗算器191、221又は241の出力であ
る Lビットの積Pとして出力する最終和回路を示す回路
情報を生成し、回路データ記憶部23に登録する手段で
ある。
は、前記部分積P1 、P2 を示す情報と乗算器191の
出力が Lビットの積Pであることを示す情報とを入力し
て、それらの部分積P1 、P2 を加算し、それらの最終
和を乗算器191の積Pとして出力する最終和回路を示
す回路情報を生成し、回路データ記憶部23に登録する
手段である。
和Q1 及び部分桁上げQ2 を示す情報と乗算器191の
出力が Lビットの積Pであることを示す情報とを入力し
て、それらの部分和Q1 、部分桁上げQ2 を加算し、そ
れらの最終和を乗算器191の積Pとして出力する最終
和回路を示す回路情報を生成し、回路データ記憶部23
に登録する手段である。
和Q0 、部分桁上げQ1 及び補正数Hを示す情報と乗算
器241の出力が Lビットの積Pであることを示す情報
とを入力して、それらの部分和Q0 、部分桁上げQ1 及
び補正数Hを加算し、それらの最終和を乗算器241の
積Pとして出力する最終和回路を示す回路情報を生成
し、回路データ記憶部23に登録する手段である。
積P0 、R0 を示す情報と乗算器241の出力が Lビッ
トの積Pであることを示す情報とを入力して、それらの
部分積P0 、R0 を加算し、それらの最終和を乗算器2
41の積Pとして出力する最終和回路を示す回路情報を
生成し、回路データ記憶部23に登録する手段である。
否定信号R1 、R2 、及び補正信号R3 を示す情報と乗
算器221の出力が Lビットの積Pであることを示す情
報とを入力して、それらの論理否定信号R1 、R2 、補
正信号R3 を加算し、それらの最終和を乗算器221の
積Pとして出力する最終和回路を示す回路情報を生成
し、回路データ記憶部23に登録する手段である。
分積P1 を示す情報と乗算器191の出力が Lビットの
積Pであることを示す情報とを入力して、それらの信号
P1とPとを接続する信号接続回路を示す回路情報を生
成し、回路データ記憶部23に登録する手段である。
は、乗算器191、221又は241の入力がmビット
の乗数Y又はAとnビットの被乗数Xとであることを示
す情報と、その出力が Lビットの積Pであることを示す
情報とを入力して、その乗算器191、221又は24
1を示す回路情報を回路データ記憶部23から削除する
手段である。
成回路生成手段2621〜2624、部分積加算木生成
手段2661〜2663、論理否定回路生成手段265
1、2652、最終和回路生成手段2681〜2685
をそれぞれ同一機能の別々の手段として説明している
が、部分積生成回路生成手段2621〜2624、部分
積加算木生成手段2661〜2663、論理否定回路生
成手段2651、2652、最終和回路生成手段268
1〜2685それぞれの全てあるいは一部を同一手段と
して実現してもよい。
613の出力Hを最終和回路生成手段2683の入力と
しているが、特にHが3以上である場合には、補正数作
成手段2613の出力Hを部分積加算木生成手段266
2の入力に追加し、その補正数Hを部分積加算木で足し
込んでもよい。
(つまり、乗数が変数Yの場合)には、部分積生成回路
の生成において、前記のような部分積生成回路生成手段
2621の回路に限らず、2ビットブースのリコード方
式を適用した回路を生成するようにしてもよい。
る乗算器について説明する。
及び図27の変換規則8にしたがって生成されるもので
ある。ここでは、説明の簡単化のために、変数Xが正数
である場合を示すが、正負両方の値をとり得る場合に
は、符号を拡張してから論理否定をとったり、論理否定
をとってから符号を拡張するようにすればよい。
路222、242、243、248、249は、定数A
1、A2における値が1であるビットに対応する部分の
みの被乗数Xのシフト回路によって構成される。また、
ゲート220、224、225、244、245、25
0はインバータである。部分積加算器223、246
は、桁上げ保存加算器をツリー状に配して構成してい
る。加算器226は、補正項の加算を行なう桁上げ保存
加算器である。さらに、最終和回路227、247、2
40は桁上げ先見加算器であり、キャリーインを利用し
て補正項の加算を行なう。前記のように、補正して積P
を求める演算は種々の変形が可能である。
ビットの論理否定をとった定数A0、又は、A=A1−
A2を満たす定数A1、A2が求められ、この定数と被
乗数Xとが乗算されるので、乗数Aのビット数がm/2
よりも大きい場合でも、部分積数をm/2個以下にする
ことができる。これにより、回路面積の削減や乗算速度
の向上を図ることができる。
タ記憶部23に格納される回路情報として、機能素子、
論理素子、実装素子などの素子を中心に、素子間の入出
力関係に着目して回路を表すデータ表現が用いられる例
を説明したが、これに限らず、素子間のつながり、すな
わち、信号を中心にしたデータ表現が用いられる場合な
どでも、同様な変換規則に基づく回路の変換処理が可能
である。
に基づく回路の変換処理に限らず、回路データの各部分
を特定の順序で逐次的に生成し登録する処理でもよい。
乗数との積Pがより一般的に任意のビット幅 Lである場
合だけを説明した。つまり、積Pのビット幅 Lがn+m
よりも小さい場合には、乗算結果の下位から Lビットを
とればよく、 Lがn+mよりも大きい場合には、n+m
ビットの乗算結果を下位のビットとし、上位のビットを
符号拡張又は0拡張すればよい。
係る論理回路の自動設計方法によると、乗数における値
が1であるビットに対する部分積を求める回路のみが生
成されるため、部分積を求める回路の個数を低減できる
ので、論理回路の面積を縮小でき乗算速度の高速化を容
易に図ることができる。
の自動設計方法によると、部分積を加算する回路を桁上
げ保存加算器などを用いて木状にバランスよく構成する
ことができるため、部分積の加算段数を低減できるので
乗算速度の高速化をさらに向上させることができる。
回路の自動設計方法によると、乗数における値が1であ
るビットの個数が多い場合にも、乗数を差が該乗数に等
しい2つの定数に分割するか、又は、乗数の論理否定信
号を作成することによって、値が1であるビットの総数
を少なくすることが可能である。これにより、論理回路
における部分積の個数を低減することができる。
回路の生成において、論理素子数や論理段数が少なく小
型で高速な論理回路を効率的に自動設計することができ
る論理回路の自動設計方法を提供することができる。
論理回路の自動設計システム又は自動設計装置による
と、以上のように部分積の個数や加算の論理段数を低減
できる論理回路を、自動設計システムの演算処理手段が
各処理を実行する、又は、自動設計装置の各手段がそれ
ぞれの処理を実行することによって容易に生成すること
ができる。
ると、乗数の論理否定信号又は差が乗数に等しい2つの
定数における値が1である各ビットに対する部分積のみ
が、桁上げ保存加算器などから成る加算木によって加算
されるため、論理素子数や論理段数が少なくてLSI化
に適した高速な乗算器を提供することができる。
ステムの構成を示すブロック図である。
図である。
ローチャートである。
の詳細を示すフローチャートである。
詳細を示すフローチャートである。
処理の詳細を示すフローチャートである。
理の詳細を示すフローチャートである。
乗算器生成処理の詳細を示すフローチャートである。
生成処理の詳細を示すフローチャートである。
生成処理の詳細を示すフローチャートである。
る乗算器生成処理の詳細を示すフローチャートである。
算器生成処理の詳細を示すフローチャートである。
の詳細を示すフローチャートである。
システムによる乗算器生成処理を示すフローチャートで
ある。
装置の構成を示すブロック図である。
に格納される回路データを示しており、(a)は回路を
示す模式図であり、(b)は機能記述情報を示す図であ
り、(c)は機能回路情報を示す図である。
に格納される回路データを示しており、(a)は回路を
示す模式図であり、(b)は機能記述情報を示す図であ
り、(c)は機能回路情報を示す図である。
ステムによる設計処理における機能素子としての乗算器
を示す模式図である。
成される回路を示す回路図である。
(b)は変換規則1の実際の表現形式を示す図である。
Claims (36)
- 【請求項1】 乗数と被乗数との積を求める論理回路を
示す情報を生成する論理回路の自動設計方法であって、 乗数の各ビットに対応して、 (a)乗数が変数であるか又は定数であるかを判定する
処理と、 (b)乗数が変数である場合には、乗数の当該ビットの
値に基づいて被乗数を表す信号及び0を表す信号のうち
の一方の信号を選択し且つ選択された信号を部分積とし
て出力する回路を示す情報を生成する処理と、 (c)乗数が定数である場合には、乗数の当該ビットの
値が1であるか否かを判定する処理と、 (d)乗数の当該ビットの値が1である場合には、被乗
数を表す信号を部分積として出力する回路を示す情報を
生成する処理と、 (e)(a)〜(d)の処理を実行した後に、被乗数を
表す信号を1ビットシフトするシフト回路を示す情報を
生成し該シフト回路の出力信号を新たに(a)〜(d)
の処理で用いられる被乗数を表す信号として設定する処
理とを備え、 乗数の全てのビットに対応して、(a)〜(e)の処理
を繰り返し実行することを特徴とする論理回路の自動設
計方法。 - 【請求項2】 乗数と被乗数との積を求める論理回路を
示す情報を生成する論理回路の自動設計方法であって、 乗数の各ビットと被乗数との積としての複数個の部分積
がn個ずつに分割されて成る部分積群のそれぞれに対応
して、 (a)当該部分積群に属するn個の部分積を入力し且つ
該n個の部分積同士の和をm(<n)個の部分積として
出力する加算回路を示す情報を生成する処理と、 前記複数個の部分積の全てに対応して、 (b)(a)の処理を繰り返し実行した後に、(a)の
処理で生成された加算回路の出力である部分積の全て
と、前記複数個の部分積のうち(a)の処理で生成され
た加算回路の入力信号にならなかった部分積とを、新た
に(a)の処理が施される複数個の部分積として設定す
る処理とを備え、 (a)及び(b)の処理を繰り返し実行することを特徴
とする論理回路の自動設計方法。 - 【請求項3】 乗数と被乗数との積を求める論理回路を
示す情報を生成する論理回路の自動設計方法であって、 乗数の各ビットと被乗数との積としての複数個の部分積
が3個ずつに分割されて成る部分積群のそれぞれに対応
して、 (a)当該部分積群に属する3個の部分積を入力し且つ
該3個の部分積同士の和を2個の部分積として出力する
桁上げ保存加算器を示す情報を生成する処理と、 前記複数個の部分積の全てに対応して、 (b)(a)の処理を繰り返し実行した後に、(a)の
処理で生成された桁上げ保存加算器の出力である部分積
の全てと、前記複数個の部分積のうち(a)の処理で生
成された桁上げ保存加算器の入力信号にならなかった部
分積とを、新たに(a)の処理が施される複数個の部分
積として設定する処理とを備え、 (b)の処理で設定される新たな部分積の個数が2個に
なるまで(a)及び(b)の処理を繰り返し実行するこ
とを特徴とする論理回路の自動設計方法。 - 【請求項4】 乗数と被乗数との積を求める論理回路を
示す情報を生成する論理回路の自動設計方法であって、 (a)乗数の各ビットと被乗数との積としての部分積の
個数がいくつであるかを判定する処理と、 (b)部分積の個数がn個以上の場合には、複数個の部
分積がn個ずつに分割されて成る部分積群のそれぞれに
対応して、(b-1 )当該部分積群に属するn個の部分積
を入力し且つ該n個の部分積同士の和をm(<n)個の
部分積として出力する加算回路を示す情報を生成し、前
記複数個の部分積の全てに対応して、(b-2 )(b-1 )
の処理を繰り返し実行した後に、(b-1 )の処理で生成
された加算回路の出力である部分積の全てと、前記複数
個の部分積のうち(b-1 )の処理で生成された加算回路
の入力信号にならなかった部分積とを、新たに(b-1)
の処理が施される複数個の部分積として設定し、(b-2
)の処理で設定される新たな部分積の個数がm個にな
るまで(b-1 )及び(b-2 )の処理を繰り返し実行する
処理と、 (c)部分積の個数がm個以下且つ2個以上である場合
には、当該個数の部分積を入力し且つ該部分積同士を加
算することにより乗数と被乗数との積を求める最終和回
路を示す情報を生成する処理とを備えていることを特徴
とする論理回路の自動設計方法。 - 【請求項5】 乗数と被乗数との積を求める論理回路を
示す情報を生成する論理回路の自動設計方法であって、 (a)乗数の各ビットに対応して、(a-1 )乗数が変数
であるか又は定数であるかを判定し、(a-2 )乗数が変
数である場合には、乗数の当該ビットの値に基づいて被
乗数を表す信号及び0を表す信号のうちの一方の信号を
選択し且つ選択された信号を部分積として出力する回路
を示す情報を生成し、(a-3 )乗数が定数である場合に
は、乗数の当該ビットの値が1であるか否かを判定し、
(a-4 )乗数の当該ビットの値が1である場合には、被
乗数を表す信号を部分積として出力する回路を示す情報
を生成し、(a-5 )(a-1 )〜(a-4 )の処理を実行し
た後に、被乗数を表す信号を1ビットシフトするシフト
回路を示す情報を生成し該シフト回路の出力信号を新た
に(a-1 )〜(a-4 )の処理で用いられる被乗数を表す
信号として設定し、乗数の全てのビットに対応して、
(a-1 )〜(a-5 )の処理を繰り返し実行することによ
って乗数の各ビットと被乗数との積としての部分積を生
成する処理と、 (b)該部分積の個数がいくつであるかを判定する処理
と、 (c)部分積の個数がn個以上の場合には、複数個の部
分積がn個ずつに分割されて成る部分積群のそれぞれに
対応して、(c-1 )当該部分積群に属するn個の部分積
を入力し且つ該n個の部分積同士の和をm(<n)個の
部分積として出力する加算回路を示す情報を生成し、前
記複数個の部分積の全てに対応して、(c-2 )(c-1 )
の処理を繰り返し実行した後に、(c-1 )の処理で生成
された加算回路の出力である部分積の全てと、前記複数
個の部分積のうち(c-1 )の処理で生成された加算回路
の入力信号にならなかった部分積とを、新たに(c-1)
の処理が施される複数個の部分積として設定し、(c-2
)の処理で設定される新たな部分積の個数がm個にな
るまで(c-1 )及び(c-2 )の処理を繰り返し実行する
処理と、 (d)部分積の個数がm個以下且つ2個以上である場合
には、当該個数の部分積を入力し且つ該部分積同士を加
算することにより乗数と被乗数との積を求める最終和回
路を示す情報を生成する処理とを備えていることを特徴
とする論理回路の自動設計方法。 - 【請求項6】 乗数と被乗数との積を求める論理回路を
示す情報を生成する論理回路の自動設計方法であって、 (a)2つの定数A1、A2を、定数A1と定数A2と
の差A1−A2が定数の乗数Aに等しくなるように決定
する処理と、 (b)定数A1と被乗数Xとを入力しそれらの部分積を
出力する第1の部分積生成回路を示す情報を生成する処
理と、 (c)定数A2と被乗数Xとを入力しそれらの部分積を
出力する第2の部分積生成回路を示す情報を生成する処
理と、 (d)前記第2の部分積生成回路の出力信号を入力しそ
の論理否定信号を出力する論理否定回路を示す情報を生
成する処理と、 (e)前記第1の部分積生成回路の出力信号と前記論理
否定回路の出力信号と補正信号とを入力しそれらの和を
求めて乗数Aと被乗数Xとの積として出力する回路を示
す情報を生成する処理とを備えていることを特徴とする
論理回路の自動設計方法。 - 【請求項7】 乗数と被乗数との積を求める論理回路を
示す情報を生成する論理回路の自動設計方法であって、 (a)2つの定数A1、A2を、定数A1と定数A2と
の差A1−A2が定数の乗数Aに等しくなり且つ定数A
1における値が1であるビットの個数と定数A2におけ
る値が1であるビットの個数との和が最小になるように
決定する処理と、 (b)定数A1と被乗数Xとを入力しそれらの部分積を
出力する第1の部分積生成回路を示す情報を生成する処
理と、 (c)定数A2と被乗数Xとを入力しそれらの部分積を
出力する第2の部分積生成回路を示す情報を生成する処
理と、 (d)前記第2の部分積生成回路の出力信号を入力しそ
の論理否定信号を出力する論理否定回路を示す情報を生
成する処理と、 (e)前記第1の部分積生成回路の出力信号と前記論理
否定回路の出力信号と補正信号とを入力しそれらの和を
求めて乗数Aと被乗数Xとの積として出力する部分積和
回路を示す情報を生成する処理とを備えていることを特
徴とする論理回路の自動設計方法。 - 【請求項8】 (e)の処理は、(e-1 )前記第1の部
分積生成回路の出力信号と前記論理否定回路の出力信号
とを入力しそれらの加算結果を所定の個数の部分積とし
て出力する部分積加算回路を示す情報を生成する処理
と、(e-2 )前記部分積加算回路の出力信号と補正信号
とを入力しそれらの和を求めて乗数Aと被乗数Xとの積
として出力する最終和回路を示す情報を生成する処理と
を有していることを特徴とする請求項6に記載の論理回
路の自動設計方法。 - 【請求項9】 (e)の処理は、(e-1 )複数個の部分
積がn個ずつに分割されて成る部分積群のそれぞれに対
応して、(e-1-1 )当該部分積群に属するn個の部分積
を入力し且つ該n個の部分積同士の和をm(<n)個の
部分積として出力する加算回路を示す情報を生成し、前
記複数個の部分積の全てに対応して、(e-1-2 )(e-1-
1 )の処理を繰り返し実行した後に、(e-1-1 )の処理
で生成された加算回路の出力である部分積の全てと、前
記複数個の部分積のうち(e-1-1 )の処理で生成された
加算回路の入力信号にならなかった部分積とを、新たに
(e-1-1 )の処理が施される複数個の部分積として設定
し、(e-1-1 )及び(e-1-2 )の処理を繰り返し実行す
ることによって、m個の部分積を出力する部分積加算回
路を示す情報を生成する処理と、(e-2 )前記部分積加
算回路の出力信号と補正信号とを入力しそれらの和を求
めて乗数Aと被乗数Xとの積として出力する最終和回路
を示す情報を生成する処理とを有していることを特徴と
する請求項6に記載の論理回路の自動設計方法。 - 【請求項10】 (e)の処理は、(e-1 )定数A1に
おける値が1であるビットの個数と定数A2における値
が1であるビットの個数との和が、所定の個数と等しい
か、該所定の個数よりも大きいか否かを判定する処理
と、(e-2 )定数A1における値が1であるビットの個
数と定数A2における値が1であるビットの個数との和
が前記所定の個数と等しい場合には、前記第1の部分積
生成回路の出力信号と前記論理否定回路の出力信号と補
正信号とを入力しそれらの和を求めて乗数Aと被乗数X
との積として出力する最終和回路を示す情報を生成する
処理と、(e-3 )定数A1における値が1であるビット
の個数と定数A2における値が1であるビットの個数と
の和が前記所定の個数よりも大きい場合には、(e-3-1
)前記第1の部分積生成回路の出力信号と前記論理否
定回路の出力信号とを入力しそれらの加算結果を前記所
定の個数の部分積として出力する部分積加算回路を示す
情報を生成し、(e-3-2 )前記部分積加算回路の出力信
号と補正信号とを入力しそれらの和を求めて乗数Aと被
乗数Xとの積として出力する最終和回路を示す情報を生
成する処理とを有していることを特徴とする請求項6に
記載の論理回路の自動設計方法。 - 【請求項11】 (e)の処理は、(e-1 )定数A1に
おける値が1であるビットの個数と定数A2における値
が1であるビットの個数との和が、1であるか、2であ
るか又は2よりも大きいかを判定する処理と、(e-2 )
定数A1における値が1であるビットの個数と定数A2
における値が1であるビットの個数との和が1である場
合には、前記第1の部分積生成回路の出力信号を乗数A
と被乗数Xとの積として出力する回路を示す情報を生成
する処理と(e-3 )定数A1における値が1であるビッ
トの個数と定数A2における値が1であるビットの個数
との和が2である場合には、前記第1の部分積生成回路
の出力信号と前記論理否定回路の出力信号と補正信号と
を入力しそれらの和を求めて乗数Aと被乗数Xとの積と
して出力する最終和回路を示す情報を生成する処理と、
(e-4 )定数A1における値が1であるビットの個数と
定数A2における値が1であるビットの個数との和が2
よりも大きい場合には、(e-4-1 )木状に構成された桁
上げ保存加算器から成り且つ前記第1の部分積生成回路
の出力信号と前記論理否定回路の出力信号とを入力しそ
れらの加算結果を2個の部分積として出力する部分積加
算回路を示す情報を生成し、(e-4-2 )前記部分積加算
回路の出力信号と補正信号とを入力しそれらの和を求め
て乗数Aと被乗数Xとの積として出力する最終和回路を
示す情報を生成する処理とを有していることを特徴とす
る請求項6に記載の論理回路の自動設計方法。 - 【請求項12】 乗数と被乗数との積を求める論理回路
を示す情報を生成する論理回路の自動設計方法であっ
て、 (a)2つの定数A1、A2を、定数A1と定数A2と
の差A1−A2が定数の乗数Aに等しくなるように決定
する処理と、 (b)定数A1の各ビットに対応して、(b-1 )定数A
1の当該ビットの値が1であるか否かを判定し、(b-2
)定数A1の当該ビットの値が1である場合には、被
乗数Xを表す信号を部分積として出力する回路を示す情
報を生成し、(b-3 )(b-1 )及び(b-2 )の処理を実
行した後に、被乗数Xを表す信号を1ビットシフトする
第1のシフト回路を示す情報を生成し該第1のシフト回
路の出力信号を新たに(b-1 )及び(b-2 )の処理で用
いられる被乗数Xを表す信号として設定し、定数A1の
全てのビットに対応して、(b-1 )〜(b-3 )の処理を
繰り返し実行することによって第1の部分積生成回路を
生成する処理と、 (c)定数A2の各ビットに対応して、(c-1 )定数A
2の当該ビットの値が1であるか否かを判定し、(c-2
)定数A2の当該ビットの値が1である場合には、被
乗数Xを表す信号を部分積として出力する回路を示す情
報を生成し、(c-3 )(c-1 )及び(c-2 )の処理を実
行した後に、被乗数Xを表す信号を1ビットシフトする
第2のシフト回路を示す情報を生成し該第2のシフト回
路の出力信号を新たに(c-1 )及び(c-2 )の処理で用
いられる被乗数Xを表す信号として設定し、定数A2の
全てのビットに対応して、(c-1 )〜(c-3 )の処理を
繰り返し実行することによって第2の部分積生成回路を
生成する処理と、 (d)前記第2の部分積生成回路の出力信号を入力しそ
の論理否定信号を出力する論理否定回路を示す情報を生
成する処理と、 (e)前記第1の部分積生成回路の出力信号と前記論理
否定回路の出力信号と補正信号とを入力しそれらの和を
求めて乗数Aと被乗数Xとの積として出力する回路を示
す情報を生成する処理とを備えていることを特徴とする
論理回路の自動設計方法。 - 【請求項13】 乗数と被乗数との積を求める論理回路
を示す情報を生成する論理回路の自動設計方法であっ
て、 (a)定数の乗数Aから乗数Aの論理否定信号を作成す
る処理と、 (b)前記乗数Aの論理否定信号の各ビットに対応し
て、(b-1 )前記乗数Aの論理否定信号の当該ビットの
値が1であるか否かを判定し、(b-2 )前記乗数Aの論
理否定信号の当該ビットの値が1である場合には、被乗
数Xを表す信号を部分積として出力する回路を示す情報
を生成し、(b-3 )(b-1 )及び(b-2 )の処理を実行
した後に、被乗数Xを表す信号を1ビットシフトするシ
フト回路を示す情報を生成し該シフト回路の出力信号を
新たに(b-1 )及び(b-2 )の処理で用いられる被乗数
Xを表す信号として設定し、前記乗数Aの論理否定信号
の全てのビットに対応して、(b-1 )〜(b-3 )の処理
を繰り返し実行することによって部分積生成回路を示す
情報を生成する処理と、 (c)前記部分積生成回路の出力信号の全てと被乗数X
を表す信号とを入力しそれらの加算結果を所定の個数の
部分積として出力する部分積加算回路を示す情報を生成
する処理と、 (d)前記部分積加算回路の出力信号を入力しその論理
否定信号を出力する論理否定回路を示す情報を生成する
処理と、 (e)被乗数Xから補正信号を作成する処理と、 (f)前記補正信号と前記論理否定回路の出力信号とを
入力しそれらの和を求めて乗数Aと被乗数Xとの積とし
て出力する最終和回路を示す情報を生成する処理とを備
えていることを特徴とする論理回路の自動設計方法。 - 【請求項14】 乗数と被乗数との積を求める論理回路
を示す情報を生成する論理回路の自動設計方法であっ
て、 (a)定数の乗数Aから乗数Aの論理否定信号を作成す
る処理と、 (b)前記乗数Aの論理否定信号の各ビットに対応し
て、(b-1 )前記乗数の論理否定信号の当該ビットの値
が1であるか否かを判定し、 (b-2 )前記乗数の論理
否定信号の当該ビットの値が1である場合には、被乗数
Xを表す信号を部分積として出力する回路を示す情報を
生成し、(b-3 )(b-1 )及び(b-2 )の処理を実行し
た後に、被乗数Xを表す信号を1ビットシフトするシフ
ト回路を示す情報を生成し該シフト回路の出力信号を新
たに(b-1 )及び(b-2)の処理で用いられる被乗数Xを
表す信号として設定し、前記乗数Aの論理否定信号の全
てのビットに対応して、(b-1 )〜(b-3 )の処理を繰
り返し実行することによって部分積生成回路を示す情報
を生成する処理と、 (c)前記部分積生成回路の出力信号の全てと被乗数X
を表す信号とから構成される複数の入力信号がn個ずつ
に分割されて成る入力信号群のそれぞれに対応して、
(c-1 )当該入力信号群に属するn個の入力信号を入力
し且つ該n個の入力信号同士の和をm(<n)個の信号
として出力する加算回路を示す情報を生成し、前記複数
の入力信号の全てに対応して、(c-2 )(c-1 )の処理
を繰り返し実行した後に、(c-1 )の処理で生成された
加算回路の出力信号の全てと、前記複数の入力信号のう
ち(c-1 )の処理で生成された加算回路の入力信号にな
らなかった入力信号とを、新たに(c-1 )の処理が施さ
れる複数個の入力信号として設定し、(c-1 )及び(c-
2 )の処理を繰り返し実行することによって部分積加算
回路を示す情報を生成する処理と、 (d)前記部分積加算回路の出力信号を入力しその論理
否定信号を出力する論理否定回路を示す情報を生成する
処理と、 (e)被乗数Xから補正信号を作成する処理と、 (f)前記補正信号と前記論理否定回路の出力信号とを
入力しそれらの和を求めて乗数Aと被乗数Xとの積とし
て出力する最終和回路を示す情報を生成する処理とを備
えていることを特徴とする論理回路の自動設計方法。 - 【請求項15】 乗数と被乗数との積を求める論理回路
を示す情報を生成する論理回路の自動設計方法であっ
て、 (a)2つの定数A1、A2を、定数A1と定数A2と
の差A1−A2が定数の乗数Aに等しくなるように決定
する処理と、 (b)定数A2が0であるか否かを判定する処理と、 (c)定数A2が0である場合には、(c-1 )乗数A1
と被乗数Xとを入力しそれらの部分積を出力する第1の
部分積生成回路を示す情報を生成し、(c-2 )前記第1
の部分積生成回路の出力信号の全てを入力しそれらの和
を求めて乗数Aと被乗数Xとの積として出力する第1の
部分積和回路を示す情報を生成する処理と、 (d)定数A2が0でない場合には、(d-1 )定数A1
と被乗数Xとを入力しそれらの部分積を出力する第2の
部分積生成回路を示す情報を生成し、(d-2 )定数A2
と被乗数Xとを入力しそれらの部分積を出力する第3の
部分積生成回路を示す情報を生成し、(d-3 )前記第3
の部分積生成回路の出力信号を入力しその論理否定信号
を出力する論理否定回路を示す情報を生成し、(d-4 )
前記第2の部分積生成回路の出力信号と前記論理否定回
路の出力信号と補正信号とを入力しそれらの和を求めて
乗数Aと被乗数Xとの積として出力する第2の部分積和
回路を示す情報を生成する処理とを備えていることを特
徴とする論理回路の自動設計システム。 - 【請求項16】 乗数と被乗数との積を求める論理回路
を示す情報を生成する論理回路の自動設計方法であっ
て、 (a)3つの定数A1、A2、A3を、定数A1と定数
A2、A3の和との差A1−(A2+A3)が定数の乗
数Aに等しくなるように決定する処理と、 (b)定数A1が乗数Aに等しいか、定数A2、A3が
共に0であるか否かを判定する処理と、 (c)定数A1が乗数Aに等しい場合には、(c-1 )定
数A1と被乗数Xとを入力しそれらの部分積を出力する
第1の部分積生成回路を示す情報を生成し、(c-2 )前
記第1の部分積生成回路の出力信号の全てを入力しそれ
らの和を求めて乗数Aと被乗数Xとの積として出力する
第1の部分積和回路を示す情報を生成する処理と、 (d)定数A1が乗数Aに等しくなく且つ定数A2及び
A3のうち少なくとも一方が0でない場合には、(d-1
)定数A1と被乗数Xとを入力しそれらの部分積を出
力する第2の部分積生成回路を示す情報を生成し、(d-
2 )定数A2、A3と被乗数Xとを入力しそれらの部分
積を出力する第3の部分積生成回路を示す情報を生成
し、(d-3 )前記第3の部分積生成回路の出力信号を入
力しその論理否定信号を出力する第1の論理否定回路を
示す情報を生成し、(d-4 )前記第2の部分積生成回路
の出力信号と前記第1の論理否定回路の出力信号と第1
の補正信号とを入力しそれらの和を求めて乗数Aと被乗
数Xとの積として出力する第2の部分積和回路を示す情
報を生成する処理とを備えていることを特徴とする論理
回路の自動設計方法。 - 【請求項17】 乗数と被乗数との積を求める論理回路
を示す情報を生成する論理回路の自動設計方法であっ
て、 (a)3つの定数A1、A2、A3を、定数A1と定数
A2、A3の和との差A1−(A2+A3)が定数の乗
数Aに等しくなり、且つ、定数A1における値が1であ
るビットの個数と定数A2における値が1であるビット
の個数と定数A3における値が1であるビットの個数と
の総和が最小になるように決定する処理と、 (b)定数A1が乗数Aに等しいか、定数A2、A3が
共に0であるか否かを判定する処理と、 (c)定数A1が乗数Aに等しい場合には、(c-1 )定
数A1と被乗数Xとを入力しそれらの部分積を出力する
第1の部分積生成回路を示す情報を生成し、(c-2 )前
記第1の部分積生成回路の出力信号の全てを入力しそれ
らの和を求めて乗数Aと被乗数Xとの積として出力する
第1の部分積和回路を示す情報を生成する処理と、 (d)定数A1が乗数Aに等しくなく且つ定数A2及び
A3のうち少なくとも一方が0でない場合には、(d-1
)定数A1と被乗数Xとを入力しそれらの部分積を出
力する第2の部分積生成回路を示す情報を生成し、(d-
2 )定数A2、A3と被乗数Xとを入力しそれらの部分
積を出力する第3の部分積生成回路を示す情報を生成
し、(d-3 )前記第3の部分積生成回路の出力信号を入
力しその論理否定信号を出力する第1の論理否定回路を
示す情報を生成し、(d-4 )前記第2の部分積生成回路
の出力信号と前記第1の論理否定回路の出力信号と第1
の補正信号とを入力しそれらの和を求めて乗数Aと被乗
数Xとの積として出力する第2の部分積和回路を示す情
報を生成する処理とを備えていることを特徴とする論理
回路の自動設計方法。 - 【請求項18】 (e)定数A2が乗数Aの論理否定に
等しく且つ定数A3が1であるかを判定する処理と、 (f)定数A2が乗数Aの論理否定に等しく且つ定数A
3が1である場合に、(f-1 )定数A2と被乗数Xとを
入力しそれらの部分積を出力する第4の部分積生成回路
を示す情報を生成し、(f-2 )前記第4の部分積生成回
路の出力信号の全てと被乗数Xを表す信号とを入力しそ
れらの加算結果を部分積として出力する部分積加算回路
を示す情報を生成し、(f-3 )前記部分積加算回路の出
力信号を入力しその論理否定信号を出力する第2の論理
否定回路を示す情報を生成し、(f-4 )被乗数Xから第
2の補正信号を作成し、(f-5 )前記第2の補正信号と
前記第2の論理否定回路の出力信号とを入力しそれらの
和を求めて乗数Aと被乗数Xとの積として出力する最終
和回路を示す情報を生成する処理とをさらに備えている
ことを特徴とする請求項16又は請求項17に記載の論
理回路の自動設計方法。 - 【請求項19】 (c-1 )の処理は、定数A1の各ビッ
トに対応して、(c-1-1 )定数A1の当該ビットの値が
1であるか否かを判定し、(c-1-2 )定数A1の当該ビ
ットの値が1である場合には、被乗数Xを表す信号を部
分積として出力する回路を示す情報を生成し、(c-1-3
)(c-1-1 )及び(c-1-2 )の処理を実行した後に、
被乗数Xを表す信号を1ビットシフトする第1のシフト
回路を示す情報を生成し該第1のシフト回路の出力信号
を新たに(c-1-1 )及び(c-1-2 )の処理で用いられる
被乗数Xを表す信号として設定し、定数A1の全てのビ
ットに対応して、(c-1-4 )(c-1-1 )〜(c-1-3 )の
処理を繰り返し実行することによって第1の部分積生成
回路を生成する処理を有し、(d-1 )の処理は、定数A
1の各ビットに対応して、(d-1-1 )定数A1の当該ビ
ットの値が1であるか否かを判定し、(d-1-2 )定数A
1の当該ビットの値が1である場合には、被乗数Xを表
す信号を部分積として出力する回路を示す情報を生成
し、(d-1-3 )(d-1-1 )及び(d-1-2 )の処理を実行
した後に、被乗数Xを表す信号を1ビットシフトする第
2のシフト回路を示す情報を生成し該第2のシフト回路
の出力信号を新たに(d-1-1 )及び(d-1-2 )の処理で
用いられる被乗数Xを表す信号として設定し、定数A1
の全てのビットに対応して、(d-1-1 )〜(d-1-3 )の
処理を繰り返し実行することによって第2の部分積生成
回路を生成する処理を有し、(d-2 )の処理は、定数A
2、A3の各ビットに対応して、(d-2-1 )定数A2、
A3の当該ビットの値が1であるか否かを判定し、(d-
2-2 )定数A2、A3の当該ビットの値が1である場合
には、被乗数Xを表す信号を部分積として出力する回路
を示す情報を生成し、(d-2-3 )(d-2-1 )及び(d-2-
2 )の処理を実行した後に、被乗数Xを表す信号を1ビ
ットシフトする第3のシフト回路を示す情報を生成し該
第3のシフト回路の出力信号を新たに(d-2-1 )及び
(d-2-2 )の処理で用いられる被乗数Xを表す信号とし
て設定し、定数A2、A3の全てのビットに対応して、
(d-2-1 )〜(d-2-3 )の処理を繰り返し実行すること
によって第3の部分積生成回路を生成する処理を有して
いることを特徴とする請求項16又は請求項17に記載
の論理回路の自動設計方法。 - 【請求項20】 (c-1 )の処理は、定数A1の各ビッ
トに対応して、(c-1-1 )定数A1の当該ビットの値が
1であるか否かを判定し、(c-1-2 )定数A1の当該ビ
ットの値が1である場合には、被乗数Xを表す信号を部
分積として出力する回路を示す情報を生成し、(c-1-3
)(c-1-1 )及び(c-1-2 )の処理を実行した後に、
被乗数Xを表す信号を1ビットシフトする第1のシフト
回路を示す情報を生成し該第1のシフト回路の出力信号
を新たに(c-1-1 )及び(c-1-2 )の処理で用いられる
被乗数Xを表す信号として設定し、定数A1の全てのビ
ットに対応して、(c-1-1 )〜(c-1-3 )の処理を繰り
返し実行することによって第1の部分積生成回路を生成
する処理を有し、(d-1 )の処理は、定数A1の各ビッ
トに対応して、(d-1-1 )定数A1の当該ビットの値が
1であるか否かを判定し、(d-1-2 )定数A1の当該ビ
ットの値が1である場合には、被乗数Xを表す信号を部
分積として出力する回路を示す情報を生成し、(d-1-3
)(d-1-1 )及び(d-1-2 )の処理を実行した後に、
被乗数Xを表す信号を1ビットシフトする第2のシフト
回路を示す情報を生成し該第2のシフト回路の出力信号
を新たに(d-1-1 )及び(d-1-2 )の処理で用いられる
被乗数Xを表す信号として設定し、定数A1の全てのビ
ットに対応して、(d-1-1 )〜(d-1-3 )の処理を繰り
返し実行することによって第2の部分積生成回路を生成
する処理を有し、(d-2 )の処理は、定数A2、A3の
各ビットに対応して、(d-2-1 )定数A2、A3の当該
ビットの値が1であるか否かを判定し、(d-2-2 )定数
A2、A3の当該ビットの値が1である場合には、被乗
数Xを表す信号を部分積として出力する回路を示す情報
を生成し、(d-2-3 )(d-2-1 )及び(d-2-2 )の処理
を実行した後に、被乗数Xを表す信号を1ビットシフト
する第3のシフト回路を示す情報を生成し該第3のシフ
ト回路の出力信号を新たに(d-2-1 )及び(d-2-2 )の
処理で用いられる被乗数Xを表す信号として設定し、定
数A2、A3の全てのビットに対応して、(d-2-1 )〜
(d-2-3 )の処理を繰り返し実行することによって第3
の部分積生成回路を生成する処理を有し、(f-1 )の処
理は、定数A2の各ビットに対応して、(f-1-1 )定数
A2の当該ビットの値が1であるか否かを判定し、(f-
1-2 )定数A2の当該ビットの値が1である場合には、
被乗数Xを表す信号を部分積として出力する回路を示す
情報を生成し、(f-1-3 )(f-1-1 )及び(f-1-2 )の
処理を実行した後に、被乗数Xを表す信号を1ビットシ
フトする第4のシフト回路を示す情報を生成し該第4の
シフト回路の出力信号を新たに(f-1-1 )及び(f-1-2
)の処理で用いられる被乗数Xを表す信号として設定
し、定数A2の全てのビットに対応して、(f-1-1 )〜
(f-1-3 )の処理を繰り返し実行することによって第4
の部分積生成回路を生成する処理を有していることを特
徴とする請求項18に記載の論理回路の自動設計方法。 - 【請求項21】 (c-2 )の処理は、前記第1の部分積
生成回路の出力信号から構成される第1の複数個の部分
積がn個ずつに分割されて成る部分積群のそれぞれに対
応して、(e-1-1 )当該部分積群に属するn個の部分積
を入力し且つ該n個の部分積同士の和をm(<n)個の
部分積として出力する加算回路を示す情報を生成し、前
記第1の複数個の部分積の全てに対応して、(e-1-2 )
(e-1-1 )の処理を繰り返し実行した後に、(e-1-1 )
の処理で生成された加算回路の出力である部分積の全て
と、前記第1の複数個の部分積のうち(e-1-1 )の処理
で生成された加算回路の入力信号にならなかった部分積
とを、新たに(e-1-1 )の処理が施される第1の複数個
の部分積として設定し、(e-1-1 )及び(e-1-2 )の処
理を繰り返し実行することによって第1の部分積和回路
を示す情報を生成する処理を有し、(d-4 )の処理は、
前記第2の部分積生成回路の出力信号と前記第1の論理
否定回路の出力信号と第1の補正信号とから構成される
第2の複数個の部分積がn個ずつに分割されて成る部分
積群のそれぞれに対応して、(d-4-1 )当該部分積群に
属するn個の部分積を入力し且つ該n個の部分積同士の
和をm(<n)個の部分積として出力する加算回路を示
す情報を生成し、前記第2の複数個の部分積の全てに対
応して、(d-4-2 )(d-4-1 )の処理を繰り返し実行し
た後に、(d-4-1 )の処理で生成された加算回路の出力
である部分積の全てと、前記第2の複数個の部分積のう
ち(d-4-1 )の処理で生成された加算回路の入力信号に
ならなかった部分積とを、新たに(d-4-1 )の処理が施
される第2の複数個の部分積として設定し、(d-4-1 )
及び(d-4-2 )の処理を繰り返し実行することによって
第2の部分積和回路を示す情報を生成する処理を有して
いることをを特徴とする請求項16又は請求項17に記
載の論理回路の自動設計方法。 - 【請求項22】 (c-2 )の処理は、前記第1の部分積
生成回路の出力信号から構成される第1の複数個の部分
積がn個ずつに分割されて成る部分積群のそれぞれに対
応して、(e-1-1 )当該部分積群に属するn個の部分積
を入力し且つ該n個の部分積同士の和をm(<n)個の
部分積として出力する加算回路を示す情報を生成し、前
記第1の複数個の部分積の全てに対応して、(e-1-2 )
(e-1-1 )の処理を繰り返し実行した後に、(e-1-1 )
の処理で生成された加算回路の出力である部分積の全て
と、前記第1の複数個の部分積のうち(e-1-1 )の処理
で生成された加算回路の入力信号にならなかった部分積
とを、新たに(e-1-1 )の処理が施される第1の複数個
の部分積として設定し、(e-1-1 )及び(e-1-2 )の処
理を繰り返し実行することによって第1の部分積和回路
を示す情報を生成する処理を有し、(d-4 )の処理は、
前記第2の部分積生成回路の出力信号と前記第1の論理
否定回路の出力信号と第1の補正信号とから構成される
第2の複数個の部分積がn個ずつに分割されて成る部分
積群のそれぞれに対応して、(d-4-1 )当該部分積群に
属するn個の部分積を入力し且つ該n個の部分積同士の
和をm(<n)個の部分積として出力する加算回路を示
す情報を生成し、前記第2の複数個の部分積の全てに対
応して、(d-4-2 )(d-4-1 )の処理を繰り返し実行し
た後に、(d-4-1 )の処理で生成された加算回路の出力
である部分積の全てと、前記第2の複数個の部分積のう
ち(d-4-1 )の処理で生成された加算回路の入力信号に
ならなかった部分積とを、新たに(d-4-1 )の処理が施
される第2の複数個の部分積として設定し、(d-4-1 )
及び(d-4-2 )の処理を繰り返し実行することによって
第2の部分積和回路を示す情報を生成する処理を有し、
(f-2 )の処理は、前記第4の部分積生成回路の出力信
号と被乗数Xを表す信号とから構成される第3の複数個
の部分積がn個ずつに分割されて成る部分積群のそれぞ
れに対応して、(f-2-1 )当該部分積群に属するn個の
部分積を入力し且つ該n個の部分積同士の和をm(<
n)個の部分積として出力する加算回路を示す情報を生
成し、前記第3の複数個の部分積の全てに対応して、
(f-2-2 )(f-2-1 )の処理を繰り返し実行した後に、
(f-2-1 )の処理で生成された加算回路の出力である部
分積の全てと、前記第3の複数個の部分積のうち(f-2-
1 )の処理で生成された加算回路の入力信号にならなか
った部分積とを、新たに(f-2-1 )の処理が施される第
3の複数個の部分積として設定し、(f-2-1 )及び(f-
2-2 )の処理を繰り返し実行することによっての部分積
加算回路を示す情報を生成する処理を有していることを
特徴とする請求項18に記載の論理回路の自動設計方
法。 - 【請求項23】 乗数と被乗数との積を求める論理回路
を示す情報を生成する論理回路の自動設計方法であっ
て、 (a)2つの定数A1、A2を、定数A1と定数A2と
の差A1−A2が定数の乗数Aに等しくなるように決定
する処理と、 (b)乗数Aにおける値が1であるビットの個数と、定
数A1における値が1であるビットの個数と定数A2に
おける値が1であるビットの個数との和とのうち何れが
最小であるかを判定する処理と、 (c)乗数Aにおける値が1であるビットの個数が最小
である場合には、(c-1 )乗数Aと被乗数Xとを入力し
且つ乗数Aの各ビットと被乗数Xとの積を部分積として
出力する第1の部分積生成回路を示す情報を生成し、
(c-2 )前記第1の部分積生成回路の出力信号の全てを
入力しそれらの和を求めて乗数Aと被乗数Xとの積とし
て出力する第1の部分積和回路を示す情報を生成する処
理と、 (d)定数A1における値が1であるビットの個数とA
2における値が1であるビットの個数との和が最小であ
る場合には、(d-1 )定数A1と被乗数Xとを入力しそ
れらの部分積を出力する第2の部分積生成回路を示す情
報を生成し、(d-2 )定数A2と被乗数Xとを入力しそ
れらの部分積を出力する第3の部分積生成回路を示す情
報を生成し、(d-3 )前記第3の部分積生成回路の出力
信号を入力しその論理否定信号を出力する論理否定回路
を示す情報を生成し、(d-4 )前記第2の部分積生成回
路の出力信号と前記論理否定回路の出力信号と補正信号
とを入力しそれらの和を求めて乗数Aと被乗数Xとの積
として出力する第2の部分積和回路を示す情報を生成す
る処理とを備えていることを特徴とする論理回路の自動
設計方法。 - 【請求項24】 各種情報を入力する入力手段と、処理
中の各種情報を記憶する記憶手段と、前記入力手段から
入力された乗数と被乗数との積を求める論理回路を示す
情報を作成する演算処理手段と、該演算処理手段により
作成された論理回路を示す情報を出力する出力手段とを
備えた論理回路の自動設計システムであって、 前記演算処理手段は、 (a)2つの定数A1、A2を、定数A1と定数A2と
の差A1−A2が定数の乗数Aに等しくなるように決定
する処理と、 (b)乗数Aにおける値が1であるビットの個数と、定
数A1における値が1であるビットの個数と定数A2に
おける値が1であるビットの個数との和とのうち何れが
最小であるかを判定する処理と、 (c)乗数Aにおける値が1であるビットの個数が最小
である場合には、(c-1 )乗数Aと被乗数Xとを入力し
且つ乗数Aの各ビットと被乗数Xとの積を部分積として
出力する第1の部分積生成回路を示す情報を生成し、
(c-2 )前記第1の部分積生成回路の出力信号の全てを
入力しそれらの和を求めて乗数Aと被乗数Xとの積とし
て出力する第1の部分積和回路を示す情報を生成する処
理と、 (d)定数A1における値が1であるビットの個数とA
2における値が1であるビットの個数との和が最小であ
る場合には、(d-1 )定数A1と被乗数Xとを入力しそ
れらの部分積を出力する第2の部分積生成回路を示す情
報を生成し、(d-2 )定数A2と被乗数Xとを入力しそ
れらの部分積を出力する第3の部分積生成回路を示す情
報を生成し、(d-3 )前記第3の部分積生成回路の出力
信号を入力しその論理否定信号を出力する論理否定回路
を示す情報を生成し、(d-4 )前記第2の部分積生成回
路の出力信号と前記論理否定回路の出力信号と補正信号
とを入力しそれらの和を求めて乗数Aと被乗数Xとの積
として出力する第2の部分積和回路を示す情報を生成す
る処理とを実行することを特徴とする論理回路の自動設
計システム。 - 【請求項25】 各種情報を入力する入力手段と、処理
中の各種情報を記憶する記憶手段と、前記入力手段から
入力された乗数と被乗数との積を求める論理回路を示す
情報を作成する演算処理手段と、該演算処理手段により
作成された論理回路を示す情報を出力する出力手段とを
備えた論理回路の自動設計システムであって、 前記演算処理手段は、 (a)2つの定数A1、A2を、定数A1と定数A2と
の差A1−A2が定数の乗数Aに等しくなるように決定
する処理と、 (b)乗数Aにおける値が1であるビットの個数と、定
数A1における値が1であるビットの個数と定数A2に
おける値が1であるビットの個数との和と、乗数Aにお
ける値が0であるビットの個数と2との和とのうち何れ
が最小であるかを判定する処理と、 (c)乗数Aにおける値が1であるビットの個数が最小
である場合には、(c-1 )乗数Aと被乗数Xとを入力し
且つ乗数Aの各ビットと被乗数Xとの積を部分積として
出力する第1の部分積生成回路を示す情報を生成し、
(c-2 )前記第1の部分積生成回路の出力信号の全てを
入力しそれらの和を求めて乗数Aと被乗数Xとの積とし
て出力する第1の部分積和回路を示す情報を生成する処
理と、 (d)定数A1における値が1であるビットの個数とA
2における値が1であるビットの個数との和が最小であ
る場合には、(d-1 )定数A1と被乗数Xとを入力しそ
れらの部分積を出力する第2の部分積生成回路を示す情
報を生成し、(d-2 )定数A2と被乗数Xとを入力しそ
れらの部分積を出力する第3の部分積生成回路を示す情
報を生成し、(d-3 )前記第3の部分積生成回路の出力
信号を入力しその論理否定信号を出力する第1の論理否
定回路を示す情報を生成し、(d-4 )前記第2の部分積
生成回路の出力信号と前記第1の論理否定回路の出力信
号と第1の補正信号とを入力しそれらの和を求めて乗数
Aと被乗数Xとの積として出力する第2の部分積和回路
を示す情報を生成する処理と、 (e)乗数Aにおける値が0であるビットの個数と2と
の和が最小である場合には、(e-1 )乗数Aから乗数A
の論理否定信号を作成し、(e-2 )前記乗数Aの論理否
定信号と被乗数Xとを入力し前記乗数Aの論理否定信号
の各ビットと被乗数Xとの積を部分積として出力する第
4の部分積生成回路を示す情報を生成し、(e-3 )前記
第4の部分積生成回路の出力信号の全てと被乗数Xを表
す信号とを入力しそれらの加算結果を部分積として出力
する部分積加算回路を示す情報を生成し、(e-4 )前記
部分積加算回路の出力信号を入力しその論理否定信号を
出力する第2の論理否定回路を示す情報を生成し、(e-
5 )被乗数Xから第2の補正信号を作成し、(e-6 )前
記第2の補正信号と前記第2の論理否定回路の出力信号
とを入力しそれら和を求めて乗数Aと被乗数Xとの積と
して出力する最終和回路を示す情報を生成する処理とを
実行することを特徴とする論理回路の自動設計システ
ム。 - 【請求項26】 前記演算処理手段が実行する(c-2 )
の処理で生成される第1の部分積和回路は、 入力された信号を加算しその加算結果を部分積として出
力する第1の部分積加算回路と、 少なくとも前記第1の部分積加算回路の出力信号を入力
しそれらの和を求めて乗数Aと被乗数Xとの積として出
力する第1の最終和回路とを有し、 前記演算処理手段が実行する(d-4 )の処理で生成され
る第2の部分積和回路は、 入力された信号を加算しその加算結果を部分積として出
力する第2の部分積加算回路と、 少なくとも前記第2の部分積加算回路の出力信号を入力
しそれらの和を求めて乗数Aと被乗数Xとの積として出
力する第2の最終和回路とを有していることを特徴とす
る請求項24に記載の論理回路の自動設計システム。 - 【請求項27】 乗数と被乗数との積を求める乗算機能
を有する論理回路の自動設計装置であって、 乗数Aを示す情報、被乗数Xを示す情報及び積Pを示す
情報などの各種情報を外部から入力する入力手段と、 乗数Aを示す情報を入力し、数A1を示す情報と定数A
2を示す情報とを数A1と定数A2との差A1−A2が
乗数Aに等しくなるように決定する乗数分割手段と、 数A1を示す情報と被乗数Xを示す情報とを入力し、数
A1と被乗数Xとを入力し且つ数A1における値が0で
ない各ビットと被乗数Xとの積を部分積として出力する
第1の部分積生成回路を示す情報を生成する第1の部分
積生成回路生成手段と、 定数A2を示す情報と被乗数Xを示す情報とを入力し、
定数A2と被乗数Xとを入力し且つ定数A2における値
が0でない各ビットと被乗数Xとの積を部分積として出
力する第2の部分積生成回路を示す情報を生成する第2
の部分積生成回路生成手段と、 前記第2の部分積生成回路の出力信号を示す情報を入力
し、前記第2の部分積生成回路の出力信号を入力しその
論理否定信号を出力する論理否定回路を示す情報を生成
する論理否定回路生成手段と、 前記第1の部分積生成回路及び論理否定回路の出力信号
の個数の総数を判定する部分積総数判定手段と、 前記第1の部分積生成回路の出力信号を示す情報と論理
否定回路の出力信号を示す情報とを入力し、前記第1の
部分積生成回路及び論理否定回路の出力信号の全てを入
力しそれらの加算結果を部分積として出力する部分積加
算回路を示す情報を生成する部分積加算回路生成手段
と、 前記論理否定回路の出力信号を示す情報又は第2の部分
積生成回路の出力信号を示す情報の何れかの情報を入力
し、該何れかの情報が示す出力信号の個数から補正信号
を生成する補正信号生成手段と、 前記部分積加算回路の出力信号を示す情報と前記補正信
号を示す情報と積Pを示す情報とを入力し、前記部分積
加算回路の出力信号と前記補正信号との和を求め該和を
乗数Aと被乗数Xとの積として積Pに設定し該積Pを出
力する部分積和回路を示す情報を生成する最終和回路生
成手段とを備えていることを特徴とする論理回路の自動
設計装置。 - 【請求項28】 乗数と被乗数との積を求める乗算機能
を有する論理回路の自動設計装置であって、 乗数Aを示す情報、被乗数Xを示す情報及び積Pを示す
情報などの各種情報を外部から入力する入力手段と、 乗数Aを示す情報を入力し、数A1を示す情報と定数A
2を示す情報とを数A1と定数A2との差A1−A2が
乗数Aに等しくなるように決定する乗数分割手段と、 数A1を示す情報と被乗数Xを示す情報とを入力し、数
A1と被乗数Xとを入力し且つ数A1における値が0で
ない各ビットと被乗数Xとの積を部分積として出力する
第1の部分積生成回路を示す情報を生成する第1の部分
積生成回路生成手段と、 定数A2を示す情報と被乗数Xを示す情報とを入力し、
定数A2と被乗数Xとを入力し且つ定数A2における値
が0でない各ビットと被乗数Xとの積を部分積として出
力する第2の部分積生成回路を示す情報を生成する第2
の部分積生成回路生成手段と、 前記第2の部分積生成回路の出力信号を示す情報を入力
し、前記第2の部分積生成回路の出力信号を入力しその
論理否定信号を出力する論理否定回路を示す情報を生成
する論理否定回路生成手段と、 前記第1の部分積生成回路及び論理否定回路の出力信号
の個数の総数を判定する部分積総数判定手段と、 前記論理否定回路の出力信号を示す情報又は第2の部分
積生成回路の出力信号を示す情報の何れかの情報を入力
し、該何れかの情報が示す出力信号の個数から補正信号
を生成する補正信号生成手段と、 前記第1の部分積生成回路の出力信号を示す情報と論理
否定回路の出力信号を示す情報と前記補正信号を示す情
報とを入力し、前記第1の部分積生成回路及び論理否定
回路の出力信号の全てと前記補正信号とを入力しそれら
の加算結果を部分積として出力する部分積加算回路を示
す情報を生成する部分積加算回路生成手段と、 前記部分積加算回路の出力信号を示す情報と積Pを示す
情報とを入力し、前記部分積加算回路の出力信号の総和
を求め該総和を乗数Aと被乗数Xとの積として積Pに設
定し該積Pを出力する部分積和回路を示す情報を生成す
る最終和回路生成手段とを備えていることを特徴とする
論理回路の自動設計装置。 - 【請求項29】 乗数と被乗数との積を求める乗算機能
を有する論理回路の自動設計装置であって、 乗数Aを示す情報、被乗数Xを示す情報及び積Pを示す
情報などの各種情報を外部から入力する入力手段と、 乗数Aを示す情報を入力し、乗数Aの論理否定信号を作
成する論理否定信号作成手段と、 前記乗数Aの論理否定信号を示す情報と被乗数Xを示す
情報とを入力し、前記乗数Aの論理否定信号と被乗数X
とを入力し且つ前記乗数Aの論理否定信号における値が
0でない各ビットと被乗数Xとの積を部分積として出力
する部分積生成回路を示す情報を生成する部分積生成回
路生成手段と、 前記部分積生成回路の出力である部分積を示す情報と被
乗数Xを示す情報とを入力し、前記部分積生成回路の出
力である部分積の全てと被乗数Xとを入力しそれらの加
算結果を部分積として出力する部分積加算回路を示す情
報を生成する部分積加算回路生成手段と、 前記部分積加算回路の出力信号を示す情報を入力し、前
記部分積加算回路の出力信号を入力しその論理否定信号
を出力する論理否定回路を示す情報を生成する論理否定
回路生成手段と、 被乗数Xを示す情報を入力し、被乗数Xから補正信号を
生成する補正信号生成手段と、 前記補正信号を示す情報と前記部分積加算回路の出力信
号を示す情報と積Pを示す情報とを入力し、前記補正信
号と前記部分積加算回路の出力信号との和を求め該和を
乗数Aと被乗数Xとの積として積Pに設定し該積Pを出
力する部分積和回路を示す情報を生成する最終和回路生
成手段とを備えていることを特徴とする論理回路の自動
設計装置。 - 【請求項30】 乗数と被乗数との積を求める乗算機能
を有する論理回路の自動設計装置であって、 乗数Aを示す情報、被乗数Xを示す情報及び積Pを示す
情報などの各種情報を外部から入力する入力手段と、 乗数Aを示す情報と被乗数Xを示す情報とを入力し、乗
数Aと被乗数Xとを入力し且つ乗数Aにおける値が0で
ない各ビットと被乗数Xとの積を部分積として出力する
部分積生成回路を示す情報を生成する部分積生成回路生
成手段と、 前記部分積生成回路の出力信号の個数を判定する部分積
数判定手段と、 前記部分積生成回路の出力信号を示す情報を入力し、前
記部分積生成回路の出力信号の全てを入力しそれらの加
算結果を部分積として出力する部分積加算回路を示す情
報を生成する部分積加算回路生成手段と、 前記部分積加算回路の出力信号を示す情報と積Pを示す
情報とを入力し、前記部分積加算回路の出力信号の全て
を入力しそれらの和を求め該和を乗数Aと被乗数Xとの
積として積Pに設定し該積Pを出力する部分積和回路を
示す情報を生成する最終和回路生成手段とを備えている
ことを特徴とする論理回路の自動設計装置。 - 【請求項31】 前記部分積加算回路生成手段は、木状
に配列された加算器から成る部分積加算回路を示す情報
を生成することを特徴とする請求項27、請求項28、
請求項29又は請求項30の論理回路の自動設計装置。 - 【請求項32】 定数A1、A2に対してA=A1−A
2となる乗数Aと被乗数Xとの積を出力する乗算器であ
って、 定数A1と被乗数Xとを入力し、定数A1における値が
1である各ビットに対する部分積のみを出力する第1の
部分積生成手段と、 定数A2と被乗数Xとを入力し、定数A2における値が
1である各ビットに対する部分積のみを出力する第2の
部分積生成手段と、 該第2の部分積生成手段の出力信号を入力しその論理否
定信号を出力する論理否定手段と、 前記第1の部分積生成手段の出力信号と前記論理否定手
段の出力信号と補正信号とを入力しそれらの和を求めて
乗数Aと被乗数Xとの積として出力する部分積和手段と
を備えていることを特徴とする乗算器。 - 【請求項33】 前記部分積和手段は、 前記第1の部分積生成手段の出力信号と前記論理否定手
段の出力信号とを入力し、前記第1の部分積生成手段の
出力信号と前記論理否定手段の出力信号とを1段又は複
数段の加算手段により加算し、その加算結果を部分積と
して出力する部分積加算手段と、 該部分積加算手段の出力信号と補正信号とを入力し、そ
れらの和を求めて乗数Aと被乗数Xとの積として出力す
る最終和手段とを有していることを特徴とする請求項3
2に記載の乗算器。 - 【請求項34】 前記加算手段は、桁上げ保存加算器を
含んでいることを特徴とする請求項33に記載の乗算
器。 - 【請求項35】 乗数Aと被乗数Xとの積を出力する乗
算器であって、 乗数Aの論理否定信号と被乗数Xとを入力し、前記乗数
Aの論理否定信号の値が1である各ビットに対する部分
積のみを出力する部分積生成手段と、 該部分積生成手段の出力信号と被乗数Xとを入力し、前
記部分積生成手段の出力信号と被乗数Xとを1段又は複
数段の加算手段により加算し、その加算結果を部分積と
して出力する部分積加算手段と、 該部分積加算手段の出力信号を入力しその論理否定信号
を出力する論理否定手段と、 該論理否定手段の出力信号と被乗数Xから生成可能な補
正信号とを入力し、前記論理否定手段の出力信号と前記
補正信号との和を求めて乗数Aと被乗数Xとの積として
出力する部分積和手段とを備えていることを特徴とする
乗算器。 - 【請求項36】 前記加算手段は、桁上げ保存加算器を
含んでいることを特徴とする請求項35に記載の乗算
器。
Priority Applications (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5218780A JP2972498B2 (ja) | 1993-09-02 | 1993-09-02 | 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器 |
KR1019940018889A KR0126626B1 (ko) | 1993-09-02 | 1994-07-30 | 논리회로의 자동설계방법, 그 시스템 및 그 장치와 승산기 |
TW083107256A TW401557B (en) | 1993-09-02 | 1994-08-09 | Method, apparatus and system for automatically designing logic circuit, and multiplier |
CN94115596A CN1102260C (zh) | 1993-09-02 | 1994-08-30 | 求乘数和被乘数之积的方法、系统、装置和乘法器 |
EP94113808A EP0642093B1 (en) | 1993-09-02 | 1994-09-02 | Method, system and apparatus for automatically designing a multiplier circuit and multiplier circuit designed by performing said method |
DE69434806T DE69434806T2 (de) | 1993-09-02 | 1994-09-02 | Verfahren, System und Vorrichtung zum automatischen Entwurf einer Multiplikatorschaltung und durch die Durchführung dieses Verfahrens entworfene Multiplikatorschaltung |
DE69435167T DE69435167D1 (de) | 1993-09-02 | 1994-09-02 | Multiplizierer |
EP06118102A EP1752870B1 (en) | 1993-09-02 | 1994-09-02 | Multiplier |
US08/300,802 US5600569A (en) | 1993-09-02 | 1994-09-02 | Method, system, and apparatus for automatically designing logic circuit, and multiplier |
EP04018295A EP1475699B8 (en) | 1993-09-02 | 1994-09-02 | Multiplier |
DE69435179T DE69435179D1 (de) | 1993-09-02 | 1994-09-02 | Multiplizierer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5218780A JP2972498B2 (ja) | 1993-09-02 | 1993-09-02 | 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0773227A JPH0773227A (ja) | 1995-03-17 |
JP2972498B2 true JP2972498B2 (ja) | 1999-11-08 |
Family
ID=16725265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5218780A Expired - Fee Related JP2972498B2 (ja) | 1993-09-02 | 1993-09-02 | 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5600569A (ja) |
EP (3) | EP1752870B1 (ja) |
JP (1) | JP2972498B2 (ja) |
KR (1) | KR0126626B1 (ja) |
CN (1) | CN1102260C (ja) |
DE (3) | DE69435179D1 (ja) |
TW (1) | TW401557B (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10124298A (ja) * | 1996-08-26 | 1998-05-15 | Fujitsu Ltd | 定数乗算器並びに定数乗算器自動生成方法および装置並びに定数乗算器自動生成プログラムを格納した記憶媒体 |
US6091892A (en) * | 1996-11-13 | 2000-07-18 | Xilinx, Inc. | Method for mapping product terms in a complex programmable logic device |
US5841684A (en) * | 1997-01-24 | 1998-11-24 | Vlsi Technology, Inc. | Method and apparatus for computer implemented constant multiplication with multipliers having repeated patterns including shifting of replicas and patterns having at least two digit positions with non-zero values |
US5815422A (en) * | 1997-01-24 | 1998-09-29 | Vlsi Technology, Inc. | Computer-implemented multiplication with shifting of pattern-product partials |
JP3701781B2 (ja) * | 1997-11-28 | 2005-10-05 | 株式会社ルネサステクノロジ | 論理回路とその作成方法 |
US6850631B1 (en) | 1998-02-20 | 2005-02-01 | Oki Electric Industry Co., Ltd. | Photographing device, iris input device and iris image input method |
CA2319888A1 (en) * | 2000-09-18 | 2002-03-18 | Ibm Canada Limited-Ibm Canada Limitee | Method for generating instruction sequences for integer multiplication |
US20030061252A1 (en) * | 2001-09-27 | 2003-03-27 | Murphy Charles D. | Non-constant reduced-complexity multiplication in signal processing transforms |
US20030074383A1 (en) * | 2001-10-15 | 2003-04-17 | Murphy Charles Douglas | Shared multiplication in signal processing transforms |
US20030182342A1 (en) * | 2002-03-25 | 2003-09-25 | Murphy Charles Douglas | Low-cost multiplication in small DFT butterflies |
TW200538919A (en) * | 2004-05-21 | 2005-12-01 | Hon Hai Prec Ind Co Ltd | System and method for checking split plane of motherboard layout |
US8386543B1 (en) * | 2006-09-28 | 2013-02-26 | L-3 Communications Corp | Reduced memory usage for digital signal processing system and method |
CN103605494A (zh) * | 2013-10-17 | 2014-02-26 | 陕西万达信息工程有限公司 | 一种平方运算电路 |
KR101590141B1 (ko) | 2014-04-09 | 2016-02-01 | 주식회사 세양 | 원단 표면 코팅용 액상 조성물 |
US9519459B2 (en) * | 2014-06-20 | 2016-12-13 | Wisconsin Alumni Research Foundation | High efficiency computer floating point multiplier unit |
US9841945B2 (en) * | 2014-06-26 | 2017-12-12 | Lattice Semiconductor Corporation | Efficient constant multiplier implementation for programmable logic devices |
RU185670U1 (ru) * | 2018-05-24 | 2018-12-13 | Федеральное государственное бюджетное образовательное учреждение высшего образования "МИРЭА - Российский технологический университет" | Цифровой умножитель импульсных потоков на константу |
CN112068802B (zh) * | 2020-08-14 | 2022-11-11 | 清华大学 | 计数器的设计方法、装置及计数器 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5164844A (ja) * | 1974-12-03 | 1976-06-04 | Fujitsu Ltd | |
US4792909A (en) * | 1986-04-07 | 1988-12-20 | Xerox Corporation | Boolean logic layout generator |
DE3619425A1 (de) * | 1986-06-10 | 1987-12-17 | Philips Patentverwaltung | Digitales filter |
US5146583A (en) * | 1987-09-25 | 1992-09-08 | Matsushita Electric Industrial Co., Ltd. | Logic design system for creating circuit configuration by generating parse tree from hardware description language and optimizing text level redundancy thereof |
JPH0315984A (ja) * | 1987-09-25 | 1991-01-24 | Matsushita Electric Ind Co Ltd | 機能記述変換方法と論理設計システム |
JP2506991B2 (ja) * | 1987-09-25 | 1996-06-12 | 松下電器産業株式会社 | 回路変換システムと回路変換方法と反転論理生成方法および論理設計システム |
JP2682142B2 (ja) * | 1989-06-14 | 1997-11-26 | 松下電器産業株式会社 | 乗算装置 |
FR2656124A1 (fr) * | 1989-12-15 | 1991-06-21 | Philips Laboratoires Electro | Multiplieur serie programmable. |
JPH0540608A (ja) * | 1990-03-16 | 1993-02-19 | Internatl Business Mach Corp <Ibm> | テーブルルツクアツプ乗算器及びその乗算方法 |
US5200907A (en) * | 1990-04-16 | 1993-04-06 | Tran Dzung J | Transmission gate logic design method |
US5412591A (en) * | 1990-08-09 | 1995-05-02 | Vlsi Technology, Inc. | Schematic compiler for a multi-format high speed multiplier |
US5313414A (en) * | 1992-11-12 | 1994-05-17 | Vlsi Technology, Inc. | Canonical signed two's complement constant multiplier compiler |
JP2840169B2 (ja) * | 1992-12-28 | 1998-12-24 | 松下電器産業株式会社 | 論理回路の自動設計方法およびその装置 |
JPH06223097A (ja) * | 1993-01-22 | 1994-08-12 | Sony Corp | 乗算器、積和演算器の回路記述の発生方法 |
JPH06243194A (ja) * | 1993-02-17 | 1994-09-02 | Matsushita Electric Ind Co Ltd | 論理回路の自動設計方法およびその装置 |
-
1993
- 1993-09-02 JP JP5218780A patent/JP2972498B2/ja not_active Expired - Fee Related
-
1994
- 1994-07-30 KR KR1019940018889A patent/KR0126626B1/ko not_active IP Right Cessation
- 1994-08-09 TW TW083107256A patent/TW401557B/zh active
- 1994-08-30 CN CN94115596A patent/CN1102260C/zh not_active Expired - Fee Related
- 1994-09-02 EP EP06118102A patent/EP1752870B1/en not_active Expired - Lifetime
- 1994-09-02 DE DE69435179T patent/DE69435179D1/de not_active Expired - Lifetime
- 1994-09-02 DE DE69435167T patent/DE69435167D1/de not_active Expired - Lifetime
- 1994-09-02 US US08/300,802 patent/US5600569A/en not_active Expired - Lifetime
- 1994-09-02 EP EP04018295A patent/EP1475699B8/en not_active Expired - Lifetime
- 1994-09-02 EP EP94113808A patent/EP0642093B1/en not_active Expired - Lifetime
- 1994-09-02 DE DE69434806T patent/DE69434806T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP1752870A2 (en) | 2007-02-14 |
EP1475699A2 (en) | 2004-11-10 |
EP0642093A3 (en) | 1996-03-13 |
KR0126626B1 (ko) | 1998-04-04 |
JPH0773227A (ja) | 1995-03-17 |
KR950009485A (ko) | 1995-04-24 |
DE69434806T2 (de) | 2006-12-21 |
DE69435179D1 (de) | 2009-02-12 |
DE69435167D1 (de) | 2008-12-24 |
EP1752870B1 (en) | 2008-12-31 |
EP1752870A3 (en) | 2007-05-16 |
CN1102260C (zh) | 2003-02-26 |
CN1106941A (zh) | 1995-08-16 |
EP0642093B1 (en) | 2006-08-02 |
EP1475699A3 (en) | 2004-11-17 |
EP0642093A2 (en) | 1995-03-08 |
EP1475699B1 (en) | 2008-11-12 |
US5600569A (en) | 1997-02-04 |
EP1475699B8 (en) | 2009-02-18 |
TW401557B (en) | 2000-08-11 |
DE69434806D1 (de) | 2006-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2972498B2 (ja) | 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器 | |
JP2622896B2 (ja) | 除算装置 | |
JP3689183B2 (ja) | 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算 | |
JP3244506B2 (ja) | 小型乗算器 | |
JP2002108606A (ja) | スティッキービット生成回路及び乗算器 | |
US5184318A (en) | Rectangular array signed digit multiplier | |
US5132925A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
KR100294015B1 (ko) | 다른 데이타형을 갖는 다수의 데이타를 처리하는 가산기 | |
CN111936965A (zh) | 随机舍入逻辑 | |
JP2840169B2 (ja) | 論理回路の自動設計方法およびその装置 | |
Yan et al. | An energy-efficient multiplier with fully overlapped partial products reduction and final addition | |
US5903470A (en) | Method and apparatus for automatically designing logic circuit, and multiplier | |
US5877973A (en) | Logic operation circuit and carry look ahead adder | |
JP2857505B2 (ja) | 除算装置 | |
Jaberipur et al. | Balanced $(3+ 2\log n)\Delta G $ Adders for Moduli Set $\{{2}^{n+ 1}, 2^{n}+ 2^{n-1}-1, 2^{n+ 1}-1\} $ | |
JP2001501341A (ja) | デジタル加算器回路 | |
US5206825A (en) | Arithmetic processor using signed-digit representation of external operands | |
US6109777A (en) | Division with limited carry-propagation in quotient accumulation | |
JPH063578B2 (ja) | 演算処理装置 | |
JP3112662B2 (ja) | 乗算器 | |
JPH113210A (ja) | 3入力比較器、並びにこれを用いた飽和演算装置およびその演算方法 | |
JP7119543B2 (ja) | 加減算回路および加減算回路の制御方法 | |
JP3100868B2 (ja) | 浮動小数点数のための算術演算装置 | |
Chen | Parallel-prefix structures for binary and modulo {2 (n-1), 2 (n), 2 (n+ 1)} adders | |
JPH0527948A (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: 19990817 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070827 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080827 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080827 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090827 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090827 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100827 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110827 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |