JP3761661B2 - フロアプラン方法及びその装置 - Google Patents
フロアプラン方法及びその装置 Download PDFInfo
- Publication number
- JP3761661B2 JP3761661B2 JP06149997A JP6149997A JP3761661B2 JP 3761661 B2 JP3761661 B2 JP 3761661B2 JP 06149997 A JP06149997 A JP 06149997A JP 6149997 A JP6149997 A JP 6149997A JP 3761661 B2 JP3761661 B2 JP 3761661B2
- Authority
- JP
- Japan
- Prior art keywords
- group
- shape
- blocks
- arrangement
- unit
- 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
Images
Description
【0001】
【発明の属する技術分野】
本発明は、半導体集積回路やプリント基板などの素子の配置・配線を行う電子回路部品の設計において、面積や形状の異なるさまざまなブロックが多数存在する回路データに対して、ブロックの配置・形状決定などのフロアプラン問題を解決するためのフロアプラン方法及びその装置に関するものである。
【0002】
【従来の技術】
一般に、フロアプラン設計とは、半導体集積回路やプリント基板などの電子回路部品のレイアウト設計の概略を決定するものであり、具体的にはブロックの配置や形状を決定することである。即ち、電子回路部品の設計では、面積や形状の異なるさまざまなブロックが多数存在し、ブロック間に多数の接続要求が存在する回路データに対して、ブロックの配置を決定しなければならない。さらに、ブロック内部を構成する回路データが存在するような階層的な回路データの場合において、ブロック内部の配置・配線が決定されていない設計段階では、ブロックの配置と併せて形状も決定しなければならない。
【0003】
このとき、フロアプラン設計では、部品コストを削減するためにブロックの配置・配線の面積をできる限り小さくする必要がある。さらに、回路の遅延時間を短縮し、消費電力を低減するために、ブロック間の配線長を短くする必要がある。
【0004】
従来のフロアプラン方法としては、一度にすべてのブロックを対象として設計を行う一括手法と、予めブロックを複数のグループに分割し、グループ単位にブロック配置と形状の決定を行う分割手法とがある。以下、分割されたブロックの集合をグループと呼ぶことにする。
【0005】
一括手法では、フロアプランを繰り返し改善することにより結果を求めるのが一般的である。
【0006】
図21に示すように、まず初期のフロアプランを生成し(S51)、そのフロアプランを変更し(S52)、変更後のフロアプランを評価する(S53)。S54で、その変更が変更前のフロアプランよりも改善されていれば変更を受入れてフロアプランを更新し(S55)、終了条件が満たされているかの判断を行う(S56)。一方、S54で、変更前のフロアプランよりも改善されていなければ、S55の工程を経ずにS56へ進む。S56で終了条件が満たされていれば処理を終了し、満たされていなければ再びS52に戻り処理を繰り返す。
【0007】
分割手法は、問題規模(ブロック数)の増加に対応して、現実的な時間で問題を解くために入力回路を分割してフロアプランを行うものである。
【0008】
図22に示すように、まずグループの初期化を行い(S61)、S62でグループ内のブロック数が制限値以下でない場合には、グループ内を分割し(S63)、分割グループを配置する(S64)。この処理をグループ内のブロック数が制限値以下になるまで繰り返し、制限値以下になると処理を終了する。
【0009】
上記S63のグループの分割においては、二分割を再帰的に繰り返すことにより分割を決定する方法と、一度に複数のグループに対して分割を行う手法とがある。このような二分割あるいは多分割の手法には、min−cut法や、ratio−cut法などが利用される(P.Pan, W.Shi, and C.L.Liu,“Area Minimization for Hierarchical Floorplans ”, IEEE Int'l Conf. on ICCAD, pp.436-440, 1994)。
【0010】
【発明が解決しようとする課題】
しかしながら、上記一括手法及び分割手法では、高速に高品質な設計結果を求めることができないという問題を有している。
【0011】
即ち、一括手法では、結果の品質面で次のような問題がある。
上述のように、フロアプラン設計では配置結果の面積を小さくし、かつ、配線長を短くする必要がある。しかし、面積と配線長の間に明確な関係が成り立たないために複数の指標を同時に最適化することは難しい。このことは、ブロック数が増大して取り得る配置の組み合わせの数が多くなるほどより困難になる。以下に具体例を挙げて説明する。
【0012】
フロアプラン問題のような組み合わせ最適化問題の解法として有効とされているSA(Simulated Annealing)法を用いた繰り返し改善によって、フロアプランを求める方法が、D.F.Wong, and C.L.Liu,“A New Algorithm for Floorplan Design”, ACM/IEEE, Proc.23rd. D.A.Conf., pp.101-107, 1986 に提案されている。
【0013】
これは、結晶の生成過程をモデル化して応用したもので、改善の進行状態を温度で表し、温度を高温から低温へ冷却することにより解を徐々に最適値へ収束させる方法である。解は徐々に変化させる必要があり、このことは、フロアプラン問題ではブロック配置を部分的に変更することに対応する。温度に応じて決まる一定の確率で解の改悪を認めることにより、繰り返し改善の途中で局所解に陥ることなく解の最適化を図ろうとしている。
【0014】
フロアプラン設計に対してSA法を適用する場合には、あるフロアプランに対する面積及び配線長の評価方法を定め、その2つの評価値の関数をフロアプランの評価値とする。これが、前記図21のS53の変更フロアプラン評価に該当する。
【0015】
関数は、面積評価値と配線長評価値の線形和で定義される。即ち、あるフロアプランFに対する面積の評価値をCarea(F)とし、配線長の評価値をCwire(F)とすれば、フロアプランの評価値C(F)は、
C(F)=Carea(F)×定数×Cwire(F)
となる。
【0016】
しかしながら、この方法では改善回数が進行するにつれて、以下のような問題が生じる。
【0017】
(1)配線長がある程度短い結果が得られた後に面積を改善しようとすると、一旦ブロックを移動する必要があるが、ブロックを移動すると配線長が長くなり、フロアプランの評価値も増加する。しかし、配線長がある程度短くなるときには温度の冷却が進行しているため、一旦ブロックを移動させてフロアプランの評価値を大きく増加させるような改善は起こりにくく、それ以上面積の改善が進まない。この場合、図18に示すように、配線長は短いが全体の面積は大きいという結果しか得られない。
【0018】
(2)面積がある程度小さな結果が得られた後に配線長を改善しようとすると、一旦ブロックを移動する必要があるが、ブロックを移動すると面積が増加し、フロアプランの評価値も増加する。しかし、面積がある程度小さくなるときには温度の冷却が進行しているため、一旦ブロックを移動させてフロアプランの評価値を大きく増加させるような改善は起こりにくく、それ以上配線長の改善が進まない。この場合、図19に示すように、面積は小さいが配線長は長いという結果しか得られない。
【0019】
(3)面積がある程度小さな結果が得られた後に、さらにその面積を改善するためには一旦ブロックを移動する必要がある。しかし、面積がある程度小さくなるときには温度の冷却が進行しているため、一旦大きなブロックを移動させてフロアプランの評価値を大きく増加させるような改善は起こりにくく、それ以上解の改善が進まない。
【0020】
上記(1)(2)の問題は、面積が減ると配線長も減るとは限らないこと、即ち、面積と配線長の間に直接的に明確な関係がないことが原因である。但し、ブロックが存在しない空き領域が大きくなれば、配線長も長くなるという傾向は存在する。また、上記(3)の問題は、ブロックの面積のばらつきが大きいことが原因である。
【0021】
上記の問題点は、改善回数を増やしても解決することができない。なお、SA法以外の他の繰り返し改善手法を利用する場合においても、フロアプランの評価のために面積と配線長の関数を使用するため、上記と同様の問題が生じる。
【0022】
さらに、一括手法では処理時間の面でも次のような問題がある。
(4)一括手法ではすべてのブロックを対象とするため、結果を求めるために必要な処理時間が増大する。つまり、ブロック数に比例した処理時間で結果を求める有効な手法が存在しないため、処理時間はブロック数の増加に伴って急激に増大し、ブロック数が数百となると、実用上許容される処理時間を上回ることになる。
【0023】
次に、分割手法の問題点を説明する。
従来の分割手法では、すべてのブロックが分割の対象とされる。従って、ブロックの大きさに極端なばらつきがある場合、大きなブロックも分割の対象となり、いずれかのグループに属することになる。
【0024】
また、分割の評価は分割間を接続する配線数を少なくし、分割内のブロック面積和(グループ内のブロック面積和)のばらつきを低減することを目的としているため、各グループにおけるブロック面積のばらつきについては全く考慮されていない。従って、図20(a)に示すような各グループにおけるブロック面積のばらつきが大きい場合には、図20(b)に示すように、グループ化を行ってグループG11,G12を生成したときに、グループ内の配置に空き領域101が発生する。
【0025】
さらに、分割の目的は配置問題の対象となるブロック数を限定することであるため、グループ内のブロック数が限定されており、各グループにおけるブロック面積のばらつきは分割を行うことでより顕著となる。
【0026】
また、面積の小さくなるグループ配置が存在する場合でも、グループ配置の候補数が限定されるため、上位階層でのグループの形状候補が少数となり、上位階層の配置面積を低減できないという問題も生じる。
【0027】
本発明は、上記従来の問題点を解決するためになされたもので、その目的は、面積や形状の異なるさまざまなブロックが多数存在する回路データに対し、面積が小さく配線長の短い高品質のフロアプラン結果を、高速に求めることができるフロアプラン方法及びその装置を提供することにある。
【0028】
【課題を解決するための手段】
上記の目的を達成するために、本発明の請求項1または11に記載のフロアプラン装置あるいはフロアプラン方法は、複数のブロックからなる回路データに対して、ブロックをグループ化してブロックの配置及び形状の決定を行うフロアプラン装置/方法において、ブロックの大きさを基準として、全体の配置結果に対する影響が小さいブロック、即ち面積の小さいブロックをグループ化の対象として選択するグループ化対象選択部/工程と、上記グループ化対象とされたブロックに対して、複数のグループの配置及び形状の決定を行うと共に各グループ内でブロックの配置および形状の決定を行うためのグループ化を行うグループ化部/工程とを備えることを特徴としている。
【0029】
上記フロアプラン装置あるいは方法によれば、面積や形状の異なるさまざまなブロックが多数存在する回路データに対して、ブロックの大きさを基準として、全体の配置結果に対する影響が小さい、即ち面積の小さいブロックがグループ化の対象として選択される。従って、部分的にグループ化が行われることになる。
【0030】
このように、全体の中で面積の小さいブロックをグループ化対象としているので、大きなブロックがグループ化されてグループ内の面積が増大することがない。また、グループ化したときに各グループ内の面積のばらつきを低減することができるので、空き領域が発生することもない。さらに、グループ化を行っているので、上位階層のブロック数や接続要求が減少し、フロアプラン結果を高速に求めることができる。
【0031】
請求項2に記載のフロアプラン装置は、請求項1に記載の構成に加えて、上記グループ化部が、上記グループ化対象とされたブロックに対して、ブロック面積の重み付けがなされた結合度に基づいてグループ化を行うことを特徴としている。
【0032】
上記の構成によれば、ブロック間の結合度の高い、即ちブロック相互の接続要求が強い面積の小さなブロックどうしが同一のグループに属するようにグループ化され、グループ単位にブロックが配置される。従って、配線または配線の一部がグループ内に閉じ込められることになるので、配線長の削減、配線遅延の削減、及び配線による消費電力の削減を実現できる。
【0033】
請求項3に記載のフロアプラン装置は、請求項1又は2に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループと、上記グループ化対象以外のブロックとを同一の階層と見なして、グループ及びグループ化対象以外ブロックの配置と形状を決定する上位階層フロアプラン部をさらに備えることを特徴としている。
【0034】
上記の構成によれば、面積の小さなブロックをグループ化して大きなブロックと見なすため、上位階層での面積のばらつきを低減することができる。これにより、上位階層での面積や配線長を低減することができる。
【0035】
請求項4に記載のフロアプラン装置は、請求項3に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を列挙するグループ形状候補列挙部をさらに備え、上記上位階層フロアプラン部は、候補として列挙されたブロックの配置及び形状に基づいて上位階層の配置を決定することを特徴としている。
【0036】
上記の構成によれば、グループ形状候補列挙部によって予め複数のグループ形状の候補を求め、上位階層フロアプラン部においてその結果を利用して上位階層の配置を決定することにより、グループ形状の制約が緩和でき、上位階層の面積を削減できる。
【0037】
請求項5に記載のフロアプラン装置は、請求項3に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を求めると共に、該求められた形状候補の中から、グループの形状面積に対して、グループ内でブロック以外が占める領域である空き領域の面積が大きな形状候補を除外するグループ形状候補列挙部をさらに備え、上記上位階層フロアプラン部は、候補として列挙されたブロックの配置及び形状に基づいて上位階層の配置を決定することを特徴としている。
【0038】
上記の構成によれば、請求項4の構成と同様に、グループ形状候補列挙部によって予め複数のグループの形状候補を求め、上位階層フロアプラン部においてその結果を利用して上位階層の配置を決定することにより、グループ形状の制約が緩和でき、上位階層の面積を削減できる。また、列挙された形状候補から空き領域の大きな形状候補が除外されるため、上記上位階層フロアプラン部において、空き領域の大きなグループ形状を選ぶことがないので、上位階層の面積を削減できる。また、上記上位階層フロアプラン部において参照するグループの形状候補の数が減少するため、高速に上位フロアプラン結果を求めることができる。
【0039】
請求項6に記載のフロアプラン装置は、請求項4又は5に記載の構成に加えて、上記グループ形状候補列挙部にて列挙された形状候補に対して、類似する複数の形状候補を単一の形状候補に合成するグループ形状候補合成部をさらに備えることを特徴としている。
【0040】
上記の構成によれば、上記上位階層フロアプラン部において列挙された形状候補からグループの形状を選択するときに、グループ形状候補合成部にて類似する複数の形状候補を1つの形状候補に合成しているので、上記上位階層フロアプラン部において参照する形状候補の数が減少するため高速に上位フロアプラン結果を求めることが可能となる。
【0041】
請求項7に記載のフロアプラン装置は、請求項6に記載の構成に加えて、上記グループ形状候補合成部が、複数の形状候補の各面積に対する該複数の形状候補を1つに合成したときの合成形状の面積の増加量が許容値以下となる形状候補の集合を類似する形状候補として選択することを特徴としている。
【0042】
上記の構成によれば、合成の元となる形状候補の各面積と合成後の合成形状の面積との差が許容値以下となる形状候補の集合が類似する形状候補として選択されるので、形状候補の合成による面積の増加を制約することができ、請求項6の構成に比べて、より面積の小さい上位フロアプラン結果が求められる。
【0043】
請求項8に記載のフロアプラン装置は、請求項1ないし7の何れかに記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備えることを特徴としている。
【0044】
上記の構成によれば、グループ内配置部によってブロック間の配線長が最短となるグループ内のブロック配置を求めることができる。
【0045】
請求項9に記載のフロアプラン装置は、請求項6又は7に記載の構成に加えて、上記グループ形状候補合成部にて合成された合成形状の元となる複数の形状候補のそれぞれに基づいて、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備えることを特徴としている。
【0046】
上記の構成によれば、合成形状の元となる複数の形状候補について配線長を評価するため、合成しない場合と比較してグループ内のブロック位置への制約がより緩和され、ブロック間の配線長短縮を図ることができる。これにより、ブロック間の配線長が最短となるグループ内のブロック配置を決定することが可能となる。
【0047】
請求項10に記載のフロアプラン装置は、請求項1ないし9の何れかに記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの方向性を求めるブロック方向性決定部をさらに備えることを特徴としている。
【0048】
上記の構成によれば、ブロック方向性決定部によってブロック間の配線長が最短となるグループ内のブロック配置を求めることができる。
【0049】
また、グループ化対象選択部及びグループ化部をコンピュータプログラムとして実現することもできる。さらに、上位階層フロアプラン部、グループ形状候補列挙部、グループ形状候補合成部、グループ内配置部、及びブロック方向性決定部をコンピュータプログラムとして実現してもよい。
【0050】
【発明の実施の形態】
〔実施の形態1〕
本発明の実施の形態1について図1ないし図17、図23、及び図24に基づいて説明すれば、以下の通りである。
【0051】
図2に示すように、本実施の形態にかかるフロアプラン装置は、入力部1、データベース2、フロアプラン処理部3、データベース4、出力部5、及び制御部6から構成される。
【0052】
入力部1は、複数のブロックからなる回路データを入力する。即ち、各ブロックの幅と高さとの組(複数の形状が可能な場合には複数個の組が存在)、ブロック間の接続要求、接続要求に対する遅延重み、接続要求に対する信号遷移率、及び目標となる結果の幅と高さの比を入力する。
【0053】
ここで、遅延重みとは回路遅延時間に対する重要度を表す数値で、数値が大きいほど配線長を短くする必要がある。また、信号遷移率とは、信号変化の発生する頻度を表す、即ちどのくらいの割合で信号が変化するかを示すものである。配線の負荷容量が同じ場合には、信号遷移率が高いほど消費電力が大きくなる。配線の負荷容量は配線長にほぼ比例するため、信号遷移率が高いほど配線長を短くする必要がある。
【0054】
データベース2は、フロアプラン情報を格納する。このフロアプラン情報は、フロアプランに必要なすべての情報であり、ブロックの幅、高さ、端子の位置、及び端子に接続すべき信号名などである。
【0055】
フロアプラン処理部3は、グループ化対象選択部7、グループ化部8、グループ形状候補列挙部9、上位階層フロアプラン部10、グループ内配置部11、及びブロック方向性決定部12を備えている。
【0056】
グループ化対象選択部7は、ブロック総面積に対する各ブロックの面積比、各ブロックの縦横比、あるいは他のブロックとの形状の類似性などを基準として、全体の配置結果に対する影響が小さいブロックをグループ化する対象として選択する。
【0057】
グループ化部8は、グループ化対象選択部7により選択されたグループ化対象ブロックに対して、ブロック相互の接続数、ブロックの大きさや形状、あるいは遅延や消費電力の情報を用いて、グループ化対象ブロックをグループ化する。
【0058】
グループ形状候補列挙部9は、グループ化部8により決定されたグループに対して、各グループ内のブロックの配置と形状の候補を求め、グループの形状候補を列挙する。
【0059】
上位階層フロアプラン部10は、グループ形状候補列挙部9により求められたグループの形状候補を利用して、グループを含む上位階層、即ちグループとグループ化対象外ブロックとが混在するデータに対して、グループやグループ化対象外ブロックの配置と形状を算出する。
【0060】
グループ内配置部11は、上位階層フロアプラン部10にて求められた配置結果より、ブロック間の配線長が短くなるように、各グループ内ブロックの配置を決定する。このとき、類似したグループ形状となるグループ内ブロックの配置が複数存在する場合には、複数個の配置候補からブロック間の配線長が短くなるような配置を1つ選択する。
【0061】
ブロック方向性決定部12は、上位階層フロアプラン部10により求められた配置結果より、ブロック間の配線長が短くなるように、各グループの方向性の決定、及び各グループ内のブロックの方向性の決定を行う。
【0062】
データベース4は、フロアプラン処理部3で処理されるグループ情報を格納する。このグループ情報は、グループに関するすべての情報であり、グループ化対象ブロック、グループの構成、グループの形状候補、及び上位階層フロアプラン後のグループの配置・形状などである。
【0063】
出力部5は、最終的なすべてのブロックの位置、幅、高さ、及び方向性を出力する。
【0064】
制御部6は、フロアプラン処理部3の実行や、フロアプラン処理部3とデータベース2,4間のデータ入出力を制御するようになっている。
【0065】
図1に基づいて、上記の構成によるフロアプラン装置の動作を説明する。
まず、ブロックの大きさや形状の情報を利用して、相対的に面積の小さなブロックをグループ化の対象として選択する(S1)。そして、ブロックの大きさや形状の情報を利用して、ブロック相互の接続要求が強い面積の小さなブロックが同一のグループに属するようにグループ化を行う(S2)。このとき、1つのグループの規模や、属するブロックの数などを制約することができる。
【0066】
次に、グループ内ブロックの配置及び形状の候補を求める(S3)。このとき、グループ形状が異なる複数の配置結果を候補とする。グループを含む上位階層において、上記のグループの形状候補を用いてグループやブロックの配置と形状を決定する(S4)。求められた配置とグループ形状より、ブロック間の配線長が短くなるように、グループ内ブロックの配置、各グループ及びブロックの方向性を決定する(S5,S6)。
【0067】
上記S1ないしS6の処理を図3に示す入力ブロック例を用いて説明する。ここで、図3に示す各ブロックには番号付けがされているものとし、i番目のブロックをBi 、このブロックBi の面積をAi とする。また、すべてのブロックの面積の総和(以下、面積和と称する)をAall とする。
【0068】
図3の例では、10個のブロックB1 〜B10が入力ブロックとなる。このとき、A1 =A2 =1、A3 =A4 =A5 =A6 =2、A7 =4、A8 =12、A9 =7、A10=15とする。従って、Aall =48である。
【0069】
(1)グループ化対象選択処理
例えば、ブロック面積に基づいて、グループ化の対象となるブロックを決定する。この方法には以下の2つの方法がある。但し、以下の方法1及び2において、ブロック面積がその形状により若干変動する場合には、その最大値を採用することとする。
【0070】
(方法1)面積和を求め、面積和に対するブロック面積の比率が、予め定めた制約値以下であるブロックを、グループ化対象ブロックとする。この方法では、グループ化対象ブロックの面積の上限を定めることができ、全ブロック数が比較的少ない場合に有効なグループ化基準となる。
【0071】
図3の例において、制約値を0.05とすると、
Aall ×0.05=48×0.05=2.4
となるので、面積が2.4以下のブロックB1 ないしB6 がグループ化対象ブロックとして選択される(図4参照)。
【0072】
(方法2)ブロック面積の標準偏差を求め、さらに各ブロックの面積偏差(ブロック面積と平均面積の差)を算出する。標準偏差に対する面積偏差の比が予め定めた制約値以下であるブロックを、グループ化対象とする。この方法では、ブロック面積のばらつきを考慮してグループ化対象を定めることができ、相対的に面積が小さいと判断されるブロックをグループ化対象とする。従って、全ブロック数が比較的多い場合に有効なグループ化基準となる。
【0073】
図3の例において、平均面積は4.8であるので、各ブロックの面積偏差は表1に示す通りになる。また、標準偏差は約4.71であるので、標準偏差に対する面積偏差の比は表1に示す通りになる。
【0074】
【表1】
【0075】
ここで、制約値を−0.7とすれば、ブロックB1 ,B2 がグループ化対象として選択される。
【0076】
(2)グループ化処理
グループ化対象ブロックに対して、グループ化を適用する。グループ化の際に、まず、1つのグループに属することができるブロック数の最大値を予め与える。そして、最大値制約の範囲において結合度の高いブロックを同一のグループに入れる。
【0077】
結合度の決め方の例を図9に基づいて説明する。ブロックBi ,Bj に接続するネットの集合をNij、ネットnに接続するブロックの総数をTn とする。さらに、ネットnの信号遷移率をSn とし、ネットnの遅延重みをDn とする。このときのブロックBi ,Bj 間の結合度Cijを以下の式で定義する。
【0078】
【数1】
【0079】
上記式を用いて図9に示すブロックB11,B12,B13間の結合度を計算すると、次のようになる。但し、各ブロックの面積をそれぞれA11=2、A12=3、及びA13=10とし、Aall =30、Sn =0.5、Dn =1とする。
【0080】
【数2】
【0081】
このように、ブロックB11,B12間の結合度が最も高くなり、上記式では小規模で面積のばらつきが小さなブロック間の結合度が大きく計算されることがわかる。
【0082】
これに対して、ブロックの大きさを考慮しない従来手法の結合度の定義式は、次の通りである。
【0083】
【数3】
【0084】
これを用いて図9の例に対して、結合度を計算すると、次のようになる。
【0085】
【数4】
【0086】
このように、ブロックB11,B12間、ブロックB12,B13間、及びブロックB13,B11間の結合度はすべて等しくなり、ブロック面積のばらつきは考慮されていないことがわかる。
【0087】
例えば、前記(1)の「グループ化対象選択処理」の方法1で得られたグループ化対象の結果である図4に示すブロックB1 〜B6 に対して、1つのグループに属することのできるブロック数の最大値を3とし、上記のように定義された結合度を計算すると、図5に示すようにブロックB1 ,B2 ,B3 が1つのグループG1 となり、ブロックB4 ,B5 ,B6 が1つのグループG2 となる。
【0088】
(3)グループ形状候補列挙処理
グループ形状の列挙には以下に示す3つの方法がある。
【0089】
(方法1)形状制約の条件を与えて、分岐限定法を応用して面積最小となる配置を求め、複数の形状制約に対して処理を繰り返すことにより、複数のグループの形状候補を列挙する。この方法は、グループ内のブロック数が6程度までの場合に、高速に面積の小さな形状候補を列挙することができる。
【0090】
(方法2)配置のモデルをスライス構造に制限し、考えられるすべてのグループの形状候補を列挙する。ここでスライス構造とは、図10に示すように、水平または垂直の分割線によってブロックの配置領域を再帰的に分割することができる配置構造のことをいう。この方法は、グループ内のブロック数の最大値が10程度までの場合に、高速に面積の小さな形状候補を列挙することができる。
【0091】
(方法3)一括手法によるフロアプラン方法を利用して実現する。即ち、形状制約の条件を与えて配置を求め、複数の形状制約に対して処理を繰り返すことにより、複数のグループの形状候補を列挙する。この方法は、グループ内のブロック数の最大値が10を越える場合に適している。
【0092】
上記方法1ないし3に示すように、配置のモデルをスライス構造に制約する方法と、スライス構造に制約しない非スライス構造とする方法とがある。なお、方法1は配置モデルを非スライス構造とする方法に属している。
【0093】
配置モデルをスライス構造とする方法は、非スライス構造とする場合に比較して、グループ内でブロック以外が占める領域である空き領域が発生する場合がある。しかしながら、後述する(5)の「グループ内配置決定処理」に示すように、スライス構造の場合は、非スライス構造の場合よりもグループ形状が同一形状となる多くのグループ内ブロックの配置候補が存在するため、非スライス構造の場合に比較して配線長を短くできる。一方、配置モデルを非スライス構造とする方法は、スライス構造とする場合に比較して配線長は長くなるが、空き領域を小さくすることができる。従って、他のグループとの接続が多い場合にはスライス構造が適しており、他のグループとの接続が少ない場合には非スライス構造が適しており、回路データに応じて方法を使い分ければよい。
【0094】
図6は、図5に示すグループG1 ,G2 に対して、グループの形状候補を列挙した例を示している。グループ内のブロック数が4以下の場合には、配置は必ずスライス構造となる。従って、方法2により配置を列挙すると、グループG1 の場合は4通りの形状候補(図6(a)参照)、グループG2 の場合は3通りの形状候補(図6(b)参照)が列挙される。
【0095】
(4)上位階層フロアプラン処理
グループ化によるグループをブロックと見なし、列挙された形状候補を参照して、一括手法によるフロアプラン方法を利用して実現する。
【0096】
図5に示すグループG1 ,G2 と、図4に示すグループ化対象外のブロックB7 〜B10とを同一の階層と見なして、一括手法を適用すると、図7に示すようなグループ及びブロックの配置・形状結果が得られる。
【0097】
(5)グループ内配置決定処理
グループ内配置の決定方法を図11のフローチャートに基づいて説明する。
【0098】
まず、上記(4)の「上位階層フロアプラン処理」で求められたグループ形状と同一の形状となる配置の集合Pを、(3)の「グループ形状候補列挙処理」の結果を用いて生成する(S11)。その配置集合Pから1つの配置(要素)pを取り出す(S12)。配置pにしたがって、グループ内のブロックの配置を求める(S13)。グループ内の各ブロックの端子位置はすべて各ブロックの中心にあると見なして、全体の配線長を算出する(S14)。次に、前に取り出された配置p以外の要素が配置集合P内にあるかどうかを判断し(S15)、S15で要素があると判断された場合は上記S12へ戻り、前に取り出された配置pを除く配置集合Pに対して同様の処理を行う。この処理を配線集合Pのすべての要素に対して行い、S15で配置集合P内に要素がないと判断されると、すべての要素の中で配線長が最短の配置を選ぶ(S16)。
【0099】
例えば、ブロック配置が非スライス構造の場合には、図12(a)に示すグループ形状と同じになる5つのブロックB31,B32,B33,B34,B35の配置は、基準となる配置(図12(b)参照)、基準配置を上下反転してなる配置(図12(c)参照)、基準配置を左右反転してなる配置(図12(d)参照)、及び基準配置を180度回転してなる配置(図12(e)参照)の4通り存在することになる。従って、この場合の配置集合の要素は4つである。
【0100】
また、スライス構造の場合には、図14(a)に示すグループ形状と同じ形状となる4つのブロックB21,B22,B23,B24の配置を考えることにする。図13に示すように、各分割線に対して形状の等しい配置は2通りずつ存在する。つまり、グループ形状が同じとなるブロック配置は、xを分割線の数とすると2x 通り存在する。従って、図14(a)に示すグループ形状と同じ形状となる配置は、分割線数が3であるので、23 =8通りとなり(図14(b)〜図14(i)参照)、この場合の配置集合の要素は8つである。
【0101】
(6)ブロック方向性決定処理
すべてのグループに対してグループ内配置を決定した後に、すべてのブロックの方向性を決定する。このブロック方向性の決定方法を図15のフローチャートに示す。
【0102】
まず、同一のブロック形状からなり、互いに方向性が異なる方向性集合Qを生成する(S21)。その方向性集合Qから1つの方向性(要素)qを取り出す(S22)。方向性qにしたがって、ブロックの端子位置を求める(S23)。方向性qに対する全体の配線長を算出する(S24)。次に、前に取り出された方向性q以外の要素が方向性集合Q内にあるかどうかを判断し(S25)、S25で要素があると判断された場合は上記S22へ戻り、前に取り出された方向性qを除く方向性集合Qに対して同様の処理を行う。この処理を方向性集合Qのすべての要素に対して行い、S25で方向性集合Q内に要素がないと判断されると、すべての要素の中で配線長が最短の方向性を選ぶ(S26)。
【0103】
ここで、図16に示すように、ブロック形状が等しい方向性は4通り存在する。即ち、基準点CTに対する端子TMの位置が図16(a)の場合を基準となる方向性とすると、基準方向性を左右反転してなる配置(図16(b)参照)、基準方向性を上下反転してなる配置(図16(c)参照)、基準方向性を180度回転してなる配置(図16(d)参照)である。
【0104】
前記図7の結果に対して、(5)の「グループ内配置決定処理」を適用するとグループG1 ,G2 内のブロック配置が決定され、(6)の「ブロック方向性決定処理」を適用するとすべてのブロックの方向性が決定され、最終的なフロアプラン結果が図8のように得られる。
【0105】
以上のように、本実施の形態にかかるフロアプラン装置は、ブロックの大きさ及び形状を基準として、全体の配置結果に対する影響が小さいブロックをグループ化の対象として選択するグループ化対象選択部7と、上記グループ化対象とされたブロックに対して、グループ化を行うグループ化部8とを備えている。
【0106】
これによれば、グループ化対象選択部7が全体の中の面積の小さなブロックをグループ化対象とするので、面積の大きなブロックがグループ化されることがない。また、グループ内のブロック面積のばらつきを低減できるので、グループ内における空き領域を減少させることができ、面積の小さなフロアプラン結果を求めることができる。また、グループ化部8におけるグループ化によって、上位階層で扱うブロック数や接続要求数(ネット数)が減少し、その結果、フロアプラン結果を高速に求めることができる。
【0107】
また、グループ化部8のグループ化において、ブロックの大きさを考慮した結合度を用いることで、接続要求の強い小規模なブロックを優先してグループ化することができ、より小規模な領域に多くの配線を局所化できる。従って、遅延や消費電力が増大しやすい配線をグループ内の領域に閉じ込めることができるので、回路品質が向上し、全体の配線長の削減、配線遅延の削減、及び配線による消費電力の削減が実現できる。
【0108】
さらに、本フロアプラン装置は、面積の小さなブロックが集められてグループ化されたグループと、グループ化対象外の大きなブロックとを同一の階層と見なして、グループ及びグループ化対象以外ブロックの配置と形状を決定する上位階層フロアプラン部10を備えているので、上位階層で扱うブロックの大きさのばらつきが減少し、上位階層での面積や配線長を低減できる。
【0109】
また、本フロアプラン装置は、グループ化部8にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を求めるグループ形状候補列挙部9を備えている。そして、上位階層フロアプラン部10は、列挙されたブロック配置及び形状候補を利用して上位階層の配置を決定している。これにより、グループ形状の制約が緩和でき、上位階層の面積を削減できる。つまり、複数の異なる形状をとるグループを用いて、上位階層を配置することにより、より面積の小さなフロアプラン結果を求めることができる。
【0110】
さらに、グループ内配置部11及びブロック方向性決定部12により、すべてのブロックの位置、形状、及び方向性が最終的に決定される。このとき、上位階層フロアプラン部10で求められた上位階層での配置結果を利用して、グループ内のブロック配置や方向性を決定するため、グループ形状候補列挙部9において配置や方向性を予め固定する場合より、他のグループのブロックとの配線長を短くすることができる。また、上位階層のフロアプラン決定後にブロックの方向性も決定するため、グループ内配置時にブロックの方向性を決めるよりも配線長を短くできる。
【0111】
このようにして、従来の一括手法の説明で用いた図18・図19と同様のブロックからなる回路データに対して、本実施の形態のフロアプラン方法を適用すると、図17に示すようにブロックA,B,C、及びブロックD,Eがそれぞれグループ化されて、全体の面積が小さく、配線長が短く、消費電力が少なく、ブロック間遅延が小さい高品質のフロアプラン結果を、高速に得ることが可能となる。この結果、回路設計のコスト削減、低消費電力化、設計期間の短縮化を図ることが可能となる。
【0112】
なお、上記実施の形態1では、グループ形状候補列挙部9にてグループの形状候補を列挙したが、このとき、さらに列挙された形状候補に対して空き領域の面積が大きい形状候補を除外するグループ形状候補選択部を有する構成としてもよい。ここで、グループ内の各ブロック面積は予め分かっており、形状候補の面積とグループ内ブロック面積の総和の差が空き領域の面積に該当し、形状候補の面積がグループ内ブロック面積の総和に等しいときには空き領域のない形状となる。
【0113】
例えば、前記グループ化部8にて同一のグループに入れられたブロックを、図23に示すように、ブロックB41,B42,B43,B44とする。また、図中に示すX方向をブロックの幅、Y方向をブロックの高さとすると、それぞれのブロックの(幅,高さ)は、ブロックB41が(12,8)、ブロックB42が(8,7)、ブロックB43が(8,5)、ブロックB44が(8,4)である。従って、このときのグループ内ブロック面積の総和は「224(=96+56+40+32)」となる。
【0114】
上記ブロックB41,B42,B43,B44に対して、前記図1のS3の「グループ形状候補列挙処理」を行って、考えられるすべてのグループの形状候補を列挙すると、12通りとなる。図24には6つの候補が示されており、残りの6つの候補は図示された候補をそれぞれ90度回転させたものとなる。
【0115】
形状候補31は空き領域が形成されないようにブロックB41〜B44を配置したものであり、幅,高さが(28,8)、面積が「224」である(図24(a)参照)。形状候補32,33はその幅が3つのブロックB41〜B43によって決定されるように配置したものであり、幅,高さがそれぞれ(27,9)、(25,11)、面積がそれぞれ「243」、「275」である(図24(b)(c)参照)。形状候補34,35はその幅が2つのブロックB41,B42によって決定されるように配置したものであり、幅,高さがそれぞれ(20,12)、(19,13)、面積がそれぞれ「240」、「247」である(図24(d)(e)参照)。形状候補36はその幅が2つのブロックB41,B44によって決定されるように配置したものであり、幅,高さが(16,15)、面積が「240」である(図24(f)参照)。
【0116】
ここで、形状候補として列挙される形状は、幅(または高さ)が同じであるときに、高さ(または幅)の小さな配置が存在しない形状である。例えば図24(b)において、幅が「27」で高さが「9」より大きなグループ内ブロック配置が存在するが、それは幅が「27」で高さが「9」の配置が存在し上記の条件を満たさないため、形状候補とはならない。
【0117】
(選択方法1)
列挙された形状候補の中から、グループ内ブロック面積の総和に対する形状候補の面積の比率が一定の基準値以下の形状候補を選択する。つまり、この方法では、空き領域の比率を基準としている。
【0118】
例えば、基準値をグループ内ブロック面積の総和の120%とした場合、図23の例の場合にはグループ内ブロック面積の総和は「224」であるので、形状候補の面積の上限値は「268.8」となる。従って、図24に示した形状候補の中では、基準値「268.8」以下の候補として、形状候補31、32、34、35、36と、これらを各々90度回転した形状候補が選択される。
【0119】
(選択方法2)
列挙された形状候補の中から、形状候補の面積とグループ内ブロック面積の総和との差、即ち空き領域が一定の基準値以下の形状候補を選択する。つまり、この方法では空き領域の絶対値を基準としている。
【0120】
例えば、基準値を「20」とした場合、図23の例の場合にはグループ内ブロック面積の総和は「224」であるので、形状候補の面積の上限値は「244」となる。従って、図24に示した形状候補の中では、基準値「244」以下の候補として、形状候補31、32、34、36と、これらを各々90度回転した形状候補が選択される。
【0121】
上記選択方法1では空き領域の上限を比率で指定するため、グループ内のブロック数が多い場合、あるいはグループ内ブロック面積の総和が大きく、かつブロック面積のばらつきが大きい場合などの空き領域の絶対値が予測し難いグループに対して有効である。
【0122】
また、上記選択方法2では空き領域の上限を絶対値で指定するため、グループ内ブロック面積の総和にかかわらずグループ内の空き領域を一定値以下に制限できる。特に、グループ内ブロック面積の総和が小さいときは、空き領域の比率が大きくとも空き領域が絶対的に小さい形状候補を選択できるため有効である。
【0123】
従って、上記選択方法1,2は、形状候補選択を行うグループ内のブロックの構成に応じて適切な方を選べばよい。
【0124】
以上のように、上記フロアプラン装置は、上記グループ化部8にてグループ化された複数のブロックからなるグループに対して、グループ内のブロックの配置及び形状の候補を求めるグループ形状候補列挙部9と、グループ形状候補列挙部9にて求められた形状候補の中から、グループの形状面積に対して、グループ内のブロック以外が占める領域である空き領域の面積が大きな形状候補を除外するグループ形状候補選択部とを備え、上位階層フロアプラン部10は、グループ形状候補選択部にて選択されたブロックの配置及び形状候補に基づいて上位階層の配置を決定する構成とすることができる。なお、請求項5のグループ形状候補列挙部は、グループ形状候補列挙部9とグループ形状候補選択部とからなる。
【0125】
これによれば、グループ形状候補列挙部9によって予め複数のグループ形状の候補を求め、上位階層フロアプラン部10においてその結果を利用して上位階層の配置を決定することにより、グループ形状の制約が緩和でき、上位階層の面積を削減できる。また、グループ形状候補列挙部9にて列挙された形状候補から空き領域の大きな形状候補が除外されるため、上記上位階層フロアプラン部10において、空き領域の大きなグループ形状を選ぶことがなく、上位階層の面積を削減できる。また、上記上位階層フロアプラン部10において参照するグループの形状候補の数が減少するため、高速に上位フロアプラン結果を求めることができる。
【0126】
〔実施の形態2〕
本発明の実施の形態2について図25ないし図34に基づいて説明すれば、以下の通りである。なお、説明の便宜上、前記の実施の形態の図面に示した部材と同一の部材には同一の符号を付記し、その説明を省略する。
【0127】
図25に示すように、本実施の形態にかかるフロアプラン装置は、実施の形態1の構成に加えて、グループ形状候補選択部21と、グループ形状候補合成部22とを備えると共に、実施の形態1の構成のグループ内配置部11の代わりにグループ内配置部23を備えており、その他の構成については実施の形態1と同じである。
【0128】
グループ形状候補選択部21は、前記実施の形態1に示した通り、グループ形状候補列挙部9にて求められた形状候補の中から、グループの形状面積に対して、グループ内のブロック以外が占める領域である空き領域の面積が大きな形状候補を除外するものである。
【0129】
グループ形状候補合成部22は、グループ形状候補選択部21にて列挙された形状候補の中から、互いに類似する形状候補を選び出し、該類似した形状候補を単一の形状候補に合成するものである。この単一の形状候補を合成形状と呼ぶことにする。
【0130】
グループ内配置部23は、上記グループ形状候補合成部22にて合成された合成形状の元となる複数の形状候補それぞれを考慮に入れて、ブロック間の配線長が短くなるように、各グループ内ブロックの配置を決定するものである。
【0131】
図26に基づいて上記の構成によるはフロアプラン装置の動作を説明する。
まず、前記図1のS1〜S3の工程と同様の処理を行う。即ち、ブロックの大きさや形状の情報を利用して、相対的に面積の小さなブロックをグループ化の対象として選択する(S31)。そして、ブロックの大きさや形状の情報を利用して、ブロック相互の接続要求が強い面積の小さなブロックが同一のグループに属するようにグループ化を行う(S32)。次に、グループ内のブロック配置、及び、グループの形状の候補を列挙する(S33)。そして、列挙された形状候補に対して、空き領域の面積を基準とする選択処理を行う(S34)。
【0132】
次に、選択された形状候補の中から、互いに類似した複数の形状候補をさらに選び出し、それらの類似形状候補を合成することによって、類似形状候補を包含する面積最小の形状を求める(S35)。その後、合成結果を含む上位階層において、上記の形状候補を用いてグループやブロックの配置と形状を決定する(S36)。求められた配置とグループ形状より、ブロック間の配線長が短くなるグループ内ブロックの配置、各グループ及びブロックの方向性を決定する(S37,S38)。
【0133】
図27ないし図29に基づいて、S35の「グループ形状候補合成処理」を説明する。
【0134】
前記S33、S34で列挙された形状候補の集合は形状関数で表現される。形状関数は幅に対する高さの関係を表現するもので、X軸に形状候補の幅、Y軸に形状候補の高さをとると、例えば、図27(a)に示すようなグラフで表すことができる。なお、同図に示すグラフにおいて、黒丸はその点を含むことを示し、白丸はその点を含まないことを示している。このような列挙された形状候補の集合に対する形状関数の場合では、前記図24で列挙された形状候補31、32、34、36のように、黒丸の点における幅と高さとなる形状が必ず存在する。
【0135】
ある形状候補に対して類似する形状候補は、上記グラフ上で隣接する黒丸に該当する。S41では、グラフ上で、幅と高さの差が一定値以内の範囲に存在する黒丸を抽出することにより、合成対象の類似形状候補を生成する。抽出された類似形状候補の集合をFとする。
【0136】
そして、類似形状候補集合Fの要素fをすべて合成したときの合成形状の面積Sf を求める(S42)。類似形状候補集合Fの要素fの中で面積が最小である形状候補の面積をSmin とすると、上記合成形状の面積Sf と面積Smin との差δSを求める(S43)。
【0137】
S44では、上記δSと、合成後に増加する形状候補の面積増加量の許容値(許容量)Smax とを比較する。S44でδS>Smax のとき、即ちδSが許容値Smax を超える場合には、f1 を類似形状候補集合Fのうちで幅が最小の形状候補、f2 を類似形状候補集合Fのうちで高さが最小の形状候補とし、f1 ,f2 の面積を各々Sf1,Sf2として、面積Sf1と面積Sf2とを比較する(S45)。
【0138】
S45でSf1≧Sf2のとき、即ち幅最小の形状候補の面積Sf1が高さ最小の形状候補の面積Sf2以上の場合には、類似形状候補集合Fから要素f1 を取り除く(S46)。一方、S45でSf1<Sf2のとき、即ち幅最小の形状候補の面積Sf1が高さ最小の形状候補の面積Sf2よりも小さい場合には、類似形状候補集合Fから要素f2 を取り除く(S47)。従って、S46あるいはS47で要素f1 とf2 のうち面積の大きな方の形状が類似形状候補集合Fから取り除かれることになる。
【0139】
そして、S42へ戻って、処理を繰り返し、S44でδS≦Smax 、即ちδSが許容値Smax 以下になると、類似形状候補集合Fを合成形状候補集合として出力する(S48)。このようにして、S41で生成された類似形状候補の中から面積増加量を評価基準として選択された類似形状候補を合成形状候補とする。
【0140】
その後、S49で複数の類似形状候補からなる合成形状候補集合内におけるすべての要素を合成する。このとき、合成形状の幅を複数の類似形状候補における幅の最大値とし、合成形状の高さを複数の類似形状候補における高さの最大値とする。これにより、複数の類似形状候補を包含する面積最小の合成形状を実現することができる。なお、互いに類似する形状候補がない場合には、列挙された形状候補は合成せずにそのままの状態とする。
【0141】
例えば、図26のS34で形状候補31、32、34、35、36が列挙された場合には、面積増加量の許容値Smax が「30」であるとき、形状候補31と32が類似形状候補となり、これらが合成されると合成形状41となる(図29(a)参照)。合成形状41は、その幅が形状候補31の幅と同じ「28」であり、高さが形状候補32の高さと同じ「9」である。また、同様にして、形状候補34と35が類似形状候補となり、これらが合成されると合成形状42となる(図29(b)参照)。合成形状42は、その幅が形状候補34の幅と同じ「20」であり、高さが形状候補35の高さと同じ「13」である。また、形状候補36は合成されずにそのままの状態となる。
【0142】
図30及び図31に基づいて前記S37の「グループ内配置決定処理」について説明する。
【0143】
上位階層フロアプランで決定されたグループ形状は、グループ形状候補合成処理により合成された類似形状候補に基づいているので、合成された類似形状候補のいずれかと同一の形状となる配置の集合を、形状制約を満たす配置集合Pとする。S71では、合成形状の元となった類似形状候補それぞれについて、同一形状となる配置集合Pを生成する。例えば、図31に示すように、上位階層フロアプランで決定されたグループ形状が合成形状41である場合には、合成形状41は形状候補31と32が合成された形状であるため、形状候補31と32についてそれぞれ同一形状となる配置を求め、これらを1つの配置集合とする。なお、形状候補31,32の右側に示された図は、それぞれ配置集合を生成するときの基準配置である。
【0144】
ここで、ある1つのグループ形状に対する同一形状の配置集合を生成する手段は、実施の形態1と同じである。つまり、配置がスライス構造の場合は、各分割線に対して2通りの配置があるので、分割線数をxとすれば2x 通りの配置が存在し、配置が非スライス構造の場合は、基準になる配置、上下反転、左右反転、180度回転の4通りの配置が存在する。
【0145】
S71で生成された配置集合Pから1つの配置(要素)pを取り出す(S72)。配置pにしたがって、グループ内のブロックの配置を求める(S73)。グループ内の各ブロックの端子位置はすべて各ブロックの中心にあると見なして、全体の配線長を算出する(S74)。次に、前に取り出された配置p以外の要素が配置集合P内にあるかどうかを判断し(S75)、S75で要素があると判断された場合は上記S72へ戻り、前に取り出された配置pを除く配置集合Pに対して同様の処理を行う。この処理を配線集合Pのすべての要素に対して行い、S75で配置集合P内に要素がないと判断されると、すべての要素の中で配線長が最短の配置を選ぶ(S76)。
【0146】
なお、互いに類似する形状候補がなく、グループ形状候補合成処理を行う必要がない形状候補(例えば、図29(c)の形状候補36)は、実施の形態1と同様に上位階層フロアプラン処理で決定されたグループ形状と同一形状となる配置の集合を、形状制約を満たす配置集合とする。
【0147】
以上のように、本実施の形態にかかるフロアプラン装置は、上記グループ形状候補列挙部9にて列挙された形状候補に対して、類似する複数の形状候補を単一の形状候補に合成するグループ形状候補合成部22を備える構成である。
【0148】
これによれば、上記上位階層フロアプラン部10において、列挙された形状候補からグループの形状を選択するときに、グループ形状候補合成部22にて類似する複数の形状候補を1つに合成しているので、上記上位階層フロアプラン部10において参照する形状候補の数が減少するため高速に上位フロアプラン結果を求めることが可能となる。
【0149】
また、上記グループ形状候補合成部22は、複数の形状候補の各面積に対する該複数の形状候補を1つに合成したときの合成形状の面積の増加量が許容値以下となる形状候補の集合を類似する形状候補として選択するので、形状候補の合成による面積の増加を制約することができ、より面積の小さい上位フロアプラン結果が求められる。
【0150】
さらに、グループ形状候補合成部22にて合成される元となった形状候補に基づいて、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部23を備えている。
【0151】
これによれば、例えば図31に示すように、グループ形状候補合成部22を用いると、上位階層フロアプラン部10では合成形状41がグループ形状として選択され、グループ内配置部23では形状候補31と32の両者について配線長を評価する。従って、例えば図32に示すように、ブロックB43と接続すべきグループ51、グループ52、及びブロックB44と接続すべきグループ53との配置を行うときには、同図(b)に示すように、形状候補32を用いる場合よりも配線長を短くできる形状候補31と同一形状の配置が求められる。
【0152】
これに対して、実施の形態1に示したようにグループ形状候補合成部22を用いない場合には、上位階層フロアプラン部10では全体の配置面積が小さくなる形状候補32がグループ形状として選択される。つまり、図34に示す通り、全体の高さはグループ51,52で決定されるため、形状候補31,32のどちらを用いた場合も全体の高さは同じであるが、形状候補31の方が形状候補32よりも幅が大きいため、形状候補31を用いた場合の方が形状候補32を用いた場合よりも全体の幅が大きくなってしまう。この結果、実施の形態1の上位階層フロアプラン部10では形状候補32を採用する方が全体の配置面積が小さくなるため良好な結果と判断され、形状候補31は採用されなくなってしまう。これにより、図32(a)に示すように、形状候補31を用いる場合よりも配線長が長くなってしまう形状候補32と同一の配置が求められてしまう。
【0153】
このように、本実施の形態におけるグループ内配置部23によって、グループ内のブロック位置への制約がより緩和され、ブロック間の配線長短縮を図ることができる。これにより、ブロック間の配線長が最短となるグループ内のブロック配置を決定することが可能となる。
【0154】
なお、実施の形態2では、グループ形状候補選択部21を用いた構成としているが、実施の形態1の構成にグループ形状候補合成部22のみを加えた構成とすることもできる。しかしながら、グループ形状候補選択部21を用いた方が、グループ形状候補合成部22において参照される形状候補数が少なくなり、高速にフロアプラン結果が得られるので好ましい。
【0155】
なお、上記実施の形態1及び2におけるグループ内配置決定処理では、配線長が最短になる配置を1つ出力していたが、これに限られることはない。即ち、例えば、実施の形態2の構成では、図33のフローチャートに示すように、前記図30のS71〜S75と同様にして、配置集合Pのすべての要素に対する配線長を算出して(S81〜S85)、S86で配線長が短い順にn個の配置を出力するようにしてもよい。上記nは、配線長を算出したすべての配置数でもよいし、一定個数に定めてもよい。この場合、より多くの配置候補に対して次のブロック方向性決定処理が適用されるため、配線長をより短くできる場合がある。
【0156】
また、上記実施の形態1及び2では、グループ内にさらにグループを作成することはない。しかし、上記手段を組み合わせることにより、容易にグループ内にグループを作成することができる。この再帰的なグループの生成は、グループ化適用後もなおグループ数が数百を越えるような大規模のデータに対して有効である。
【0157】
【発明の効果】
以上のように、本発明の請求項1または11に記載のフロアプラン装置あるいはフロアプラン方法は、複数のブロックからなる回路データに対して、ブロックをグループ化してブロックの配置及び形状の決定を行うフロアプラン装置/方法において、ブロックの大きさを基準として、全体の配置結果に対する影響が小さい、即ち面積の小さいブロックをグループ化の対象として選択するグループ化対象選択部/工程と、上記グループ化対象とされたブロックに対して、複数のグループの配置及び形状の決定を行うと共に各グループ内でブロックの配置および形状の決定を行うためのグループ化を行うグループ化部/工程とを備える構成である。
【0158】
これにより、グループ内の面積を小さくすることができるので、従来の分割手法におけるグループ内の面積増加の問題を解決することが可能となる。また、空き領域が発生することもないので、従来の分割手法における空き領域発生の問題を解決することも可能となる。さらに、フロアプラン結果を高速に求めることができるので、従来の一括手法における処理時間増加の問題を解決することが可能となるという効果を奏する。
【0159】
請求項2に記載のフロアプラン装置は、請求項1に記載の構成に加えて、上記グループ化部は、上記グループ化対象とされたブロックに対して、ブロック面積の重み付けがなされた結合度に基づいてグループ化を行う構成である。
【0160】
これにより、配線または配線の一部がグループ内に閉じ込められることになるので、配線長の削減、配線遅延の削減、及び配線による消費電力の削減を実現できるという効果を奏する。
【0161】
請求項3に記載のフロアプラン装置は、請求項1又は2に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループと、上記グループ化対象以外のブロックとを同一の階層と見なして、グループ及びグループ化対象以外ブロックの配置と形状を決定する上位階層フロアプラン部をさらに備える構成である。
【0162】
これにより、上位階層での面積や配線長を低減することができ、従来の一括手法における面積ばらつきの問題を解決することが可能となるという効果を奏する。
【0163】
請求項4に記載のフロアプラン装置は、請求項3に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を列挙するグループ形状候補列挙部をさらに備え、上記上位階層フロアプラン部は、候補として列挙されたブロックの配置及び形状に基づいて上位階層の配置を決定する構成である。
【0164】
これにより、上位階層フロアプラン部においてグループ形状候補列挙部による結果を利用して上位階層の配置を決定することにより、グループ形状の制約が緩和でき、上位階層の面積を削減できるという効果を奏する。
【0165】
請求項5に記載のフロアプラン装置は、請求項3に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を求めると共に、該求められた形状候補の中から、グループの形状面積に対して、グループ内でブロック以外が占める領域である空き領域の面積が大きな形状候補を除外するグループ形状候補列挙部をさらに備え、上記上位階層フロアプラン部は、候補として列挙されたブロックの配置及び形状に基づいて上位階層の配置を決定する構成である。
【0166】
これにより、請求項4の構成による効果と同様の効果が得られると共に、さらに、大きな空き領域を有する形状候補を除いた形状候補を用いて上位階層フロアプラン部を適用するため、フロアプランの面積評価における形状情報の参照回数が減少し、処理時間を短縮することができるという効果を奏する。
【0167】
請求項6に記載のフロアプラン装置は、請求項4又は5に記載の構成に加えて、上記グループ形状候補列挙部にて列挙された形状候補に対して、類似する複数の形状候補を単一の形状候補に合成するグループ形状候補合成部をさらに備える構成である。
【0168】
これにより、複数の形状候補を合成した形状を用いて、上位階層フロアプラン部を適用するため、フロアプランの面積評価における形状情報の参照回数が減少し、処理時間を短縮することができるという効果を奏する。
【0169】
請求項7に記載のフロアプラン装置は、請求項6に記載の構成に加えて、上記グループ形状候補合成部が、複数の形状候補の各面積に対する該複数の形状候補を1つに合成したときの合成形状の面積の増加量が許容値以下となる形状候補の集合を類似する形状候補として選択する構成である。
【0170】
これにより、合成の元となる形状候補の各面積と合成後の合成形状の面積との差が許容値以下となる形状候補の集合が類似する形状候補として選択されるので、形状候補の合成による面積の増加を制約することができ、請求項6の構成に比べて、より面積の小さい上位フロアプラン結果が求められるという効果を奏する。
【0171】
請求項8に記載のフロアプラン装置は、請求項1ないし7の何れかに記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備える構成である。
【0172】
これにより、グループ内配置部によってブロック間の配線長が最短となるグループ内のブロック配置を求めることができるという効果を奏する。
【0173】
請求項9に記載のフロアプラン装置は、請求項6又は7に記載の構成に加えて、上記グループ形状候補合成部にて合成された合成形状の元となる複数の形状候補のそれぞれに基づいて、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備える構成である。
【0174】
これにより、合成しない場合と比較してグループ内のブロック位置への制約がより緩和され、ブロック間の配線長短縮を図ることができるので、ブロック間の配線長が最短となるグループ内のブロック配置を決定することが可能となるという効果を奏する。
【0175】
請求項10に記載のフロアプラン装置は、請求項1ないし9の何れかに記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの方向性を求めるブロック方向性決定部をさらに備える構成である。
【0176】
これにより、ブロック方向性決定部によってブロック間の配線長が最短となるグループ内のブロック配置を求めることができるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の実施の形態1にかかるフロアプラン方法を示すフローチャートである。
【図2】上記フロアプラン方法を実現するフロアプラン装置を示すブロック図である。
【図3】入力ブロック例を示す説明図である。
【図4】図3の入力ブロックに対してグループ化対象選択を行った例を示す説明図である。
【図5】図4で選択されたグループ化対象ブロックに対して、グループ化を行った例を示す説明図である。
【図6】(a)(b)は、図5でグループ化されたグループの各々の形状候補を示す説明図である。
【図7】上位階層のフロアプラン結果を示す説明図である。
【図8】図7のグループに対して、グループ内配置及びブロック方向性の決定を行った例を示す説明図である。
【図9】ブロック間の結合度の定義を示すための説明図である。
【図10】(a)(b)は、スライス構造を示す説明図である。
【図11】グループ内配置を決定する動作を示すフローチャートである。
【図12】非スライス構造における配置集合を示す説明図であり、(b)〜(e)は各々(a)と同一のグループ形状となる配置を示している。
【図13】スライス構造における配置集合を示す説明図であり、(a)〜(c)は各分割線に対して形状の等しい2通りの配置があることを示している。
【図14】スライス構造における配置集合を示す説明図であり、(b)〜(i)は各々(a)と同一の形状となる配置を示している。
【図15】ブロック方向性を決定する動作を示すフローチャートである。
【図16】ブロックの方向性集合を示す説明図であり、(a)〜(d)は同一の形状となるブロックの方向性を示している。
【図17】上記フロアプラン方法を用いた結果のブロック配置を示す説明図である。
【図18】従来の一括方法を用いた結果のブロック配置を示す説明図であり、配線長は短いが面積が大きくなる場合を示している。
【図19】従来の一括方法を用いた結果のブロック配置を示す説明図であり、面積は小さいが配線長が長くなる場合を示している。
【図20】従来の分割手法を用いた結果のブロック配置を示す説明図であり、大きさを無視したグループ化によって空き領域が発生する場合を示している。
【図21】上記従来の一括手法によるフロアプラン方法を示すフローチャートである。
【図22】上記従来の分割手法によるフロアプラン方法を示すフローチャートである。
【図23】実施の形態1において、グループ化を行ったときに同一グループ内に配置されたブロックの例を示す説明図である。
【図24】(a)ないし(f)は、図23に示すグループの形状候補を示す説明図である。
【図25】本発明の実施の形態2にかかるフロアプラン装置を示すブロック図である。
【図26】上記フロアプラン装置の動作を示すフローチャートである。
【図27】(a)は合成前の形状関数を示し、(b)は合成後の形状関数を示すグラフである。
【図28】グループ形状候補を合成する動作を示すフローチャートである。
【図29】(a)(b)は図24で列挙された形状候補の中の類似形状候補と、該類似形状候補を合成した後の合成形状とを示し、(c)は図24で列挙された形状候補の中で類似形状候補がない場合の合成前後の状態を示す説明図である。
【図30】グループ内配置を決定する動作を示すフローチャートである。
【図31】図29(a)の合成形状の配置集合を求める場合の説明図である。
【図32】(a)はグループ形状候補合成部を用いない場合の配線結果を示し、(b)はグループ形状候補合成部を用いた場合の配線結果を示す説明図である。
【図33】グループ内配置を決定する他の動作を示すフローチャートである。
【図34】(a)はグループ形状候補合成部を用いない場合のフロアプラン結果を示し、(b)はグループ形状候補合成部を用いた場合のフロアプラン結果を示す説明図である。
【符号の説明】
7 グループ化対象選択部
8 グループ化部
9 グループ形状候補列挙部
10 上位階層フロアプラン部
11 グループ内配置部
12 ブロック方向性決定部
21 グループ形状候補選択部
22 グループ形状候補合成部
23 グループ内配置部
【発明の属する技術分野】
本発明は、半導体集積回路やプリント基板などの素子の配置・配線を行う電子回路部品の設計において、面積や形状の異なるさまざまなブロックが多数存在する回路データに対して、ブロックの配置・形状決定などのフロアプラン問題を解決するためのフロアプラン方法及びその装置に関するものである。
【0002】
【従来の技術】
一般に、フロアプラン設計とは、半導体集積回路やプリント基板などの電子回路部品のレイアウト設計の概略を決定するものであり、具体的にはブロックの配置や形状を決定することである。即ち、電子回路部品の設計では、面積や形状の異なるさまざまなブロックが多数存在し、ブロック間に多数の接続要求が存在する回路データに対して、ブロックの配置を決定しなければならない。さらに、ブロック内部を構成する回路データが存在するような階層的な回路データの場合において、ブロック内部の配置・配線が決定されていない設計段階では、ブロックの配置と併せて形状も決定しなければならない。
【0003】
このとき、フロアプラン設計では、部品コストを削減するためにブロックの配置・配線の面積をできる限り小さくする必要がある。さらに、回路の遅延時間を短縮し、消費電力を低減するために、ブロック間の配線長を短くする必要がある。
【0004】
従来のフロアプラン方法としては、一度にすべてのブロックを対象として設計を行う一括手法と、予めブロックを複数のグループに分割し、グループ単位にブロック配置と形状の決定を行う分割手法とがある。以下、分割されたブロックの集合をグループと呼ぶことにする。
【0005】
一括手法では、フロアプランを繰り返し改善することにより結果を求めるのが一般的である。
【0006】
図21に示すように、まず初期のフロアプランを生成し(S51)、そのフロアプランを変更し(S52)、変更後のフロアプランを評価する(S53)。S54で、その変更が変更前のフロアプランよりも改善されていれば変更を受入れてフロアプランを更新し(S55)、終了条件が満たされているかの判断を行う(S56)。一方、S54で、変更前のフロアプランよりも改善されていなければ、S55の工程を経ずにS56へ進む。S56で終了条件が満たされていれば処理を終了し、満たされていなければ再びS52に戻り処理を繰り返す。
【0007】
分割手法は、問題規模(ブロック数)の増加に対応して、現実的な時間で問題を解くために入力回路を分割してフロアプランを行うものである。
【0008】
図22に示すように、まずグループの初期化を行い(S61)、S62でグループ内のブロック数が制限値以下でない場合には、グループ内を分割し(S63)、分割グループを配置する(S64)。この処理をグループ内のブロック数が制限値以下になるまで繰り返し、制限値以下になると処理を終了する。
【0009】
上記S63のグループの分割においては、二分割を再帰的に繰り返すことにより分割を決定する方法と、一度に複数のグループに対して分割を行う手法とがある。このような二分割あるいは多分割の手法には、min−cut法や、ratio−cut法などが利用される(P.Pan, W.Shi, and C.L.Liu,“Area Minimization for Hierarchical Floorplans ”, IEEE Int'l Conf. on ICCAD, pp.436-440, 1994)。
【0010】
【発明が解決しようとする課題】
しかしながら、上記一括手法及び分割手法では、高速に高品質な設計結果を求めることができないという問題を有している。
【0011】
即ち、一括手法では、結果の品質面で次のような問題がある。
上述のように、フロアプラン設計では配置結果の面積を小さくし、かつ、配線長を短くする必要がある。しかし、面積と配線長の間に明確な関係が成り立たないために複数の指標を同時に最適化することは難しい。このことは、ブロック数が増大して取り得る配置の組み合わせの数が多くなるほどより困難になる。以下に具体例を挙げて説明する。
【0012】
フロアプラン問題のような組み合わせ最適化問題の解法として有効とされているSA(Simulated Annealing)法を用いた繰り返し改善によって、フロアプランを求める方法が、D.F.Wong, and C.L.Liu,“A New Algorithm for Floorplan Design”, ACM/IEEE, Proc.23rd. D.A.Conf., pp.101-107, 1986 に提案されている。
【0013】
これは、結晶の生成過程をモデル化して応用したもので、改善の進行状態を温度で表し、温度を高温から低温へ冷却することにより解を徐々に最適値へ収束させる方法である。解は徐々に変化させる必要があり、このことは、フロアプラン問題ではブロック配置を部分的に変更することに対応する。温度に応じて決まる一定の確率で解の改悪を認めることにより、繰り返し改善の途中で局所解に陥ることなく解の最適化を図ろうとしている。
【0014】
フロアプラン設計に対してSA法を適用する場合には、あるフロアプランに対する面積及び配線長の評価方法を定め、その2つの評価値の関数をフロアプランの評価値とする。これが、前記図21のS53の変更フロアプラン評価に該当する。
【0015】
関数は、面積評価値と配線長評価値の線形和で定義される。即ち、あるフロアプランFに対する面積の評価値をCarea(F)とし、配線長の評価値をCwire(F)とすれば、フロアプランの評価値C(F)は、
C(F)=Carea(F)×定数×Cwire(F)
となる。
【0016】
しかしながら、この方法では改善回数が進行するにつれて、以下のような問題が生じる。
【0017】
(1)配線長がある程度短い結果が得られた後に面積を改善しようとすると、一旦ブロックを移動する必要があるが、ブロックを移動すると配線長が長くなり、フロアプランの評価値も増加する。しかし、配線長がある程度短くなるときには温度の冷却が進行しているため、一旦ブロックを移動させてフロアプランの評価値を大きく増加させるような改善は起こりにくく、それ以上面積の改善が進まない。この場合、図18に示すように、配線長は短いが全体の面積は大きいという結果しか得られない。
【0018】
(2)面積がある程度小さな結果が得られた後に配線長を改善しようとすると、一旦ブロックを移動する必要があるが、ブロックを移動すると面積が増加し、フロアプランの評価値も増加する。しかし、面積がある程度小さくなるときには温度の冷却が進行しているため、一旦ブロックを移動させてフロアプランの評価値を大きく増加させるような改善は起こりにくく、それ以上配線長の改善が進まない。この場合、図19に示すように、面積は小さいが配線長は長いという結果しか得られない。
【0019】
(3)面積がある程度小さな結果が得られた後に、さらにその面積を改善するためには一旦ブロックを移動する必要がある。しかし、面積がある程度小さくなるときには温度の冷却が進行しているため、一旦大きなブロックを移動させてフロアプランの評価値を大きく増加させるような改善は起こりにくく、それ以上解の改善が進まない。
【0020】
上記(1)(2)の問題は、面積が減ると配線長も減るとは限らないこと、即ち、面積と配線長の間に直接的に明確な関係がないことが原因である。但し、ブロックが存在しない空き領域が大きくなれば、配線長も長くなるという傾向は存在する。また、上記(3)の問題は、ブロックの面積のばらつきが大きいことが原因である。
【0021】
上記の問題点は、改善回数を増やしても解決することができない。なお、SA法以外の他の繰り返し改善手法を利用する場合においても、フロアプランの評価のために面積と配線長の関数を使用するため、上記と同様の問題が生じる。
【0022】
さらに、一括手法では処理時間の面でも次のような問題がある。
(4)一括手法ではすべてのブロックを対象とするため、結果を求めるために必要な処理時間が増大する。つまり、ブロック数に比例した処理時間で結果を求める有効な手法が存在しないため、処理時間はブロック数の増加に伴って急激に増大し、ブロック数が数百となると、実用上許容される処理時間を上回ることになる。
【0023】
次に、分割手法の問題点を説明する。
従来の分割手法では、すべてのブロックが分割の対象とされる。従って、ブロックの大きさに極端なばらつきがある場合、大きなブロックも分割の対象となり、いずれかのグループに属することになる。
【0024】
また、分割の評価は分割間を接続する配線数を少なくし、分割内のブロック面積和(グループ内のブロック面積和)のばらつきを低減することを目的としているため、各グループにおけるブロック面積のばらつきについては全く考慮されていない。従って、図20(a)に示すような各グループにおけるブロック面積のばらつきが大きい場合には、図20(b)に示すように、グループ化を行ってグループG11,G12を生成したときに、グループ内の配置に空き領域101が発生する。
【0025】
さらに、分割の目的は配置問題の対象となるブロック数を限定することであるため、グループ内のブロック数が限定されており、各グループにおけるブロック面積のばらつきは分割を行うことでより顕著となる。
【0026】
また、面積の小さくなるグループ配置が存在する場合でも、グループ配置の候補数が限定されるため、上位階層でのグループの形状候補が少数となり、上位階層の配置面積を低減できないという問題も生じる。
【0027】
本発明は、上記従来の問題点を解決するためになされたもので、その目的は、面積や形状の異なるさまざまなブロックが多数存在する回路データに対し、面積が小さく配線長の短い高品質のフロアプラン結果を、高速に求めることができるフロアプラン方法及びその装置を提供することにある。
【0028】
【課題を解決するための手段】
上記の目的を達成するために、本発明の請求項1または11に記載のフロアプラン装置あるいはフロアプラン方法は、複数のブロックからなる回路データに対して、ブロックをグループ化してブロックの配置及び形状の決定を行うフロアプラン装置/方法において、ブロックの大きさを基準として、全体の配置結果に対する影響が小さいブロック、即ち面積の小さいブロックをグループ化の対象として選択するグループ化対象選択部/工程と、上記グループ化対象とされたブロックに対して、複数のグループの配置及び形状の決定を行うと共に各グループ内でブロックの配置および形状の決定を行うためのグループ化を行うグループ化部/工程とを備えることを特徴としている。
【0029】
上記フロアプラン装置あるいは方法によれば、面積や形状の異なるさまざまなブロックが多数存在する回路データに対して、ブロックの大きさを基準として、全体の配置結果に対する影響が小さい、即ち面積の小さいブロックがグループ化の対象として選択される。従って、部分的にグループ化が行われることになる。
【0030】
このように、全体の中で面積の小さいブロックをグループ化対象としているので、大きなブロックがグループ化されてグループ内の面積が増大することがない。また、グループ化したときに各グループ内の面積のばらつきを低減することができるので、空き領域が発生することもない。さらに、グループ化を行っているので、上位階層のブロック数や接続要求が減少し、フロアプラン結果を高速に求めることができる。
【0031】
請求項2に記載のフロアプラン装置は、請求項1に記載の構成に加えて、上記グループ化部が、上記グループ化対象とされたブロックに対して、ブロック面積の重み付けがなされた結合度に基づいてグループ化を行うことを特徴としている。
【0032】
上記の構成によれば、ブロック間の結合度の高い、即ちブロック相互の接続要求が強い面積の小さなブロックどうしが同一のグループに属するようにグループ化され、グループ単位にブロックが配置される。従って、配線または配線の一部がグループ内に閉じ込められることになるので、配線長の削減、配線遅延の削減、及び配線による消費電力の削減を実現できる。
【0033】
請求項3に記載のフロアプラン装置は、請求項1又は2に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループと、上記グループ化対象以外のブロックとを同一の階層と見なして、グループ及びグループ化対象以外ブロックの配置と形状を決定する上位階層フロアプラン部をさらに備えることを特徴としている。
【0034】
上記の構成によれば、面積の小さなブロックをグループ化して大きなブロックと見なすため、上位階層での面積のばらつきを低減することができる。これにより、上位階層での面積や配線長を低減することができる。
【0035】
請求項4に記載のフロアプラン装置は、請求項3に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を列挙するグループ形状候補列挙部をさらに備え、上記上位階層フロアプラン部は、候補として列挙されたブロックの配置及び形状に基づいて上位階層の配置を決定することを特徴としている。
【0036】
上記の構成によれば、グループ形状候補列挙部によって予め複数のグループ形状の候補を求め、上位階層フロアプラン部においてその結果を利用して上位階層の配置を決定することにより、グループ形状の制約が緩和でき、上位階層の面積を削減できる。
【0037】
請求項5に記載のフロアプラン装置は、請求項3に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を求めると共に、該求められた形状候補の中から、グループの形状面積に対して、グループ内でブロック以外が占める領域である空き領域の面積が大きな形状候補を除外するグループ形状候補列挙部をさらに備え、上記上位階層フロアプラン部は、候補として列挙されたブロックの配置及び形状に基づいて上位階層の配置を決定することを特徴としている。
【0038】
上記の構成によれば、請求項4の構成と同様に、グループ形状候補列挙部によって予め複数のグループの形状候補を求め、上位階層フロアプラン部においてその結果を利用して上位階層の配置を決定することにより、グループ形状の制約が緩和でき、上位階層の面積を削減できる。また、列挙された形状候補から空き領域の大きな形状候補が除外されるため、上記上位階層フロアプラン部において、空き領域の大きなグループ形状を選ぶことがないので、上位階層の面積を削減できる。また、上記上位階層フロアプラン部において参照するグループの形状候補の数が減少するため、高速に上位フロアプラン結果を求めることができる。
【0039】
請求項6に記載のフロアプラン装置は、請求項4又は5に記載の構成に加えて、上記グループ形状候補列挙部にて列挙された形状候補に対して、類似する複数の形状候補を単一の形状候補に合成するグループ形状候補合成部をさらに備えることを特徴としている。
【0040】
上記の構成によれば、上記上位階層フロアプラン部において列挙された形状候補からグループの形状を選択するときに、グループ形状候補合成部にて類似する複数の形状候補を1つの形状候補に合成しているので、上記上位階層フロアプラン部において参照する形状候補の数が減少するため高速に上位フロアプラン結果を求めることが可能となる。
【0041】
請求項7に記載のフロアプラン装置は、請求項6に記載の構成に加えて、上記グループ形状候補合成部が、複数の形状候補の各面積に対する該複数の形状候補を1つに合成したときの合成形状の面積の増加量が許容値以下となる形状候補の集合を類似する形状候補として選択することを特徴としている。
【0042】
上記の構成によれば、合成の元となる形状候補の各面積と合成後の合成形状の面積との差が許容値以下となる形状候補の集合が類似する形状候補として選択されるので、形状候補の合成による面積の増加を制約することができ、請求項6の構成に比べて、より面積の小さい上位フロアプラン結果が求められる。
【0043】
請求項8に記載のフロアプラン装置は、請求項1ないし7の何れかに記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備えることを特徴としている。
【0044】
上記の構成によれば、グループ内配置部によってブロック間の配線長が最短となるグループ内のブロック配置を求めることができる。
【0045】
請求項9に記載のフロアプラン装置は、請求項6又は7に記載の構成に加えて、上記グループ形状候補合成部にて合成された合成形状の元となる複数の形状候補のそれぞれに基づいて、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備えることを特徴としている。
【0046】
上記の構成によれば、合成形状の元となる複数の形状候補について配線長を評価するため、合成しない場合と比較してグループ内のブロック位置への制約がより緩和され、ブロック間の配線長短縮を図ることができる。これにより、ブロック間の配線長が最短となるグループ内のブロック配置を決定することが可能となる。
【0047】
請求項10に記載のフロアプラン装置は、請求項1ないし9の何れかに記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの方向性を求めるブロック方向性決定部をさらに備えることを特徴としている。
【0048】
上記の構成によれば、ブロック方向性決定部によってブロック間の配線長が最短となるグループ内のブロック配置を求めることができる。
【0049】
また、グループ化対象選択部及びグループ化部をコンピュータプログラムとして実現することもできる。さらに、上位階層フロアプラン部、グループ形状候補列挙部、グループ形状候補合成部、グループ内配置部、及びブロック方向性決定部をコンピュータプログラムとして実現してもよい。
【0050】
【発明の実施の形態】
〔実施の形態1〕
本発明の実施の形態1について図1ないし図17、図23、及び図24に基づいて説明すれば、以下の通りである。
【0051】
図2に示すように、本実施の形態にかかるフロアプラン装置は、入力部1、データベース2、フロアプラン処理部3、データベース4、出力部5、及び制御部6から構成される。
【0052】
入力部1は、複数のブロックからなる回路データを入力する。即ち、各ブロックの幅と高さとの組(複数の形状が可能な場合には複数個の組が存在)、ブロック間の接続要求、接続要求に対する遅延重み、接続要求に対する信号遷移率、及び目標となる結果の幅と高さの比を入力する。
【0053】
ここで、遅延重みとは回路遅延時間に対する重要度を表す数値で、数値が大きいほど配線長を短くする必要がある。また、信号遷移率とは、信号変化の発生する頻度を表す、即ちどのくらいの割合で信号が変化するかを示すものである。配線の負荷容量が同じ場合には、信号遷移率が高いほど消費電力が大きくなる。配線の負荷容量は配線長にほぼ比例するため、信号遷移率が高いほど配線長を短くする必要がある。
【0054】
データベース2は、フロアプラン情報を格納する。このフロアプラン情報は、フロアプランに必要なすべての情報であり、ブロックの幅、高さ、端子の位置、及び端子に接続すべき信号名などである。
【0055】
フロアプラン処理部3は、グループ化対象選択部7、グループ化部8、グループ形状候補列挙部9、上位階層フロアプラン部10、グループ内配置部11、及びブロック方向性決定部12を備えている。
【0056】
グループ化対象選択部7は、ブロック総面積に対する各ブロックの面積比、各ブロックの縦横比、あるいは他のブロックとの形状の類似性などを基準として、全体の配置結果に対する影響が小さいブロックをグループ化する対象として選択する。
【0057】
グループ化部8は、グループ化対象選択部7により選択されたグループ化対象ブロックに対して、ブロック相互の接続数、ブロックの大きさや形状、あるいは遅延や消費電力の情報を用いて、グループ化対象ブロックをグループ化する。
【0058】
グループ形状候補列挙部9は、グループ化部8により決定されたグループに対して、各グループ内のブロックの配置と形状の候補を求め、グループの形状候補を列挙する。
【0059】
上位階層フロアプラン部10は、グループ形状候補列挙部9により求められたグループの形状候補を利用して、グループを含む上位階層、即ちグループとグループ化対象外ブロックとが混在するデータに対して、グループやグループ化対象外ブロックの配置と形状を算出する。
【0060】
グループ内配置部11は、上位階層フロアプラン部10にて求められた配置結果より、ブロック間の配線長が短くなるように、各グループ内ブロックの配置を決定する。このとき、類似したグループ形状となるグループ内ブロックの配置が複数存在する場合には、複数個の配置候補からブロック間の配線長が短くなるような配置を1つ選択する。
【0061】
ブロック方向性決定部12は、上位階層フロアプラン部10により求められた配置結果より、ブロック間の配線長が短くなるように、各グループの方向性の決定、及び各グループ内のブロックの方向性の決定を行う。
【0062】
データベース4は、フロアプラン処理部3で処理されるグループ情報を格納する。このグループ情報は、グループに関するすべての情報であり、グループ化対象ブロック、グループの構成、グループの形状候補、及び上位階層フロアプラン後のグループの配置・形状などである。
【0063】
出力部5は、最終的なすべてのブロックの位置、幅、高さ、及び方向性を出力する。
【0064】
制御部6は、フロアプラン処理部3の実行や、フロアプラン処理部3とデータベース2,4間のデータ入出力を制御するようになっている。
【0065】
図1に基づいて、上記の構成によるフロアプラン装置の動作を説明する。
まず、ブロックの大きさや形状の情報を利用して、相対的に面積の小さなブロックをグループ化の対象として選択する(S1)。そして、ブロックの大きさや形状の情報を利用して、ブロック相互の接続要求が強い面積の小さなブロックが同一のグループに属するようにグループ化を行う(S2)。このとき、1つのグループの規模や、属するブロックの数などを制約することができる。
【0066】
次に、グループ内ブロックの配置及び形状の候補を求める(S3)。このとき、グループ形状が異なる複数の配置結果を候補とする。グループを含む上位階層において、上記のグループの形状候補を用いてグループやブロックの配置と形状を決定する(S4)。求められた配置とグループ形状より、ブロック間の配線長が短くなるように、グループ内ブロックの配置、各グループ及びブロックの方向性を決定する(S5,S6)。
【0067】
上記S1ないしS6の処理を図3に示す入力ブロック例を用いて説明する。ここで、図3に示す各ブロックには番号付けがされているものとし、i番目のブロックをBi 、このブロックBi の面積をAi とする。また、すべてのブロックの面積の総和(以下、面積和と称する)をAall とする。
【0068】
図3の例では、10個のブロックB1 〜B10が入力ブロックとなる。このとき、A1 =A2 =1、A3 =A4 =A5 =A6 =2、A7 =4、A8 =12、A9 =7、A10=15とする。従って、Aall =48である。
【0069】
(1)グループ化対象選択処理
例えば、ブロック面積に基づいて、グループ化の対象となるブロックを決定する。この方法には以下の2つの方法がある。但し、以下の方法1及び2において、ブロック面積がその形状により若干変動する場合には、その最大値を採用することとする。
【0070】
(方法1)面積和を求め、面積和に対するブロック面積の比率が、予め定めた制約値以下であるブロックを、グループ化対象ブロックとする。この方法では、グループ化対象ブロックの面積の上限を定めることができ、全ブロック数が比較的少ない場合に有効なグループ化基準となる。
【0071】
図3の例において、制約値を0.05とすると、
Aall ×0.05=48×0.05=2.4
となるので、面積が2.4以下のブロックB1 ないしB6 がグループ化対象ブロックとして選択される(図4参照)。
【0072】
(方法2)ブロック面積の標準偏差を求め、さらに各ブロックの面積偏差(ブロック面積と平均面積の差)を算出する。標準偏差に対する面積偏差の比が予め定めた制約値以下であるブロックを、グループ化対象とする。この方法では、ブロック面積のばらつきを考慮してグループ化対象を定めることができ、相対的に面積が小さいと判断されるブロックをグループ化対象とする。従って、全ブロック数が比較的多い場合に有効なグループ化基準となる。
【0073】
図3の例において、平均面積は4.8であるので、各ブロックの面積偏差は表1に示す通りになる。また、標準偏差は約4.71であるので、標準偏差に対する面積偏差の比は表1に示す通りになる。
【0074】
【表1】
【0075】
ここで、制約値を−0.7とすれば、ブロックB1 ,B2 がグループ化対象として選択される。
【0076】
(2)グループ化処理
グループ化対象ブロックに対して、グループ化を適用する。グループ化の際に、まず、1つのグループに属することができるブロック数の最大値を予め与える。そして、最大値制約の範囲において結合度の高いブロックを同一のグループに入れる。
【0077】
結合度の決め方の例を図9に基づいて説明する。ブロックBi ,Bj に接続するネットの集合をNij、ネットnに接続するブロックの総数をTn とする。さらに、ネットnの信号遷移率をSn とし、ネットnの遅延重みをDn とする。このときのブロックBi ,Bj 間の結合度Cijを以下の式で定義する。
【0078】
【数1】
【0079】
上記式を用いて図9に示すブロックB11,B12,B13間の結合度を計算すると、次のようになる。但し、各ブロックの面積をそれぞれA11=2、A12=3、及びA13=10とし、Aall =30、Sn =0.5、Dn =1とする。
【0080】
【数2】
【0081】
このように、ブロックB11,B12間の結合度が最も高くなり、上記式では小規模で面積のばらつきが小さなブロック間の結合度が大きく計算されることがわかる。
【0082】
これに対して、ブロックの大きさを考慮しない従来手法の結合度の定義式は、次の通りである。
【0083】
【数3】
【0084】
これを用いて図9の例に対して、結合度を計算すると、次のようになる。
【0085】
【数4】
【0086】
このように、ブロックB11,B12間、ブロックB12,B13間、及びブロックB13,B11間の結合度はすべて等しくなり、ブロック面積のばらつきは考慮されていないことがわかる。
【0087】
例えば、前記(1)の「グループ化対象選択処理」の方法1で得られたグループ化対象の結果である図4に示すブロックB1 〜B6 に対して、1つのグループに属することのできるブロック数の最大値を3とし、上記のように定義された結合度を計算すると、図5に示すようにブロックB1 ,B2 ,B3 が1つのグループG1 となり、ブロックB4 ,B5 ,B6 が1つのグループG2 となる。
【0088】
(3)グループ形状候補列挙処理
グループ形状の列挙には以下に示す3つの方法がある。
【0089】
(方法1)形状制約の条件を与えて、分岐限定法を応用して面積最小となる配置を求め、複数の形状制約に対して処理を繰り返すことにより、複数のグループの形状候補を列挙する。この方法は、グループ内のブロック数が6程度までの場合に、高速に面積の小さな形状候補を列挙することができる。
【0090】
(方法2)配置のモデルをスライス構造に制限し、考えられるすべてのグループの形状候補を列挙する。ここでスライス構造とは、図10に示すように、水平または垂直の分割線によってブロックの配置領域を再帰的に分割することができる配置構造のことをいう。この方法は、グループ内のブロック数の最大値が10程度までの場合に、高速に面積の小さな形状候補を列挙することができる。
【0091】
(方法3)一括手法によるフロアプラン方法を利用して実現する。即ち、形状制約の条件を与えて配置を求め、複数の形状制約に対して処理を繰り返すことにより、複数のグループの形状候補を列挙する。この方法は、グループ内のブロック数の最大値が10を越える場合に適している。
【0092】
上記方法1ないし3に示すように、配置のモデルをスライス構造に制約する方法と、スライス構造に制約しない非スライス構造とする方法とがある。なお、方法1は配置モデルを非スライス構造とする方法に属している。
【0093】
配置モデルをスライス構造とする方法は、非スライス構造とする場合に比較して、グループ内でブロック以外が占める領域である空き領域が発生する場合がある。しかしながら、後述する(5)の「グループ内配置決定処理」に示すように、スライス構造の場合は、非スライス構造の場合よりもグループ形状が同一形状となる多くのグループ内ブロックの配置候補が存在するため、非スライス構造の場合に比較して配線長を短くできる。一方、配置モデルを非スライス構造とする方法は、スライス構造とする場合に比較して配線長は長くなるが、空き領域を小さくすることができる。従って、他のグループとの接続が多い場合にはスライス構造が適しており、他のグループとの接続が少ない場合には非スライス構造が適しており、回路データに応じて方法を使い分ければよい。
【0094】
図6は、図5に示すグループG1 ,G2 に対して、グループの形状候補を列挙した例を示している。グループ内のブロック数が4以下の場合には、配置は必ずスライス構造となる。従って、方法2により配置を列挙すると、グループG1 の場合は4通りの形状候補(図6(a)参照)、グループG2 の場合は3通りの形状候補(図6(b)参照)が列挙される。
【0095】
(4)上位階層フロアプラン処理
グループ化によるグループをブロックと見なし、列挙された形状候補を参照して、一括手法によるフロアプラン方法を利用して実現する。
【0096】
図5に示すグループG1 ,G2 と、図4に示すグループ化対象外のブロックB7 〜B10とを同一の階層と見なして、一括手法を適用すると、図7に示すようなグループ及びブロックの配置・形状結果が得られる。
【0097】
(5)グループ内配置決定処理
グループ内配置の決定方法を図11のフローチャートに基づいて説明する。
【0098】
まず、上記(4)の「上位階層フロアプラン処理」で求められたグループ形状と同一の形状となる配置の集合Pを、(3)の「グループ形状候補列挙処理」の結果を用いて生成する(S11)。その配置集合Pから1つの配置(要素)pを取り出す(S12)。配置pにしたがって、グループ内のブロックの配置を求める(S13)。グループ内の各ブロックの端子位置はすべて各ブロックの中心にあると見なして、全体の配線長を算出する(S14)。次に、前に取り出された配置p以外の要素が配置集合P内にあるかどうかを判断し(S15)、S15で要素があると判断された場合は上記S12へ戻り、前に取り出された配置pを除く配置集合Pに対して同様の処理を行う。この処理を配線集合Pのすべての要素に対して行い、S15で配置集合P内に要素がないと判断されると、すべての要素の中で配線長が最短の配置を選ぶ(S16)。
【0099】
例えば、ブロック配置が非スライス構造の場合には、図12(a)に示すグループ形状と同じになる5つのブロックB31,B32,B33,B34,B35の配置は、基準となる配置(図12(b)参照)、基準配置を上下反転してなる配置(図12(c)参照)、基準配置を左右反転してなる配置(図12(d)参照)、及び基準配置を180度回転してなる配置(図12(e)参照)の4通り存在することになる。従って、この場合の配置集合の要素は4つである。
【0100】
また、スライス構造の場合には、図14(a)に示すグループ形状と同じ形状となる4つのブロックB21,B22,B23,B24の配置を考えることにする。図13に示すように、各分割線に対して形状の等しい配置は2通りずつ存在する。つまり、グループ形状が同じとなるブロック配置は、xを分割線の数とすると2x 通り存在する。従って、図14(a)に示すグループ形状と同じ形状となる配置は、分割線数が3であるので、23 =8通りとなり(図14(b)〜図14(i)参照)、この場合の配置集合の要素は8つである。
【0101】
(6)ブロック方向性決定処理
すべてのグループに対してグループ内配置を決定した後に、すべてのブロックの方向性を決定する。このブロック方向性の決定方法を図15のフローチャートに示す。
【0102】
まず、同一のブロック形状からなり、互いに方向性が異なる方向性集合Qを生成する(S21)。その方向性集合Qから1つの方向性(要素)qを取り出す(S22)。方向性qにしたがって、ブロックの端子位置を求める(S23)。方向性qに対する全体の配線長を算出する(S24)。次に、前に取り出された方向性q以外の要素が方向性集合Q内にあるかどうかを判断し(S25)、S25で要素があると判断された場合は上記S22へ戻り、前に取り出された方向性qを除く方向性集合Qに対して同様の処理を行う。この処理を方向性集合Qのすべての要素に対して行い、S25で方向性集合Q内に要素がないと判断されると、すべての要素の中で配線長が最短の方向性を選ぶ(S26)。
【0103】
ここで、図16に示すように、ブロック形状が等しい方向性は4通り存在する。即ち、基準点CTに対する端子TMの位置が図16(a)の場合を基準となる方向性とすると、基準方向性を左右反転してなる配置(図16(b)参照)、基準方向性を上下反転してなる配置(図16(c)参照)、基準方向性を180度回転してなる配置(図16(d)参照)である。
【0104】
前記図7の結果に対して、(5)の「グループ内配置決定処理」を適用するとグループG1 ,G2 内のブロック配置が決定され、(6)の「ブロック方向性決定処理」を適用するとすべてのブロックの方向性が決定され、最終的なフロアプラン結果が図8のように得られる。
【0105】
以上のように、本実施の形態にかかるフロアプラン装置は、ブロックの大きさ及び形状を基準として、全体の配置結果に対する影響が小さいブロックをグループ化の対象として選択するグループ化対象選択部7と、上記グループ化対象とされたブロックに対して、グループ化を行うグループ化部8とを備えている。
【0106】
これによれば、グループ化対象選択部7が全体の中の面積の小さなブロックをグループ化対象とするので、面積の大きなブロックがグループ化されることがない。また、グループ内のブロック面積のばらつきを低減できるので、グループ内における空き領域を減少させることができ、面積の小さなフロアプラン結果を求めることができる。また、グループ化部8におけるグループ化によって、上位階層で扱うブロック数や接続要求数(ネット数)が減少し、その結果、フロアプラン結果を高速に求めることができる。
【0107】
また、グループ化部8のグループ化において、ブロックの大きさを考慮した結合度を用いることで、接続要求の強い小規模なブロックを優先してグループ化することができ、より小規模な領域に多くの配線を局所化できる。従って、遅延や消費電力が増大しやすい配線をグループ内の領域に閉じ込めることができるので、回路品質が向上し、全体の配線長の削減、配線遅延の削減、及び配線による消費電力の削減が実現できる。
【0108】
さらに、本フロアプラン装置は、面積の小さなブロックが集められてグループ化されたグループと、グループ化対象外の大きなブロックとを同一の階層と見なして、グループ及びグループ化対象以外ブロックの配置と形状を決定する上位階層フロアプラン部10を備えているので、上位階層で扱うブロックの大きさのばらつきが減少し、上位階層での面積や配線長を低減できる。
【0109】
また、本フロアプラン装置は、グループ化部8にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を求めるグループ形状候補列挙部9を備えている。そして、上位階層フロアプラン部10は、列挙されたブロック配置及び形状候補を利用して上位階層の配置を決定している。これにより、グループ形状の制約が緩和でき、上位階層の面積を削減できる。つまり、複数の異なる形状をとるグループを用いて、上位階層を配置することにより、より面積の小さなフロアプラン結果を求めることができる。
【0110】
さらに、グループ内配置部11及びブロック方向性決定部12により、すべてのブロックの位置、形状、及び方向性が最終的に決定される。このとき、上位階層フロアプラン部10で求められた上位階層での配置結果を利用して、グループ内のブロック配置や方向性を決定するため、グループ形状候補列挙部9において配置や方向性を予め固定する場合より、他のグループのブロックとの配線長を短くすることができる。また、上位階層のフロアプラン決定後にブロックの方向性も決定するため、グループ内配置時にブロックの方向性を決めるよりも配線長を短くできる。
【0111】
このようにして、従来の一括手法の説明で用いた図18・図19と同様のブロックからなる回路データに対して、本実施の形態のフロアプラン方法を適用すると、図17に示すようにブロックA,B,C、及びブロックD,Eがそれぞれグループ化されて、全体の面積が小さく、配線長が短く、消費電力が少なく、ブロック間遅延が小さい高品質のフロアプラン結果を、高速に得ることが可能となる。この結果、回路設計のコスト削減、低消費電力化、設計期間の短縮化を図ることが可能となる。
【0112】
なお、上記実施の形態1では、グループ形状候補列挙部9にてグループの形状候補を列挙したが、このとき、さらに列挙された形状候補に対して空き領域の面積が大きい形状候補を除外するグループ形状候補選択部を有する構成としてもよい。ここで、グループ内の各ブロック面積は予め分かっており、形状候補の面積とグループ内ブロック面積の総和の差が空き領域の面積に該当し、形状候補の面積がグループ内ブロック面積の総和に等しいときには空き領域のない形状となる。
【0113】
例えば、前記グループ化部8にて同一のグループに入れられたブロックを、図23に示すように、ブロックB41,B42,B43,B44とする。また、図中に示すX方向をブロックの幅、Y方向をブロックの高さとすると、それぞれのブロックの(幅,高さ)は、ブロックB41が(12,8)、ブロックB42が(8,7)、ブロックB43が(8,5)、ブロックB44が(8,4)である。従って、このときのグループ内ブロック面積の総和は「224(=96+56+40+32)」となる。
【0114】
上記ブロックB41,B42,B43,B44に対して、前記図1のS3の「グループ形状候補列挙処理」を行って、考えられるすべてのグループの形状候補を列挙すると、12通りとなる。図24には6つの候補が示されており、残りの6つの候補は図示された候補をそれぞれ90度回転させたものとなる。
【0115】
形状候補31は空き領域が形成されないようにブロックB41〜B44を配置したものであり、幅,高さが(28,8)、面積が「224」である(図24(a)参照)。形状候補32,33はその幅が3つのブロックB41〜B43によって決定されるように配置したものであり、幅,高さがそれぞれ(27,9)、(25,11)、面積がそれぞれ「243」、「275」である(図24(b)(c)参照)。形状候補34,35はその幅が2つのブロックB41,B42によって決定されるように配置したものであり、幅,高さがそれぞれ(20,12)、(19,13)、面積がそれぞれ「240」、「247」である(図24(d)(e)参照)。形状候補36はその幅が2つのブロックB41,B44によって決定されるように配置したものであり、幅,高さが(16,15)、面積が「240」である(図24(f)参照)。
【0116】
ここで、形状候補として列挙される形状は、幅(または高さ)が同じであるときに、高さ(または幅)の小さな配置が存在しない形状である。例えば図24(b)において、幅が「27」で高さが「9」より大きなグループ内ブロック配置が存在するが、それは幅が「27」で高さが「9」の配置が存在し上記の条件を満たさないため、形状候補とはならない。
【0117】
(選択方法1)
列挙された形状候補の中から、グループ内ブロック面積の総和に対する形状候補の面積の比率が一定の基準値以下の形状候補を選択する。つまり、この方法では、空き領域の比率を基準としている。
【0118】
例えば、基準値をグループ内ブロック面積の総和の120%とした場合、図23の例の場合にはグループ内ブロック面積の総和は「224」であるので、形状候補の面積の上限値は「268.8」となる。従って、図24に示した形状候補の中では、基準値「268.8」以下の候補として、形状候補31、32、34、35、36と、これらを各々90度回転した形状候補が選択される。
【0119】
(選択方法2)
列挙された形状候補の中から、形状候補の面積とグループ内ブロック面積の総和との差、即ち空き領域が一定の基準値以下の形状候補を選択する。つまり、この方法では空き領域の絶対値を基準としている。
【0120】
例えば、基準値を「20」とした場合、図23の例の場合にはグループ内ブロック面積の総和は「224」であるので、形状候補の面積の上限値は「244」となる。従って、図24に示した形状候補の中では、基準値「244」以下の候補として、形状候補31、32、34、36と、これらを各々90度回転した形状候補が選択される。
【0121】
上記選択方法1では空き領域の上限を比率で指定するため、グループ内のブロック数が多い場合、あるいはグループ内ブロック面積の総和が大きく、かつブロック面積のばらつきが大きい場合などの空き領域の絶対値が予測し難いグループに対して有効である。
【0122】
また、上記選択方法2では空き領域の上限を絶対値で指定するため、グループ内ブロック面積の総和にかかわらずグループ内の空き領域を一定値以下に制限できる。特に、グループ内ブロック面積の総和が小さいときは、空き領域の比率が大きくとも空き領域が絶対的に小さい形状候補を選択できるため有効である。
【0123】
従って、上記選択方法1,2は、形状候補選択を行うグループ内のブロックの構成に応じて適切な方を選べばよい。
【0124】
以上のように、上記フロアプラン装置は、上記グループ化部8にてグループ化された複数のブロックからなるグループに対して、グループ内のブロックの配置及び形状の候補を求めるグループ形状候補列挙部9と、グループ形状候補列挙部9にて求められた形状候補の中から、グループの形状面積に対して、グループ内のブロック以外が占める領域である空き領域の面積が大きな形状候補を除外するグループ形状候補選択部とを備え、上位階層フロアプラン部10は、グループ形状候補選択部にて選択されたブロックの配置及び形状候補に基づいて上位階層の配置を決定する構成とすることができる。なお、請求項5のグループ形状候補列挙部は、グループ形状候補列挙部9とグループ形状候補選択部とからなる。
【0125】
これによれば、グループ形状候補列挙部9によって予め複数のグループ形状の候補を求め、上位階層フロアプラン部10においてその結果を利用して上位階層の配置を決定することにより、グループ形状の制約が緩和でき、上位階層の面積を削減できる。また、グループ形状候補列挙部9にて列挙された形状候補から空き領域の大きな形状候補が除外されるため、上記上位階層フロアプラン部10において、空き領域の大きなグループ形状を選ぶことがなく、上位階層の面積を削減できる。また、上記上位階層フロアプラン部10において参照するグループの形状候補の数が減少するため、高速に上位フロアプラン結果を求めることができる。
【0126】
〔実施の形態2〕
本発明の実施の形態2について図25ないし図34に基づいて説明すれば、以下の通りである。なお、説明の便宜上、前記の実施の形態の図面に示した部材と同一の部材には同一の符号を付記し、その説明を省略する。
【0127】
図25に示すように、本実施の形態にかかるフロアプラン装置は、実施の形態1の構成に加えて、グループ形状候補選択部21と、グループ形状候補合成部22とを備えると共に、実施の形態1の構成のグループ内配置部11の代わりにグループ内配置部23を備えており、その他の構成については実施の形態1と同じである。
【0128】
グループ形状候補選択部21は、前記実施の形態1に示した通り、グループ形状候補列挙部9にて求められた形状候補の中から、グループの形状面積に対して、グループ内のブロック以外が占める領域である空き領域の面積が大きな形状候補を除外するものである。
【0129】
グループ形状候補合成部22は、グループ形状候補選択部21にて列挙された形状候補の中から、互いに類似する形状候補を選び出し、該類似した形状候補を単一の形状候補に合成するものである。この単一の形状候補を合成形状と呼ぶことにする。
【0130】
グループ内配置部23は、上記グループ形状候補合成部22にて合成された合成形状の元となる複数の形状候補それぞれを考慮に入れて、ブロック間の配線長が短くなるように、各グループ内ブロックの配置を決定するものである。
【0131】
図26に基づいて上記の構成によるはフロアプラン装置の動作を説明する。
まず、前記図1のS1〜S3の工程と同様の処理を行う。即ち、ブロックの大きさや形状の情報を利用して、相対的に面積の小さなブロックをグループ化の対象として選択する(S31)。そして、ブロックの大きさや形状の情報を利用して、ブロック相互の接続要求が強い面積の小さなブロックが同一のグループに属するようにグループ化を行う(S32)。次に、グループ内のブロック配置、及び、グループの形状の候補を列挙する(S33)。そして、列挙された形状候補に対して、空き領域の面積を基準とする選択処理を行う(S34)。
【0132】
次に、選択された形状候補の中から、互いに類似した複数の形状候補をさらに選び出し、それらの類似形状候補を合成することによって、類似形状候補を包含する面積最小の形状を求める(S35)。その後、合成結果を含む上位階層において、上記の形状候補を用いてグループやブロックの配置と形状を決定する(S36)。求められた配置とグループ形状より、ブロック間の配線長が短くなるグループ内ブロックの配置、各グループ及びブロックの方向性を決定する(S37,S38)。
【0133】
図27ないし図29に基づいて、S35の「グループ形状候補合成処理」を説明する。
【0134】
前記S33、S34で列挙された形状候補の集合は形状関数で表現される。形状関数は幅に対する高さの関係を表現するもので、X軸に形状候補の幅、Y軸に形状候補の高さをとると、例えば、図27(a)に示すようなグラフで表すことができる。なお、同図に示すグラフにおいて、黒丸はその点を含むことを示し、白丸はその点を含まないことを示している。このような列挙された形状候補の集合に対する形状関数の場合では、前記図24で列挙された形状候補31、32、34、36のように、黒丸の点における幅と高さとなる形状が必ず存在する。
【0135】
ある形状候補に対して類似する形状候補は、上記グラフ上で隣接する黒丸に該当する。S41では、グラフ上で、幅と高さの差が一定値以内の範囲に存在する黒丸を抽出することにより、合成対象の類似形状候補を生成する。抽出された類似形状候補の集合をFとする。
【0136】
そして、類似形状候補集合Fの要素fをすべて合成したときの合成形状の面積Sf を求める(S42)。類似形状候補集合Fの要素fの中で面積が最小である形状候補の面積をSmin とすると、上記合成形状の面積Sf と面積Smin との差δSを求める(S43)。
【0137】
S44では、上記δSと、合成後に増加する形状候補の面積増加量の許容値(許容量)Smax とを比較する。S44でδS>Smax のとき、即ちδSが許容値Smax を超える場合には、f1 を類似形状候補集合Fのうちで幅が最小の形状候補、f2 を類似形状候補集合Fのうちで高さが最小の形状候補とし、f1 ,f2 の面積を各々Sf1,Sf2として、面積Sf1と面積Sf2とを比較する(S45)。
【0138】
S45でSf1≧Sf2のとき、即ち幅最小の形状候補の面積Sf1が高さ最小の形状候補の面積Sf2以上の場合には、類似形状候補集合Fから要素f1 を取り除く(S46)。一方、S45でSf1<Sf2のとき、即ち幅最小の形状候補の面積Sf1が高さ最小の形状候補の面積Sf2よりも小さい場合には、類似形状候補集合Fから要素f2 を取り除く(S47)。従って、S46あるいはS47で要素f1 とf2 のうち面積の大きな方の形状が類似形状候補集合Fから取り除かれることになる。
【0139】
そして、S42へ戻って、処理を繰り返し、S44でδS≦Smax 、即ちδSが許容値Smax 以下になると、類似形状候補集合Fを合成形状候補集合として出力する(S48)。このようにして、S41で生成された類似形状候補の中から面積増加量を評価基準として選択された類似形状候補を合成形状候補とする。
【0140】
その後、S49で複数の類似形状候補からなる合成形状候補集合内におけるすべての要素を合成する。このとき、合成形状の幅を複数の類似形状候補における幅の最大値とし、合成形状の高さを複数の類似形状候補における高さの最大値とする。これにより、複数の類似形状候補を包含する面積最小の合成形状を実現することができる。なお、互いに類似する形状候補がない場合には、列挙された形状候補は合成せずにそのままの状態とする。
【0141】
例えば、図26のS34で形状候補31、32、34、35、36が列挙された場合には、面積増加量の許容値Smax が「30」であるとき、形状候補31と32が類似形状候補となり、これらが合成されると合成形状41となる(図29(a)参照)。合成形状41は、その幅が形状候補31の幅と同じ「28」であり、高さが形状候補32の高さと同じ「9」である。また、同様にして、形状候補34と35が類似形状候補となり、これらが合成されると合成形状42となる(図29(b)参照)。合成形状42は、その幅が形状候補34の幅と同じ「20」であり、高さが形状候補35の高さと同じ「13」である。また、形状候補36は合成されずにそのままの状態となる。
【0142】
図30及び図31に基づいて前記S37の「グループ内配置決定処理」について説明する。
【0143】
上位階層フロアプランで決定されたグループ形状は、グループ形状候補合成処理により合成された類似形状候補に基づいているので、合成された類似形状候補のいずれかと同一の形状となる配置の集合を、形状制約を満たす配置集合Pとする。S71では、合成形状の元となった類似形状候補それぞれについて、同一形状となる配置集合Pを生成する。例えば、図31に示すように、上位階層フロアプランで決定されたグループ形状が合成形状41である場合には、合成形状41は形状候補31と32が合成された形状であるため、形状候補31と32についてそれぞれ同一形状となる配置を求め、これらを1つの配置集合とする。なお、形状候補31,32の右側に示された図は、それぞれ配置集合を生成するときの基準配置である。
【0144】
ここで、ある1つのグループ形状に対する同一形状の配置集合を生成する手段は、実施の形態1と同じである。つまり、配置がスライス構造の場合は、各分割線に対して2通りの配置があるので、分割線数をxとすれば2x 通りの配置が存在し、配置が非スライス構造の場合は、基準になる配置、上下反転、左右反転、180度回転の4通りの配置が存在する。
【0145】
S71で生成された配置集合Pから1つの配置(要素)pを取り出す(S72)。配置pにしたがって、グループ内のブロックの配置を求める(S73)。グループ内の各ブロックの端子位置はすべて各ブロックの中心にあると見なして、全体の配線長を算出する(S74)。次に、前に取り出された配置p以外の要素が配置集合P内にあるかどうかを判断し(S75)、S75で要素があると判断された場合は上記S72へ戻り、前に取り出された配置pを除く配置集合Pに対して同様の処理を行う。この処理を配線集合Pのすべての要素に対して行い、S75で配置集合P内に要素がないと判断されると、すべての要素の中で配線長が最短の配置を選ぶ(S76)。
【0146】
なお、互いに類似する形状候補がなく、グループ形状候補合成処理を行う必要がない形状候補(例えば、図29(c)の形状候補36)は、実施の形態1と同様に上位階層フロアプラン処理で決定されたグループ形状と同一形状となる配置の集合を、形状制約を満たす配置集合とする。
【0147】
以上のように、本実施の形態にかかるフロアプラン装置は、上記グループ形状候補列挙部9にて列挙された形状候補に対して、類似する複数の形状候補を単一の形状候補に合成するグループ形状候補合成部22を備える構成である。
【0148】
これによれば、上記上位階層フロアプラン部10において、列挙された形状候補からグループの形状を選択するときに、グループ形状候補合成部22にて類似する複数の形状候補を1つに合成しているので、上記上位階層フロアプラン部10において参照する形状候補の数が減少するため高速に上位フロアプラン結果を求めることが可能となる。
【0149】
また、上記グループ形状候補合成部22は、複数の形状候補の各面積に対する該複数の形状候補を1つに合成したときの合成形状の面積の増加量が許容値以下となる形状候補の集合を類似する形状候補として選択するので、形状候補の合成による面積の増加を制約することができ、より面積の小さい上位フロアプラン結果が求められる。
【0150】
さらに、グループ形状候補合成部22にて合成される元となった形状候補に基づいて、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部23を備えている。
【0151】
これによれば、例えば図31に示すように、グループ形状候補合成部22を用いると、上位階層フロアプラン部10では合成形状41がグループ形状として選択され、グループ内配置部23では形状候補31と32の両者について配線長を評価する。従って、例えば図32に示すように、ブロックB43と接続すべきグループ51、グループ52、及びブロックB44と接続すべきグループ53との配置を行うときには、同図(b)に示すように、形状候補32を用いる場合よりも配線長を短くできる形状候補31と同一形状の配置が求められる。
【0152】
これに対して、実施の形態1に示したようにグループ形状候補合成部22を用いない場合には、上位階層フロアプラン部10では全体の配置面積が小さくなる形状候補32がグループ形状として選択される。つまり、図34に示す通り、全体の高さはグループ51,52で決定されるため、形状候補31,32のどちらを用いた場合も全体の高さは同じであるが、形状候補31の方が形状候補32よりも幅が大きいため、形状候補31を用いた場合の方が形状候補32を用いた場合よりも全体の幅が大きくなってしまう。この結果、実施の形態1の上位階層フロアプラン部10では形状候補32を採用する方が全体の配置面積が小さくなるため良好な結果と判断され、形状候補31は採用されなくなってしまう。これにより、図32(a)に示すように、形状候補31を用いる場合よりも配線長が長くなってしまう形状候補32と同一の配置が求められてしまう。
【0153】
このように、本実施の形態におけるグループ内配置部23によって、グループ内のブロック位置への制約がより緩和され、ブロック間の配線長短縮を図ることができる。これにより、ブロック間の配線長が最短となるグループ内のブロック配置を決定することが可能となる。
【0154】
なお、実施の形態2では、グループ形状候補選択部21を用いた構成としているが、実施の形態1の構成にグループ形状候補合成部22のみを加えた構成とすることもできる。しかしながら、グループ形状候補選択部21を用いた方が、グループ形状候補合成部22において参照される形状候補数が少なくなり、高速にフロアプラン結果が得られるので好ましい。
【0155】
なお、上記実施の形態1及び2におけるグループ内配置決定処理では、配線長が最短になる配置を1つ出力していたが、これに限られることはない。即ち、例えば、実施の形態2の構成では、図33のフローチャートに示すように、前記図30のS71〜S75と同様にして、配置集合Pのすべての要素に対する配線長を算出して(S81〜S85)、S86で配線長が短い順にn個の配置を出力するようにしてもよい。上記nは、配線長を算出したすべての配置数でもよいし、一定個数に定めてもよい。この場合、より多くの配置候補に対して次のブロック方向性決定処理が適用されるため、配線長をより短くできる場合がある。
【0156】
また、上記実施の形態1及び2では、グループ内にさらにグループを作成することはない。しかし、上記手段を組み合わせることにより、容易にグループ内にグループを作成することができる。この再帰的なグループの生成は、グループ化適用後もなおグループ数が数百を越えるような大規模のデータに対して有効である。
【0157】
【発明の効果】
以上のように、本発明の請求項1または11に記載のフロアプラン装置あるいはフロアプラン方法は、複数のブロックからなる回路データに対して、ブロックをグループ化してブロックの配置及び形状の決定を行うフロアプラン装置/方法において、ブロックの大きさを基準として、全体の配置結果に対する影響が小さい、即ち面積の小さいブロックをグループ化の対象として選択するグループ化対象選択部/工程と、上記グループ化対象とされたブロックに対して、複数のグループの配置及び形状の決定を行うと共に各グループ内でブロックの配置および形状の決定を行うためのグループ化を行うグループ化部/工程とを備える構成である。
【0158】
これにより、グループ内の面積を小さくすることができるので、従来の分割手法におけるグループ内の面積増加の問題を解決することが可能となる。また、空き領域が発生することもないので、従来の分割手法における空き領域発生の問題を解決することも可能となる。さらに、フロアプラン結果を高速に求めることができるので、従来の一括手法における処理時間増加の問題を解決することが可能となるという効果を奏する。
【0159】
請求項2に記載のフロアプラン装置は、請求項1に記載の構成に加えて、上記グループ化部は、上記グループ化対象とされたブロックに対して、ブロック面積の重み付けがなされた結合度に基づいてグループ化を行う構成である。
【0160】
これにより、配線または配線の一部がグループ内に閉じ込められることになるので、配線長の削減、配線遅延の削減、及び配線による消費電力の削減を実現できるという効果を奏する。
【0161】
請求項3に記載のフロアプラン装置は、請求項1又は2に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループと、上記グループ化対象以外のブロックとを同一の階層と見なして、グループ及びグループ化対象以外ブロックの配置と形状を決定する上位階層フロアプラン部をさらに備える構成である。
【0162】
これにより、上位階層での面積や配線長を低減することができ、従来の一括手法における面積ばらつきの問題を解決することが可能となるという効果を奏する。
【0163】
請求項4に記載のフロアプラン装置は、請求項3に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を列挙するグループ形状候補列挙部をさらに備え、上記上位階層フロアプラン部は、候補として列挙されたブロックの配置及び形状に基づいて上位階層の配置を決定する構成である。
【0164】
これにより、上位階層フロアプラン部においてグループ形状候補列挙部による結果を利用して上位階層の配置を決定することにより、グループ形状の制約が緩和でき、上位階層の面積を削減できるという効果を奏する。
【0165】
請求項5に記載のフロアプラン装置は、請求項3に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を求めると共に、該求められた形状候補の中から、グループの形状面積に対して、グループ内でブロック以外が占める領域である空き領域の面積が大きな形状候補を除外するグループ形状候補列挙部をさらに備え、上記上位階層フロアプラン部は、候補として列挙されたブロックの配置及び形状に基づいて上位階層の配置を決定する構成である。
【0166】
これにより、請求項4の構成による効果と同様の効果が得られると共に、さらに、大きな空き領域を有する形状候補を除いた形状候補を用いて上位階層フロアプラン部を適用するため、フロアプランの面積評価における形状情報の参照回数が減少し、処理時間を短縮することができるという効果を奏する。
【0167】
請求項6に記載のフロアプラン装置は、請求項4又は5に記載の構成に加えて、上記グループ形状候補列挙部にて列挙された形状候補に対して、類似する複数の形状候補を単一の形状候補に合成するグループ形状候補合成部をさらに備える構成である。
【0168】
これにより、複数の形状候補を合成した形状を用いて、上位階層フロアプラン部を適用するため、フロアプランの面積評価における形状情報の参照回数が減少し、処理時間を短縮することができるという効果を奏する。
【0169】
請求項7に記載のフロアプラン装置は、請求項6に記載の構成に加えて、上記グループ形状候補合成部が、複数の形状候補の各面積に対する該複数の形状候補を1つに合成したときの合成形状の面積の増加量が許容値以下となる形状候補の集合を類似する形状候補として選択する構成である。
【0170】
これにより、合成の元となる形状候補の各面積と合成後の合成形状の面積との差が許容値以下となる形状候補の集合が類似する形状候補として選択されるので、形状候補の合成による面積の増加を制約することができ、請求項6の構成に比べて、より面積の小さい上位フロアプラン結果が求められるという効果を奏する。
【0171】
請求項8に記載のフロアプラン装置は、請求項1ないし7の何れかに記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備える構成である。
【0172】
これにより、グループ内配置部によってブロック間の配線長が最短となるグループ内のブロック配置を求めることができるという効果を奏する。
【0173】
請求項9に記載のフロアプラン装置は、請求項6又は7に記載の構成に加えて、上記グループ形状候補合成部にて合成された合成形状の元となる複数の形状候補のそれぞれに基づいて、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備える構成である。
【0174】
これにより、合成しない場合と比較してグループ内のブロック位置への制約がより緩和され、ブロック間の配線長短縮を図ることができるので、ブロック間の配線長が最短となるグループ内のブロック配置を決定することが可能となるという効果を奏する。
【0175】
請求項10に記載のフロアプラン装置は、請求項1ないし9の何れかに記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの方向性を求めるブロック方向性決定部をさらに備える構成である。
【0176】
これにより、ブロック方向性決定部によってブロック間の配線長が最短となるグループ内のブロック配置を求めることができるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の実施の形態1にかかるフロアプラン方法を示すフローチャートである。
【図2】上記フロアプラン方法を実現するフロアプラン装置を示すブロック図である。
【図3】入力ブロック例を示す説明図である。
【図4】図3の入力ブロックに対してグループ化対象選択を行った例を示す説明図である。
【図5】図4で選択されたグループ化対象ブロックに対して、グループ化を行った例を示す説明図である。
【図6】(a)(b)は、図5でグループ化されたグループの各々の形状候補を示す説明図である。
【図7】上位階層のフロアプラン結果を示す説明図である。
【図8】図7のグループに対して、グループ内配置及びブロック方向性の決定を行った例を示す説明図である。
【図9】ブロック間の結合度の定義を示すための説明図である。
【図10】(a)(b)は、スライス構造を示す説明図である。
【図11】グループ内配置を決定する動作を示すフローチャートである。
【図12】非スライス構造における配置集合を示す説明図であり、(b)〜(e)は各々(a)と同一のグループ形状となる配置を示している。
【図13】スライス構造における配置集合を示す説明図であり、(a)〜(c)は各分割線に対して形状の等しい2通りの配置があることを示している。
【図14】スライス構造における配置集合を示す説明図であり、(b)〜(i)は各々(a)と同一の形状となる配置を示している。
【図15】ブロック方向性を決定する動作を示すフローチャートである。
【図16】ブロックの方向性集合を示す説明図であり、(a)〜(d)は同一の形状となるブロックの方向性を示している。
【図17】上記フロアプラン方法を用いた結果のブロック配置を示す説明図である。
【図18】従来の一括方法を用いた結果のブロック配置を示す説明図であり、配線長は短いが面積が大きくなる場合を示している。
【図19】従来の一括方法を用いた結果のブロック配置を示す説明図であり、面積は小さいが配線長が長くなる場合を示している。
【図20】従来の分割手法を用いた結果のブロック配置を示す説明図であり、大きさを無視したグループ化によって空き領域が発生する場合を示している。
【図21】上記従来の一括手法によるフロアプラン方法を示すフローチャートである。
【図22】上記従来の分割手法によるフロアプラン方法を示すフローチャートである。
【図23】実施の形態1において、グループ化を行ったときに同一グループ内に配置されたブロックの例を示す説明図である。
【図24】(a)ないし(f)は、図23に示すグループの形状候補を示す説明図である。
【図25】本発明の実施の形態2にかかるフロアプラン装置を示すブロック図である。
【図26】上記フロアプラン装置の動作を示すフローチャートである。
【図27】(a)は合成前の形状関数を示し、(b)は合成後の形状関数を示すグラフである。
【図28】グループ形状候補を合成する動作を示すフローチャートである。
【図29】(a)(b)は図24で列挙された形状候補の中の類似形状候補と、該類似形状候補を合成した後の合成形状とを示し、(c)は図24で列挙された形状候補の中で類似形状候補がない場合の合成前後の状態を示す説明図である。
【図30】グループ内配置を決定する動作を示すフローチャートである。
【図31】図29(a)の合成形状の配置集合を求める場合の説明図である。
【図32】(a)はグループ形状候補合成部を用いない場合の配線結果を示し、(b)はグループ形状候補合成部を用いた場合の配線結果を示す説明図である。
【図33】グループ内配置を決定する他の動作を示すフローチャートである。
【図34】(a)はグループ形状候補合成部を用いない場合のフロアプラン結果を示し、(b)はグループ形状候補合成部を用いた場合のフロアプラン結果を示す説明図である。
【符号の説明】
7 グループ化対象選択部
8 グループ化部
9 グループ形状候補列挙部
10 上位階層フロアプラン部
11 グループ内配置部
12 ブロック方向性決定部
21 グループ形状候補選択部
22 グループ形状候補合成部
23 グループ内配置部
Claims (11)
- 複数のブロックからなる回路データに対して、ブロックをグループ化してブロックの配置及び形状の決定を行うフロアプラン装置において、
ブロックの大きさを基準として、面積の小さいブロックをグループ化の対象として選択するグループ化対象選択部と、
上記グループ化対象とされたブロックに対して、複数のグループの配置及び形状の決定を行うと共に各グループ内でブロックの配置および形状の決定を行うためのグループ化を行うグループ化部とを備えることを特徴とするフロアプラン装置。 - 上記グループ化部は、上記グループ化対象とされたブロックに対して、ブロック面積の重み付けがなされた結合度に基づいてグループ化を行うことを特徴とする請求項1に記載のフロアプラン装置。
- 上記グループ化部にてグループ化された複数のブロックからなるグループと、上記グループ化対象以外のブロックとを同一の階層と見なして、グループ及びグループ化対象以外ブロックの配置と形状を決定する上位階層フロアプラン部をさらに備えることを特徴とする請求項1又は2に記載のフロアプラン装置。
- 上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を列挙するグループ形状候補列挙部をさらに備え、
上記上位階層フロアプラン部は、候補として列挙されたブロックの配置及び形状に基づいて上位階層の配置を決定することを特徴とする請求項3に記載のフロアプラン装置。 - 上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を求めると共に、該求められた形状候補の中から、グループの面積に対して、グループ内でブロック以外が占める領域である空き領域の面積が大きな形状候補を除外するグループ形状候補列挙部をさらに備え、
上記上位階層フロアプラン部は、候補として列挙されたグループ内のブロックの配置及び形状に基づいて上位階層の配置を決定することを特徴とする請求項3に記載のフロアプラン装置。 - 上記グループ形状候補列挙部にて列挙された形状候補に対して、類似する複数の形状候補を単一の形状候補に合成するグループ形状候補合成部をさらに備えることを特徴とする請求項4又は5に記載のフロアプラン装置。
- 上記グループ形状候補合成部は、複数の形状候補の各面積に対する該複数の形状候補を1つに合成したときの合成形状の面積の増加量が許容値以下となる形状候補の集合を類似する形状候補として選択することを特徴とする請求項6に記載のフロアプラン装置。
- 上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備えることを特徴とする請求項1ないし7の何れかに記載のフロアプラン装置。
- 上記グループ形状候補合成部にて合成された合成形状の元となる複数の形状候補のそれぞれに基づいて、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備えることを特徴とする請求項6又は7に記載のフロアプラン装置。
- 上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの方向性を求めるブロック方向性決定部をさらに備えることを特徴とする請求項1ないし9の何れかに記載のフロアプラン装置。
- 複数のブロックからなる回路データに対して、ブロックをグループ化してブロックの配置及び形状の決定を行うフロアプラン方法において、
請求項1ないし10の何れかに記載のフロアプラン装置を用い、
上記グループ化対象選択部によって、ブロックの大きさを基準として、面積の小さいブロックをグループ化の対象として選択するグループ化対象選択工程と、
上記グループ化部によって、上記グループ化対象とされたブロックに対して、複数のグループの配置及び形状の決定を行うと共に各グループ内でブロックの配置および形状の決定を行うためのグループ化を行うグループ化工程とを備えることを特徴とするフロアプラン方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP06149997A JP3761661B2 (ja) | 1996-08-14 | 1997-03-14 | フロアプラン方法及びその装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21472796 | 1996-08-14 | ||
JP8-214727 | 1996-08-14 | ||
JP06149997A JP3761661B2 (ja) | 1996-08-14 | 1997-03-14 | フロアプラン方法及びその装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10111878A JPH10111878A (ja) | 1998-04-28 |
JP3761661B2 true JP3761661B2 (ja) | 2006-03-29 |
Family
ID=26402542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP06149997A Expired - Fee Related JP3761661B2 (ja) | 1996-08-14 | 1997-03-14 | フロアプラン方法及びその装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3761661B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000231581A (ja) * | 1999-02-12 | 2000-08-22 | Hitachi Ltd | 情報処理装置、情報処理システム及び記憶媒体 |
JP4534384B2 (ja) * | 2001-05-18 | 2010-09-01 | 日本電気株式会社 | 半導体集積回路の自動フロアプランシステムとそのフロアプラン方法及びそのコンピュータプログラム |
JP4783268B2 (ja) * | 2006-11-17 | 2011-09-28 | 株式会社東芝 | 半導体レイアウト設計装置 |
JP4987787B2 (ja) * | 2008-04-10 | 2012-07-25 | ルネサスエレクトロニクス株式会社 | 配置検証装置 |
-
1997
- 1997-03-14 JP JP06149997A patent/JP3761661B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10111878A (ja) | 1998-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6446239B1 (en) | Method and apparatus for optimizing electronic design | |
US6449761B1 (en) | Method and apparatus for providing multiple electronic design solutions | |
Sun et al. | Efficient and effective placement for very large circuits | |
Kastner et al. | Pattern routing: Use and theory for increasing predictability and avoiding coupling | |
JP2724317B2 (ja) | 階層的フロアープラニング方法及びそのシステム | |
Hsu et al. | Routability-driven analytical placement for mixed-size circuit designs | |
US6480991B1 (en) | Timing-driven global placement based on geometry-aware timing budgets | |
US20230325573A1 (en) | Method and system for generating layout design of integrated circuit | |
US7661085B2 (en) | Method and system for performing global routing on an integrated circuit design | |
US7676780B2 (en) | Techniques for super fast buffer insertion | |
US20040216072A1 (en) | Porosity aware buffered steiner tree construction | |
JP2002500435A (ja) | タイミング閉鎖方法 | |
US6810506B1 (en) | Methodology for stitching reduced-order models of interconnects together | |
JPH08221451A (ja) | データパス回路のレイアウト設計方法 | |
JP3761661B2 (ja) | フロアプラン方法及びその装置 | |
JP2001338006A (ja) | 論理自動設計支援方法および装置 | |
JP3215351B2 (ja) | 配置方式 | |
US6434721B1 (en) | Method and apparatus for constraint graph based layout compaction for integrated circuits | |
US20080134105A1 (en) | Apparatus, method and program for designing integrated circuit | |
US6654943B2 (en) | Method, system, and computer program product for correcting anticipated problems related to global routing | |
Torabi et al. | A fast hierarchical adaptive analog routing algorithm based on integer linear programming | |
JP3433025B2 (ja) | モジュール配置方法 | |
JP2004062598A (ja) | 半導体装置、半導体装置の設計方法及び設計装置、並びに半導体装置の設計プログラム | |
JP2013084211A (ja) | 半導体装置の自動配置配線プログラム、自動配置配線装置及び自動配置配線方法 | |
Chu | ABOUT THIS CHAPTER |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060111 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100120 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110120 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120120 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |