JPH096821A - 論理回路の合成方法、半導体装置の製造方法および二分決定グラフの最適化方法 - Google Patents

論理回路の合成方法、半導体装置の製造方法および二分決定グラフの最適化方法

Info

Publication number
JPH096821A
JPH096821A JP8097132A JP9713296A JPH096821A JP H096821 A JPH096821 A JP H096821A JP 8097132 A JP8097132 A JP 8097132A JP 9713296 A JP9713296 A JP 9713296A JP H096821 A JPH096821 A JP H096821A
Authority
JP
Japan
Prior art keywords
group
logic circuit
order
input variables
determined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP8097132A
Other languages
English (en)
Inventor
Haruzou Yamashita
春造 山下
Kazuo Yano
和男 矢野
Yasuhiko Sasaki
靖彦 佐々木
Koichi Seki
浩一 関
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP8097132A priority Critical patent/JPH096821A/ja
Publication of JPH096821A publication Critical patent/JPH096821A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】論理回路の合成に用いる二分決定グラフの探索
を効率的に行う。 【解決手段】論理関数から、アンドゲートとオアゲート
からなる仮の回路を合成し、2つの入力変数が同時に関
係するこの回路のゲート数を数えてその2つの入力変数
間の相関度とする。すべての入力変数間の相関度を求め
て、相関行列を作成する。相関行列上で相関度のより強
い入力変数の組から順次グループにまとめ、そのグルー
プを相関ツリーに順次登録し、グループ間相関ツリーを
作成する。相関度の最も弱いグループから順次これらの
グループを選択し、それぞれのグループのメンバのグル
ープ内順序を順次変更して、そのグループ内で最適条件
(例えば、ノード数、遅延時間または面積などが最小)
を満たす二分決定グラフを探索する。こうして得られた
二分決定グラフの各ノードをセレクタ回路で置き換え、
さらに各セレクタをトランジスタレベルの回路に置き換
えて論理回路を合成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術の分野】本発明は合成すべき論理回
路を規定する論理関数から二分決定グラフを生成し、こ
のグラフを使用して、論理回路を合成する方法に関す
る。
【0002】
【従来の技術】二分決定グラフ(Binary Decision Diagr
am)は、様々な派生型が存在するが、基本的には、1枝と
0枝と呼ばれる2本の枝を持つノードの二分木により論
理関数を表現したものであり、複雑な論理関数を簡潔に
表現できるという性質を持つ。例えば、情報処理学会発
行、情報処理、VOL.34,No.5,MAY 19
93,pp.593−599(以下、参考文献1と呼ぶ
)参照。このため、近年、二分決定グラフを論理検
証、論理回路合成等に応用する例が増えてきている。と
くに論理合成への応用に関しては、例えば、電子情報通
信学会1994年秋季全国大会予稿集第A卷、第64頁
(以下、参考文献2と呼ぶ)あるいはProceedi
ngs of IEEE 1994 custom i
ntegrated circuits confer
ence, 1994,pp.603−606(以下、参
考文献3と呼ぶ)には、二分決定グラフの各ノードを2
入力1出力のセレクタ回路に置き換える方法が示されて
いる。米国特許5,243,538号明細書(以下、参
考文献4と呼ぶ)には、論理検証への二分決定グラフの
応用が示されている。
【0003】とくに、上記参考文献2あるいは3は、二
分決定グラフの各ノードを、N型電界効果型トランジス
タにより形成されたパストランジスタ型セレクタ回路に
置き換え、必要に応じて電流増幅のためのバッファ回路
をさらに挿入して、トランジスタ数の小さいコンパクト
な論理回路を自動合成する方法を提案している。このよ
うに、二分決定グラフを用いて論理回路を合成する方法
では、二分決定グラフの各ノードをセレクタ回路に置き
換えるため、ノード数が十分に小さい二分決定グラフが
決定できれば、それから合成される論理回路のトランジ
スタ数は一般的に少なく、コンパクトである。また、コ
ンパクトな論理回路は、一般的には遅延時間も比較的小
さい。したがって、二分決定グラフのノード数を小さく
するように入力変数の順序を決定する方法が重要であ
る。
【0004】二分決定グラフのノード数は二分決定グラ
フを構成する際の入力変数の順序に大きく依存すること
が知られている。例えば、IEEE TRANSACT
IONS ON COMPUTERS, VOL.C−3
5,No.8,AUGUST1986,pp.677−
691(以下、参考文献5と呼ぶ)参照。
【0005】入力変数の数が非常に小さい場合には、す
べての入力変数の順序のパターンについて二分決定グラ
フを作って、ノード数が最も小さいものを選ぶという方
法(全通り探索)が可能である。しかし、入力変数の数
が100を越えるような一般の論理関数にこの方法を適
用すると、探索すべきパターンが天文学的な数になって
しまい、この方法は現実的ではない。また、任意の論理
関数に対して二分決定グラフのノード数が厳密な意味で
の最小となる入力変数の順序を解析的手法で見つけるこ
とは不可能であることが知られている。例えば、参考文
献5参照。しかし、二分決定グラフは一般に以下の性質
を持つことが知られている。
【0006】(1−1)回路上で同じゲートに接続され
ている入力変数は近い順序に置いた方がノード数の小さ
い二分決定グラフが得られる。
【0007】(1−2)セレクタ回路の制御信号入力等
に代表されるように、ある回路部分の出力を制御する力
が強い入力変数は、二分決定グラフを作った時にグラフ
の根に近くなる順序に配置した方がノード数の小さい二
分決定グラフが得られる。
【0008】このため、論理関数から一度、仮に回路を
合成し、合成した回路の結線情報から、上記(1−
1)、(1−2)の条件を満たすように入力変数の順序
を決定する方法がいくつか提案されている。
【0009】例えば、情報処理学会第44回全国大会予稿
集、第6−143頁から第6−144頁(以下、参考文
献6と呼ぶ)には以下のような入力変数の順序の決定方
法が紹介されている。
【0010】(2−1)各ゲートに対してレベルを定義
する。このレベルとは入力端子からそのゲートに到達す
るいろいろの経路が持つゲート段数のうち、最も大きい
ゲート段数である。
【0011】(2−2)レベルが相対的に高いゲートの
集合に直接または間接的に入力されている入力変数が同
じ部分集合に属するように、入力変数を部分集合に分割
する。
【0012】(2−3)入力変数の部分集合の内、直接
あるいは間接に接続されているゲートの数が多い部分集
合ほど二分決定グラフを構成した時に二分決定グラフの
根から遠くなるように、部分集合間の順序を割り当て
る。
【0013】(2−4)対象とするゲート集合のレベル
を下げて、すべての入力変数の順序が確定するまで(2
−1)から(2−3)の操作を行なう。
【0014】上記処理(2−3)により、生成される二
分決定グラフにおいて部分グラフが複数の回路出力によ
り共有される可能性が高まる。部分グラフが共有される
結果、一般の多出力の論理関数ではノード数が小さな二
分決定グラフが得られる。
【0015】一方、特開平4−112270号公報(参
考文献7と呼ぶ)には、以下のような入力変数の順序の
他の決定方法が示されている。
【0016】(3−1)仮の入力変数の順序を決定し
て、仮の二分決定グラフを構成する。
【0017】(3−2)隣接する入力変数の順序を局所
的に変更して、ノード数が小さくなればその変更を採用
する。ノード数が小さくならなければ入力変数の順序を
元に戻す。
【0018】(3−3)上記(3−2)の操作を二分決
定グラフのノード数が小さくならなくなるまで繰り返
す。
【0019】この方法では二分決定グラフを構成してか
らノード数が小さくなるように入力変数の順序を変更す
るため、元の二分決定グラフよりも必ずノード数の小さ
い二分決定グラフが得られる。他の方法と併用すること
により、よりノード数の小さな二分決定グラフを作るこ
とが可能である。
【0020】
【発明が解決しようとする課題】本発明者らは、入力変
数の順序と、それらから得られる論理回路のサイズとの
関係を独自に検討した。その検討では、いくつかの論理
関数に対して二分決定グラフを決定し、この二分決定グ
ラフに参考文献2あるいは3に記載の方法により論理回
路を割り当てる方法を使用した。その結果、ある論理関
数に対しては、非常にトランジスタ数の小さいコンパク
トな論理回路が得られたが、別の論理関数に対しては、
トランジスタ数が非常に大きくなってしまうということ
が分かった。さらに、同じ論理関数に対して、入力変数
の順序が違うだけで合成される回路のトランジスタ数が
数倍違うという場合が多く存在した。
【0021】さらに、本発明者らが参考文献6に記載の
入力変数の順序を決定する方法を検討したところ、この
方法で得られた入力変数の順序ではノード数が小さい二
分決定グラフが構成できず、コンパクトな論理回路が合
成できない場合が少なからず存在することを見い出し
た。これは、この方法の単純な入力変数の順序決定ルー
ル(従来技術の処理(2−3)参照)では、必ずしもノ
ード数が小さくならない二分決定グラフが選択されるこ
とを示している。
【0022】また、参考文献7に記載の入力変数の順序
を決定する方法を検討した結果では、最初に設定する仮
の入力変数の順序により最終結果が大きく違い、コンパ
クトな論理回路できない場合が存在することを見い出し
た。
【0023】上述のように、従来の入力変数の順序決定
方法では、いろいろの論理関数に対してノード数が十分
に小さい二分決定グラフを生成するための、入力変数の
順序を決定できない。従って、従来の方法では、サイズ
あるいは遅延時間が小さい論理回路を必ずしも合成でき
るとは限らないという問題を有する。
【0024】従って、二分決定グラフを用いて論理回路
を合成するには、ノード数が十分小さい二分決定グラフ
を生成できるように、入力変数の順序を決定する方法を
確立することがまず一義的に重要である。
【0025】しかしながら、本発明者による検討の結
果、二分決定グラフを使用して、よりサイズの小さな論
理回路あるいは遅延時間あるいは消費電力等の回路特性
においてより優れた論理回路を合成するには、単にノー
ド数が十分小さい二分決定グラフを決定するだけでは十
分でないという問題もあることが判明した。
【0026】すなわち、ノード数が十分に小さい二分決
定グラフから合成される論理回路は、一般的には、トラ
ンジスタ数がほぼ最小で、かつ、面積もほぼ最小とな
り、遅延時間もほぼ最小となる。しかしながら、このよ
うにして得られた論理回路よりさらにサイズの小さな論
理回路あるいはさらに小さな遅延時間を有する論理回路
を合成することはこの方法では一般には困難である。
【0027】例えば、参考文献2または3に記載された
ように、二分決定グラフの各ノードをセレクタで置き換
えるだけでは不十分で、その論理回路に電流増幅のため
のバッファ回路を挿入する必要がある場合には、上記二
分決定グラフとしてノード数が十分小さなグラフを使用
したとしても、上述の方法で得られる論理回路の面積が
十分小さくはならない。逆に、上記のノード数が十分小
さな二分決定グラフよりはノード数が少しは大きい他の
二分決定グラフのノードをセレクタで置換した上で、上
記バッファを挿入して得られる論理回路の方が、サイズ
が小さいことがあることが判明した。
【0028】このことは遅延時間についても同じであ
る。同様に、論理回路の面積、遅延時間の組合せ、ある
いはそれらと消費電力の組み合わせが最適な論理回路
は、ノード数がほぼ最小の二分決定グラフよりは大きい
ノード数の二分決定グラフを使用して得られることがあ
ることが判明した。
【0029】二分決定グラフを使用しない他の従来の論
理合成方法では、所定の手順で合成した論理回路のサイ
ズあるいは遅延時間が目標値内に入っていないときに
は、その遅延時間あるいはサイズがそれらの目標値内に
入るように、得られた論理回路を修正する方法がよく採
られる。しかし、、適したノード数とは異なるノード数
を有する二分決定グラフを用いて合成した論理回路にこ
のような方法を適用することは、あまり有効でない場合
が多い。すなわち、二分決定グラフを使用して合成した
論理回路のサイズ、あるいは遅延時間等の回路特性は、
そのグラフの形およびノード数に大きく依存する。適当
でないノード数の二分決定グラフを用いて合成した論理
回路を、その後修正しても所望の結果が得られるとは限
らない。
【0030】従って、本発明の目的は、所望の条件を満
たす二分決定グラフを、与えられた論理関数に基づいて
効率的に探索できる、二分決定グラフを使用して論理回
路を合成するのに適した論理回路の合成方法を提供する
ことである。
【0031】本発明のより具体的な目的は、ノード数が
十分に小さい二分決定グラフを、与えられた論理関数に
基づいて効率的に探索できる、二分決定グラフを使用し
て論理回路を合成するのに適した論理回路の合成方法を
提供することである。
【0032】本発明の他の目的は、面積、あるいは遅延
時間、消費電力等の回路特性あるいはそれらの組合せに
おいてより望ましい論理回路を二分決定グラフを使用し
て合成するのに適した論理回路の合成方法を提供するこ
とである。
【0033】本発明のさらに他の目的は、論理回路の合
成あるいは上記参考文献4のような論理検証等のいろい
ろの用途に使用するのに適した、ノード数が十分小さい
二分決定グラフを、与えられた論理関数に基づいて効率
的に探索するのに適した二分決定グラフ最適化方法を提
供することである。
【0034】
【課題を解決するための手段】上記目的を達成するた
め、本発明では、入力変数間の相関度の階層構造を検出
して、相関度が相対的に低いレベルから順に、各レベル
ごとに、そのレベルに関する入力変数の部分的な順序の
望ましい値を探索する。
【0035】このようにして決定された部分的な順序の
組合せを上記一群の入力変数に対する望ましい順序とし
て使用し、この望ましい順序に対応する二分決定グラフ
から論理回路を生成する。
【0036】入力変数間の相関を計算する方法の望まし
い態様では、論理関数を実現する論理回路として、単純
ゲートからなる仮の論理回路を生成し、一対の入力変数
に対する相関度として、これらの変数に対応する一対の
信号が同時に通過するゲートの数を数える。このように
して異なる入力変数間の相関を要素とする相関表を生成
し、その中で最も相関度が高い一群の入力変数を最下位
のグループのメンバとして選択する。次にこのグループ
に対して他の入力変数が有する相関度を、論理関数を元
にして計算し、他の入力変数の内で、このグループに対
して最も相関度が高い一つ又は複数の変数と上記グルー
プとを上記最下位の階層の一つ上位のグループのメンバ
として選ぶ。以下同様のことを繰り返す。こうして、上
記一群の入力変数と以上により生成された複数のグルー
プとを表すノードに有する相関ツリーを形成する。この
相関ツリーを、上記一群の入力変数に対する階層構造を
表すデータとして使用する。
【0037】一群の入力変数に対する望ましい順序の探
索の具体的な態様では、このようにして得られた階層構
造に対して、最上位のレベルのメンバ(グループあるい
は入力変数)の間の望ましい順序をまず最初に探索して
検出する。この探索に当たっては、他のグループのグル
ープ内順序としてはあらかじめ定められた順序を使用す
る。この最上位のグループに対する望ましいグループ内
順序の探索に当たっては、いくつかの可能なグループ内
順序の一つを選択し、その選択されたグループ内順序を
使用したときの、上記論理関数に対する二分決定グラフ
を生成し、そのグラフを所定の基準で評価する。例え
ば、そのノード数を計数する。このことを上記可能な複
数のグループ内順序に対して繰り返す。この繰り返しを
使用して、このグループに対する可能な複数のグループ
内順序の内、所望の条件を満たすグループ内順序、例え
ば、ノード数が小さい二分決定グラフを生成するグルー
プ内順序を検出する。他のグループに対する以後の探索
では、そのグループに対しては、この選択されたグルー
プ内順序を使用する。
【0038】その後、最上位より一つ下位のグループに
対する望ましいグループ内順序を同様にして探索する。
以下この動作を最下位のグループに対するグループ内の
順序が決定されるまで繰り返す。
【0039】論理回路の具体的な生成に当たっては、こ
のようにして各レベルに対して順次決定されたグループ
内順序により定まる順序を上記一群の入力変数に対する
望ましい順序として使用する。この望ましい順序に対応
する二分決定グラフの各ノードを単位回路、より望まし
くはセレクタ回路にマッピングすることにより、論理回
路を生成する。
【0040】このような方法は、論理回路の合成以外の
用途、例えば、論理検証に二分決定グラフを使用する場
合にも利用できる。そのときは、以上の処理の内、最適
な二分決定グラフを決定する部分までの処理を二分決定
グラフの最適化に使用する。
【0041】本発明の他の望ましい態様は、上記のよう
にノード数が小さい二分決定グラフを生成するよりも、
最終的に生成される論理回路として所定の回路特性につ
いて望ましい値を有する論理回路を生成するのに適して
いる。すなわち、入力変数の順序を探索するときに、探
索中の順序に対する二分決定グラフに基づいて、論理回
路を合成し、その回路特性を計算する。この計算結果を
使用して、より望ましい値の回路特性を有する論理回路
を生じる順序を探索する。
【0042】この探索は、より具体的には、二分決定グ
ラフを作成してそれを用いて望ましいグループ内順序を
探索する最初に述べた方法を修正して行う。すなわち、
候補として使用するグループ内順序に対して生成した二
分決定グラフを使用して論理回路を合成し、その回路の
回路特性の値を算出し、この値がより最適となるような
グループ内順序を各グループに対して探索する。これに
より、生成される二分決定グラフのノード数は最小では
ないかもしれないが、回路特性の値が最も望ましいグル
ープ内順序を各グループに対して選ぶ。このような探索
を最初に述べた方法と同様に行うことにより、最終的
に、上記回路特性が望ましい値を有する論理回路を生成
するための、上記一群の入力変数の順序を決定し、この
順序を使用して上記望ましい論理回路を生成する。
【0043】このような探索に使用する回路特性とし
て、例えば、回路面積、遅延時間、あるいは消費電力、
あるいはこれらの適当な組合せを使用する。
【0044】
【発明の実施の形態】以下、本発明に係る論理回路合成
方法を図面に示したいくつかの発明の実施の形態を参照
してさらに詳細に説明する。なお、以下においては、同
じ参照番号は同じものもしくは類似のものを表わすもの
とする。
【0045】<発明の実施の形態1>本実施の形態で
は、設計すべき論理回路の機能仕様から、その論理回路
を含む半導体集積回路を製造する。この製造過程におけ
る論理関数の合成時に、ノード数の小さい二分決定グラ
フを効率的に探索し、それを使用して論理回路を合成す
る。
【0046】(1)システムの全体構成 図2において、設計者は目的とする半導体集積回路の機
能仕様9を入力する。機能設計プログラム150は、機
能仕様9からより具体的な論理回路仕様10を生成す
る。本実施の形態に特有の論理回路合成プログラム10
0は、論理回路仕様10から、論理回路仕様10の論理
機能を実現する論理回路を合成し、その回路の接続情報
(これは一般にネットリストと呼ばれる)12を合成す
る。自動レイアウトプログラム160はライブラリ11
を参照して、ネットリスト12からこの論理回路の最適
なレイアウトを決定し、レイアウトデータ13を作る。
マスクデータ作成プログラム170は、レイアウトデー
タ13に従って、上記合成された論理回路を集積回路技
術を使用して生成するための複数のマスクパターンを決
め、それらのマスクパターンを表すマスクデータ14を
生成する。半導体製造装置180は、マスクデータ14
を用いて目的の機能を持った半導体集積回路を製造す
る。各プログラム150、100、160、170は、
それぞれに割り当てられた異なる計算機上で実行され
る。もちろん、これらのプログラムを同じ計算機上で実
行させることもできる。
【0047】図1は、論理回路合成プログラム100を
実行するための計算機システムとこのプログラムの概略
構造を示す。この計算機システムは、入力装置、例え
ば、キーボード1、中央処理装置(CPU)2、表示装
置(CRT)3、磁気テープ装置4および論理回路合成
プログラム100を格納する磁気ディスク装置5からな
る。このプログラム100は、グループ間相関ツリー作
成ルーチン110、最適二分決定グラフ作成ルーチン1
20、セレクタベースの回路マッピングルーチン130
から構成される。これらのプログラムは、設計者がキー
ボード1から指示を与えることにより、磁気ディスク装
置5からCPU2にロードされ、そこで実行される。こ
のプログラム100は、ユーザから与えられる論理回路
仕様10を満たす、論理ゲートレベルの論理回路を合成
し、その論理回路をライブラリ11を使用してトランジ
スタレベルの回路を生成する。合成された論理回路はC
RT3上に表示され、この回路の情報を含むネットリス
ト12は、磁気テープ装置4により図2の自動レイアウ
トプログラム160に渡される。このプログラム100
を実行するのに使用するいろいろのデータあるいはその
実行により生成される中間データあるいは最終データは
磁気ディスク装置5あるいはCPU内のランダムアクセ
スメモリ(図示せず)に格納される。
【0048】本実施の形態では、このプログラム100
は、二分決定グラフを使用して論理回路を合成する方法
を採る。すなわち、合成すべき論理回路の複数の入力信
号と少なくとも一つの出力信号をそれぞれ表す複数の入
力変数と少なくとも一つの出力変数に関して、論理回路
仕様10が記述する論理関数から、この論理関数を満た
す論理回路を合成するのに使用する適切な二分決定グラ
フを探索し、このグラフを表すデータ40を生成する。
さらに、このデータ40に基づいて、このグラフをセレ
クタレベルの論理回路にマッピングし、さらにその論理
回路をライブラリ11を使用してトランジスタレベルの
論理回路に変換する。
【0049】本実施の形態では、この探索を 効率的に
行う点に特徴があり、具体的には、これらの入力変数間
の相関を計数し、それに基づいて、入力変数を複数の階
層化されたグループに分け、それらのグループのレベル
を表す相関ツリー20を生成し、これを用いて、相関の
弱い最上位のグループから順に最適なグループ内順序を
探索することにより、この論理関数を満たす論理回路を
合成するのに使用する適切な二分決定グラフの探索を効
率的に行う。
【0050】以下、それぞれのルーチンについて説明す
る。 (2)グループ間相関ツリー作成ルーチン110 このルーチン110は、論理回路仕様10からグループ
間相関ツリー20を生成する。この論理回路仕様10に
は、合成すべき論理回路の複数の入力信号と少なくとも
一つの出力信号をそれぞれ表す複数の入力変数と少なく
とも一つの出力変数に関する論理関数その他の情報が含
まれる。以下では、次の論理関数を例にして本実施の形
態を説明する。
【0051】 out1=AB+C+D、out2=(AB+C)E 図3を参照するに、まず、論理回路仕様10の論理関数
から、論理関数上の冗長性を取り除いた後に、アンドゲ
ート及びオアゲートを使用した論理回路を仮合成して
(111)、この仮合成された論理回路用のネットリス
ト22を作成する。上に示した論理関数の例の場合に
は、図4の回路が仮合成される。仮合成された論理回路
は、後述する方法で入力変数間の相関度を求めるのに使
用されるため、仮合成された回路が冗長である場合に
は、入力変数間の相関度を正確に評価できない恐れがあ
る。そのため、できる限り冗長性を取り除くことが重要
である。また、冗長性を取り除くことにより、より望ま
しい二分決定グラフを探索することが可能になる。な
お、上記の論理関数上の冗長性を取り除く処理及び回路
の仮合成は、既存の公知の論理回路合成ツールを使用し
て実行できる。
【0052】次に仮合成した回路からグループ間相関行
列23を作成する(112)。仮合成した回路で、2つ
の入力変数が同時に関係するゲート数を数えて2つの入
力変数間の相関度を計算して、グループ間相関行列23
に登録する。図4の例で、入力変数A,B間の相関度に
ついて考えると、入力変数A,Bが関係するゲートは、
G10〜G13の4つである。このため、入力変数A,
B間の相関度は4になり、グループ間相関行列23には
4が登録される。また、入力変数A,Cが同時に関係す
るゲートはG11〜G13の3つであるため相関度は3
となり、グループ間相関行列23には3が登録される。
同様に残りのすべての入力変数間の相関度を求めて、グ
ループ間相関行列23が完成する。
【0053】このように定義した入力変数間の相関度で
は、相関度が強いものほど、その二つの入力変数が同時
に接続されているゲート数が多いことになる。つまり、
従来技術の(1−1)で述べた二分決定グラフの性質か
ら、ノード数が小さい二分決定グラフを作るためには、
相互に相関度が強い入力変数の組ほど入力変数の順序上
で、より近い順序に置く必要があることになる。また、
相関度が弱いあるいは相関度がない組は、必ずしもこの
順序上で近くに置く必要がないことになる。
【0054】次にグループ間相関行列23からグループ
間相関ツリー20を作成する(113)。すなわち、グ
ループ間相関行列23上で相関度が最も強い入力変数の
組をグループにまとめその入力変数のグループに対応す
るノードをグループ間相関ツリー上に作成する(11
4)。この例では、入力変数A,Bの相関度が4で最も
相関度が強いため、A,Bをメンバーに持つグループG
1を作り、グループG1に対応するノードをグループ間
相関ツリー20aに登録する(図5(a))。次にグル
ープG1にまとめた入力変数を新たな1つの入力変数と
して扱い、グループ間相関行列23を変形する(11
5)。以上の処理114及び処理115を繰り返し、ま
とめるべき入力変数の組がなくなった時点で、まとめら
れなかった入力変数をグループ間相関ツリーの最上位の
ノードに登録する。現在仮定している論理関数の例で
は、A,Bをメンバーに持つグループG1が新しい1つ
の入力変数になり、相関行列は図5(a)の23から2
3aに変形される。グループ間相関行列23aではG1
とCの相関度が3であるので、G1とCを新しいグルー
プG2にまとめ、グループG2をグループ間相関ツリー
20bに登録する。グループ間相関行列23bを変形し
て新たなグループ間相関行列23bを得る。グループ間
相関行列23bでは、グループG2と入力変数Dの間の
相関度、及びグループG2と入力変数Eの間の相関度は
どちらも1であるが、DとEは相関度0で相関が全くな
く、これらはグループにまとめられない。このため、G
2、D、Eをグループ間相関ツリーの最上位のノードに
登録して、処理を終了する。こうして、最終的な相関ツ
リー20が得られる。
【0055】なお、この例では相関度が強い入力変数の
組は1つしかなかったが、論理関数としては、同じくら
い強さの相関度の入力変数の組が複数存在して、しかも
それらの入力変数の組の間の相関度は弱いあるいは相関
が全くないような例も考えられる。このような場合に
は、それらの入力変数の組をそれぞれ独立に別個のグル
ープにまとめる。
【0056】また、入力変数の間に相関が全くないよう
な場合には、それらをメンバーに持つノードをグループ
間相関ツリーの最上位に作成して処理を終了する。
【0057】(3)最適二分決定グラフ作成ルーチン1
20 このルーチン120は、先に作成されたグループ間相関
ツリー20と、論理回路仕様10とから、二分決定グラ
フ、入力変数の順序、ノード数の3つのデータから構成
される最適二分決定グラフデータ40を生成する。
【0058】図6を参照するに、まず、グループ間相関
ツリー20の各グループのメンバの間のグループ内順序
を仮の順序に固定する(121)。次に、グループ間相
関ツリー20に登録されたグループの中で最も相関度が
弱いグループを、グループ内で最適な二分決定グラフを
探索するための探索対象に選ぶ。この時、探索対象以外
のグループのグループ内順序は先に設定された仮の順序
に固定したままとする(122)。グループ間相関ツリ
ー20が図5(b)の構造を有する場合、相関度0のG
3が最も相関度が弱いグループであるから、G3を探索
対象に選び、G2及びG1のグループ内順序は固定す
る。
【0059】次に入力変数の順序を生成する(12
3)。この時、グループ間相関ツリー20と入力変数の
順序の対応関係を、グループ間相関ツリー20上で最も
左に位置する入力変数を、入力変数順序上の最も上位の
位置に持ってくるように決めることにする(逆に最も右
に位置する入力変数を最も上位の順序に持って来るとい
うように決めても良い)。例えば、グループ間相関ツリ
ー20が図5(b)の構造を有する場合、A、B、C、
D、Eという入力変数の順序が生成される。この入力変
数の順序から二分決定グラフを作成して(124)、ノ
ード数を計数する(125)。求められたノード数は、
最適二分決定グラフデータ40として保持しているノー
ド数の最小値と比較され、それより小さければ最適二分
決定グラフデータ40内の、二分決定グラフ、入力変数
の順序及びそのノード数を、今回作られた二分決定グラ
フに関するデータ(すなわち、そのグラフ、入力変数の
順序及びノード数)でもって更新する(126)。な
お、最適二分決定グラフデータ40の初期値は、上述の
ようにして最初に作成された二分決定グラフに関するデ
ータが必ず登録されるような値に定めておく。
【0060】以下、探索対象のグループ内順序を順次変
更して(127)、その探索対象のグループ内順序を変
更することによって生成されるすべての入力変数の順序
のパターンについて、処理123〜127を繰り返す。
こうして、探索対象のグループ内のすべての入力変数の
順序のパターンについて最適な二分決定グラフの探索が
終了した時点で最適二分決定グラフデータ40に保持さ
れているデータが、探索対象のグループに対する最適な
二分決定グラフを表すデータとなる。以下の処理では、
このデータに含まれた、入力変数の順序で指定されるグ
ループ内順序を、このグループのグループ内順序として
固定して使用する。すべてのグループのグループ内順序
の探索が終了するまで、異なるグループについて上述し
た二分決定グラフの探索(処理122から127)を繰
り返す。この繰り返し時には、グループ間相関ツリー2
0に登録された、探索が未終了のグループの中で最も相
関度が弱いグループを、次の探索対象に選ぶように、順
次グループを選択する。
【0061】今の例では、まずグループG3(G2、
D、E)が探索対象に選択される。グループG3(G
2、D、E)のグループ内順序には6通りのパターンが
ある。グループG2が先になるような、入力変数の順序
A、B、C、D、Eが最初に評価すべき順序に選ばれ
る。この順序に対して二分決定グラフが最初に作成され
るので、このグラフに対するグラフデータ、すなわち、
図7(a)に示す二分決定グラフB10、変数の順序及
びノード数8は、最適二分決定グラフデータ40に最初
に登録される。以下、グループ内の順序が変更される。
グループG3のグループ内順序がD、G2、Eに変更さ
れたときには、対応する入力変数の順序はD、A、B、
C、Eになり、二分決定グラフは、図7(b)のグラフ
B11になり、ノード数は8であるが、このノード数
は、最適二分決定グラフデータ40に登録されたノード
数より小さくないので、最適二分決定グラフデータ40
は更新されない。次にグループG3のグループ内順序が
D、E、G2に変更された場合は、対応する入力変数の
順序はD、E、A、B、Cになり、二分決定グラフは図
7(c)のグラフB12になり、ノード数は5であるの
で、最適二分決定グラフデータ40はこの新たなグラフ
に関するデータにより更新される。以下、同様の処理を
繰り返す。この例では、グループG3のグループ内順序
がE、D、G2の場合も同様にノード数5となり、グル
ープG3のグループ内順序を変更することによって得ら
れる最適二分決定グラフには2通りのものがあるが、本
実施の形態では、それらのうちで先に評価対象となった
D、E、G2という順序が最適な二分決定グラフを生じ
るグループ内順序として最適二分決定グラフデータ40
に保持される。従って、グループG3での探索が終了し
た時点で、G3のグループ内順序はD、E、G2に固定
される。また、この時点で最適な入力変数の順序は、
D、E、A、B、Cである。
【0062】グループG3のグループ内順序が確定した
時点では、探索がされていないグループの中で相関度が
一番弱い、相関度3のグループG2が次の探索対象に選
ばれる。グループG2は、グループG1と入力変数Cと
から構成されるため、探索すべきグループ内順序は2通
りある。そのうちグループG1が入力変数Cより先に位
置する順序に対する二分決定グラフは、すでに調査した
図7(c)のグラフB12であり、最適二分決定グラフ
データ40は更新されない。グループG1が入力変数C
より後に位置する順序に対する二分決定グラフは、図7
(d)のグラフB13になり、ノード数は5であり、こ
の場合も最適二分決定グラフデータ40は更新されな
い。こうして、グループG2に対する探索が終了した時
点では、このグループに対するグループ内順序は、グル
ープG2に対して処理121で仮に定められた順序G
1、Cのままとなる。
【0063】最後に、グループG1のグループ内順序で
あるが、この場合も順序を変更してもノード数は変わら
ないため、最適二分決定グラフデータ40は図7(c)
のグラフB12に対するデータのままである。こうし
て、図7(c)のグラフB12が、今仮定している論理
関数に対して最適なものとして決定される。
【0064】(4)セレクタベースの回路マッピングル
ーチン130 このルーチンは、図8に示すルールに従い、処理120
で作成された最適二分決定グラフデータ40で指定され
る二分決定グラフの各のノードを、セレクタ回路あるい
はインバータ等の単位回路に置き換え、必要に応じて電
流増幅のためのバッファ回路を挿入して、目的の論理回
路を生成し、その論理回路を表すネットリスト14を生
成する。
【0065】まず、二分決定グラフの各ノードを単位回
路に置き換えて論理回路を合成するために、公知のマッ
ピングルールに従って、ノードの種類により異なるマッ
ピングを行う。図8のa行に示すノードN1のように、
1枝及び0枝がつながっている先が一定の値1または0
ではない場合には、二分決定グラフのノードを2入力1
出力のセレクタ回路S0にマッピングする。セレクタ回
路S0の制御信号入力に二分決定グラフのノードに対応
する入力変数Xを割り当て、その制御信号入力が1の時
に選択される入力in1には、1枝につながっているノ
ードの出力を割り当てる。制御信号入力が0の時に選択
される入力in0には、0枝につながっているノードの
出力を割り当てる。このように置き換えることにより二
分決定グラフのノードと同じ論理機能を持つ回路が実現
される。
【0066】二分決定グラフのノードが図8のb行に示
すノードN2のように、1枝が1につながり、0枝が0
につながっている場合には、このノードの出力は、その
ノードの入力変数Xが1の時は1が出力され、また入力
変数Xが0の時は0が出力される。このため、入力変数
Xと、このノードの出力は、論理的に同値であるので、
入力Xをそのまま次段の回路に入力すればよい。
【0067】また、二分決定グラフのノードが図8のc
行に示すノードN3のように、1枝が0につながり、0
枝が1につながっている場合には、このノードの出力
は、ノードに入力する入力変数Xが1の時は0が出力さ
れ、入力変数Xが0の時は1が出力される。このため、
入力変数Xの反転信号になる。つまり、入力Xをインバ
ータによって反転させ次段の回路に入力すればよい。
【0068】こうして、例えば、図7(c)の二分決定
グラフB12から論理回路を合成すると、図10(a)
に示す、セレクタS30〜S33によって構成されるセ
レクタレベルの論理回路が合成される。図7(c)の二
分決定グラフB12では、入力変数Cに対応するノード
が図8のb行に該当し、その他のノードは図8のa行に
該当する。なお、この例では、図8のc行に該当する変
換は生じない。
【0069】次に、このようにして形成されたセレクタ
レベルの論理回路の各セレクタ回路をトランジスタレベ
ルの回路に変換する。セレクタ回路S0としては様々な
ものが考えられるが、代表的なものとしては以下の3つ
の例が考えられる。1つは、図9(a)に示した、N型
電界効果型トランジスタT1〜T2及びインバータI1
から構成されるN型電界効果型トランジスタで構成した
パストランジスタタイプのものである。2つ目は、図9
(b)に示した、N型電界効果型トランジスタT10〜
T11、P型電界効果型トランジスタT12〜T13及
びインバータI10から構成される、P型N型の両方の
タイプのトランジスタで構成したパストランジスタタイ
プのものである。3つ目は、図9(c)に示した、CM
OS回路によるアンドゲートG200〜G201、オア
ゲートG202及びインバータI200から構成される
ものである。
【0070】このようにセレクタ回路S0には複数の実
現例が考えられるが、どのタイプのセレクタ回路を使用
するかは、ライブラリ11に収められているセレクタ回
路構造に示される。但し、このセレクタ回路構造を変更
することにより、他のセレクタ回路を選択可能である。
【0071】最後に必要に応じて電流増幅のためのバッ
ファ回路を挿入して論理回路を完成する。この論理回路
の回路接続情報を表現したネットリストを出力してセレ
クタベースの回路マッピングルーチン130は終了す
る。
【0072】例えば、図10(a)のセレクタレベルの
論理回路において、セレクタ回路を図9(a)のN型電
界効果型トランジスタで構成したパストランジスタタイ
プのもので実現すると、最終的にトランジスタT30〜
T37及びインバータI30〜I33で構成される図1
0(b)のトランジスタ回路が得られる。なお、図10
(b)の回路の場合には、とくに先に述べた電流増幅の
ためのバッファを使用していない。
【0073】以上述べたごとく、本実施の形態でのグル
ープ間相関ツリー20の作成方法によれば、入力変数の
順序上で相互により近くに置いた方がノード数が小さく
なる入力変数のグループ群ほど同じ階層あるいはより近
い階層に属するようにグループが構成されている。ま
た、互いに近くに置く必要がないグループ群は、互いに
遠く離れた階層に属するようにグループが構成されてい
る。このような条件を満たすようにグループの階層を決
めることが有効である。すなわち、この結果、グループ
間相関ツリーの枠組みを満たさない、入力変数の順序の
パターン、つまりグループ間相関ツリーに基づく探索で
は探索されない入力変数の順序からは、二分決定グラフ
の性質上(従来技術の (1−1)参照)、グループ間相
関ツリーに基づく探索で探索された二分決定グラフのノ
ード数に比べて、ノード数が小さい二分決定グラフが得
られる可能性は非常に小さいと考えられる。言い換えれ
ば、ノード数が小さい二分決定グラフを生成するに必要
な入力変数の順序は、グループ間相関ツリーに属するグ
ループのグループ内順序を変更して生成されるいろいろ
の入力変数順序の中に存在するものと考えられる。
【0074】実際に、本実施の形態でも、グループ間相
関ツリーに属するグループのグループ内順序を変更する
ことでは決して生成されない入力変数の順序A,D,
C,E,Bから二分決定グラフを作成すると、図7
(e)のグラフB14になり、ノード数11という、ノ
ード数が非常に大きい二分決定グラフが得られるだけで
ある。このノード数11は、本実施の形態の最適二分決
定グラフ作成ルーチン120の探索過程において見つか
ったノード数の最大値8よりも大きい。このことから
も、探索範囲をグループ間相関ツリーの枠組みを満たす
ものに限定しても、ノード数がより小さい二分決定グラ
フを探索し損なう可能性は少ないと考えられる。従っ
て、本実施形態によれば、ノード数がより小さい二分決
定グラフを効率よく探索することができると期待でき
る。。
【0075】また、本実施の形態では、ノード数の小さ
い二分決定グラフのためには入力変数順序上でより近く
の順序にあることが望ましい入力変数のグループほど、
相関度が強いグループとなるように、相関度を定義して
いる。従って、このように相関度を定義すると、グルー
プ内の順序を入れ替えてもノード数は大きく変わらない
と期待できる。実際に本実施の形態では、グループ内順
序を入れ替えることでノード数が変わったグループは、
相関度0のG3だけで、相関度4のグループG1及び相
関度3のグループG2については、グループ内順序を変
更してもノード数は最小値の5のままであった。このこ
とからも、グループ間相関ツリーで最も相関度が弱いグ
ループからグループ内順序を変更して、ノード数の小さ
い二分決定グラフの探索を行うというように探索範囲を
限定しても問題がほとんどないと期待される。
【0076】以上の2つの理由により、相関度が強い他
のグループのグループ内順序を固定して、相関度が最も
弱いグループからグループ内順序を変更して、ノード数
の小さい二分決定グラフを探索して行くというように探
索空間を限定しても、その空間の中でノード数が十分に
小さい二分決定グラフが見つけられることが期待でき
る。
【0077】また、本実施の形態で先に使用した論理関
数の一例に対して、ノード数最小の二分決定グラフを全
通り探索によって探索しても、得られる最小のノード数
は本実施の形態での限定された探索で得られた5と同じ
である。つまり、本実施の形態では、全通り探索(5!
=120通り)よりもはるかに少ない探索回数(6+2
+2=10通り)で、ノード数が最小の二分決定グラフ
が得られたことになる。
【0078】本実施の形態では従来技術の参考文献6の
ような単純なルールで入力変数の順序を決めるのではな
く、二分決定グラフを作成して、実際にノード数が小さ
くなるように入力変数の順序を決めて行くため、確実に
ノード数が小さい二分決定グラフが得られる。さらに、
本実施の形態では従来技術の参考文献7のように、最初
に設定する仮の入力変数の順序に結果が大きく左右され
るといった問題もない。また、本実施の形態以外の他の
いくつかの論理関数についても本実施の形態の方法を適
用したところ、従来技術の参考文献6、7の方法よりも
ノード数の小さい二分決定グラフを作ることが可能であ
った。
【0079】このように、本実施の形態では全通り探索
よりもはるかに少ない探索回数で、現実的な時間内に十
分にノード数の小さい二分決定グラフが得られる。つま
り、少ない数のトランジスタで目的の論理機能を持つ優
れた論理回路を効率の良い探索で合成することが可能と
なる。
【0080】<発明の実施の形態1の変形例> (1)本実施の形態1では、説明を簡単にするため、最
適二分決定グラフを1つ選択するようにした。しかし、
本実施の形態では、すでに述べたように、図7(d)の
グラフB13も最適二分決定グラフでありうる。このよ
うにノード数最小となる二分決定グラフが複数存在する
場合には、最適二分決定グラフとしてこれらの複数のグ
ラフを選択しても構わない。そのような複数の最適二分
決定グラフの一つをノード数以外の他の評価に基づいて
選択すればよい。例えば、それらの二分決定グラフのそ
れぞれから、後に実施の形態2により説明する方法と同
様にして、論理回路を合成する。さらに、後に実施の形
態2および3により説明する方法と同様にして、それぞ
れの論理回路の面積、遅延時間等の所定の回路特性の一
つあるいは複数の組合せを評価する。この評価の結果に
より、より優れた回路を生成するような一つの二分決定
グラフをこれらの複数の二分決定グラフから選択する。
このような選択を実施の形態1に加えることにより、ノ
ード数も小さく、比較的優れた回路特性を持った論理回
路を合成することが可能になる。なお、後に述べる実施
の形態2および3はノード数を少なくするよりも、上記
のような一つあるいは複数の回路特性において優れた論
理回路を生成するのに有効である。
【0081】(2)実施の形態1で説明したグループ間
相関ツリー作成ルーチンの他にも、別の方法により同様
のグループ間相関ツリーを作成することも可能である。
例えば、仮合成回路ネットリスト22から、各ゲートを
ノードに持ち、そのゲートの入力線を枝とし、出力をそ
の根とする多分木を作成する。出力が1つしか存在しな
い場合には、根に近いノードほど相関度が弱くなるよう
に各ノードに相関度をわりふって、目的のグループ間相
関ツリーを得る。この方法では、出力が複数存在する場
合には、根が複数ある多分木が生成される。この場合、
複数の根に向かう枝を持った新しいノードを作成する。
得られた多分木でループしている枝がある場合には、そ
れらを1つの枝に置き換える。後は出力が1つしか存在
しない場合と同様に、根に近いノードほど相関度が弱く
なるように各ノードに相関度をわりふって、目的のグル
ープ間相関ツリーを得る。
【0082】(3)実施の形態1で説明した最適二分決
定グラフデータ作成ルーチンは、否定演算を表す属性を
加えた否定エッジ付き二分決定グラフ等の、二分決定グ
ラフのいろいろの派生型についても同様に適用できる。
これらの二分決定グラフの派生型も、オリジナルの二分
決定グラフと同じように、従来技術の(1−1)、(1
−2)で説明した性質を持つためである。
【0083】<発明の実施の形態2>本実施の形態は、
実施の形態1のようにノード数の小さい二分決定グラフ
を探索するのではなく、遅延時間の小さい論理回路を構
成するような二分決定グラフを探索する点において、実
施の形態1と異なる。このため、本実施の形態では、最
適化する最適二分決定グラフ作成ルーチン120の具体
的な処理が実施の形態1と異なり、さらに、入力される
論理回路仕様10に、入力信号の遅れ等を記述した遅延
時間制約情報及び出力につながっている負荷を記述した
負荷情報が含まれている点も実施の形態1と異なる。な
お、これらの遅延時間制約情報及び負荷情報は、図2で
自動レイアウトプログラム160によって作成されるレ
イアウトデータ13から各信号線の配線長を求めた結
果、抽出される情報である。
【0084】図11を参照するに、本実施の形態の最適
二分決定グラフ作成ルーチン120では、実施の形態1
と同様に、処理121から処理124を実行して二分決
定グラフを作成する(124)。本実施の形態では、そ
の後、実施の形態1と異なり、セレクタベースの回路マ
ッピングルーチン130を呼び出して、論理回路のネッ
トリスト14を合成して、ライブラリ11に格納されて
いるトランジスタパラメータ、論理回路仕様10に含ま
れる入力信号の遅れ情報及び出力にぶらさがっている負
荷の情報を加味して、回路の遅延時間を算出する(13
1)。実施の形態1の場合と異なり、最適二分決定グラ
フデータ40は、ノード数がこのデータ40内のデータ
数より小さい二分決定グラフが探索されたときに更新さ
れるのではなく、算出された遅延時間がこのデータ40
内の遅延時間より小さくなるような論理回路を生成する
二分決定グラフが探索されたときに更新される(13
2)。探索が終了したグループのグループ内順序は、遅
延時間最小に対応する最適二分決定グラフデータ40内
の入力変数の順序に対応した順序に固定される。以下、
実施の形態1と同様に、探索対象グループについての探
索が終了するまで処理123〜127及び処理131〜
132を繰り返す。探索対象グループについての探索が
終了したら、実施の形態1と同じく、他のグループにつ
いて以上の処理を繰り返す。以上の処理の結果、遅延時
間が小さい論理回路とそれに対応する最適二分決定グラ
フが得られる。
【0085】処理131での遅延時間の算出を、実施の
形態1と同じ論理関数の例に対して説明する。ここで
は、入力変数D、E、Bが他の入力変数A、Cより著し
く遅れ、しかもその遅れが入力D、E、Bとも同程度ぐ
らいの場合を考える。実施の形態1により最終的に合成
されるトランジスタレベルの回路は図10(b)に示す
ものであるため、この回路全体の遅延時間D1は、Bか
らの遅延が一番大きくなるので、 D1=入力Bの遅延+トランジスタ3段の遅延+out
1の負荷遅延(あるいはout2の負荷遅延) 今仮定している論理関数に対する二分決定グラフには、
実施の形態1では最終的に最適二分決定グラフに採用さ
れた図7(c)のグラフB12と同じノード数5のもの
が複数存在し、その中には図12(a)のようなものも
存在する。図12(a)の二分決定グラフB15から論
理回路を合成すると、トランジスタT40〜T47及び
インバータI40〜I43から構成される図12(b)
の回路が得られる。この回路全体の遅延時間D2は、 D2=入力Bの遅延+トランジスタ2段の遅延+out
1の負荷遅延(あるいはout2の負荷遅延) となり、図10(b)の回路よりトランジスタ1段分だ
け遅延時間が小さい。従って、本実施の形態のように、
回路を合成して遅延時間を算出して遅延時間が小さくな
るように最適二分決定グラフを更新して行くことによ
り、図12(b)のような遅延時間がより小さい回路を
合成することが可能になる。
【0086】以上の処理により、遅延時間がより小さく
なる論理回路を生成する二分決定グラフを効率的に探索
でき、このような特徴のある論理回路を合成することが
可能になる。
【0087】<発明の実施の形態3>本実施の形態で
は、実施の形態2と異なり、合成される論理回路の面積
を小さくするような二分決定グラフを探索する。
【0088】図13を参照するに、本実施の形態の最適
二分決定グラフ作成ルーチン120では、実施の形態2
と同様に、処理121から124を実行して二分決定グ
ラフを作成し、さらに、セレクタベースの回路マッピン
グルーチン(130)を呼び出して、作成した二分決定
グラフに対応する論理回路のネットリスト14を合成す
る。その後、本実施の形態では、実施の形態2と異な
り、ライブラリ11のレイアウト情報からトランジスタ
及びセレクタ回路がレイアウト上で実際どのくらいの面
積を占めるかの情報を読み出し、これらの情報を用いて
合成された論理回路の面積を算出する(133)。最適
二分決定グラフデータ40は、計算された面積がそのグ
ラフデータ40に保持されいる面積より小さくなれば更
新され、そうでなければ更新されない(134)。探索
が終了したグループのグループ内順序は、面積最小とい
う条件で探索された最適二分決定グラフの入力変数の順
序に対応した順序に固定される。以下、実施の形態1、
2と同様に以上の処理を繰り返す。
【0089】以上の処理により、電流増幅の目的でバッ
ファ回路が挿入されない場合においても、また、必要に
応じてこのようなバッファ回路が挿入される場合におい
ても、面積がより小さい論理回路を生成する二分決定グ
ラフを効率的に探索でき、このような特徴がある論理回
路を合成することが可能になる。
【0090】<発明の実施の形態4>本実施の形態で
は、実施の形態1、2、3と異なり、合成される論理回
路の面積、遅延時間、消費電力の組み合わせを最適にす
るような二分決定グラフを探索する。
【0091】図14を参照するに、本実施の形態の最適
二分決定グラフ作成ルーチン120では、実施の形態
2、3と同様に、処理121から124の後にセレクタ
ベースの回路マッピングルーチン(130)を呼び出し
て、作成した二分決定グラフに対応する論理回路のネッ
トリスト14を合成する。その後、本実施の形態では、
実施の形態2、3と異なり、ライブラリ11に格納され
ているトランジスタパラメータ及びレイアウト情報、論
理回路仕様10に含まれている入力信号の遅れ情報及び
出力にぶらさがっている負荷の情報を加味して、その回
路の面積、遅延時間、消費電力を算出する(135)。
最適二分決定グラフデータ40は、算出された面積、遅
延時間、消費電力の組み合わせが、このデータ40内の
これらの情報の組合せより最適になれば更新される(1
36)。面積、遅延時間、消費電力の組み合わせがより
最適であるかどうかは、面積、遅延時間、消費電力をパ
ラメータにして求められる評価関数の値がより小さくな
ったかどうかで判定する。例えば、評価関数を、 評価関数=面積×遅延時間×消費電力 というように設定すれば、面積、遅延時間、消費電力と
も同じ重みで考慮され、3者のバランスがとれた回路が
得られることが期待される。この評価関数の式を変更す
ることにより、合成される回路を面積性能優先にする
か、あるいは遅延時間性能優先にするか、あるいは面
積、消費電力の2つの性能をともに優先にするか、など
に探索条件を変更することが可能である。
【0092】探索が終了したグループのグループ内順序
は、面積、遅延時間、消費電力の組み合わせが最適な回
路に対応する最適二分決定グラフの入力変数の順序に対
応した順序に固定される。以下、実施の形態1から3の
場合と同じようにして、以上の処理を繰り返す。
【0093】以上の処理により、面積、遅延時間、消費
電力の組み合わせがより最適な論理回路を生成する二分
決定グラフを効率的に探索でき、このような特徴のある
論理回路を合成することが可能になる。
【0094】<発明の実施の形態4の変形例>面積、遅
延時間、消費電力の一部の組合せ、例えば、遅延時間と
面積との組合せをより最適にする論理回路を生成する二
分決定グラフを探索するように実施の形態4を変形すれ
ば、このような二分決定グラフを効率的に探索でき、こ
れらの特徴を持つ論理回路を生成することが可能にな
る。
【0095】
【発明の効果】以上に示した実施の形態から分かるよう
に、本発明によれば、与えられた論理回路仕様から、実
用時間内に所定の条件を満たす二分決定グラフを効率的
に探索できる。とくにノード数が十分に小さい二分決定
グラフを効率的に探索できる。従って、トランジスタ数
の小さいコンパクトな論理回路を合成することが可能に
なる。
【0096】また、与えられた論理回路仕様から、遅延
時間の小さい論理回路を合成するのに使用できる二分決
定グラフを効率的に探索ができ、この様な特徴を有する
論理回路を合成することが可能になる。
【0097】また、同様に、面積の小さい論理回路ある
いは面積、遅延時間、消費電力の一部あるいは全ての組
合せをより最適にするような論理回路を合成するのに使
用できる二分決定グラフを効率的に探索ができ、この様
な特徴を有する論理回路を合成することが可能になる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態による、論理回路を
合成するための計算機システムとそこに使用する論理回
路合成プログラムの概略構成図。
【図2】本発明の第1の実施の形態による、機能設計か
ら半導体集積回路の製造までのフローチャート。
【図3】図1の論理回路合成プログラムに使用するグル
ープ間相関ツリー作成ルーチンのフローチャート。
【図4】図3のグループ間相関ツリー作成ルーチンで生
成される仮の合成回路の例の回路図。
【図5】(a)は、図3のグループ間相関ツリー作成ル
ーチンで生成されるグループ間相関行列とその変形過程
を示す図。(b)は、グループ間相関行列からグループ
間相関ツリーを生成する過程を説明する図。
【図6】図1の論理回路合成プログラムに使用する最適
二分決定グラフ作成ルーチンのフローチャート。
【図7】(a)図6の最適二分決定グラフ作成ルーチン
で生成される二分決定グラフの例を示す図。 (b)図6の最適二分決定グラフ作成ルーチンで生成さ
れる二分決定グラフの他の例を示す図。 (c)図6の最適二分決定グラフ作成ルーチンで生成さ
れる二分決定グラフのさらに他の例を示す図。 (d)図6の最適二分決定グラフ作成ルーチンで生成さ
れる二分決定グラフのさらに他の例を示す図。 (e)図6の最適二分決定グラフ作成ルーチンによる探
索の対象には含まれない二分決定グラフの例を示す図。
【図8】図1のセレクタベースの回路マッピングルーチ
ンによる回路マッピングの規則を示す図。
【図9】(a)回路マッピングに使用可能な、N型電界
効果型トランジスタで構成したパストランジスタタイプ
のセレクタ回路の回路図。 (b)回路マッピングに使用可能な、P型N型の両方の
タイプのトランジスタで構成したパストランジスタタイ
プのセレクタ回路の回路図。 (c)回路マッピングに使用可能な、CMOS回路によ
り構成したセレクタ回路の回路図。
【図10】(a)は、図7(c)の最適二分決定グラフ
から合成された論理回路の、セレクタレベルの回路図。
(b)は、図10(a)の論理回路の各セレクタを、図
9(a)のN型電界効果型トランジスタで構成されたパ
ストランジスタタイプのもので実現したときの、トラン
ジスタレベルの回路図。
【図11】本発明の第2の実施の形態による、遅延時間
が小さい論理回路を合成するための最適二分決定グラフ
作成ルーチンのフローチャート。
【図12】(a)は、図11の最適二分決定グラフ作成
ルーチンで生成される二分決定グラフの例を示す図。
(b)は、図12(a)の二分決定グラフに対するトラ
ンジスタレベルの論理回路の回路図。
【図13】本発明の第3の実施の形態による、面積が小
さい論理回路を合成するための最適二分決定グラフ作成
ルーチンのフローチャート。
【図14】本発明の第4の実施の形態による、面積、遅
延時間および消費電力の組合せを最適にするための最適
二分決定グラフ作成ルーチンのフローチャート。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 関 浩一 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内

Claims (34)

    【特許請求の範囲】
  1. 【請求項1】合成すべき論理回路の一群の入力信号を表
    す一群の入力変数と該論理回路の出力信号を表す少なく
    とも一つの出力変数との間の関係を規定する論理関数に
    基づいて、その論理回路を計算機システムにより合成す
    る方法であって、その計算機システムにより実行される
    次のステップを有するもの。 (a)それぞれ上記一群の入力変数の間の論理的な相関
    の強さを表す階層に配列された複数のグループを、上記
    論理関数に基づいて決定し、 ここで、相対的に上位のグループは、相互に相対的に小
    さな相関を有するメンバを包含し、 各グループのメンバは、そのグループより一つ下位の一
    つのグループもしくはそのグループより下位のグループ
    のいずれにも属していない入力変数であり、 (b)上記複数のグループを上位のグループから順次選
    択し、 (c)ステップ(b)で一つのグループが選択されるご
    とに、その選択されたグループのメンバ間のグループ内
    順序を所定の条件を満たすように決定し、 (d)ステップ(c)を上記複数のグループに対して実
    行した結果決定された該複数のグループに対するグルー
    プ内順序により定まる、上記一群の変数の順序に対応す
    る二分決定グラフを、上記論理関数に対する二分決定グ
    ラフとして決定し、 (e)決定された二分決定グラフを論理回路にマッピン
    グし、得られた論理回路を上記論理関数に対する論理回
    路として出力する。
  2. 【請求項2】上記複数のグループの内の最下位のグルー
    プは、上記一群の入力変数の内、相互に相対的に強い相
    関を有する一部の複数の入力変数をメンバとして含み、
    上記最下位のグループより上位の複数のグループの各々
    は、その各グループより一つ下位のグループと、上記一
    群の入力変数の内の、その各グループより下位の一つ又
    は複数のグループのいずれにも属していない入力変数で
    あって、その各グループより一つ下位のグループに対し
    て相対的に強い相関を有する少なくとも一つの入力変数
    とをメンバとして含む請求項1記載の論理回路の合成方
    法。
  3. 【請求項3】ステップ(c)で決定される上記グループ
    内順序は、選択されたグループが最下位グループでない
    ときには、そのグループに属する一つ又は複数の入力変
    数および一つ又は複数のその選択されたグループの一つ
    下位のグループと間の順序であり、上記選択されたグル
    ープが最下位のグループであるときには、上記グループ
    内順序は、上記選択されたグループに属する複数の入力
    変数の間の順序であり、 ステップ(c)は、上記選択されたグループより上位の
    グループがあるときには、その上位のグループに対して
    ステップ(c)を実行したときに決定されたグループ内
    順序と、上記選択されたグループより下位のグループが
    あるときには、その下位のグループに対してあらかじめ
    定められたグループ内順序とに基づいて行われる請求項
    2記載の論理回路の合成方法。
  4. 【請求項4】上記複数の階層化されたグループを決定す
    るステップ(a)は、 (a1)上記一群の入力変数の内、相対的に強い相関を
    相互に有する複数の入力変数をメンバとする最下位のグ
    ループを決定し、 (a2)上記一群の入力変数の内、上記最下位のグルー
    プに属する上記複数の入力変数に対して、相対的に強い
    相関を有する他の一つ又は複数の入力変数と、上記最下
    位のグループとをメンバとする、上記最下位のグループ
    の一つ上位のグループを決定し、 (a3)上記一群の入力変数の内、ステップ(a1)と
    (a2)で決定されたグループのいずれにも属さない入
    力変数であって、ステップ(a2)で決定されたグルー
    プに対して相対的に強い相関を有するさらに他の一つ又
    は複数の入力変数とステップ(a2)で決定されたグル
    ープをメンバとするさらに上位のグループを決定するよ
    うに、ステップ(a2)を繰り返すステップを有する請
    求項1記載の論理回路の合成方法。
  5. 【請求項5】ステップ(a1)は、 上記一群の入力変数の異なる二つの間の相関の強さをそ
    れぞれ表す複数の相関度を上記論理関数から決定し、 該複数の相関度の内、相対的に強い相関有する複数の入
    力変数を最下位のグループのメンバとして選択するステ
    ップを有する請求項4記載の論理回路の合成方法。
  6. 【請求項6】上記複数の相関度を決定するステップは、 上記論理関数が規定する上記一群の入力信号と上記少な
    くとも一つの出力信号との間の関係を満たす仮の論理回
    路を、上記論理関数に基づいて決定し、 該決定された仮の論理回路を構成する複数の論理ゲート
    の内、二つの入力信号がともに通過する論理ゲートの数
    をそれらの二つの入力信号に対応する二つの入力変数の
    間の相関度となるように、該決定された仮の論理回路に
    基づいて、上記複数の相関度を決定するステップを有す
    る請求項5記載の論理回路の合成方法。
  7. 【請求項7】ステップ(a2)は、そのステップが最初
    に実行されるときには、 上記一群の入力変数の内の、上記最下位グループに属さ
    ない複数の入力変数の一つと、上記最下位グループとの
    間の相関の強さそれぞれ表す複数の相関度を上記論理関
    数に基づいて決定し、 上記最下位グループに属さない複数の入力変数の内、上
    記最下位グループに対して相対的に強い相関を有する一
    つ又は複数の入力変数を、上記最下位グループに属さな
    い複数の入力変数に対して決定された上記複数の相関度
    に基づいて、上記最下位のグループの一つ上位のグルー
    プのメンバとして選択するステップを有し、 ステップ(a2)は、そのステップがステップ(a3)
    により繰り返されるときには、 上記一群の入力変数の内の、ステップ(a1)によりま
    たはステップ(a2)の先の実行により決定された複数
    のグループのいずれにも属さない特定の複数の入力変数
    の一つと、ステップ(a2)の直前の実行時に決定され
    たグループとの間の相関の強さそれぞれ表す複数の相関
    度を上記論理関数に基づいて決定し、 上記特定の複数の入力変数の内、ステップ(a2)の直
    前の実行時に決定されたグループに対して相対的に強い
    相関度を有する一つ又は複数の入力変数を、上記複数の
    相関度に基づいて、かつ、ステップ(a2)の直前の実
    行時に決定されたグループの一つ上位のグループのメン
    バとして選択するステップを有する請求項5記載の論理
    回路の合成方法。
  8. 【請求項8】ステップ(c)で使用される上記所定の条
    件は、上記ステップ(c)決定される上記グループ内順
    序が、ステップ(b)で選択されたグループのメンバが
    持ちうる複数のグループ内順序の内、そのグループ内順
    序をそのグループに対して採用したときに得られる上記
    一群の入力変数の順序に対応する二分決定グラフとし
    て、ノード数が最小である二分決定グラフを与えるグル
    ープ内順序であることである請求項1記載の論理回路の
    合成方法。
  9. 【請求項9】ステップ(c)は、 ステップ(b)で選択されたグループのグループ内順序
    を、上記選択されたグループの複数のグループ内順序候
    補の異なるものに繰り返し変更し、 上記選択されたグループのグループ内順序が変更される
    ごとに、変更後のグループ内順序候補をその選択された
    グループに対して採用したときに定まる上記一群の入力
    変数の順序に基づいて、上記論理関数を表す二分決定グ
    ラフを生成し、 生成された二分決定グラフのノードの総数を計数し、 上記複数のグループ内順序候補のそれぞれに対して上記
    計数ステップで計数された複数のノード数の内、最小の
    ノード数を検出し、 検出された最小のノード数を有する二分決定グラフを生
    成したグループ内順序候補を、上記選択されたグループ
    に対するグループ内順序として決定するステップを有す
    る請求項8記載の論理回路の合成方法。
  10. 【請求項10】ステップ(e)は、上記決定された二分
    決定グラフの各ノードをセレクタ回路にマッピングして
    論理回路を生成するステップを有する請求項1記載の論
    理回路の合成方法。
  11. 【請求項11】請求項1から10のいずれか一つに記載
    の方法により生成した論理回路に基づいて、その論理回
    路を生成するための複数のマスクパターンを生成し、 該複数のマスクパターンを用いて上記論理回路を含む半
    導体集積回路を製造するステップを有する半導体装置の
    製造方法。
  12. 【請求項12】合成すべき論理回路の一群の入力信号を
    表す一群の入力変数と該論理回路の少なくとも一つの出
    力信号を表す出力変数との間の関係を規定する論理関数
    に基づいて、その論理回路を計算機システムにより合成
    する方法であって、その計算機システムにより実行され
    る次のステップを有するもの。 (a)上記一群の入力変数の順序を、順次異なる順序候
    補に変更し、 (b)上記一群の入力変数の順序が変更されるごとに、
    その順序候補に基づいて、上記論理関数に対する二分決
    定グラフを生成し、 (c)生成された二分決定グラフを論理回路にマッピン
    グすることにより、上記論理関数で規定される論理回路
    を生成し、 (d)該生成された論理回路の所定の回路特性の値を計
    算し、 (e)上記複数の順序候補のそれぞれに対してステップ
    (d)で計算された複数の値の内、最適な値を検出し、 (f)検出された最適な値を有する論理回路を生成した
    順序候補を、上記一群の入力変数に対する最適な順序と
    して決定し、 (g)上記決定された最適な順序に対して該ステップ
    (c)で生成された論理回路を上記合成すべき論理回路
    として出力する。
  13. 【請求項13】上記所定回路特性は、総面積、遅延時
    間、消費電力の内の少なくとも一つである請求項12記
    載の論理回路の合成方法。
  14. 【請求項14】上記所定の回路特性は、総面積、遅延時
    間、消費電力の内の少なくとも二つの組合せである請求
    項12記載の論理回路の合成方法。
  15. 【請求項15】合成すべき論理回路の一群の入力信号を
    表す一群の入力変数と該論理回路の出力信号を表す少な
    くとも一つの出力変数との間の関係を規定する論理関数
    に基づいて、その論理回路を計算機システムにより合成
    する方法であって、その計算機システムにより実行され
    る次のステップを有するもの。 (a)それぞれ上記一群の入力変数の間の論理的な相関
    の強さを表す階層に配列された複数のグループを、上記
    論理関数に基づいて決定し、 ここで、相対的に上位のグループは、相互に相対的に小
    さな相関を有するメンバを包含し、 各グループのメンバは、そのグループより一つ下位のグ
    ループもしくはそのグループより下位の他の一つ又は複
    数のグループのいずれにも属していない入力変数であ
    り、 (b)上記複数のグループを上位のグループから順次選
    択し、 (c)ステップ(b)で一つのグループが選択されるご
    とに、その選択されたグループのメンバ間のグループ内
    順序を所定の条件を満たすように決定し、 ここで、上記所定の条件は、ステップ(c)で決定され
    るグループ内変数順序が、ステップ(b)で選択された
    グループのメンバである、一つ又は複数の入力変数とそ
    の選択されたグループの一つ下位の一つ又は複数のグル
    ープとが持ちうる複数のグループ内変数順序の内、その
    グループ内変数順序をそのグループに対して採用したと
    きに得られる上記一群の入力変数の変数順序に対応する
    二分決定グラフをさらに論理回路にマッピングしたとき
    に、所定の回路特性が最適となる論理回路を与えるグル
    ープ内変数順序であり、 (d)ステップ(c)を上記複数のグループに対して実
    行した結果決定された該複数のグループに対するグルー
    プ内順序により定まる、上記一群の変数の順序に対応す
    る二分決定グラフを、上記論理関数に対する二分決定グ
    ラフとして決定し、 (e)決定された二分決定グラフを論理回路にマッピン
    グし、得られた論理回路を上記論理関数に対する論理回
    路として出力する。
  16. 【請求項16】ステップ(c)は、 ステップ(b)で選択されたグループのグループ内変数
    順序を、上記選択されたグループの複数のグループ内変
    数順序候補の異なるものに繰り返し変更し、 上記グループ内変数順序が変更されるごとに、変更後の
    グループ内変数順序候補をそのグループに対して採用し
    たときに定まる上記一群の入力変数の変数順序に基づい
    て、上記論理関数を表す二分決定グラフを生成し、 生成された二分決定グラフを論理回路にマッピングする
    ことにより、上記論理関数で規定される論理回路を生成
    し、 該生成された論理回路の所定の回路特性の値を判別し、 上記複数のグループ内変数順序候補のそれぞれに対して
    判別された回路特性の値の内、最適な値を有する回路特
    性を検出し、 検出された最適な値の回路特性を有する論理回路を生成
    したグループ内変数順序候補を、上記選択されたグルー
    プに属するグループ内変数順序として決定するステップ
    を有し、 ステップ(e)は、上記最下位のグループに対してステ
    ップ(c)で決定されたグループ内変数順序に対してス
    テップ(c)で生成された論理回路を、合成すべき論理
    回路として出力するステップからなる請求項15記載の
    論理回路の合成方法。
  17. 【請求項17】上記複数のグループの内の最下位のグル
    ープは、上記一群の入力変数の内、相互に相対的に強い
    相関を有する一部の複数の入力変数をメンバとして含
    み、上記最下位のグループより上位の複数のグループの
    各々は、その各グループより一つ下位のグループと、上
    記一群の入力変数の内の、その各グループより下位の一
    つ又は複数のグループのいずれにも属していない入力変
    数であって、その各グループより一つ下位のグループに
    対して相対的に強い相関を有する少なくとも一つの入力
    変数とをメンバとして含む請求項15記載の論理回路の
    合成方法。
  18. 【請求項18】ステップ(c)で決定される上記グルー
    プ内順序は、選択されたグループに属する一つ又は複数
    の入力変数および一つ又は複数のその選択されたグルー
    プの一つ下位のグループと間の順序であり、上記選択さ
    れたグループが最下位のグループであるときには、上記
    グループ内順序は、上記選択されたグループに属する複
    数の入力変数の間の順序であり、 ステップ(c)は、上記選択されたグループより上位の
    グループがあるときには、その上位のグループに対して
    ステップ(c)を実行したときに決定されたグループ内
    順序と、上記選択されたグループより下位のグループが
    あるときには、その下位のグループに対してあらかじめ
    定められたグループ内順序とに基づいて行われる請求項
    17記載の論理回路の合成方法。
  19. 【請求項19】上記複数の階層化されたグループを決定
    するステップ(a)は、 (a1)上記一群の入力変数の内、相対的に強い相関を
    相互に有する複数の入力変数をメンバとする最下位のグ
    ループを決定し、 (a2)上記一群の入力変数の内、上記最下位のグルー
    プに属する上記複数の入力変数に対して、相対的に強い
    相関を有する他の一つ又は複数の入力変数と、上記最下
    位のグループとをメンバとする、上記最下位のグループ
    の一つ上位のグループを決定し、 (a3)上記一群の入力変数の内、ステップ(a1)と
    (a2)で決定されたグループのいずれにも属さない入
    力変数であって、ステップ(a2)で決定されたグルー
    プに対して相対的に強い相関を有するさらに他の一つ又
    は複数の入力変数とステップ(a2)で決定されたグル
    ープをメンバとするさらに上位のグループを決定するよ
    うに、ステップ(a2)を繰り返すステップを有する請
    求項15記載の論理回路の合成方法。
  20. 【請求項20】ステップ(a1)は、 上記一群の入力変数の異なる二つの間の相関の強さをそ
    れぞれ表す複数の相関度を上記論理関数から決定し、 該複数の相関度の内、相対的に強い相関を有する複数の
    入力変数を最下位のグループのメンバとして選択するス
    テップを有する請求項19記載の論理回路の合成方法。
  21. 【請求項21】上記複数の相関度を決定するステップ
    は、 上記論理関数が規定する上記一群の入力信号と上記少な
    くとも一つの出力信号との間の関係を満たす仮の論理回
    路を、上記論理関数に基づいて決定し、 該決定された仮の論理回路を構成する複数の論理ゲート
    の内、二つの入力信号がともに通過する論理ゲートの数
    をそれらの二つの入力信号に対応する二つの入力変数の
    間の相関度となるように、該決定された仮の論理回路に
    基づいて、上記複数の相関度を決定するステップを有す
    る請求項20記載の論理回路の合成方法。
  22. 【請求項22】ステップ(a2)は、そのステップが最
    初に実行されるときには、 上記一群の入力変数の内の、上記最下位グループに属さ
    ない複数の入力変数の一つと、上記最下位グループとの
    間の相関の強さそれぞれ表す複数の相関度を上記論理関
    数に基づいて決定し、 上記最下位グループに属さない複数の入力変数の内、上
    記最下位グループに対して相対的に強い相関を有する一
    つ又は複数の入力変数を、上記最下位グループに属さな
    い複数の入力変数に対して決定された上記複数の相関度
    に基づいて、上記最下位のグループの一つ上位のグルー
    プのメンバとして選択するステップを有し、 ステップ(a2)は、そのステップがステップ(a3)
    により繰り返されるときには、 上記一群の入力変数の内の、ステップ(a1)によりま
    たはステップ(a2)の先の実行により決定された複数
    のグループのいずれにも属さない特定の複数の入力変数
    の一つと、ステップ(a2)の直前の実行時に決定され
    たグループとの間の相関の強さそれぞれ表す複数の相関
    度を上記論理関数に基づいて決定し、 上記特定の複数の入力変数の内、ステップ(a2)の直
    前の実行時に決定されたグループに対して相対的に強い
    相関度を有する一つ又は複数の入力変数を、上記複数の
    相関度に基づいて、かつ、ステップ(a2)の直前の実
    行時に決定されたグループの一つ上位のグループのメン
    バとして選択するステップを有する請求項20記載の論
    理回路の合成方法。
  23. 【請求項23】上記所定の回路特性は、総面積である請
    求項15記載の論理回路の合成方法。
  24. 【請求項24】上記所定の回路特性は、遅延時間である
    請求項15記載の論理回路の合成方法。
  25. 【請求項25】上記所定の回路特性は、総面積と遅延時
    間の組合せである請求項15記載の論理回路の合成方
    法。
  26. 【請求項26】上記所定の回路特性は、総面積と遅延時
    間と消費電力との組合せである請求項15記載の論理回
    路の合成方法。
  27. 【請求項27】ステップ(e)は、上記決定された二分
    決定グラフの各ノードをセレクタ回路にマッピングして
    論理回路を生成するステップを有する請求項15記載の
    論理回路の合成方法。
  28. 【請求項28】請求項15から28のいずれか一つに記
    載の方法により生成した論理回路に基づいて、その論理
    回路を生成するための複数のマスクパターンを生成し、 該複数のマスクパターンを用いて上記論理回路を含む半
    導体集積回路を製造するステップを有する半導体装置の
    製造方法。
  29. 【請求項29】論理回路の一群の入力信号を表す一群の
    入力変数と該論理回路の出力信号を表す少なくとも一つ
    の出力変数との間の関係を規定する論理関数を表す二分
    決定グラフを計算機システムにより最適化する方法であ
    って、その計算機システムにより実行される次のステッ
    プを有するもの。 (a)それぞれ上記一群の入力変数の間の論理的な相関
    の強さを表す階層に配列された複数のグループを、上記
    論理関数に基づいて決定し、 ここで、相対的に上位のグループは、相互に相対的に小
    さな相関を有するメンバを包含し、 各グループのメンバは、そのグループより一つ下位のグ
    ループもしくはそのグループより下位の他の一つ又は複
    数のグループのいずれにも属していない入力変数であ
    り、 (b)上記複数のグループを上位のグループから順次選
    択し、 (c)ステップ(b)で一つのグループが選択されるご
    とに、その選択されたグループのメンバ間のグループ内
    順序を所定の条件を満たすように決定し、 (d)ステップ(c)を上記複数のグループに対して実
    行した結果決定された該複数のグループに対するグルー
    プ内順序により定まる、上記一群の変数の変数の順序に
    対応する二分決定グラフを最適化された二分決定グラフ
    として出力する。
  30. 【請求項30】上記複数のグループの内の最下位のグル
    ープは、上記一群の入力変数の内、相互に相対的に強い
    相関を有する一部の複数の入力変数をメンバとして含
    み、上記最下位のグループより上位の複数のグループの
    各々は、その各グループより一つ下位のグループと、上
    記一群の入力変数の内の、その各グループより下位の一
    つ又は複数のグループのいずれにも属していない入力変
    数であって、その各グループより一つ下位のグループに
    対して相対的に強い相関を有する少なくとも一つの入力
    変数とをメンバとして含む請求項29記載の二分決定グ
    ラフの最適化方法。
  31. 【請求項31】ステップ(c)で決定される上記グルー
    プ内順序は、選択されたグループが最下位のグループで
    ないときには、そのグループに属する一つ又は複数の入
    力変数および一つ又は複数のその選択されたグループの
    一つ下位のグループと間の順序であり、上記選択された
    グループが最下位のグループであるときには、上記グル
    ープ内順序は、上記選択されたグループに属する複数の
    入力変数の間の順序であり、 ステップ(c)は、上記選択されたグループより上位の
    グループがあるときには、その上位のグループに対して
    ステップ(c)を実行したときに決定されたグループ内
    順序と、上記選択されたグループより下位のグループが
    あるときには、その下位のグループに対してあらかじめ
    定められたグループ内順序とに基づいて行われる請求項
    30記載の二分決定グラフの最適化方法。
  32. 【請求項32】ステップ(c)で使用される上記所定の
    条件は、上記ステップ(c)決定される上記グループ内
    順序が、ステップ(b)で選択されたグループのメンバ
    が持ちうる複数のグループ内順序の内、そのグループ内
    順序をそのグループに対して採用したときに得られる上
    記一群の入力変数の順序に対応する二分決定グラフとし
    て、ノード数が最小である二分決定グラフを与えるグル
    ープ内順序であることである請求項29記載の二分決定
    グラフの最適化方法。
  33. 【請求項33】ステップ(c)は、 ステップ(b)で選択されたグループの間のグループ内
    順序を、上記選択されたグループの複数のグループ内順
    序候補の異なるものに繰り返し変更し、 上記選択されたグループのグループ内順序が変更される
    ごとに、変更後のグループ内順序候補をその選択された
    グループに対して採用したときに定まる上記一群の入力
    変数の順序に基づいて、上記論理関数を表す二分決定グ
    ラフを生成し、 生成された二分決定グラフのノードの総数を計数し、 上記複数のグループ内順序候補のそれぞれに対して上記
    計数ステップで計数された複数のノード数の内、最小の
    ノード数を検出し、 検出された最小のノード数を有する二分決定グラフを生
    成したグループ内順序候補を、上記選択されたグループ
    に対するグループ内順序として決定するステップを有す
    る請求項32記載の論理回路の合成方法。
  34. 【請求項34】請求項12から14のいずれか一つに記
    載の方法により生成した論理回路に基づいて、その論理
    回路を生成するための複数のマスクパターンを生成し、 該複数のマスクパターンを用いて上記論理回路を含む半
    導体集積回路を製造するステップを有する半導体装置の
    製造方法。
JP8097132A 1995-04-21 1996-04-18 論理回路の合成方法、半導体装置の製造方法および二分決定グラフの最適化方法 Pending JPH096821A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8097132A JPH096821A (ja) 1995-04-21 1996-04-18 論理回路の合成方法、半導体装置の製造方法および二分決定グラフの最適化方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP9648795 1995-04-21
JP7-96487 1995-04-21
JP8097132A JPH096821A (ja) 1995-04-21 1996-04-18 論理回路の合成方法、半導体装置の製造方法および二分決定グラフの最適化方法

Publications (1)

Publication Number Publication Date
JPH096821A true JPH096821A (ja) 1997-01-10

Family

ID=26437678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8097132A Pending JPH096821A (ja) 1995-04-21 1996-04-18 論理回路の合成方法、半導体装置の製造方法および二分決定グラフの最適化方法

Country Status (1)

Country Link
JP (1) JPH096821A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185719B1 (en) 1997-06-06 2001-02-06 Kawasaki Steel Corporation Pass-transistor logic circuit and a method of designing thereof
US6313666B1 (en) 1996-04-16 2001-11-06 Hitachi, Ltd. Logic circuit including combined pass transistor and CMOS circuit and a method of synthesizing the logic circuit
US6720797B2 (en) 2000-06-15 2004-04-13 Fujitsu Limited Pass transistor circuit with exclusive controls
US7673263B2 (en) 1997-11-05 2010-03-02 Fujitsu Limited Method for verifying and representing hardware by decomposition and partitioning
JP2012084152A (ja) * 2010-10-11 2012-04-26 Fujitsu Ltd ペア単位変数グループ化を利用してbddの最適な変数順序を決定する方法及びシステム
JP2012089128A (ja) * 2010-10-11 2012-05-10 Fujitsu Ltd パラレルシフトアルゴリズムを利用してbddを処理する方法及びシステム

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6433588B1 (en) 1996-04-16 2002-08-13 Hitachi, Ltd. Logic circuit including combined pass transistor and CMOS circuits and a method of synthesizing the logic circuit
US6313666B1 (en) 1996-04-16 2001-11-06 Hitachi, Ltd. Logic circuit including combined pass transistor and CMOS circuit and a method of synthesizing the logic circuit
US6820242B2 (en) 1996-04-16 2004-11-16 Renesas Technology Corp. Logic circuit including combined pass transistor and CMOS circuits and a method of synthesizing the logic circuit
US7171636B2 (en) 1997-06-06 2007-01-30 Kawasaki Microelectronics, Inc. Pass-transistor logic circuit and a method of designing thereof
US6496956B2 (en) 1997-06-06 2002-12-17 Kawasaki Steel Corporation Pass-transistor logic circuit and a method of designing thereof
US6591401B2 (en) 1997-06-06 2003-07-08 Kawasaki Microelectronics, Inc. Pass transistor logic circuit and a method of designing thereof
US6353919B2 (en) 1997-06-06 2002-03-05 Kawasaki Steel Corporation Pass-transistor logic circuit and a method of designing thereof
US7120894B2 (en) 1997-06-06 2006-10-10 Kawasaki Microelectronics, Inc. Pass-transistor logic circuit and a method of designing thereof
US6185719B1 (en) 1997-06-06 2001-02-06 Kawasaki Steel Corporation Pass-transistor logic circuit and a method of designing thereof
US7673263B2 (en) 1997-11-05 2010-03-02 Fujitsu Limited Method for verifying and representing hardware by decomposition and partitioning
US6720797B2 (en) 2000-06-15 2004-04-13 Fujitsu Limited Pass transistor circuit with exclusive controls
JP2012084152A (ja) * 2010-10-11 2012-04-26 Fujitsu Ltd ペア単位変数グループ化を利用してbddの最適な変数順序を決定する方法及びシステム
JP2012089128A (ja) * 2010-10-11 2012-05-10 Fujitsu Ltd パラレルシフトアルゴリズムを利用してbddを処理する方法及びシステム

Similar Documents

Publication Publication Date Title
US6721926B2 (en) Method and apparatus for improving digital circuit design
KR100386511B1 (ko) 입력변수간의 계층화된 상관을사용해서 탐색된 2분결정그래프를 사용한 논리회로의 합성방법
CN112257364B (zh) 一种gpu加速计算的集成电路静态时序分析方法
US5805462A (en) Automatic synthesis of integrated circuits employing boolean decomposition
Sangiovanni-Vincentelli et al. Synthesis method for field programmable gate arrays
Wu et al. Approximate logic synthesis for FPGA by wire removal and local function change
JP2005520243A (ja) 合成方法および装置
CN113779924B (zh) 超导集成电路的布线优化方法和装置、存储介质和终端
KR100274855B1 (ko) 반도체 집적회로의 설계방법 및 자동설계장치
US8667435B1 (en) Function symmetry-based optimization for physical synthesis of programmable integrated circuits
US5237513A (en) Optimal integrated circuit generation
JPH096821A (ja) 論理回路の合成方法、半導体装置の製造方法および二分決定グラフの最適化方法
US5502648A (en) Data processing method of generating integrated circuits using prime implicants
US5917728A (en) Method for designing path transistor logic circuit
US8904318B1 (en) Method and apparatus for performing optimization using don't care states
Vasilyev et al. The simulated annealing based logical resynthesis method for lut-based FPGAs
US7181720B2 (en) Process and device for circuit design by means of high-level synthesis
Jiang BDD-based logic synthesis of MEM relay circuits
JP2009169694A (ja) 高位合成方法、高位合成装置及びプログラム
Nikolic et al. Finding a needle in the haystack of hardened interconnect patterns
JP4601567B2 (ja) データフローグラフの生成方法、及び処理装置
CN113255257B (zh) 基于工艺库的s盒电路的优化方法及系统
US8136061B2 (en) Method of logic circuit synthesis and design using a dynamic circuit library
Pedram et al. Combining technology mapping with layout
Chistiakov et al. Backpass Trees for Modifying PathFinder-based Routing Algorithm for FPGA

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060307

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060704