JP3199113B2 - Dm分解に基づく回路分割装置及び記録媒体 - Google Patents

Dm分解に基づく回路分割装置及び記録媒体

Info

Publication number
JP3199113B2
JP3199113B2 JP28415698A JP28415698A JP3199113B2 JP 3199113 B2 JP3199113 B2 JP 3199113B2 JP 28415698 A JP28415698 A JP 28415698A JP 28415698 A JP28415698 A JP 28415698A JP 3199113 B2 JP3199113 B2 JP 3199113B2
Authority
JP
Japan
Prior art keywords
cluster
circuit
graph
cluster graph
merging
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
Application number
JP28415698A
Other languages
English (en)
Other versions
JP2000113017A (ja
Inventor
雅之 湯口
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP28415698A priority Critical patent/JP3199113B2/ja
Publication of JP2000113017A publication Critical patent/JP2000113017A/ja
Application granted granted Critical
Publication of JP3199113B2 publication Critical patent/JP3199113B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、CAD(computer
aided design)に関し、特に、例えばゲートやフリッ
プフロップを有する順序回路などの回路が与えられたと
きに、その回路を、その回路の各部に相当する小規模部
分回路の集合に分ける分割装置に関する。
【0002】
【従来の技術】CADなどを用いて大規模な回路を設計
する際には、その回路をLSI(大規模集積回路)など
として製造する場合にLSI内部での回路配置の決定や
論理検証を容易に行うために、設計した回路を複数の小
規模部分回路の集合に分割することが行われる。回路分
割を行う場合には、ただやみくもに分割すればよいので
はなく、分割後の小規模部分回路相互間の独立性が高い
ように、言い換えれば、小規模部分回路間の配線数が少
なくなるように分割することが好ましい。
【0003】このような回路分割を行うための技術とし
ては、従来、回路中のゲートやフリップフロップ、また
はそれらの集合を初期クラスタとし、いくつかのクラス
タを順次併合していくことで、最終的に、指定した個数
のクラスタを決定する方法がある。クラスタの各併合で
は、クラスタ間の重みを用いて、併合すべきクラスタを
決定する。この技術を開示した論文としては、例えば、
文献1:J. Cong andM. Smith, "A Parallel Bottom-up
Clustering Algorithm with Applications to Circuit
Partitioning in VLSI Design", ACM/IEEE Design Aut
omation Conference 1993や、文献2:C. J. Alpert,
J. H. Huang, and A. B. Kahng, "Multilevel Circuit
Partitioning", ACM/IEEE Design Automation Conferen
ce 1997がある。これらの文献に開示された方法では、
クラスタ間のエッジの数や各クラスタの大きさなどから
クラスタ間の重みを算出し、これらの重みに基づいたグ
ラフ理論のマッチングを求め、併合するクラスタ集合を
決めている。
【0004】
【発明が解決しようとする課題】上述した従来技術が有
する問題点は、局所解に陥る可能性が少なくないことで
あり、このため、大域的に見た場合には不適切な回路分
割結果を得てしまうことが少なくないことである。同じ
重みのマッチングは1つとは限らないことから、マッチ
ングに基づく併合の繰り返しによって、局所解に陥る可
能性が大きい。マッチングで決まるクラスタのペア(一
対)ごとに併合するのではなく、分割の切り口、つま
り、併合後のクラスタ入出力とはなり得ないクラスタ間
の接続をできるだけ早期にできるだけ多く検出し、それ
らのクラスタを併合した方が、解空間が狭まり、最適解
に到達する可能性が増え、処理時間の短縮にもつなが
る。
【0005】本発明の目的は、上記の従来技術の問題点
であるマッチングによる局所解到達を回避し、クラスタ
の入出力数を増大させないという条件のもとで、分割後
の回路では入出力ピン(小規模部分回路間の入出力端
子)とはなり得ない個所をできるだけ早期にできるだけ
多く併合すること、また、クラスタグラフを用いて効果
的に記憶領域を使用することにより、少ない記憶領域使
用量で、高速に動作する回路分割装置を提供することに
ある。
【0006】
【課題を解決するための手段】本発明のDM(Dulmage-M
endelsohn)分解に基づく回路分割装置は、大規模回路を
分割して部分回路を生成する回路分割装置であって、分
割対象である回路の回路データを記憶する回路記憶部
と、分割後の部分回路の指定個数及び各部分回路に関す
る指定値を記憶する指定値記憶部と、クラスタグラフを
記憶するクラスタグラフ記憶装置と、回路記憶部から回
路データを読み込み、回路の構成要素に対応して初期の
クラスタグラフを生成する初期クラスタグラフ生成装置
と、クラスタグラフ記憶装置からクラスタグラフを受け
取り、DM分解を用いたクラスタ併合により新たなクラ
スタグラフを生成し、クラスタグラフ記憶装置に転送す
る広域クラスタ併合装置と、クラスタグラフ記憶装置か
らクラスタグラフを読み込み、読込んだクラスタグラフ
が指定値記憶部に記憶された指定値を満たした場合に、
このクラスタグラフを元に分割後の部分回路を生成する
部分回路生成装置と、を有する。
【0007】
【発明の実施の形態】次に、本発明の好ましい実施の形
態について図1を参照して詳細に説明する。図1は、本
発明の第1の実施の形態の回路分割装置の構成を示すブ
ロック図である。
【0008】この回路分割装置は、大規模回路として大
規模な順序回路が与えられたときに、二部グラフのDM
分解を適用してその順序回路を複数の部分回路に分割す
るものであり、大別して、大規模順序回路のCADデー
タや、分割後の部分回路の指定個数、出力すべき各部分
回路についての指定値(回路規模、入出力ピン数の許容
上限値)などが入力される入力装置10と、回路分割を
行うに際して必要な計算を行う演算部20と、回路分割
を行うに際して一時的に情報を記憶する記憶部30と、
演算部20で生成した部分回路を出力する出力装置40
と、から構成されている。
【0009】記憶部30には、入力装置10に入力した
順序回路データを記憶する回路記憶部32と、上述の各
種指定値を記憶する指定値記憶部33と、演算部20に
おいて計算により生成した初期クラスタグラフ及びクラ
スタグラフを記憶するクラスタグラフ記憶装置34とが
設けられている。回路記憶部32と指定値記憶部33
は、記憶部30内で、回路記憶装置31を構成してい
る。クラスタグラフ記憶装置34には、初期クラスタグ
ラフを記憶する初期クラスタグラフ記憶部35と、初期
クラスタグラフ以外のクラスタグラフを記憶するクラス
タグラフ記憶部36とが設けられている。
【0010】演算部20には、回路記憶部32から順
序回路のデータを読み取り、順序回路の回路入出力端
子、ゲート及びフリップフロップを点(初期のクラス
タ)、それらの点の接続をエッジとするクラスタグラフ
を生成し、このクラスタグラフを初期クラスタグラフと
して、初期クラスタグラフ記憶部35に転送する初期ク
ラスタグラフ生成装置21と、初期クラスタグラフ記
憶部35やクラスタグラフ記憶部36からクラスタグラ
フを受け取り、グラフ理論におけるDM分解を用いたク
ラスタ併合により新たなクラスタグラフを生成してクラ
スタグラフ記憶部36に転送する広域クラスタ併合装置
22と、クラスタグラフ記憶部36から現時点でのク
ラスタグラフを読み込み、指定値記憶部33に記憶され
ている指定値をそのクラスタグラフが満足している場合
には、そのクラスタグラフに基づいて順序回路を分割し
て部分回路を生成する部分回路生成装置22と、が設け
られている。部分回路生成装置22は、生成した部分回
路を出力装置40に出力する。
【0011】なお、クラスタグラフ記憶部36では、広
域クラスタ併合装置22においてクラスタグラフの併合
があるたびに、併合後のクラスタグラフを受け取って、
併合後のクラスタグラフ用に新たな記憶領域を割り当て
て記憶する。
【0012】次に、この回路分割装置の動作を説明す
る。図2は、本実施の形態の回路分割装置の動作を示す
フローチャートである。
【0013】まず、ステップ101において、入力装置
10に対し、分割対象である順序回路のデータと、分割
後の部分回路の個数及び各部分回路に関する指定値(回
路規模、入出力ピン数の上限値)とを入力する。入力装
置10は、回路記憶装置31に、順序回路のデータと指
定値とを供給する。回路記憶装置31は、このように供
給されたデータを回路分割が完了するまで保持する。す
なわち回路記憶装置31は、入力装置10から送られた
入力データを受け取り、順序回路のデータを回路記憶部
32に記憶し、分割後の部分回路の個数、及び各部分回
路に関する指定値を指定値記憶部33に記憶する。
【0014】次に、演算部20内の初期クラスタグラフ
生成装置21に制御が移る。ステップ202において、
初期クラスタグラフ生成装置21は、回路記憶装置31
から、回路記憶部32に記録された順序回路のデータ、
すなわち、回路入出力などのピン要素、ゲートなどの論
理要素、フリップフロップなどの時間的要素、配線など
の接続要素を読み取る。加えて、バスなどの多ビット要
素なども読み取る。これらの要素から、初期クラスタグ
ラフ生成装置21は、回路入出力、ゲート、フリップフ
ロップの最小要素にクラスタの単位を割り当て、初期ク
ラスタグラフを生成する。つまり、回路入出力、ゲー
ト、フリップフロップ要素に対応する点と、それらの間
の接続要素に対応するエッジを生成する。バスなどの多
ビット要素に対しては、1ビットごとに分け、多ビット
の配線に接続するゲートやフリップフロップに対して、
ビット数分の複製を行う。最後に、初期クラスタグラフ
生成装置21は、生成した初期クラスタグラフをクラス
タグラフ記憶装置34へ転送する。
【0015】続いて、クラスタグラフ記憶装置34に制
御が移り、クラスタグラフ記憶装置34は、周回(ルー
プ)103での動作の管理を行う。上述したように、ク
ラスタグラフ記憶装置34は、初期クラスタグラフ生成
装置21が生成した初期クラスタグラフと、広域クラス
タグラフ併合装置22によって併合された後のクラスタ
グラフとを記憶する。
【0016】初期クラスタグラフは、クラスタグラフ記
憶装置34内の初期クラスタグラフ記憶部35内に記憶
されるが、この記憶領域は、初期のクラスタ間の接続関
係だけでなく、順序回路での各クラスタに対応する回路
入力、ゲート、フリップフロップ等についての回路記憶
部32でのアドレスも保持している。図3は、回路記憶
装置31及びクラスタグラフ記憶装置34での記憶内容
を説明する図である。図3を参照すると、クラスタグラ
フ記憶装置34内の初期クラスタグラフ記憶部35に
は、回路記憶装置31に記憶された順序回路に対応する
初期クラスタグラフが記憶されている。さらに、初期ク
ラスタグラフ内の各クラスタに対応するゲート等が回路
記憶装置31ではどのアドレスに記憶されているかを示
すアドレス表61も記憶している。
【0017】ステップ203の各周回ごとに生成された
クラスタグラフ、つまり広域クラスタ併合装置22によ
るクラスタ併合により生成されたクラスタグラフは、ク
ラスタグラフ記憶部36に記憶される。クラスタグラフ
記憶部36は、併合後のクラスタグラフに対しては、併
合後のクラスタ間の接続関係とともに、併合後の各クラ
スタに含まれる併合前のクラスタのアドレス(クラスタ
グラフ記憶装置34内に記録されている)のリストをそ
の記憶領域に記憶する。図3を参照すると、クラスタグ
ラフ記憶装置35内のクラスタグラフ記憶部36では、
初期クラスタグラフを広域クラスタ併合装置22で併合
した結果であるクラスタグラフを記憶している。さら
に、併合後のクラスタグラフの各クラスタに対し、この
クラスタが含む併合前のクラスタグラフ中のクラスタの
アドレスリスト表62も記憶している。
【0018】周回(ステップ103)では、この周回を
1回まわるたびに、その時点でのクラスタグラフが、指
定値記憶部33内に記憶されている指定値を満足してい
るかが判定される(ステップ104)。しかしながら、
回路分割の処理を開始した直後は、指定値を満足してい
ることはまずないから、そのまま、ステップ105のク
ラスタの併合へと処理が進行する。このクラスタの併合
は、以下に示すように、広域クラスタ併合装置22によ
って行われる。
【0019】広域クラスタ併合装置22は、クラスタグ
ラフ記憶装置35に記録された最新のクラスタグラフを
読み込む。併合では、各クラスタごとに、そのクラスタ
の入力側のクラスタ1段、もしくは、出力側のクラスタ
1段を併合するという条件下で、各クラスタ入出力数の
グラフ全体にわたる総和を最小にする。
【0020】まず、広域クラスタ併合装置22は、読み
込んだクラスタグラフに対し、以下の手順で二部グラフ
を生成する。
【0021】1−1.クラスタグラフの各入力Aに対応
する点をAoとし、各出力Bに対応する点をBiとして、
これら点を二部グラフ中に生成する; 1−2.クラスタグラフの入出力でない各点Cに対し、
入力側の点としてCiを、出力側の点としてCoを、二部
グラフ中に生成する; 1−3.クラスタグラフの各点Dの入力エッジに対応す
るエッジを、点Diへの入力エッジとして、二部グラフ
中に生成する。同じく、点Dの出力エッジに対応するエ
ッジを、点Doの出力エッジとして、二部グラフ中に生
成する。
【0022】図4(a)は初期クラスタグラフの一例を示
し、図4(b)は対応する二部グラフを示している。クラ
スタグラフの入力Aには、二部グラフの点Aoが対応す
る。また、クラスタグラフの点Eには、出力側を表現す
る点として二部グラフの点Eo、入力側を表現する点と
して二部グラフの点Eiがそれぞれ対応する。
【0023】生成した二部グラフをG=(V,E)(Vは
点集合、Eはエッジ集合)で表し、このGに対して、最
小点被覆を求めることによりクラスタ併合を行うことを
考えてみる(グラフGの点集合Vの部分集合Uに関し、
グラフのどの辺に対しても、その辺に接続するどちらか
一方の点がUに含まれるとき、UをGの点被覆という。
さらに、要素数の一番少ない点被覆を最小点被覆とい
う)。クラスタグラフから生成された二部グラフの各辺
に関し、左の接続点、もしくは、右の接続点を併合後の
クラスタ入出力(併合後のクラスタ境界)とし、それ以
外の点やエッジを併合すると、この操作は、クラスタグ
ラフの各点に対して、入力側、もしくは、出力側で、最
大1段のクラスタを併合するという操作と同じである。
最小点被覆は、二部グラフの最小点数の被覆(各エッジ
のどちらかの端点が含まれる)であるから、二部グラフ
の最小点被覆に含まれる点を併合後のクラスタ入出力と
すると、この併合後のクラスタ入出力数のグラフ全体の
総和は、クラスタグラフの各クラスタに対し、入力側、
もしくは、出力側で最大1段のクラスタを併合するとい
う条件下で、最小となる。
【0024】ただし、二部グラフの最小点被覆は、従来
手法のマッチング同様に、複数存在することから、クラ
スタ併合を繰り返した際に、最適なクラスタを得るため
には、どの最小点被覆を選択するのかが重要となる。そ
こで、本発明では、生成した二部グラフに対して、DM
(Dulmage-Mendelsohn)分解を適用し、クラスタ併合を行
う。
【0025】DM分解は、文献3:浅野孝夫著 情報の
構造(上) 情報数学セミナー 日本評論社の196頁
〜205頁に詳しいが、二部グラフの最小点被覆のすべ
ての集合を示すことが可能である。クラスタ併合にこの
性質を利用する。
【0026】このDM分解は、グラフ理論における最大
マッチングにより求められることが知られている。辺集
合Eの部分集合Mにおいて、Mに含まれるどの二辺も端
点を共有しないとき、MをGのマッチングという。Mの
要素数が最大のマッチングを最大マッチングという。最
大マッチングを求める基本的アルゴリズムは、以下のよ
うである(文献3の152頁〜158頁)。
【0027】2−1.Mを空集合とする; 2−2.二部グラフGに対して、補助グラフG’を作
る。まず、二部グラフGの各点に対して、同じ点をG’
に作る。二部グラフGの各エッジに対して、左の点から
右の点までの有向エッジをG’に作る。点s,tを用意
し、点sからG’の左の集合の各点までのエッジ、G’
の右の集合の各点から点tまでのエッジを作る; 2−
3.生成された補助グラフG’において、点sから点t
までの有向パスが存在すれば、このパス上の二部グラフ
Gに属すエッジと対応する有向エッジの向きを逆にし、
さらに、このパス上の点sからの有向エッジと点tへの
有向エッジを削除する。G’の右点から左点までの有向
エッジをMに加え、ステップ2−3を繰り返す。点sか
ら点tまでの有向パスが存在しなければ、Mが最大マッ
チングとなる。
【0028】図5(a)は、図4(b)の二部グラフから上記
のアルゴリズムのステップ2−2により生成した補助グ
ラフである。この補助グラフにおいて、点sから点tま
での有向パス201〜203が存在するから、上記のス
テップ2−3に従い、このパス上で二部グラフに属して
いたエッジに対応する有向エッジ202の向きを逆に
し、このエッジをマッチングに含める(図5(b)のエッ
ジ504)。さらに、このパス上で、点sからのエッジ
501と点tへのエッジ503を除去すると、上記のス
テップ3を1回処理した後の補助グラフは、図5(b)に
示すようになる。このようなステップを点sから点tま
での有向パスがなくなるまで繰り返すと、図6のよう
に、エッジ211〜215が、最大マッチングのエッジ
となる。
【0029】最大マッチングを用いて、二部グラフのD
M分割は、次のようにして求められることが知られてい
る(文献3の203頁)。
【0030】3−1.二部グラフG=(V,E)の最大マ
ッチングMを求める; 3−2.Vの左の点集合をV1とし、右の点集合をV2
する。Eに属すエッジをV1からV2の方向への有向エッ
ジとみなす。さらに、Mに属すエッジに対しては、その
エッジをV1からV2への有向エッジとみなすほかに、同
一の端点間で、逆向き(V2からV1へ)の有向エッジも
加える; 3−3.Mに含まれないV1の点から到達可能な点集合
をDMnとし、Mに含まれないV2の点へ到達可能な点
集合を、DM0とする; 3−4.DM0とDMnを除くVの点に対し、強連結成
分を可能な限り取り出し、それぞれ、DM1〜DM(n
−1)とする。ここで強連結成分とは、たとえばDM1
内の任意の二点A,B間で、AからBへの有向パスと、
BからAへの有向パスが存在することをさす。この強連
結成分は、グラフ上の各点からの有向パスを探索してい
くことで見つけることができる; 3−5.生成したDM0,DM1,…,DM(n−
1),DMnがDM分解となる。
【0031】図7は、図6に示した二部グラフおよび最
大マッチングをもとにして、DM分解を行ったものであ
る。図6の最大マッチングに含まれるエッジ(エッジ2
11〜215)に対して、上記のアルゴリズムのステッ
プ3−2を適用し、逆向きのエッジを付加している。上
記のアルゴリズムのステップ3−3における最大マッチ
ングに含まれないV1の点には、Boが該当し、この点B
oから到達可能な点の集合として、DM2が生成され
る。DM0に対しても同様の処理が可能である。また、
上記のアルゴリズムのステップ3−4の強連結成分に
は、AoとJiが相当する。この成分中では、AoからJi
までのパス(この場合はエッジ)、JiからAoまでのパ
ス(この場合はエッジ)の両方が存在するから、このA
oとJiでDM1を形成する。
【0032】このように求められた二部グラフのDM分
解は、二部グラフのすべての最小点被覆を表すという特
徴をもつ。具体的には、以下のような性質をもつ(文献
3の202頁)。DM分解によって分解された各要素D
Mi(i=0〜n)において、二部グラフの左にある点
の集合をLとし、右にある点の集合をRとすると、 4−1.|L|<|R|の場合は、Lの点がすべての最
小点被覆に含まれる; 4−2.|L|>|R|の場合は、Rの点がすべての最
小点被覆に含まれる; 4−3.|L|=|R|の場合は、Lの点、または、R
の点のどちらかの点集合のみが最小点被覆に含まれる。
【0033】つまり、DM分解成分のうち、上記の4−
3に相当する各成分に対し、Lを選択するか、Rを選択
するかにより、すべての最小点被覆を表現できる。
【0034】再度、図7を参照する。DM0は上記の条
件4−1に相当するから、EoとFoはこの二部グラフの
すべての最小点被覆に必ず含まれる。DM1は上記の条
件4−3に相当するから、AoとJiのどちらかがすべて
の最小点被覆に含まれる。DM2は上記の条件4−2に
相当するから、EiとFiがこの二部グラフのすべての最
小点被覆に含まれることになる。
【0035】本発明では、DM分解のこの性質を利用し
て、新規のクラスタ併合を行う。
【0036】5−1.|L|<|R|の場合は、Lに含
まれる点を新規クラスタ入力とみなし、Rの出力側の点
も(5−2や5−3に相当する他のクラスタの入力でな
いかぎり)同一クラスタに併合する; 5−2.|L|>|R|の場合は、Rに含まれる点を新
規クラスタ出力とみなし、Lの入力側の点も(5−1や
5−3に相当する他のクラスタの出力でないかぎり)同
一クラスタに併合する; 5−3.|L|=|R|の場合は、RのLの点とRの点
で1クラスタを生成する。
【0037】条件5−1において、どの最小点被覆にも
含まれないRの点に対し、その出力側を他のクラスタ出
力に相当する点まで併合し、1クラスタとするわけであ
る。また、5−2においても、どの最小点被覆にも含ま
れないLの点に対し、その入力側を他のクラスタ入力に
相当する点まで併合する。従来手法のマッチングでは、
マッチングの端点のみを併合していたが、本発明では、
多くのクラスタを1つに併合することができる。しか
も、クラスタ切り口数のグラフ全体にわたる総和は最小
点被覆の点数と同じであるから、最小であることが保証
される。ただし、5−3においてだけは、Lの点もRの
点も最小点被覆に含まれる可能性があるので、後々のク
ラスタ併合に選択をまかせる。
【0038】図7において、DM0は上記の条件5−1
に対応するから、DMのL(左)の集合Gi,Hi,Ii
対し、もし、Go,Ho,Ioが存在し(図7の例ではない
が)、最小点被覆に含まれないなら、Go,Ho,Ioそれ
ぞれの出力点までを1つのクラスタとして併合する。G
o,Ho,Ioが最小点被覆に含まれるときは、Gi,Hi,Ii
までを1つのクラスタとして併合する。
【0039】広域クラスタ併合装置22での併合により
生成した新たなクラスタグラフは、クラスタグラフ記憶
装置35に転送される。このように、広域クラスタ併合
装置22におけるクラスタ併合とクラスタグラフ記憶装
置35とのクラスタグラフの受け渡しにより、クラスタ
併合が何回も階層的に行われることになる。
【0040】ところで、周回(ステップ103)の1回
ごとに、部分回路生成装置23は、ステップ104にお
いて、クラスタグラフ記憶装置34から最新の併合後の
クラスタグラフを読みとっており、読み取ったクラスタ
グラフが、回路記憶装置31の指定値記憶部33に記録
されている指定値を満たしているかどうかを判断してい
る。上述のようにクラスタ併合を階層的に行っていく
と、そのうち、ステップ104において、最新の併合後
のクラスタグラフが指定値を満足したら、その場合は、
ステップ106に移行し、部分回路生成装置23は、そ
のときのクラスタグラフと回路記憶装置31の回路記憶
部32に記録されている順序回路とから、分割後の部分
回路を生成する。部分回路生成には、まず、以下のよう
にして、最新のクラスタグラフの各クラスタCごとに、
Cに含まれるゲートまたはフリップフロップの集合を導
く。
【0041】6−1.併合前のクラスタグラフが初期ク
ラスタグラフであるなら、併合前のクラスタのうち、C
に含まれるものをクラスタグラフ記憶装置34から読み
出し、さらに、それらの読み出したクラスタに対応する
ゲートもしくはフリップフロップもクラスタグラフ記憶
装置34から読み出す; 6−2.併合前のクラスタグラフが初期クラスタグラフ
でないなら、併合前のクラスタのうち、Cに含まれるも
のをクラスタグラフ記憶装置34から読み出し、それら
の読み出したクラスタそれぞれに対し、6−1または6
−2を行う。
【0042】このように、部分回路生成装置23は、各
クラスタCごとに、Cに含まれるゲートまたはフリップ
フロップの集合を求め、回路記憶装置31の回路記憶部
32に記憶された順序回路の接続関係をたどりながら、
部分回路を生成していく。
【0043】図3に示した例において、クラスタグラフ
記憶部35に記憶されているクラスタグラフで、図2の
ステップ103の周回動作が終わったとする。このと
き、クラスタグラフ記憶部35の各クラスタに対し、上
記のアルゴリズムを適用する。クラスタ記憶部35のク
ラスタAFを例にとると、併合前のクラスタグラフ中の
クラスタでAFに含まれるものをアドレスリスト表62
をひくことで検出する(点AからF)。この場合、併合
前のクラスタグラフは、初期クラスタグラフであるか
ら、上記アルゴリズムのステップ1に相当し、点Aから
Fに対し、回路記憶装置31内のアドレス表61をひ
き、回路中のゲート等を検出する。検出したゲート等か
ら、回路記憶装置21内の順序回路の接続を見ながら、
クラスタAFに対応する部分回路を作成する。
【0044】上述のようにして分割後の各要素である部
分回路が生成すると、出力装置40が、その部分回路を
出力し、回路分割のための一連の処理を終了する。
【0045】以下、具体的な例を挙げて本実施形態での
回路分割についてさらに詳しく説明する。
【0046】図8(a)は、ここで説明する回路の一例を
示している。ここでは、簡単のため、ゲートのみからな
る回路を取り上げる。
【0047】まず、初期クラスタグラフ生成装置21
が、図8(a)に示した回路例での入出力およびゲートに
対応する点をクラスタグラフ上に生成する。例えば、ゲ
ートAに対しては、点Aが図8(b)のクラスタグラフ上
に生成される。生成された各点は初期のクラスタとみな
される。続いて初期クラスタグラフ生成装置21は、回
路入力からゲート、ゲート間、ゲートから回路出力まで
の配線に相当するエッジをクラスタグラフ上に生成す
る。たとえば、回路入力AからゲートDまでの配線22
1に相当するエッジは222のようになる。
【0048】このようにして生成した初期クラスタグラ
フは、クラスタグラフ記憶装置34へ転送され、記憶領
域(初期クラスタグラフ記憶部35)に保持される。こ
の際、初期クラスタグラフの各点(初期クラスタ)に対
応するゲートやフリップフロップを回路記憶装置31の
回路記憶部32に記録されている回路中で探索し、その
アドレスも保持する。
【0049】次に、クラスタグラフ記憶装置34に記憶
された初期クラスタグラフを広域クラスタ併合装置22
が読み出す。読み出したクラスタグラフに対し、グラフ
入出力以外の点を二重化した二部グラフを生成する。図
8(b)に示したクラスタグラフに対する二部グラフを図
9(a)に示す。例えば、図8(b)での点Dに対し、図9
(a)では、DiとDoを生成し、Dの入力エッジに対応す
るエッジをDiの入力に、Dの出力エッジに対応するエ
ッジをDoの出力につないでいる。
【0050】図9(a)の二部グラフに対し、完全マッチ
ングを求めるアルゴリズムを適用すると、完全マッチン
グは図9(a)の太線のようになる。さらに、完全マッチ
ングのアルゴリズムを利用したDM分解アルゴリズムよ
り、二部グラフのDM分解を求めると、DM分解の各要
素は、符号231〜234で表わされるようなものにな
る。DM分解要素231〜234に関しては、要素中の
左の点集合が右の点集合よりも少ないから、これらの要
素の左の点集合がすべての最小点被覆に含まれることが
わかる。よって、これらの点集合が併合後のクラスタ入
出力となる。また、もう一つのDM分解要素234に関
しては、要素中の右の点集合が左の点集合よりも少ない
から、右の点集合、つまり、点Riのみの集合がすべて
の最小点被覆に含まれ、クラスタ入出力となることがわ
かる。さらに、DM分解要素233,234に対して
は、DM分解要素233の右の点集合(Ni,Oi,Pi,Q
i)、DM分解要素234の左の点集合(Oo,Qo)は最
小点被覆に含まれないから、これら2つのDM分解要素
233,234を併合して、1つのクラスタXとするこ
とができる。他のDM分解要素に対しても、最小点被覆
でない右の点集合側へ併合を拡大できるが、この例では
点が存在しないため、DM分解要素231,232をそ
のまま併合後のクラスタとして、それぞれ、クラスタ
V、クラスタWとした。このような併合により、併合後
のクラスタグラフは図9(b)のようになる。図9(b)のエ
ッジに書かれた値は、クラスタ間の接続数を示してい
る。
【0051】広域クラスタ併合装置22は、この新規ク
ラスタグラフをクラスタグラフ記憶装置34に転送す
る。クラスタグラフ記憶装置34では、広域クラスタ併
合装置22から転送された新規のクラスタグラフを受け
取り、記憶領域(クラスタグラフ記憶部36)に記憶す
る。その際、図9(b)の新規クラスタグラフにおける各
点に含まれる併合前のクラスタグラフ中の点(複数)を
調べ、それらの複数のアドレスをリストとして記憶す
る。たとえば、クラスタVは、図9(a)のDM分解要素
231が対応するから、クラスタVとともに、併合前の
クラスタグラフにおけるクラスタA,B,C,D,E,
F,Gのアドレスリストを記憶する。
【0052】部分回路生成装置23では、回路記憶装置
31の指定値記憶部33に記憶された指定値を満たした
場合に、クラスタグラフ記憶装置34内をたどりなが
ら、部分回路を生成する。図9(a),(b)に示した例が指
定値を満たしたとすると、上記のクラスタグラフ記憶装
置22では、クラスタVには、アドレスリストA,B,
C,D,E,F,Gが対応していたから、クラスタVに
相当する部分回路は、図10の符号241のようにな
る。同様に、クラスタW、Xに相当する部分回路は、そ
れぞれ、図10の符号242,243のようになる。
【0053】1度のクラスタ併合で回路記憶装置31の
指定値記憶部33に記憶された指定値を満たさない場合
には、周回を管理するクラスタグラフ記憶装置34と、
クラスタ併合を行う広域クラスタ併合装置35を用いる
ことにより、クラスタグラフの併合を繰り返し行えばよ
い(繰り返し中に指定値を満たせば、分割は成功とす
る。併合できなくなる、つまり、クラスタ数が1つにな
ってしまった場合は分割は失敗とする)。
【0054】次に、本発明の第2の実施の形態の回路分
割装置について、図11を用いて説明する。この回路分
割装置は、上述した第1の実施の形態の回路分割装置に
対し、クラスタグラフ切断装置51及びクラスタ交換装
置52を付加した構成のものである。
【0055】クラスタグラフ切断装置51は、クラスタ
グラフ記憶装置34に記憶された各レベルのクラスタグ
ラフに対し、回路記憶装置31の指定値記憶部33に記
憶された分割後の部分回路の個数に基づいて、クラスタ
グラフを任意に切断する。続いて、クラスタ交換装置5
2は、切断の各要素の規模、入出力数が、回路記憶装置
31の指定値記憶部33に記憶された分割後の部分回路
の回路規模や入出力ピン数の上限値以下になるように、
または、以下にならない場合は上限値に近づくように、
切断されたクラスタグラフの要素間で、あらゆるクラス
タの交換を試す。あらゆるクラスタ交換を行っても、指
定上限値を満たさない場合は、他のクラスタグラフで、
クラスタグラフ切断と、クラスタ交換を行う。
【0056】このように構成することにより、さらに迅
速に回路分割を行うことができるようになる。
【0057】以上、本発明に基づく回路分割装置につい
て説明したが、本発明の回路分割装置は、それを実現す
るための計算機プログラムを、スーパーコンピュータや
ワークステーション(WS)、パーソナルコンピュータ
(PC)などの計算機に読み込ませ、そのプログラムを
実行させることによっても実現できる。回路分割を行う
ためのプログラムは、磁気テープやCD−ROMなどの
記録媒体によって、計算機に読み込まれる。図12は、
本発明の回路分割装置をソフトウェアによって実現する
ために使用するコンピュータシステムの構成を示すブロ
ック図である。
【0058】このコンピュータシステムは、中央処理装
置(CPU)71と、プログラムやデータを格納するた
めのハードディスク装置72と、主メモリ73と、キー
ボードやマウスなどの入力装置74と、CRTなどの表
示装置75と、磁気テープやCD−ROM等の記録媒体
77を読み取る読み取り装置76とから構成されてい
る。ハードディスク装置72、主メモリ73、入力装置
74、表示装置75及び読み取り装置76は、いずれも
中央処理装置71に接続している。この計算機では、回
路分割を行うためのプログラムを格納した記録媒体77
を読み取り装置76に装着し、記録媒体77からプログ
ラムを読み出してハードディスク装置72に格納し、ハ
ードディスク装置72に格納されたプログラムを中央処
理装置71が実行することにより、回路分割が実行され
る。また、回路設計用のCADシステムとして用いるコ
ンピュータに、本発明の回路分割装置を実現するための
ソフトウェアを実装するようにしてもよい。
【0059】
【発明の効果】以上説明したように本発明は、DM分解
を用いてクラスタ併合を行うことにより、広域クラスタ
併合装置において、併合後の新規クラスタ入出力の回路
全体にわたる総数を最小にするクラスタ併合を行うこと
ができるので、高精度な回路分割を行うことが可能にな
り、また、広域クラスタ併合装置において、併合後の新
規クラスタ入出力数を増加させないという条件下で、で
きるだけ多くのクラスタ併合を行うので、分割の処理速
度が速くなる、という効果がある。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態の回路分割装置の構
成を示すブロック図である。
【図2】図1に示す回路分割装置の動作を示すフローチ
ャートである。
【図3】回路記憶装置とクラスタグラフ記憶装置での記
憶内容を説明する図である。
【図4】広域クラスタ併合装置での処理を説明する図で
ある。
【図5】広域クラスタ併合装置での処理を説明する図で
ある。
【図6】広域クラスタ併合装置での処理を説明する図で
ある。
【図7】広域クラスタ併合装置での処理を説明する図で
ある。
【図8】初期クラスタグラフ生成装置での処理を説明す
る図である。
【図9】広域クラスタ併合装置での処理を説明する図で
ある。
【図10】部分回路生成装置での処理を説明する図であ
る。
【図11】本発明の第2の実施の形態の回路分割装置の
構成を示すブロック図である。
【図12】回路分割装置を実現するために用いるコンピ
ュータシステムの構成を示すブロック図である。
【符号の説明】
10 入力装置 20 演算部 21 初期クラスタグラフ生成装置 22 広域クラスタ併合装置 23 部分回路生成装置 30 記憶部 31 回路記憶装置 32 回路記憶部 33 指定値記憶部 34 クラスタグラフ記憶装置 35 初期クラスタグラフ記憶部 36 クラスタグラフ記憶部 40 出力装置 51 クラスタ交換装置 52 クラスタグラフ切断装置 61 アドレス表 62 アドレスリスト表 71 中央処理装置(CPU) 72 ハードディスク装置 73 主メモリ 74 入力装置 75 表示装置 76 読み取り装置 77 記録媒体 101〜106 ステップ 201〜204 補助グラフ内の最大マッチングに属
する1エッジ 211〜215 二部グラフの最大マッチングに属す
るエッジ 221 配線(回路例内の1エッジ) 222 クラスタグラフ内の1エッジ 231〜234 二部グラフのDM分解要素 241〜243 部分回路

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 大規模回路を分割して部分回路を生成す
    る回路分割装置であって、 分割対象である回路の回路データを記憶する回路記憶部
    と、 分割後の部分回路の指定個数及び各部分回路に関する指
    定値を記憶する指定値記憶部と、 クラスタグラフを記憶するクラスタグラフ記憶装置と、 前記回路記憶部から前記回路データを読み込み、前記回
    路の構成要素に対応して初期のクラスタグラフを生成す
    る初期クラスタグラフ生成装置と、 前記クラスタグラフ記憶装置からクラスタグラフを受け
    取り、DM分解を用いたクラスタ併合により新たなクラ
    スタグラフを生成し、前記クラスタグラフ記憶装置に転
    送する広域クラスタ併合装置と、 前記クラスタグラフ記憶装置からクラスタグラフを読み
    込み、読込んだクラスタグラフが前記指定値記憶部に記
    憶された指定値を満たした場合に、このクラスタグラフ
    を元に分割後の部分回路を生成する部分回路生成装置
    と、 を有するDM分解に基づく回路分割装置。
  2. 【請求項2】 分割対象の回路中のゲート及びフリップ
    フロップの集合をクラスタとし、各クラスタの前か後ろ
    のクラスタ1段を合わせるクラスタの併合を行うとき、
    併合により新たに生成された各クラスタの入出力数の回
    路全体にわたる合計が最小となるようなクラスタ併合を
    グラフ理論におけるDM分解を用いて行う、請求項1に
    記載のDM分解に基づく回路分割装置。
  3. 【請求項3】 前記回路記憶部では、前記回路の構成要
    素ごとにデータを記憶するとともに、前記クラスタグラ
    フ記憶装置では、クラスタグラフ中の各クラスタごと
    に、前記回路記憶部中での対応する前記構成要素へのア
    ドレスを保持する請求項1に記載の回路分割装置。
  4. 【請求項4】 前記指定値記憶部に記憶されている分割
    後の部分回路の個数に基づいて、前記クラスタグラフ記
    憶装置に記憶されているクラスタグラフを切断するクラ
    スタグラフ切断装置と、前記指定値記憶部に記憶された
    指定値を満足するように、前記切断されたクラスタグラ
    フの要素間でクラスタの交換を行うクラスタ交換装置
    と、をさらに有する請求項1に記載の回路分割装置。
  5. 【請求項5】 計算機が実行するプログラムを格納し、
    前記計算機が読み取り可能な記録媒体であって、 前記プログラムが、前記計算機に、 分割対象の回路の構成要素に対応して初期のクラスタグ
    ラフを生成するステップと、 既存のクラスタグラフに基づき、DM分解を用いたクラ
    スタ併合により新たなクラスタグラフを生成するステッ
    プと、 分割後の部分回路に関する予め設定された指定値をクラ
    スタグラフが満足している場合には、そのクラスタグラ
    フを元にして分割後の部分回路を設定するステップと、
    を実行させるものである記録媒体。
  6. 【請求項6】 前記プログラムが、前記計算機に、分割
    対象の回路中のゲート及びフリップフロップの集合をク
    ラスタとし、各クラスタの前か後ろのクラスタ1段を合
    わせるクラスタの併合を行うとき、併合により新たに生
    成された各クラスタの入出力数の回路全体にわたる合計
    が最小となるようなクラスタ併合を、グラフ理論におけ
    るDM分解を用いて行わせるものである、請求項5に記
    載の記録媒体。
JP28415698A 1998-10-06 1998-10-06 Dm分解に基づく回路分割装置及び記録媒体 Expired - Fee Related JP3199113B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28415698A JP3199113B2 (ja) 1998-10-06 1998-10-06 Dm分解に基づく回路分割装置及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28415698A JP3199113B2 (ja) 1998-10-06 1998-10-06 Dm分解に基づく回路分割装置及び記録媒体

Publications (2)

Publication Number Publication Date
JP2000113017A JP2000113017A (ja) 2000-04-21
JP3199113B2 true JP3199113B2 (ja) 2001-08-13

Family

ID=17674912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28415698A Expired - Fee Related JP3199113B2 (ja) 1998-10-06 1998-10-06 Dm分解に基づく回路分割装置及び記録媒体

Country Status (1)

Country Link
JP (1) JP3199113B2 (ja)

Also Published As

Publication number Publication date
JP2000113017A (ja) 2000-04-21

Similar Documents

Publication Publication Date Title
Li et al. Routability-driven placement and white space allocation
US6430734B1 (en) Method for determining bus line routing for components of an integrated circuit
US7124071B2 (en) Partitioning a model into a plurality of independent partitions to be processed within a distributed environment
US6598215B2 (en) Datapath design methodology and routing apparatus
US6026224A (en) Redundant vias
US6727898B2 (en) Numerical analysis mesh generating method and apparatus
JP2007518194A (ja) 2次元cadドキュメントに対する表示優先度
US20080216026A1 (en) Integrated circuit layout design supporting device
US8954915B2 (en) Structured placement of hierarchical soft blocks during physical synthesis of an integrated circuit
JP2009054172A (ja) 配線処理方法及び配線処理装置並びに配線処理プログラム用記録媒体
US9053278B1 (en) System and method for hybrid cloud computing for electronic design automation
US20120054707A1 (en) Cone-aware spare cell placement using hypergraph connectivity analysis
US7587694B1 (en) System and method for utilizing meta-cells
US20230297758A1 (en) Timing driven cell swapping
US7047163B1 (en) Method and apparatus for applying fine-grained transforms during placement synthesis interaction
US20090125859A1 (en) Methods for Optimal Timing-Driven Cloning Under Linear Delay Model
US20030208737A1 (en) Method and system for placing logic nodes based on an estimated wiring congestion
JP3199113B2 (ja) Dm分解に基づく回路分割装置及び記録媒体
EP4381415A1 (en) Multiply-instantiated block modeling for circuit component placement in integrated circuit
US6434734B1 (en) Method for modifying placement of components of an integrated circuit by analyzing resources of adjacent components
JP3345324B2 (ja) 半導体回路のセル配置を決定する配置装置および方法
JP6981296B2 (ja) バス配線探索プログラム、バス配線探索方法および情報処理装置
US6438736B1 (en) Method for determining cleanup line routing for components of an integrated circuit
US20060265673A1 (en) Facilitating High Level Validation of Integrated Circuits in Parallel with Development of Blocks in a Hierarchical Design Approach
US6606737B1 (en) Method for forming a structural similarity group from a netlist of an integrated circuit

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees