(57)【特許請求の範囲】
【請求項１】
複数のブロックからなる回路データに対して、ブロックをグループ化してブロックの配置及び形状の決定を行うフロアプラン装置において、
ブロックの大きさを基準として、面積の小さいブロックをグループ化の対象として選択するグループ化対象選択部と、
上記グループ化対象とされたブロックに対して、複数のグループの配置及び形状の決定を行うと共に各グループ内でブロックの配置および形状の決定を行うためのグループ化を行うグループ化部とを備えることを特徴とするフロアプラン装置。
【請求項２】
上記グループ化部は、上記グループ化対象とされたブロックに対して、ブロック面積の重み付けがなされた結合度に基づいてグループ化を行うことを特徴とする請求項１に記載のフロアプラン装置。
【請求項３】
上記グループ化部にてグループ化された複数のブロックからなるグループと、上記グループ化対象以外のブロックとを同一の階層と見なして、グループ及びグループ化対象以外ブロックの配置と形状を決定する上位階層フロアプラン部をさらに備えることを特徴とする請求項１又は２に記載のフロアプラン装置。
【請求項４】
上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を列挙するグループ形状候補列挙部をさらに備え、
上記上位階層フロアプラン部は、候補として列挙されたブロックの配置及び形状に基づいて上位階層の配置を決定することを特徴とする請求項３に記載のフロアプラン装置。
【請求項５】
上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を求めると共に、該求められた形状候補の中から、グループの面積に対して、グループ内でブロック以外が占める領域である空き領域の面積が大きな形状候補を除外するグループ形状候補列挙部をさらに備え、
上記上位階層フロアプラン部は、候補として列挙されたグループ内のブロックの配置及び形状に基づいて上位階層の配置を決定することを特徴とする請求項３に記載のフロアプラン装置。
【請求項６】
上記グループ形状候補列挙部にて列挙された形状候補に対して、類似する複数の形状候補を単一の形状候補に合成するグループ形状候補合成部をさらに備えることを特徴とする請求項４又は５に記載のフロアプラン装置。
【請求項７】
上記グループ形状候補合成部は、複数の形状候補の各面積に対する該複数の形状候補を１つに合成したときの合成形状の面積の増加量が許容値以下となる形状候補の集合を類似する形状候補として選択することを特徴とする請求項６に記載のフロアプラン装置。
【請求項８】
上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備えることを特徴とする請求項１ないし７の何れかに記載のフロアプラン装置。
【請求項９】
上記グループ形状候補合成部にて合成された合成形状の元となる複数の形状候補のそれぞれに基づいて、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備えることを特徴とする請求項６又は７に記載のフロアプラン装置。
【請求項１０】
上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの方向性を求めるブロック方向性決定部をさらに備えることを特徴とする請求項１ないし９の何れかに記載のフロアプラン装置。
【請求項１１】
複数のブロックからなる回路データに対して、ブロックをグループ化してブロックの配置及び形状の決定を行うフロアプラン方法において、
請求項１ないし１０の何れかに記載のフロアプラン装置を用い、
上記グループ化対象選択部によって、ブロックの大きさを基準として、面積の小さいブロックをグループ化の対象として選択するグループ化対象選択工程と、
上記グループ化部によって、上記グループ化対象とされたブロックに対して、複数のグループの配置及び形状の決定を行うと共に各グループ内でブロックの配置および形状の決定を行うためのグループ化を行うグループ化工程とを備えることを特徴とするフロアプラン方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路やプリント基板などの素子の配置・配線を行う電子回路部品の設計において、面積や形状の異なるさまざまなブロックが多数存在する回路データに対して、ブロックの配置・形状決定などのフロアプラン問題を解決するためのフロアプラン方法及びその装置に関するものである。
【０００２】
【従来の技術】
一般に、フロアプラン設計とは、半導体集積回路やプリント基板などの電子回路部品のレイアウト設計の概略を決定するものであり、具体的にはブロックの配置や形状を決定することである。即ち、電子回路部品の設計では、面積や形状の異なるさまざまなブロックが多数存在し、ブロック間に多数の接続要求が存在する回路データに対して、ブロックの配置を決定しなければならない。さらに、ブロック内部を構成する回路データが存在するような階層的な回路データの場合において、ブロック内部の配置・配線が決定されていない設計段階では、ブロックの配置と併せて形状も決定しなければならない。
【０００３】
このとき、フロアプラン設計では、部品コストを削減するためにブロックの配置・配線の面積をできる限り小さくする必要がある。さらに、回路の遅延時間を短縮し、消費電力を低減するために、ブロック間の配線長を短くする必要がある。
【０００４】
従来のフロアプラン方法としては、一度にすべてのブロックを対象として設計を行う一括手法と、予めブロックを複数のグループに分割し、グループ単位にブロック配置と形状の決定を行う分割手法とがある。以下、分割されたブロックの集合をグループと呼ぶことにする。
【０００５】
一括手法では、フロアプランを繰り返し改善することにより結果を求めるのが一般的である。
【０００６】
図２１に示すように、まず初期のフロアプランを生成し（Ｓ５１）、そのフロアプランを変更し（Ｓ５２）、変更後のフロアプランを評価する（Ｓ５３）。Ｓ５４で、その変更が変更前のフロアプランよりも改善されていれば変更を受入れてフロアプランを更新し（Ｓ５５）、終了条件が満たされているかの判断を行う（Ｓ５６）。一方、Ｓ５４で、変更前のフロアプランよりも改善されていなければ、Ｓ５５の工程を経ずにＳ５６へ進む。Ｓ５６で終了条件が満たされていれば処理を終了し、満たされていなければ再びＳ５２に戻り処理を繰り返す。
【０００７】
分割手法は、問題規模（ブロック数）の増加に対応して、現実的な時間で問題を解くために入力回路を分割してフロアプランを行うものである。
【０００８】
図２２に示すように、まずグループの初期化を行い（Ｓ６１）、Ｓ６２でグループ内のブロック数が制限値以下でない場合には、グループ内を分割し（Ｓ６３）、分割グループを配置する（Ｓ６４）。この処理をグループ内のブロック数が制限値以下になるまで繰り返し、制限値以下になると処理を終了する。
【０００９】
上記Ｓ６３のグループの分割においては、二分割を再帰的に繰り返すことにより分割を決定する方法と、一度に複数のグループに対して分割を行う手法とがある。このような二分割あるいは多分割の手法には、ｍｉｎ−ｃｕｔ法や、ｒａｔｉｏ−ｃｕｔ法などが利用される（P.Pan, W.Shi, and C.L.Liu,“Area Minimization for Hierarchical Floorplans ”, IEEE Int'l Conf. on ICCAD, pp.436-440, 1994)。
【００１０】
【発明が解決しようとする課題】
しかしながら、上記一括手法及び分割手法では、高速に高品質な設計結果を求めることができないという問題を有している。
【００１１】
即ち、一括手法では、結果の品質面で次のような問題がある。
上述のように、フロアプラン設計では配置結果の面積を小さくし、かつ、配線長を短くする必要がある。しかし、面積と配線長の間に明確な関係が成り立たないために複数の指標を同時に最適化することは難しい。このことは、ブロック数が増大して取り得る配置の組み合わせの数が多くなるほどより困難になる。以下に具体例を挙げて説明する。
【００１２】
フロアプラン問題のような組み合わせ最適化問題の解法として有効とされているＳＡ（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 に提案されている。
【００１３】
これは、結晶の生成過程をモデル化して応用したもので、改善の進行状態を温度で表し、温度を高温から低温へ冷却することにより解を徐々に最適値へ収束させる方法である。解は徐々に変化させる必要があり、このことは、フロアプラン問題ではブロック配置を部分的に変更することに対応する。温度に応じて決まる一定の確率で解の改悪を認めることにより、繰り返し改善の途中で局所解に陥ることなく解の最適化を図ろうとしている。
【００１４】
フロアプラン設計に対してＳＡ法を適用する場合には、あるフロアプランに対する面積及び配線長の評価方法を定め、その２つの評価値の関数をフロアプランの評価値とする。これが、前記図２１のＳ５３の変更フロアプラン評価に該当する。
【００１５】
関数は、面積評価値と配線長評価値の線形和で定義される。即ち、あるフロアプランＦに対する面積の評価値をＣarea（Ｆ）とし、配線長の評価値をＣwire（Ｆ）とすれば、フロアプランの評価値Ｃ（Ｆ）は、
Ｃ（Ｆ）＝Ｃarea（Ｆ）×定数×Ｃwire（Ｆ）
となる。
【００１６】
しかしながら、この方法では改善回数が進行するにつれて、以下のような問題が生じる。
【００１７】
（１）配線長がある程度短い結果が得られた後に面積を改善しようとすると、一旦ブロックを移動する必要があるが、ブロックを移動すると配線長が長くなり、フロアプランの評価値も増加する。しかし、配線長がある程度短くなるときには温度の冷却が進行しているため、一旦ブロックを移動させてフロアプランの評価値を大きく増加させるような改善は起こりにくく、それ以上面積の改善が進まない。この場合、図１８に示すように、配線長は短いが全体の面積は大きいという結果しか得られない。
【００１８】
（２）面積がある程度小さな結果が得られた後に配線長を改善しようとすると、一旦ブロックを移動する必要があるが、ブロックを移動すると面積が増加し、フロアプランの評価値も増加する。しかし、面積がある程度小さくなるときには温度の冷却が進行しているため、一旦ブロックを移動させてフロアプランの評価値を大きく増加させるような改善は起こりにくく、それ以上配線長の改善が進まない。この場合、図１９に示すように、面積は小さいが配線長は長いという結果しか得られない。
【００１９】
（３）面積がある程度小さな結果が得られた後に、さらにその面積を改善するためには一旦ブロックを移動する必要がある。しかし、面積がある程度小さくなるときには温度の冷却が進行しているため、一旦大きなブロックを移動させてフロアプランの評価値を大きく増加させるような改善は起こりにくく、それ以上解の改善が進まない。
【００２０】
上記（１）（２）の問題は、面積が減ると配線長も減るとは限らないこと、即ち、面積と配線長の間に直接的に明確な関係がないことが原因である。但し、ブロックが存在しない空き領域が大きくなれば、配線長も長くなるという傾向は存在する。また、上記（３）の問題は、ブロックの面積のばらつきが大きいことが原因である。
【００２１】
上記の問題点は、改善回数を増やしても解決することができない。なお、ＳＡ法以外の他の繰り返し改善手法を利用する場合においても、フロアプランの評価のために面積と配線長の関数を使用するため、上記と同様の問題が生じる。
【００２２】
さらに、一括手法では処理時間の面でも次のような問題がある。
（４）一括手法ではすべてのブロックを対象とするため、結果を求めるために必要な処理時間が増大する。つまり、ブロック数に比例した処理時間で結果を求める有効な手法が存在しないため、処理時間はブロック数の増加に伴って急激に増大し、ブロック数が数百となると、実用上許容される処理時間を上回ることになる。
【００２３】
次に、分割手法の問題点を説明する。
従来の分割手法では、すべてのブロックが分割の対象とされる。従って、ブロックの大きさに極端なばらつきがある場合、大きなブロックも分割の対象となり、いずれかのグループに属することになる。
【００２４】
また、分割の評価は分割間を接続する配線数を少なくし、分割内のブロック面積和（グループ内のブロック面積和）のばらつきを低減することを目的としているため、各グループにおけるブロック面積のばらつきについては全く考慮されていない。従って、図２０（ａ）に示すような各グループにおけるブロック面積のばらつきが大きい場合には、図２０（ｂ）に示すように、グループ化を行ってグループＧ11，Ｇ12を生成したときに、グループ内の配置に空き領域１０１が発生する。
【００２５】
さらに、分割の目的は配置問題の対象となるブロック数を限定することであるため、グループ内のブロック数が限定されており、各グループにおけるブロック面積のばらつきは分割を行うことでより顕著となる。
【００２６】
また、面積の小さくなるグループ配置が存在する場合でも、グループ配置の候補数が限定されるため、上位階層でのグループの形状候補が少数となり、上位階層の配置面積を低減できないという問題も生じる。
【００２７】
本発明は、上記従来の問題点を解決するためになされたもので、その目的は、面積や形状の異なるさまざまなブロックが多数存在する回路データに対し、面積が小さく配線長の短い高品質のフロアプラン結果を、高速に求めることができるフロアプラン方法及びその装置を提供することにある。
【００２８】
【課題を解決するための手段】
上記の目的を達成するために、本発明の請求項１または１１に記載のフロアプラン装置あるいはフロアプラン方法は、複数のブロックからなる回路データに対して、ブロックをグループ化してブロックの配置及び形状の決定を行うフロアプラン装置／方法において、ブロックの大きさを基準として、全体の配置結果に対する影響が小さいブロック、即ち面積の小さいブロックをグループ化の対象として選択するグループ化対象選択部／工程と、上記グループ化対象とされたブロックに対して、複数のグループの配置及び形状の決定を行うと共に各グループ内でブロックの配置および形状の決定を行うためのグループ化を行うグループ化部／工程とを備えることを特徴としている。
【００２９】
上記フロアプラン装置あるいは方法によれば、面積や形状の異なるさまざまなブロックが多数存在する回路データに対して、ブロックの大きさを基準として、全体の配置結果に対する影響が小さい、即ち面積の小さいブロックがグループ化の対象として選択される。従って、部分的にグループ化が行われることになる。
【００３０】
このように、全体の中で面積の小さいブロックをグループ化対象としているので、大きなブロックがグループ化されてグループ内の面積が増大することがない。また、グループ化したときに各グループ内の面積のばらつきを低減することができるので、空き領域が発生することもない。さらに、グループ化を行っているので、上位階層のブロック数や接続要求が減少し、フロアプラン結果を高速に求めることができる。
【００３１】
請求項２に記載のフロアプラン装置は、請求項１に記載の構成に加えて、上記グループ化部が、上記グループ化対象とされたブロックに対して、ブロック面積の重み付けがなされた結合度に基づいてグループ化を行うことを特徴としている。
【００３２】
上記の構成によれば、ブロック間の結合度の高い、即ちブロック相互の接続要求が強い面積の小さなブロックどうしが同一のグループに属するようにグループ化され、グループ単位にブロックが配置される。従って、配線または配線の一部がグループ内に閉じ込められることになるので、配線長の削減、配線遅延の削減、及び配線による消費電力の削減を実現できる。
【００３３】
請求項３に記載のフロアプラン装置は、請求項１又は２に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループと、上記グループ化対象以外のブロックとを同一の階層と見なして、グループ及びグループ化対象以外ブロックの配置と形状を決定する上位階層フロアプラン部をさらに備えることを特徴としている。
【００３４】
上記の構成によれば、面積の小さなブロックをグループ化して大きなブロックと見なすため、上位階層での面積のばらつきを低減することができる。これにより、上位階層での面積や配線長を低減することができる。
【００３５】
請求項４に記載のフロアプラン装置は、請求項３に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を列挙するグループ形状候補列挙部をさらに備え、上記上位階層フロアプラン部は、候補として列挙されたブロックの配置及び形状に基づいて上位階層の配置を決定することを特徴としている。
【００３６】
上記の構成によれば、グループ形状候補列挙部によって予め複数のグループ形状の候補を求め、上位階層フロアプラン部においてその結果を利用して上位階層の配置を決定することにより、グループ形状の制約が緩和でき、上位階層の面積を削減できる。
【００３７】
請求項５に記載のフロアプラン装置は、請求項３に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を求めると共に、該求められた形状候補の中から、グループの形状面積に対して、グループ内でブロック以外が占める領域である空き領域の面積が大きな形状候補を除外するグループ形状候補列挙部をさらに備え、上記上位階層フロアプラン部は、候補として列挙されたブロックの配置及び形状に基づいて上位階層の配置を決定することを特徴としている。
【００３８】
上記の構成によれば、請求項４の構成と同様に、グループ形状候補列挙部によって予め複数のグループの形状候補を求め、上位階層フロアプラン部においてその結果を利用して上位階層の配置を決定することにより、グループ形状の制約が緩和でき、上位階層の面積を削減できる。また、列挙された形状候補から空き領域の大きな形状候補が除外されるため、上記上位階層フロアプラン部において、空き領域の大きなグループ形状を選ぶことがないので、上位階層の面積を削減できる。また、上記上位階層フロアプラン部において参照するグループの形状候補の数が減少するため、高速に上位フロアプラン結果を求めることができる。
【００３９】
請求項６に記載のフロアプラン装置は、請求項４又は５に記載の構成に加えて、上記グループ形状候補列挙部にて列挙された形状候補に対して、類似する複数の形状候補を単一の形状候補に合成するグループ形状候補合成部をさらに備えることを特徴としている。
【００４０】
上記の構成によれば、上記上位階層フロアプラン部において列挙された形状候補からグループの形状を選択するときに、グループ形状候補合成部にて類似する複数の形状候補を１つの形状候補に合成しているので、上記上位階層フロアプラン部において参照する形状候補の数が減少するため高速に上位フロアプラン結果を求めることが可能となる。
【００４１】
請求項７に記載のフロアプラン装置は、請求項６に記載の構成に加えて、上記グループ形状候補合成部が、複数の形状候補の各面積に対する該複数の形状候補を１つに合成したときの合成形状の面積の増加量が許容値以下となる形状候補の集合を類似する形状候補として選択することを特徴としている。
【００４２】
上記の構成によれば、合成の元となる形状候補の各面積と合成後の合成形状の面積との差が許容値以下となる形状候補の集合が類似する形状候補として選択されるので、形状候補の合成による面積の増加を制約することができ、請求項６の構成に比べて、より面積の小さい上位フロアプラン結果が求められる。
【００４３】
請求項８に記載のフロアプラン装置は、請求項１ないし７の何れかに記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備えることを特徴としている。
【００４４】
上記の構成によれば、グループ内配置部によってブロック間の配線長が最短となるグループ内のブロック配置を求めることができる。
【００４５】
請求項９に記載のフロアプラン装置は、請求項６又は７に記載の構成に加えて、上記グループ形状候補合成部にて合成された合成形状の元となる複数の形状候補のそれぞれに基づいて、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備えることを特徴としている。
【００４６】
上記の構成によれば、合成形状の元となる複数の形状候補について配線長を評価するため、合成しない場合と比較してグループ内のブロック位置への制約がより緩和され、ブロック間の配線長短縮を図ることができる。これにより、ブロック間の配線長が最短となるグループ内のブロック配置を決定することが可能となる。
【００４７】
請求項１０に記載のフロアプラン装置は、請求項１ないし９の何れかに記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの方向性を求めるブロック方向性決定部をさらに備えることを特徴としている。
【００４８】
上記の構成によれば、ブロック方向性決定部によってブロック間の配線長が最短となるグループ内のブロック配置を求めることができる。
【００４９】
また、グループ化対象選択部及びグループ化部をコンピュータプログラムとして実現することもできる。さらに、上位階層フロアプラン部、グループ形状候補列挙部、グループ形状候補合成部、グループ内配置部、及びブロック方向性決定部をコンピュータプログラムとして実現してもよい。
【００５０】
【発明の実施の形態】
〔実施の形態１〕
本発明の実施の形態１について図１ないし図１７、図２３、及び図２４に基づいて説明すれば、以下の通りである。
【００５１】
図２に示すように、本実施の形態にかかるフロアプラン装置は、入力部１、データベース２、フロアプラン処理部３、データベース４、出力部５、及び制御部６から構成される。
【００５２】
入力部１は、複数のブロックからなる回路データを入力する。即ち、各ブロックの幅と高さとの組（複数の形状が可能な場合には複数個の組が存在）、ブロック間の接続要求、接続要求に対する遅延重み、接続要求に対する信号遷移率、及び目標となる結果の幅と高さの比を入力する。
【００５３】
ここで、遅延重みとは回路遅延時間に対する重要度を表す数値で、数値が大きいほど配線長を短くする必要がある。また、信号遷移率とは、信号変化の発生する頻度を表す、即ちどのくらいの割合で信号が変化するかを示すものである。配線の負荷容量が同じ場合には、信号遷移率が高いほど消費電力が大きくなる。配線の負荷容量は配線長にほぼ比例するため、信号遷移率が高いほど配線長を短くする必要がある。
【００５４】
データベース２は、フロアプラン情報を格納する。このフロアプラン情報は、フロアプランに必要なすべての情報であり、ブロックの幅、高さ、端子の位置、及び端子に接続すべき信号名などである。
【００５５】
フロアプラン処理部３は、グループ化対象選択部７、グループ化部８、グループ形状候補列挙部９、上位階層フロアプラン部１０、グループ内配置部１１、及びブロック方向性決定部１２を備えている。
【００５６】
グループ化対象選択部７は、ブロック総面積に対する各ブロックの面積比、各ブロックの縦横比、あるいは他のブロックとの形状の類似性などを基準として、全体の配置結果に対する影響が小さいブロックをグループ化する対象として選択する。
【００５７】
グループ化部８は、グループ化対象選択部７により選択されたグループ化対象ブロックに対して、ブロック相互の接続数、ブロックの大きさや形状、あるいは遅延や消費電力の情報を用いて、グループ化対象ブロックをグループ化する。
【００５８】
グループ形状候補列挙部９は、グループ化部８により決定されたグループに対して、各グループ内のブロックの配置と形状の候補を求め、グループの形状候補を列挙する。
【００５９】
上位階層フロアプラン部１０は、グループ形状候補列挙部９により求められたグループの形状候補を利用して、グループを含む上位階層、即ちグループとグループ化対象外ブロックとが混在するデータに対して、グループやグループ化対象外ブロックの配置と形状を算出する。
【００６０】
グループ内配置部１１は、上位階層フロアプラン部１０にて求められた配置結果より、ブロック間の配線長が短くなるように、各グループ内ブロックの配置を決定する。このとき、類似したグループ形状となるグループ内ブロックの配置が複数存在する場合には、複数個の配置候補からブロック間の配線長が短くなるような配置を１つ選択する。
【００６１】
ブロック方向性決定部１２は、上位階層フロアプラン部１０により求められた配置結果より、ブロック間の配線長が短くなるように、各グループの方向性の決定、及び各グループ内のブロックの方向性の決定を行う。
【００６２】
データベース４は、フロアプラン処理部３で処理されるグループ情報を格納する。このグループ情報は、グループに関するすべての情報であり、グループ化対象ブロック、グループの構成、グループの形状候補、及び上位階層フロアプラン後のグループの配置・形状などである。
【００６３】
出力部５は、最終的なすべてのブロックの位置、幅、高さ、及び方向性を出力する。
【００６４】
制御部６は、フロアプラン処理部３の実行や、フロアプラン処理部３とデータベース２，４間のデータ入出力を制御するようになっている。
【００６５】
図１に基づいて、上記の構成によるフロアプラン装置の動作を説明する。
まず、ブロックの大きさや形状の情報を利用して、相対的に面積の小さなブロックをグループ化の対象として選択する（Ｓ１）。そして、ブロックの大きさや形状の情報を利用して、ブロック相互の接続要求が強い面積の小さなブロックが同一のグループに属するようにグループ化を行う（Ｓ２）。このとき、１つのグループの規模や、属するブロックの数などを制約することができる。
【００６６】
次に、グループ内ブロックの配置及び形状の候補を求める（Ｓ３）。このとき、グループ形状が異なる複数の配置結果を候補とする。グループを含む上位階層において、上記のグループの形状候補を用いてグループやブロックの配置と形状を決定する（Ｓ４）。求められた配置とグループ形状より、ブロック間の配線長が短くなるように、グループ内ブロックの配置、各グループ及びブロックの方向性を決定する（Ｓ５，Ｓ６）。
【００６７】
上記Ｓ１ないしＳ６の処理を図３に示す入力ブロック例を用いて説明する。ここで、図３に示す各ブロックには番号付けがされているものとし、ｉ番目のブロックをＢi 、このブロックＢi の面積をＡi とする。また、すべてのブロックの面積の総和（以下、面積和と称する）をＡall とする。
【００６８】
図３の例では、１０個のブロックＢ1 〜Ｂ10が入力ブロックとなる。このとき、Ａ1 ＝Ａ2 ＝１、Ａ3 ＝Ａ4 ＝Ａ5 ＝Ａ6 ＝２、Ａ7 ＝４、Ａ8 ＝１２、Ａ9 ＝７、Ａ10＝１５とする。従って、Ａall ＝４８である。
【００６９】
（１）グループ化対象選択処理
例えば、ブロック面積に基づいて、グループ化の対象となるブロックを決定する。この方法には以下の２つの方法がある。但し、以下の方法１及び２において、ブロック面積がその形状により若干変動する場合には、その最大値を採用することとする。
【００７０】
（方法１）面積和を求め、面積和に対するブロック面積の比率が、予め定めた制約値以下であるブロックを、グループ化対象ブロックとする。この方法では、グループ化対象ブロックの面積の上限を定めることができ、全ブロック数が比較的少ない場合に有効なグループ化基準となる。
【００７１】
図３の例において、制約値を０．０５とすると、
Ａall ×０．０５＝４８×０．０５＝２．４
となるので、面積が２．４以下のブロックＢ1 ないしＢ6 がグループ化対象ブロックとして選択される（図４参照）。
【００７２】
（方法２）ブロック面積の標準偏差を求め、さらに各ブロックの面積偏差（ブロック面積と平均面積の差）を算出する。標準偏差に対する面積偏差の比が予め定めた制約値以下であるブロックを、グループ化対象とする。この方法では、ブロック面積のばらつきを考慮してグループ化対象を定めることができ、相対的に面積が小さいと判断されるブロックをグループ化対象とする。従って、全ブロック数が比較的多い場合に有効なグループ化基準となる。
【００７３】
図３の例において、平均面積は４．８であるので、各ブロックの面積偏差は表１に示す通りになる。また、標準偏差は約４．７１であるので、標準偏差に対する面積偏差の比は表１に示す通りになる。
【００７４】
【表１】
0003761661.tif 000002
【００７５】
ここで、制約値を−０．７とすれば、ブロックＢ1 ，Ｂ2 がグループ化対象として選択される。
【００７６】
（２）グループ化処理
グループ化対象ブロックに対して、グループ化を適用する。グループ化の際に、まず、１つのグループに属することができるブロック数の最大値を予め与える。そして、最大値制約の範囲において結合度の高いブロックを同一のグループに入れる。
【００７７】
結合度の決め方の例を図９に基づいて説明する。ブロックＢi ，Ｂj に接続するネットの集合をＮij、ネットｎに接続するブロックの総数をＴn とする。さらに、ネットｎの信号遷移率をＳn とし、ネットｎの遅延重みをＤn とする。このときのブロックＢi ，Ｂj 間の結合度Ｃijを以下の式で定義する。
【００７８】
【数１】
0003761661.tif 000003
【００７９】
上記式を用いて図９に示すブロックＢ11，Ｂ12，Ｂ13間の結合度を計算すると、次のようになる。但し、各ブロックの面積をそれぞれＡ11＝２、Ａ12＝３、及びＡ13＝１０とし、Ａall ＝３０、Ｓn ＝０．５、Ｄn ＝１とする。
【００８０】
【数２】
0003761661.tif 000004
【００８１】
このように、ブロックＢ11，Ｂ12間の結合度が最も高くなり、上記式では小規模で面積のばらつきが小さなブロック間の結合度が大きく計算されることがわかる。
【００８２】
これに対して、ブロックの大きさを考慮しない従来手法の結合度の定義式は、次の通りである。
【００８３】
【数３】
0003761661.tif 000005
【００８４】
これを用いて図９の例に対して、結合度を計算すると、次のようになる。
【００８５】
【数４】
0003761661.tif 000006
【００８６】
このように、ブロックＢ11，Ｂ12間、ブロックＢ12，Ｂ13間、及びブロックＢ13，Ｂ11間の結合度はすべて等しくなり、ブロック面積のばらつきは考慮されていないことがわかる。
【００８７】
例えば、前記（１）の「グループ化対象選択処理」の方法１で得られたグループ化対象の結果である図４に示すブロックＢ1 〜Ｂ6 に対して、１つのグループに属することのできるブロック数の最大値を３とし、上記のように定義された結合度を計算すると、図５に示すようにブロックＢ1 ，Ｂ2 ，Ｂ3 が１つのグループＧ1 となり、ブロックＢ4 ，Ｂ5 ，Ｂ6 が１つのグループＧ2 となる。
【００８８】
（３）グループ形状候補列挙処理
グループ形状の列挙には以下に示す３つの方法がある。
【００８９】
（方法１）形状制約の条件を与えて、分岐限定法を応用して面積最小となる配置を求め、複数の形状制約に対して処理を繰り返すことにより、複数のグループの形状候補を列挙する。この方法は、グループ内のブロック数が６程度までの場合に、高速に面積の小さな形状候補を列挙することができる。
【００９０】
（方法２）配置のモデルをスライス構造に制限し、考えられるすべてのグループの形状候補を列挙する。ここでスライス構造とは、図１０に示すように、水平または垂直の分割線によってブロックの配置領域を再帰的に分割することができる配置構造のことをいう。この方法は、グループ内のブロック数の最大値が１０程度までの場合に、高速に面積の小さな形状候補を列挙することができる。
【００９１】
（方法３）一括手法によるフロアプラン方法を利用して実現する。即ち、形状制約の条件を与えて配置を求め、複数の形状制約に対して処理を繰り返すことにより、複数のグループの形状候補を列挙する。この方法は、グループ内のブロック数の最大値が１０を越える場合に適している。
【００９２】
上記方法１ないし３に示すように、配置のモデルをスライス構造に制約する方法と、スライス構造に制約しない非スライス構造とする方法とがある。なお、方法１は配置モデルを非スライス構造とする方法に属している。
【００９３】
配置モデルをスライス構造とする方法は、非スライス構造とする場合に比較して、グループ内でブロック以外が占める領域である空き領域が発生する場合がある。しかしながら、後述する（５）の「グループ内配置決定処理」に示すように、スライス構造の場合は、非スライス構造の場合よりもグループ形状が同一形状となる多くのグループ内ブロックの配置候補が存在するため、非スライス構造の場合に比較して配線長を短くできる。一方、配置モデルを非スライス構造とする方法は、スライス構造とする場合に比較して配線長は長くなるが、空き領域を小さくすることができる。従って、他のグループとの接続が多い場合にはスライス構造が適しており、他のグループとの接続が少ない場合には非スライス構造が適しており、回路データに応じて方法を使い分ければよい。
【００９４】
図６は、図５に示すグループＧ1 ，Ｇ2 に対して、グループの形状候補を列挙した例を示している。グループ内のブロック数が４以下の場合には、配置は必ずスライス構造となる。従って、方法２により配置を列挙すると、グループＧ1 の場合は４通りの形状候補（図６（ａ）参照）、グループＧ2 の場合は３通りの形状候補（図６（ｂ）参照）が列挙される。
【００９５】
（４）上位階層フロアプラン処理
グループ化によるグループをブロックと見なし、列挙された形状候補を参照して、一括手法によるフロアプラン方法を利用して実現する。
【００９６】
図５に示すグループＧ1 ，Ｇ2 と、図４に示すグループ化対象外のブロックＢ7 〜Ｂ10とを同一の階層と見なして、一括手法を適用すると、図７に示すようなグループ及びブロックの配置・形状結果が得られる。
【００９７】
（５）グループ内配置決定処理
グループ内配置の決定方法を図１１のフローチャートに基づいて説明する。
【００９８】
まず、上記（４）の「上位階層フロアプラン処理」で求められたグループ形状と同一の形状となる配置の集合Ｐを、（３）の「グループ形状候補列挙処理」の結果を用いて生成する（Ｓ１１）。その配置集合Ｐから１つの配置（要素）ｐを取り出す（Ｓ１２）。配置ｐにしたがって、グループ内のブロックの配置を求める（Ｓ１３）。グループ内の各ブロックの端子位置はすべて各ブロックの中心にあると見なして、全体の配線長を算出する（Ｓ１４）。次に、前に取り出された配置ｐ以外の要素が配置集合Ｐ内にあるかどうかを判断し（Ｓ１５）、Ｓ１５で要素があると判断された場合は上記Ｓ１２へ戻り、前に取り出された配置ｐを除く配置集合Ｐに対して同様の処理を行う。この処理を配線集合Ｐのすべての要素に対して行い、Ｓ１５で配置集合Ｐ内に要素がないと判断されると、すべての要素の中で配線長が最短の配置を選ぶ（Ｓ１６）。
【００９９】
例えば、ブロック配置が非スライス構造の場合には、図１２（ａ）に示すグループ形状と同じになる５つのブロックＢ31，Ｂ32，Ｂ33，Ｂ34，Ｂ35の配置は、基準となる配置（図１２（ｂ）参照）、基準配置を上下反転してなる配置（図１２（ｃ）参照）、基準配置を左右反転してなる配置（図１２（ｄ）参照）、及び基準配置を１８０度回転してなる配置（図１２（ｅ）参照）の４通り存在することになる。従って、この場合の配置集合の要素は４つである。
【０１００】
また、スライス構造の場合には、図１４（ａ）に示すグループ形状と同じ形状となる４つのブロックＢ21，Ｂ22，Ｂ23，Ｂ24の配置を考えることにする。図１３に示すように、各分割線に対して形状の等しい配置は２通りずつ存在する。つまり、グループ形状が同じとなるブロック配置は、ｘを分割線の数とすると２x 通り存在する。従って、図１４（ａ）に示すグループ形状と同じ形状となる配置は、分割線数が３であるので、２3 ＝８通りとなり（図１４（ｂ）〜図１４（ｉ）参照）、この場合の配置集合の要素は８つである。
【０１０１】
（６）ブロック方向性決定処理
すべてのグループに対してグループ内配置を決定した後に、すべてのブロックの方向性を決定する。このブロック方向性の決定方法を図１５のフローチャートに示す。
【０１０２】
まず、同一のブロック形状からなり、互いに方向性が異なる方向性集合Ｑを生成する（Ｓ２１）。その方向性集合Ｑから１つの方向性（要素）ｑを取り出す（Ｓ２２）。方向性ｑにしたがって、ブロックの端子位置を求める（Ｓ２３）。方向性ｑに対する全体の配線長を算出する（Ｓ２４）。次に、前に取り出された方向性ｑ以外の要素が方向性集合Ｑ内にあるかどうかを判断し（Ｓ２５）、Ｓ２５で要素があると判断された場合は上記Ｓ２２へ戻り、前に取り出された方向性ｑを除く方向性集合Ｑに対して同様の処理を行う。この処理を方向性集合Ｑのすべての要素に対して行い、Ｓ２５で方向性集合Ｑ内に要素がないと判断されると、すべての要素の中で配線長が最短の方向性を選ぶ（Ｓ２６）。
【０１０３】
ここで、図１６に示すように、ブロック形状が等しい方向性は４通り存在する。即ち、基準点ＣＴに対する端子ＴＭの位置が図１６（ａ）の場合を基準となる方向性とすると、基準方向性を左右反転してなる配置（図１６（ｂ）参照）、基準方向性を上下反転してなる配置（図１６（ｃ）参照）、基準方向性を１８０度回転してなる配置（図１６（ｄ）参照）である。
【０１０４】
前記図７の結果に対して、（５）の「グループ内配置決定処理」を適用するとグループＧ1 ，Ｇ2 内のブロック配置が決定され、（６）の「ブロック方向性決定処理」を適用するとすべてのブロックの方向性が決定され、最終的なフロアプラン結果が図８のように得られる。
【０１０５】
以上のように、本実施の形態にかかるフロアプラン装置は、ブロックの大きさ及び形状を基準として、全体の配置結果に対する影響が小さいブロックをグループ化の対象として選択するグループ化対象選択部７と、上記グループ化対象とされたブロックに対して、グループ化を行うグループ化部８とを備えている。
【０１０６】
これによれば、グループ化対象選択部７が全体の中の面積の小さなブロックをグループ化対象とするので、面積の大きなブロックがグループ化されることがない。また、グループ内のブロック面積のばらつきを低減できるので、グループ内における空き領域を減少させることができ、面積の小さなフロアプラン結果を求めることができる。また、グループ化部８におけるグループ化によって、上位階層で扱うブロック数や接続要求数（ネット数）が減少し、その結果、フロアプラン結果を高速に求めることができる。
【０１０７】
また、グループ化部８のグループ化において、ブロックの大きさを考慮した結合度を用いることで、接続要求の強い小規模なブロックを優先してグループ化することができ、より小規模な領域に多くの配線を局所化できる。従って、遅延や消費電力が増大しやすい配線をグループ内の領域に閉じ込めることができるので、回路品質が向上し、全体の配線長の削減、配線遅延の削減、及び配線による消費電力の削減が実現できる。
【０１０８】
さらに、本フロアプラン装置は、面積の小さなブロックが集められてグループ化されたグループと、グループ化対象外の大きなブロックとを同一の階層と見なして、グループ及びグループ化対象以外ブロックの配置と形状を決定する上位階層フロアプラン部１０を備えているので、上位階層で扱うブロックの大きさのばらつきが減少し、上位階層での面積や配線長を低減できる。
【０１０９】
また、本フロアプラン装置は、グループ化部８にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を求めるグループ形状候補列挙部９を備えている。そして、上位階層フロアプラン部１０は、列挙されたブロック配置及び形状候補を利用して上位階層の配置を決定している。これにより、グループ形状の制約が緩和でき、上位階層の面積を削減できる。つまり、複数の異なる形状をとるグループを用いて、上位階層を配置することにより、より面積の小さなフロアプラン結果を求めることができる。
【０１１０】
さらに、グループ内配置部１１及びブロック方向性決定部１２により、すべてのブロックの位置、形状、及び方向性が最終的に決定される。このとき、上位階層フロアプラン部１０で求められた上位階層での配置結果を利用して、グループ内のブロック配置や方向性を決定するため、グループ形状候補列挙部９において配置や方向性を予め固定する場合より、他のグループのブロックとの配線長を短くすることができる。また、上位階層のフロアプラン決定後にブロックの方向性も決定するため、グループ内配置時にブロックの方向性を決めるよりも配線長を短くできる。
【０１１１】
このようにして、従来の一括手法の説明で用いた図１８・図１９と同様のブロックからなる回路データに対して、本実施の形態のフロアプラン方法を適用すると、図１７に示すようにブロックＡ，Ｂ，Ｃ、及びブロックＤ，Ｅがそれぞれグループ化されて、全体の面積が小さく、配線長が短く、消費電力が少なく、ブロック間遅延が小さい高品質のフロアプラン結果を、高速に得ることが可能となる。この結果、回路設計のコスト削減、低消費電力化、設計期間の短縮化を図ることが可能となる。
【０１１２】
なお、上記実施の形態１では、グループ形状候補列挙部９にてグループの形状候補を列挙したが、このとき、さらに列挙された形状候補に対して空き領域の面積が大きい形状候補を除外するグループ形状候補選択部を有する構成としてもよい。ここで、グループ内の各ブロック面積は予め分かっており、形状候補の面積とグループ内ブロック面積の総和の差が空き領域の面積に該当し、形状候補の面積がグループ内ブロック面積の総和に等しいときには空き領域のない形状となる。
【０１１３】
例えば、前記グループ化部８にて同一のグループに入れられたブロックを、図２３に示すように、ブロックＢ41，Ｂ42，Ｂ43，Ｂ44とする。また、図中に示すＸ方向をブロックの幅、Ｙ方向をブロックの高さとすると、それぞれのブロックの（幅，高さ）は、ブロックＢ41が（１２，８）、ブロックＢ42が（８，７）、ブロックＢ43が（８，５）、ブロックＢ44が（８，４）である。従って、このときのグループ内ブロック面積の総和は「２２４（＝９６＋５６＋４０＋３２）」となる。
【０１１４】
上記ブロックＢ41，Ｂ42，Ｂ43，Ｂ44に対して、前記図１のＳ３の「グループ形状候補列挙処理」を行って、考えられるすべてのグループの形状候補を列挙すると、１２通りとなる。図２４には６つの候補が示されており、残りの６つの候補は図示された候補をそれぞれ９０度回転させたものとなる。
【０１１５】
形状候補３１は空き領域が形成されないようにブロックＢ41〜Ｂ44を配置したものであり、幅，高さが（２８，８）、面積が「２２４」である（図２４（ａ）参照）。形状候補３２，３３はその幅が３つのブロックＢ41〜Ｂ43によって決定されるように配置したものであり、幅，高さがそれぞれ（２７，９）、（２５，１１）、面積がそれぞれ「２４３」、「２７５」である（図２４（ｂ）（ｃ）参照）。形状候補３４，３５はその幅が２つのブロックＢ41，Ｂ42によって決定されるように配置したものであり、幅，高さがそれぞれ（２０，１２）、（１９，１３）、面積がそれぞれ「２４０」、「２４７」である（図２４（ｄ）（ｅ）参照）。形状候補３６はその幅が２つのブロックＢ41，Ｂ44によって決定されるように配置したものであり、幅，高さが（１６，１５）、面積が「２４０」である（図２４（ｆ）参照）。
【０１１６】
ここで、形状候補として列挙される形状は、幅（または高さ）が同じであるときに、高さ（または幅）の小さな配置が存在しない形状である。例えば図２４（ｂ）において、幅が「２７」で高さが「９」より大きなグループ内ブロック配置が存在するが、それは幅が「２７」で高さが「９」の配置が存在し上記の条件を満たさないため、形状候補とはならない。
【０１１７】
（選択方法１）
列挙された形状候補の中から、グループ内ブロック面積の総和に対する形状候補の面積の比率が一定の基準値以下の形状候補を選択する。つまり、この方法では、空き領域の比率を基準としている。
【０１１８】
例えば、基準値をグループ内ブロック面積の総和の１２０％とした場合、図２３の例の場合にはグループ内ブロック面積の総和は「２２４」であるので、形状候補の面積の上限値は「２６８．８」となる。従って、図２４に示した形状候補の中では、基準値「２６８．８」以下の候補として、形状候補３１、３２、３４、３５、３６と、これらを各々９０度回転した形状候補が選択される。
【０１１９】
（選択方法２）
列挙された形状候補の中から、形状候補の面積とグループ内ブロック面積の総和との差、即ち空き領域が一定の基準値以下の形状候補を選択する。つまり、この方法では空き領域の絶対値を基準としている。
【０１２０】
例えば、基準値を「２０」とした場合、図２３の例の場合にはグループ内ブロック面積の総和は「２２４」であるので、形状候補の面積の上限値は「２４４」となる。従って、図２４に示した形状候補の中では、基準値「２４４」以下の候補として、形状候補３１、３２、３４、３６と、これらを各々９０度回転した形状候補が選択される。
【０１２１】
上記選択方法１では空き領域の上限を比率で指定するため、グループ内のブロック数が多い場合、あるいはグループ内ブロック面積の総和が大きく、かつブロック面積のばらつきが大きい場合などの空き領域の絶対値が予測し難いグループに対して有効である。
【０１２２】
また、上記選択方法２では空き領域の上限を絶対値で指定するため、グループ内ブロック面積の総和にかかわらずグループ内の空き領域を一定値以下に制限できる。特に、グループ内ブロック面積の総和が小さいときは、空き領域の比率が大きくとも空き領域が絶対的に小さい形状候補を選択できるため有効である。
【０１２３】
従って、上記選択方法１，２は、形状候補選択を行うグループ内のブロックの構成に応じて適切な方を選べばよい。
【０１２４】
以上のように、上記フロアプラン装置は、上記グループ化部８にてグループ化された複数のブロックからなるグループに対して、グループ内のブロックの配置及び形状の候補を求めるグループ形状候補列挙部９と、グループ形状候補列挙部９にて求められた形状候補の中から、グループの形状面積に対して、グループ内のブロック以外が占める領域である空き領域の面積が大きな形状候補を除外するグループ形状候補選択部とを備え、上位階層フロアプラン部１０は、グループ形状候補選択部にて選択されたブロックの配置及び形状候補に基づいて上位階層の配置を決定する構成とすることができる。なお、請求項５のグループ形状候補列挙部は、グループ形状候補列挙部９とグループ形状候補選択部とからなる。
【０１２５】
これによれば、グループ形状候補列挙部９によって予め複数のグループ形状の候補を求め、上位階層フロアプラン部１０においてその結果を利用して上位階層の配置を決定することにより、グループ形状の制約が緩和でき、上位階層の面積を削減できる。また、グループ形状候補列挙部９にて列挙された形状候補から空き領域の大きな形状候補が除外されるため、上記上位階層フロアプラン部１０において、空き領域の大きなグループ形状を選ぶことがなく、上位階層の面積を削減できる。また、上記上位階層フロアプラン部１０において参照するグループの形状候補の数が減少するため、高速に上位フロアプラン結果を求めることができる。
【０１２６】
〔実施の形態２〕
本発明の実施の形態２について図２５ないし図３４に基づいて説明すれば、以下の通りである。なお、説明の便宜上、前記の実施の形態の図面に示した部材と同一の部材には同一の符号を付記し、その説明を省略する。
【０１２７】
図２５に示すように、本実施の形態にかかるフロアプラン装置は、実施の形態１の構成に加えて、グループ形状候補選択部２１と、グループ形状候補合成部２２とを備えると共に、実施の形態１の構成のグループ内配置部１１の代わりにグループ内配置部２３を備えており、その他の構成については実施の形態１と同じである。
【０１２８】
グループ形状候補選択部２１は、前記実施の形態１に示した通り、グループ形状候補列挙部９にて求められた形状候補の中から、グループの形状面積に対して、グループ内のブロック以外が占める領域である空き領域の面積が大きな形状候補を除外するものである。
【０１２９】
グループ形状候補合成部２２は、グループ形状候補選択部２１にて列挙された形状候補の中から、互いに類似する形状候補を選び出し、該類似した形状候補を単一の形状候補に合成するものである。この単一の形状候補を合成形状と呼ぶことにする。
【０１３０】
グループ内配置部２３は、上記グループ形状候補合成部２２にて合成された合成形状の元となる複数の形状候補それぞれを考慮に入れて、ブロック間の配線長が短くなるように、各グループ内ブロックの配置を決定するものである。
【０１３１】
図２６に基づいて上記の構成によるはフロアプラン装置の動作を説明する。
まず、前記図１のＳ１〜Ｓ３の工程と同様の処理を行う。即ち、ブロックの大きさや形状の情報を利用して、相対的に面積の小さなブロックをグループ化の対象として選択する（Ｓ３１）。そして、ブロックの大きさや形状の情報を利用して、ブロック相互の接続要求が強い面積の小さなブロックが同一のグループに属するようにグループ化を行う（Ｓ３２）。次に、グループ内のブロック配置、及び、グループの形状の候補を列挙する（Ｓ３３）。そして、列挙された形状候補に対して、空き領域の面積を基準とする選択処理を行う（Ｓ３４）。
【０１３２】
次に、選択された形状候補の中から、互いに類似した複数の形状候補をさらに選び出し、それらの類似形状候補を合成することによって、類似形状候補を包含する面積最小の形状を求める（Ｓ３５）。その後、合成結果を含む上位階層において、上記の形状候補を用いてグループやブロックの配置と形状を決定する（Ｓ３６）。求められた配置とグループ形状より、ブロック間の配線長が短くなるグループ内ブロックの配置、各グループ及びブロックの方向性を決定する（Ｓ３７，Ｓ３８）。
【０１３３】
図２７ないし図２９に基づいて、Ｓ３５の「グループ形状候補合成処理」を説明する。
【０１３４】
前記Ｓ３３、Ｓ３４で列挙された形状候補の集合は形状関数で表現される。形状関数は幅に対する高さの関係を表現するもので、Ｘ軸に形状候補の幅、Ｙ軸に形状候補の高さをとると、例えば、図２７（ａ）に示すようなグラフで表すことができる。なお、同図に示すグラフにおいて、黒丸はその点を含むことを示し、白丸はその点を含まないことを示している。このような列挙された形状候補の集合に対する形状関数の場合では、前記図２４で列挙された形状候補３１、３２、３４、３６のように、黒丸の点における幅と高さとなる形状が必ず存在する。
【０１３５】
ある形状候補に対して類似する形状候補は、上記グラフ上で隣接する黒丸に該当する。Ｓ４１では、グラフ上で、幅と高さの差が一定値以内の範囲に存在する黒丸を抽出することにより、合成対象の類似形状候補を生成する。抽出された類似形状候補の集合をＦとする。
【０１３６】
そして、類似形状候補集合Ｆの要素ｆをすべて合成したときの合成形状の面積Ｓf を求める（Ｓ４２）。類似形状候補集合Ｆの要素ｆの中で面積が最小である形状候補の面積をＳmin とすると、上記合成形状の面積Ｓf と面積Ｓmin との差δＳを求める（Ｓ４３）。
【０１３７】
Ｓ４４では、上記δＳと、合成後に増加する形状候補の面積増加量の許容値（許容量）Ｓmax とを比較する。Ｓ４４でδＳ＞Ｓmax のとき、即ちδＳが許容値Ｓmax を超える場合には、ｆ1 を類似形状候補集合Ｆのうちで幅が最小の形状候補、ｆ2 を類似形状候補集合Ｆのうちで高さが最小の形状候補とし、ｆ1 ，ｆ2 の面積を各々Ｓf1，Ｓf2として、面積Ｓf1と面積Ｓf2とを比較する（Ｓ４５）。
【０１３８】
Ｓ４５でＳf1≧Ｓf2のとき、即ち幅最小の形状候補の面積Ｓf1が高さ最小の形状候補の面積Ｓf2以上の場合には、類似形状候補集合Ｆから要素ｆ1 を取り除く（Ｓ４６）。一方、Ｓ４５でＳf1＜Ｓf2のとき、即ち幅最小の形状候補の面積Ｓf1が高さ最小の形状候補の面積Ｓf2よりも小さい場合には、類似形状候補集合Ｆから要素ｆ2 を取り除く（Ｓ４７）。従って、Ｓ４６あるいはＳ４７で要素ｆ1 とｆ2 のうち面積の大きな方の形状が類似形状候補集合Ｆから取り除かれることになる。
【０１３９】
そして、Ｓ４２へ戻って、処理を繰り返し、Ｓ４４でδＳ≦Ｓmax 、即ちδＳが許容値Ｓmax 以下になると、類似形状候補集合Ｆを合成形状候補集合として出力する（Ｓ４８）。このようにして、Ｓ４１で生成された類似形状候補の中から面積増加量を評価基準として選択された類似形状候補を合成形状候補とする。
【０１４０】
その後、Ｓ４９で複数の類似形状候補からなる合成形状候補集合内におけるすべての要素を合成する。このとき、合成形状の幅を複数の類似形状候補における幅の最大値とし、合成形状の高さを複数の類似形状候補における高さの最大値とする。これにより、複数の類似形状候補を包含する面積最小の合成形状を実現することができる。なお、互いに類似する形状候補がない場合には、列挙された形状候補は合成せずにそのままの状態とする。
【０１４１】
例えば、図２６のＳ３４で形状候補３１、３２、３４、３５、３６が列挙された場合には、面積増加量の許容値Ｓmax が「３０」であるとき、形状候補３１と３２が類似形状候補となり、これらが合成されると合成形状４１となる（図２９（ａ）参照）。合成形状４１は、その幅が形状候補３１の幅と同じ「２８」であり、高さが形状候補３２の高さと同じ「９」である。また、同様にして、形状候補３４と３５が類似形状候補となり、これらが合成されると合成形状４２となる（図２９（ｂ）参照）。合成形状４２は、その幅が形状候補３４の幅と同じ「２０」であり、高さが形状候補３５の高さと同じ「１３」である。また、形状候補３６は合成されずにそのままの状態となる。
【０１４２】
図３０及び図３１に基づいて前記Ｓ３７の「グループ内配置決定処理」について説明する。
【０１４３】
上位階層フロアプランで決定されたグループ形状は、グループ形状候補合成処理により合成された類似形状候補に基づいているので、合成された類似形状候補のいずれかと同一の形状となる配置の集合を、形状制約を満たす配置集合Ｐとする。Ｓ７１では、合成形状の元となった類似形状候補それぞれについて、同一形状となる配置集合Ｐを生成する。例えば、図３１に示すように、上位階層フロアプランで決定されたグループ形状が合成形状４１である場合には、合成形状４１は形状候補３１と３２が合成された形状であるため、形状候補３１と３２についてそれぞれ同一形状となる配置を求め、これらを１つの配置集合とする。なお、形状候補３１，３２の右側に示された図は、それぞれ配置集合を生成するときの基準配置である。
【０１４４】
ここで、ある１つのグループ形状に対する同一形状の配置集合を生成する手段は、実施の形態１と同じである。つまり、配置がスライス構造の場合は、各分割線に対して２通りの配置があるので、分割線数をｘとすれば２x 通りの配置が存在し、配置が非スライス構造の場合は、基準になる配置、上下反転、左右反転、１８０度回転の４通りの配置が存在する。
【０１４５】
Ｓ７１で生成された配置集合Ｐから１つの配置（要素）ｐを取り出す（Ｓ７２）。配置ｐにしたがって、グループ内のブロックの配置を求める（Ｓ７３）。グループ内の各ブロックの端子位置はすべて各ブロックの中心にあると見なして、全体の配線長を算出する（Ｓ７４）。次に、前に取り出された配置ｐ以外の要素が配置集合Ｐ内にあるかどうかを判断し（Ｓ７５）、Ｓ７５で要素があると判断された場合は上記Ｓ７２へ戻り、前に取り出された配置ｐを除く配置集合Ｐに対して同様の処理を行う。この処理を配線集合Ｐのすべての要素に対して行い、Ｓ７５で配置集合Ｐ内に要素がないと判断されると、すべての要素の中で配線長が最短の配置を選ぶ（Ｓ７６）。
【０１４６】
なお、互いに類似する形状候補がなく、グループ形状候補合成処理を行う必要がない形状候補（例えば、図２９（ｃ）の形状候補３６）は、実施の形態１と同様に上位階層フロアプラン処理で決定されたグループ形状と同一形状となる配置の集合を、形状制約を満たす配置集合とする。
【０１４７】
以上のように、本実施の形態にかかるフロアプラン装置は、上記グループ形状候補列挙部９にて列挙された形状候補に対して、類似する複数の形状候補を単一の形状候補に合成するグループ形状候補合成部２２を備える構成である。
【０１４８】
これによれば、上記上位階層フロアプラン部１０において、列挙された形状候補からグループの形状を選択するときに、グループ形状候補合成部２２にて類似する複数の形状候補を１つに合成しているので、上記上位階層フロアプラン部１０において参照する形状候補の数が減少するため高速に上位フロアプラン結果を求めることが可能となる。
【０１４９】
また、上記グループ形状候補合成部２２は、複数の形状候補の各面積に対する該複数の形状候補を１つに合成したときの合成形状の面積の増加量が許容値以下となる形状候補の集合を類似する形状候補として選択するので、形状候補の合成による面積の増加を制約することができ、より面積の小さい上位フロアプラン結果が求められる。
【０１５０】
さらに、グループ形状候補合成部２２にて合成される元となった形状候補に基づいて、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部２３を備えている。
【０１５１】
これによれば、例えば図３１に示すように、グループ形状候補合成部２２を用いると、上位階層フロアプラン部１０では合成形状４１がグループ形状として選択され、グループ内配置部２３では形状候補３１と３２の両者について配線長を評価する。従って、例えば図３２に示すように、ブロックＢ43と接続すべきグループ５１、グループ５２、及びブロックＢ44と接続すべきグループ５３との配置を行うときには、同図（ｂ）に示すように、形状候補３２を用いる場合よりも配線長を短くできる形状候補３１と同一形状の配置が求められる。
【０１５２】
これに対して、実施の形態１に示したようにグループ形状候補合成部２２を用いない場合には、上位階層フロアプラン部１０では全体の配置面積が小さくなる形状候補３２がグループ形状として選択される。つまり、図３４に示す通り、全体の高さはグループ５１，５２で決定されるため、形状候補３１，３２のどちらを用いた場合も全体の高さは同じであるが、形状候補３１の方が形状候補３２よりも幅が大きいため、形状候補３１を用いた場合の方が形状候補３２を用いた場合よりも全体の幅が大きくなってしまう。この結果、実施の形態１の上位階層フロアプラン部１０では形状候補３２を採用する方が全体の配置面積が小さくなるため良好な結果と判断され、形状候補３１は採用されなくなってしまう。これにより、図３２（ａ）に示すように、形状候補３１を用いる場合よりも配線長が長くなってしまう形状候補３２と同一の配置が求められてしまう。
【０１５３】
このように、本実施の形態におけるグループ内配置部２３によって、グループ内のブロック位置への制約がより緩和され、ブロック間の配線長短縮を図ることができる。これにより、ブロック間の配線長が最短となるグループ内のブロック配置を決定することが可能となる。
【０１５４】
なお、実施の形態２では、グループ形状候補選択部２１を用いた構成としているが、実施の形態１の構成にグループ形状候補合成部２２のみを加えた構成とすることもできる。しかしながら、グループ形状候補選択部２１を用いた方が、グループ形状候補合成部２２において参照される形状候補数が少なくなり、高速にフロアプラン結果が得られるので好ましい。
【０１５５】
なお、上記実施の形態１及び２におけるグループ内配置決定処理では、配線長が最短になる配置を１つ出力していたが、これに限られることはない。即ち、例えば、実施の形態２の構成では、図３３のフローチャートに示すように、前記図３０のＳ７１〜Ｓ７５と同様にして、配置集合Ｐのすべての要素に対する配線長を算出して（Ｓ８１〜Ｓ８５）、Ｓ８６で配線長が短い順にｎ個の配置を出力するようにしてもよい。上記ｎは、配線長を算出したすべての配置数でもよいし、一定個数に定めてもよい。この場合、より多くの配置候補に対して次のブロック方向性決定処理が適用されるため、配線長をより短くできる場合がある。
【０１５６】
また、上記実施の形態１及び２では、グループ内にさらにグループを作成することはない。しかし、上記手段を組み合わせることにより、容易にグループ内にグループを作成することができる。この再帰的なグループの生成は、グループ化適用後もなおグループ数が数百を越えるような大規模のデータに対して有効である。
【０１５７】
【発明の効果】
以上のように、本発明の請求項１または１１に記載のフロアプラン装置あるいはフロアプラン方法は、複数のブロックからなる回路データに対して、ブロックをグループ化してブロックの配置及び形状の決定を行うフロアプラン装置／方法において、ブロックの大きさを基準として、全体の配置結果に対する影響が小さい、即ち面積の小さいブロックをグループ化の対象として選択するグループ化対象選択部／工程と、上記グループ化対象とされたブロックに対して、複数のグループの配置及び形状の決定を行うと共に各グループ内でブロックの配置および形状の決定を行うためのグループ化を行うグループ化部／工程とを備える構成である。
【０１５８】
これにより、グループ内の面積を小さくすることができるので、従来の分割手法におけるグループ内の面積増加の問題を解決することが可能となる。また、空き領域が発生することもないので、従来の分割手法における空き領域発生の問題を解決することも可能となる。さらに、フロアプラン結果を高速に求めることができるので、従来の一括手法における処理時間増加の問題を解決することが可能となるという効果を奏する。
【０１５９】
請求項２に記載のフロアプラン装置は、請求項１に記載の構成に加えて、上記グループ化部は、上記グループ化対象とされたブロックに対して、ブロック面積の重み付けがなされた結合度に基づいてグループ化を行う構成である。
【０１６０】
これにより、配線または配線の一部がグループ内に閉じ込められることになるので、配線長の削減、配線遅延の削減、及び配線による消費電力の削減を実現できるという効果を奏する。
【０１６１】
請求項３に記載のフロアプラン装置は、請求項１又は２に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループと、上記グループ化対象以外のブロックとを同一の階層と見なして、グループ及びグループ化対象以外ブロックの配置と形状を決定する上位階層フロアプラン部をさらに備える構成である。
【０１６２】
これにより、上位階層での面積や配線長を低減することができ、従来の一括手法における面積ばらつきの問題を解決することが可能となるという効果を奏する。
【０１６３】
請求項４に記載のフロアプラン装置は、請求項３に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を列挙するグループ形状候補列挙部をさらに備え、上記上位階層フロアプラン部は、候補として列挙されたブロックの配置及び形状に基づいて上位階層の配置を決定する構成である。
【０１６４】
これにより、上位階層フロアプラン部においてグループ形状候補列挙部による結果を利用して上位階層の配置を決定することにより、グループ形状の制約が緩和でき、上位階層の面積を削減できるという効果を奏する。
【０１６５】
請求項５に記載のフロアプラン装置は、請求項３に記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、グループ内のブロック配置、及び、グループの形状の候補を求めると共に、該求められた形状候補の中から、グループの形状面積に対して、グループ内でブロック以外が占める領域である空き領域の面積が大きな形状候補を除外するグループ形状候補列挙部をさらに備え、上記上位階層フロアプラン部は、候補として列挙されたブロックの配置及び形状に基づいて上位階層の配置を決定する構成である。
【０１６６】
これにより、請求項４の構成による効果と同様の効果が得られると共に、さらに、大きな空き領域を有する形状候補を除いた形状候補を用いて上位階層フロアプラン部を適用するため、フロアプランの面積評価における形状情報の参照回数が減少し、処理時間を短縮することができるという効果を奏する。
【０１６７】
請求項６に記載のフロアプラン装置は、請求項４又は５に記載の構成に加えて、上記グループ形状候補列挙部にて列挙された形状候補に対して、類似する複数の形状候補を単一の形状候補に合成するグループ形状候補合成部をさらに備える構成である。
【０１６８】
これにより、複数の形状候補を合成した形状を用いて、上位階層フロアプラン部を適用するため、フロアプランの面積評価における形状情報の参照回数が減少し、処理時間を短縮することができるという効果を奏する。
【０１６９】
請求項７に記載のフロアプラン装置は、請求項６に記載の構成に加えて、上記グループ形状候補合成部が、複数の形状候補の各面積に対する該複数の形状候補を１つに合成したときの合成形状の面積の増加量が許容値以下となる形状候補の集合を類似する形状候補として選択する構成である。
【０１７０】
これにより、合成の元となる形状候補の各面積と合成後の合成形状の面積との差が許容値以下となる形状候補の集合が類似する形状候補として選択されるので、形状候補の合成による面積の増加を制約することができ、請求項６の構成に比べて、より面積の小さい上位フロアプラン結果が求められるという効果を奏する。
【０１７１】
請求項８に記載のフロアプラン装置は、請求項１ないし７の何れかに記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備える構成である。
【０１７２】
これにより、グループ内配置部によってブロック間の配線長が最短となるグループ内のブロック配置を求めることができるという効果を奏する。
【０１７３】
請求項９に記載のフロアプラン装置は、請求項６又は７に記載の構成に加えて、上記グループ形状候補合成部にて合成された合成形状の元となる複数の形状候補のそれぞれに基づいて、ブロック間の配線長が最短となるようにグループ内のブロックの配置を求めるグループ内配置部をさらに備える構成である。
【０１７４】
これにより、合成しない場合と比較してグループ内のブロック位置への制約がより緩和され、ブロック間の配線長短縮を図ることができるので、ブロック間の配線長が最短となるグループ内のブロック配置を決定することが可能となるという効果を奏する。
【０１７５】
請求項１０に記載のフロアプラン装置は、請求項１ないし９の何れかに記載の構成に加えて、上記グループ化部にてグループ化された複数のブロックからなるグループに対して、ブロック間の配線長が最短となるようにグループ内のブロックの方向性を求めるブロック方向性決定部をさらに備える構成である。
【０１７６】
これにより、ブロック方向性決定部によってブロック間の配線長が最短となるグループ内のブロック配置を求めることができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の実施の形態１にかかるフロアプラン方法を示すフローチャートである。
【図２】上記フロアプラン方法を実現するフロアプラン装置を示すブロック図である。
【図３】入力ブロック例を示す説明図である。
【図４】図３の入力ブロックに対してグループ化対象選択を行った例を示す説明図である。
【図５】図４で選択されたグループ化対象ブロックに対して、グループ化を行った例を示す説明図である。
【図６】（ａ）（ｂ）は、図５でグループ化されたグループの各々の形状候補を示す説明図である。
【図７】上位階層のフロアプラン結果を示す説明図である。
【図８】図７のグループに対して、グループ内配置及びブロック方向性の決定を行った例を示す説明図である。
【図９】ブロック間の結合度の定義を示すための説明図である。
【図１０】（ａ）（ｂ）は、スライス構造を示す説明図である。
【図１１】グループ内配置を決定する動作を示すフローチャートである。
【図１２】非スライス構造における配置集合を示す説明図であり、（ｂ）〜（ｅ）は各々（ａ）と同一のグループ形状となる配置を示している。
【図１３】スライス構造における配置集合を示す説明図であり、（ａ）〜（ｃ）は各分割線に対して形状の等しい２通りの配置があることを示している。
【図１４】スライス構造における配置集合を示す説明図であり、（ｂ）〜（ｉ）は各々（ａ）と同一の形状となる配置を示している。
【図１５】ブロック方向性を決定する動作を示すフローチャートである。
【図１６】ブロックの方向性集合を示す説明図であり、（ａ）〜（ｄ）は同一の形状となるブロックの方向性を示している。
【図１７】上記フロアプラン方法を用いた結果のブロック配置を示す説明図である。
【図１８】従来の一括方法を用いた結果のブロック配置を示す説明図であり、配線長は短いが面積が大きくなる場合を示している。
【図１９】従来の一括方法を用いた結果のブロック配置を示す説明図であり、面積は小さいが配線長が長くなる場合を示している。
【図２０】従来の分割手法を用いた結果のブロック配置を示す説明図であり、大きさを無視したグループ化によって空き領域が発生する場合を示している。
【図２１】上記従来の一括手法によるフロアプラン方法を示すフローチャートである。
【図２２】上記従来の分割手法によるフロアプラン方法を示すフローチャートである。
【図２３】実施の形態１において、グループ化を行ったときに同一グループ内に配置されたブロックの例を示す説明図である。
【図２４】（ａ）ないし（ｆ）は、図２３に示すグループの形状候補を示す説明図である。
【図２５】本発明の実施の形態２にかかるフロアプラン装置を示すブロック図である。
【図２６】上記フロアプラン装置の動作を示すフローチャートである。
【図２７】（ａ）は合成前の形状関数を示し、（ｂ）は合成後の形状関数を示すグラフである。
【図２８】グループ形状候補を合成する動作を示すフローチャートである。
【図２９】（ａ）（ｂ）は図２４で列挙された形状候補の中の類似形状候補と、該類似形状候補を合成した後の合成形状とを示し、（ｃ）は図２４で列挙された形状候補の中で類似形状候補がない場合の合成前後の状態を示す説明図である。
【図３０】グループ内配置を決定する動作を示すフローチャートである。
【図３１】図２９（ａ）の合成形状の配置集合を求める場合の説明図である。
【図３２】（ａ）はグループ形状候補合成部を用いない場合の配線結果を示し、（ｂ）はグループ形状候補合成部を用いた場合の配線結果を示す説明図である。
【図３３】グループ内配置を決定する他の動作を示すフローチャートである。
【図３４】（ａ）はグループ形状候補合成部を用いない場合のフロアプラン結果を示し、（ｂ）はグループ形状候補合成部を用いた場合のフロアプラン結果を示す説明図である。
【符号の説明】
７    グループ化対象選択部
８    グループ化部
９    グループ形状候補列挙部
１０    上位階層フロアプラン部
１１    グループ内配置部
１２    ブロック方向性決定部
２１    グループ形状候補選択部
２２    グループ形状候補合成部
２３    グループ内配置部
【図１】
0003761661.tif 000007
【図２】
0003761661.tif 000008
【図３】
0003761661.tif 000009
【図４】
0003761661.tif 000010
【図５】
0003761661.tif 000011
【図６】
0003761661.tif 000012
【図７】
0003761661.tif 000013
【図８】
0003761661.tif 000014
【図９】
0003761661.tif 000015
【図１０】
0003761661.tif 000016
【図１１】
0003761661.tif 000017
【図１２】
0003761661.tif 000018
【図１３】
0003761661.tif 000019
【図１４】
0003761661.tif 000020
【図１５】
0003761661.tif 000021
【図１６】
0003761661.tif 000022
【図１７】
0003761661.tif 000023
【図１８】
0003761661.tif 000024
【図１９】
0003761661.tif 000025
【図２０】
0003761661.tif 000026
【図２１】
0003761661.tif 000027
【図２２】
0003761661.tif 000028
【図２３】
0003761661.tif 000029
【図２４】
0003761661.tif 000030
【図２５】
0003761661.tif 000031
【図２６】
0003761661.tif 000032
【図２７】
0003761661.tif 000033
【図２８】
0003761661.tif 000034
【図２９】
0003761661.tif 000035
【図３０】
0003761661.tif 000036
【図３１】
0003761661.tif 000037
【図３２】
0003761661.tif 000038
【図３３】
0003761661.tif 000039
【図３４】
0003761661.tif 000040