(57)【特許請求の範囲】
【請求項１】
半導体集積回路のフロアプラン設計システムであって、設計対象回路から論理階層構造を抽出する第１の手段と、前記第１の手段で抽出された論理階層構造の最下位論理階層に含まれるゲートの集合をそれぞれひとつのブロックにまとめることにより初期概略フロアプランの対象となる初期ブロックを生成する第２の手段と、前記初期ブロックを用いて概略的な初期フロアプランを行なう第３の手段と、前記初期概略フロアプランにおいて近接して配置された初期ブロックの集合をまとめることにより新たなフロアプラン用ブロックを生成する第４の手段と、前記生成されたブロックのフロアプラン初期解を前記初期概略フロアプランを基に生成する第５の手段と、この初期解を逐次改良することにより最終的なフロアプランを生成する第６の手段とを備え、
前記第３の手段では、フロアプラン問題をブロック密度の平均化を考慮した２次計画問題として定式化して解くことにより、初期概略フロアプランを生成することを特徴とする半導体集積回路のフロアプラン設計システム。
【請求項２】
前記第４の手段では、ＬＳＩチップ全体を格子上に分割し、初期概略フロアプラン結果におけるブロックの配置中心座標が同一格子に含まれるブロック集合をそれぞれひとつにまとめることにより、新たなフロアプラン用ブロックを生成することを特徴とする請求項１記載の半導体集積回路のフロアプラン設計システム。
【請求項３】
半導体集積回路のフロアプラン設計システムとしてコンピュータを動作させるためのコンピュータプログラムであって、そのコンピュータプログラムにより、コンピュータを、
設計対象回路から論理階層構造を抽出する第１の手段と、
前記第１の手段で抽出された論理階層構造の最下位論理階層に含まれるゲートの集合をそれぞれひとつのブロックにまとめることにより、初期概略フロアプランの対象となる初期ブロックを生成する第２の手段と、
前記初期ブロックを用いて概略的な初期フロアプランを行なう第３の手段と、
前記初期概略フロアプランにおいて近接して配置された初期ブロックの集合をまとめることにより、新たなフロアプラン用ブロックを生成する第４の手段と、
前記生成されたブロックのフロアプラン初期解を、前記初期概略フロアプランを基に生成する第５の手段と、
この初期解を逐次改良することにより、最終的なフロアプランを生成する第６の手段として実行させ、
前記第３の手段を実行するに際しては、フロアプラン問題をブロック密度の平均化を考慮した２次計画問題として定式化して解くことにより、初期概略フロアプランを生成することを特徴とするコンピュータプログラム。
【請求項４】
前記第４の手段を実行するに際しては、ＬＳＩチップ全体を格子上に分割し、初期概略フロアプラン結果におけるブロックの配置中心座標が同一格子に含まれるブロック集合をそれぞれひとつにまとめることにより、新たなフロアプラン用ブロックを生成することを特徴とする請求項３記載のコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路の自動フロアプランシステムとそのフロアプラン方法に係わり、特に、フロアプランの対象となるブロック生成を同時に行なうことのできる半導体集積回路の自動フロアプランシステムとそのフロアプラン方法に関する。
【０００２】
【従来の技術】
従来、この種の自動フロアプラン設計方法およびシステムは、半導体集積回路の設計において、大規模回路の分割設計および早期設計段階におけるチップ性能・収容性の見積もりを行なうために用いられている。従来のフロアプラン設計システムの一例が、特開２０００-１６４７２１号公報に記載されている。
【０００３】
従来のフロアプランシステムは、論理回路を入力する論理回路入力手段と、論理回路を分割することによりフロアプランの対象となるブロックを生成するフロアプラン用ブロック生成手段と、生成されたブロックのフロアプラン（ブロックの配置位置および形状の決定）を行なうフロアプラン手段とから構成されている。
【０００４】
ブロック生成手段は、論理回路の階層構造を利用して適当な階層に含まれるゲートの集合をそれぞれひとまとめにすることにより、フロアプランの対象となるブロック集合を生成する。この時、ひとつのブロックのサイズに対する上限および下限、生成されるブロック個数の上限等が制約として考慮される。
【０００５】
フロアプラン手段は、チップの面積とブロック間の配線長が短くなるように、フロアプランブロック生成手段が生成した各ブロックの配置位置と形状とを決定する。
【０００６】
フロアプランの結果、生成されたブロック集合の構成に物理的な実現上の問題があることが判明した場合、再度、フロアプランブロック生成手段により、回路を再分割し、ブロックを生成し直す。
【０００７】
これを繰り返して、最終的なフロアプランを生成する。
【０００８】
【発明が解決しようとする課題】
上記した従来技術の問題点は、フロアプラン用ブロックの生成とフロアプラン（ブロック配置、形状の決定）全体を総合的に考慮した最適化を行なうことができない点である。その理由は、ブロック生成とフロアプランとは密接な関係があり、お互いに連携しながら動作しなければならないにも関わらず、それぞれの処理が独立している。その結果、ブロック生成は、設計対象回路の論理的結合度のみを考慮して行なわれるため、生成されたブロック集合構成が、最終的に実現される物理的構造（フロアプラン）上、適しているとは限らない。
【０００９】
更に、ブロック集合構成が、フロアプランに適さなかった場合、再度ブロックの生成をし直す必要があるため、フロアプランの設計に要する時間が増大するという問題点もある。
【００１０】
本発明の目的は、フロアプラン用ブロックの生成（論理回路分割）とそのフロアプラン（物理的な実現）を有機的に統合し、論理的および物理的に見て、最適なブロック集合構成およびそのフロアプランを生成する新規な半導体集積回路の自動フロアプランシステムとそのフロアプラン方法を提供することにある。
【００１１】
本発明の他の目的は、上記システム用のコンピュータプログラムを提供することである。
【００１２】
【課題を解決するための手段】
本発明は上記した目的を達成するため、基本的には、以下に記載されたような技術構成を採用するものである。
【００１４】
即ち、本発明に係わる半導体集積回路のフロアプランシステムの第１態様は、
半導体集積回路のフロアプラン設計システムであって、設計対象回路から論理階層構造を抽出する第１の手段と、前記第１の手段で抽出された論理階層構造の最下位論理階層に含まれるゲートの集合をそれぞれひとつのブロックにまとめることにより初期概略フロアプランの対象となる初期ブロックを生成する第２の手段と、前記初期ブロックを用いて概略的な初期フロアプランを行なう第３の手段と、前記初期概略フロアプランにおいて近接して配置された初期ブロックの集合をまとめることにより新たなフロアプラン用ブロックを生成する第４の手段と、前記生成されたブロックのフロアプラン初期解を前記初期概略フロアプランを基に生成する第５の手段と、この初期解を逐次改良することにより最終的なフロアプランを生成する第６の手段とを備え、
前記第３の手段では、フロアプラン問題をブロック密度の平均化を考慮した２次計画問題として定式化して解くことにより、初期概略フロアプランを生成することを特徴とするものであり、
叉、第２態様は、
前記第４の手段では、ＬＳＩチップ全体を格子上に分割し、初期概略フロアプラン結果におけるブロックの配置中心座標が同一格子に含まれるブロック集合をそれぞれひとつにまとめることにより、新たなフロアプラン用ブロックを生成することを特徴とするものである。
【００１５】
即ち、本発明に係わるコンピュータプログラムの第１態様は、
半導体集積回路のフロアプラン設計システムとしてコンピュータを動作させるためのコンピュータプログラムであって、そのコンピュータプログラムにより、コンピュータを、
設計対象回路から論理階層構造を抽出する第１の手段と、
前記第１の手段で抽出された論理階層構造の最下位論理階層に含まれるゲートの集合をそれぞれひとつのブロックにまとめることにより、初期概略フロアプランの対象となる初期ブロックを生成する第２の手段と、
前記初期ブロックを用いて概略的な初期フロアプランを行なう第３の手段と、
前記初期概略フロアプランにおいて近接して配置された初期ブロックの集合をまとめることにより、新たなフロアプラン用ブロックを生成する第４の手段と、
前記生成されたブロックのフロアプラン初期解を、前記初期概略フロアプランを基に生成する第５の手段と、
この初期解を逐次改良することにより、最終的なフロアプランを生成する第６の手段として実行させ、
前記第３の手段を実行するに際しては、フロアプラン問題をブロック密度の平均化を考慮した２次計画問題として定式化して解くことにより、初期概略フロアプランを生成することを特徴とするものであり、
叉、第２態様は、
前記第４の手段を実行するに際しては、ＬＳＩチップ全体を格子上に分割し、初期概略フロアプラン結果におけるブロックの配置中心座標が同一格子に含まれるブロック集合をそれぞれひとつにまとめることにより、新たなフロアプラン用ブロックを生成することを特徴とするものである。
【００１６】
【発明の実施の形態】
本発明の半導体集積回路の自動フロアプランシステムは、設計対象回路の論理階層構造を利用して、最下位論理階層に含まれるゲートの集合をそれぞれひとつのブロックにまとめることにより初期概略フロアプランの対象となる初期ブロックを生成する手段（図１の１０２）と、前記生成された初期ブロックを用いて概略的な初期フロアプランを行なう手段（図１の１０３）と、前記初期概略フロアプランにおいて近接して配置された初期ブロックの集合をまとめることにより新たなフロアプラン用ブロックを生成する手段（図１の１０４）と、前記生成されたブロック集合のフロアプラン初期解を前記初期概略フロアプランを基に生成する手段（図１の１０５）と、この初期解を逐次改良することにより最終的なフロアプランを生成する手段（図１の１０６）を有する。
【００１７】
このように構成することで、ブロック生成とフロアプランとをそれぞれ２段階に分けて交互に行い、有機的に統合することにより、本発明の目的を達成することができる。
【００１８】
また、その結果、ブロック生成とフロアプラン設計の無駄な繰り返しを削減することできるため、フロアプラン設計時間の短縮化を達成することができる。
【００１９】
【実施例】
以下に、本発明に係わる半導体集積回路の自動フロアプランシステムとそのフロアプラン方法の具体例を図１乃至図７を参照しながら詳細に説明する。
【００２０】
図１を参照すると、本発明の半導体集積回路の自動フロアプランシステムは、回路情報入力手段１００と、論理階層構造抽出手段１０１と、初期ブロック生成手段１０２と、初期概略フロアプラン生成手段１０３と、初期概略フロアプランに基づくブロック生成手段１０４と、初期フロアプラン生成手段１０５と、フロアプラン改良手段１０６と、フロアプラン出力手段１０７とから構成されている。これらの手段は、それぞれ概略次のように動作する。
【００２１】
回路情報入力手段１００は、設計対象となる論理回路情報を記憶装置に入力するものである。
【００２２】
論理階層構造抽出手段１０１は、回路情報入力手段１００により入力された論理回路から論理階層構造を抽出して、論理階層構造を表現する論理階層構造木２００を生成するものである（図２）。
【００２３】
初期ブロック生成手段１０２は、論理階層構造抽出手段１０１により生成された論理階層構造木２００を基に、最下位論理階層に含まれるゲート２０２の集合をそれぞれひとつのブロックにまとめることにより、初期概略フロアプランの対象となる初期ブロック集合２０１を生成する（図２）。
【００２４】
初期概略フロアプラン生成手段１０３は、初期ブロック生成手段１０２により生成された初期ブロック集合２０１を用いて概略的な初期フロアプラン３００を行なう（図３）。
【００２５】
ここでは、下記の目的関数最小化を行なう（この問題は２次計画問題と呼ばれる）。
【００２６】
Σｗ_ｉｊ（ｂｉ−ｂｊ）２
ｉ、ｊ∈ブロック集合
ここで、ｗ_ｉｊは、ブロックｉ、ｊ間の結合度、ｂｉ、ｂｊは、それぞれブロックｉ、ｊの配置座標を表す。
【００２７】
ただし、この目的関数最小化だけでは、ブロック間の重なりの多い結果が得られてしまうため、制約として、ブロック密度（単位面積当りに存在するブロックの数）が、チップ全体でできるだけ平均化されるような制約の考慮を行なう。
【００２８】
上記、ブロック密度の平均化を考慮した２次計画問題については、効率良く解く方法が既に発明されている。
【００２９】
なお、初期ブロック生成手段１０２により生成される図２のブロック２０１の個数は、従来のフロアプラン設計方法におけるブロックの個数と比較して、従来方法では扱えないほど大きなものとなる可能性がある。しかし、ここでのフロプランは概略的なものであるため、ブロック同士の重なりがある程度許され、またブロックの形状も厳密に決定する必要がない。このため、従来の厳密なフロアプラン方法と異なり、上記の方法により効率良く解くことができる。
【００３０】
次に、ブロック生成手段１０４は、初期概略フロアプラン（図３）において、近接して配置された初期ブロック２０１の集合をまとめることにより、新たなフロアプラン用ブロックを生成する（図４〜図５）。
【００３１】
この場合、ＬＳＩチップ全体を格子上に分割し、図３の初期概略フロアプラン結果におけるブロックの配置中心座標が同一格子に含まれるブロック集合をまとめることにより、新たなブロックを生成する。
【００３２】
つまり、初期ブロック生成手段１０２では、論理構造からブロックの生成が行なわれたが（図２）、ここでは、物理構造（概略初期フロアプラン３００）を基に最終フロアプラン用ブロックの生成を行なうことになる。
【００３３】
そして、図６に示すように、初期フロアプラン生成手段１０５は、ブロック生成手段１０４により生成されたブロックのフロアプラン初期解を前記初期概略フロアプラン１０３が生成した初期概略フロアプラン３００（図３）を基に生成する。
【００３４】
これは、初期概略フロアプラン３００におけるブロックの相対的な位置関係を新たなフロアプラン用ブロック集合に対して反映させることを意味する。
【００３５】
そして、フロアプラン改良手段１０６は、初期フロアプラン生成手段１０５により生成された初期フロアプラン（図６）を逐次改良することにより、最終的なフロアプランを生成する（図７）。
【００３６】
最後に、フロアプラン出力手段１０７が、フロアプラン改良手段１０６により生成されたフロアプランフロアプラン結果を記憶装置に記録し、ディスプレイに表示する。
【００３７】
次に、図１〜図７を参照して、本発明の全体の動作について更に詳細に説明する。
【００３８】
まず、回路情報入力手段１００により入力された設計回路の論理階層構造を論理階層構造抽出手段１０１が抽出し、図２のような論理階層構造木２００を生成する。
【００３９】
この例における回路は、２１個のゲート（論理階層構造木２００における末端ノード２０２）により構成されている。
【００４０】
次に、初期ブロック生成手段１０２は、論理階層構造木２００の最下位層（さらに下位の階層を持たない階層）をそれぞれまとめて、図２のように初期ブロック２０１を生成する。ここでは、１個から３個のゲートを含む１１個のブロック集合Ａ〜Ｋが生成されている。
【００４１】
次に、初期フロアプラン生成手段１０５が、ブロック生成手段１０４により新たに生成されたブロック集合ＡＥ〜ＨＩのフロアプラン初期解（図５）を、初期概略フロアプラン生成手段１０３が生成した初期概略フロアプラン（図３）を基に、図６の初期フロアプラン６００が生成される。
【００４２】
ここでは、初期概略フロアプラン３００におけるブロックの相対的な位置関係が、新たなフロアプラン用ブロック集合ＡＥ〜ＨＩに対して反映され、図６の初期フロアプラン６００が得られる。
【００４３】
フロアプラン改良手段１０６は、初期フロアプラン生成手段１０５により生成された初期フロアプランを逐次改良することにより最終的なフロアプランを生成する。
【００４４】
ここでは、従来のブロック間の重なりを許さず、各ブロックの詳細な形状も決定する従来の厳密なフロアプラン最適化方法を適用する。ブロックＡＥ、ＢＦ、ＣＫ、ＤＪ、Ｇ、ＨＩの最終的な配置位置と形状とが決定され、図７のような最終フロアプランが生成される。
【００４５】
最後に、フロアプラン出力手段１０７は、フロアプラン改良手段１０６により生成されたフロアプラン結果７００を記憶装置に記録し、必要に応じて、ディスプレイに表示する。
【００４６】
このように、本発明では、設計対象回路の論理階層構造を基に、最小論理構成単位（最下位論理階層）をブロックとする初期概略フロアプランを生成し、この結果を基に、物理的に結合度の高い、最終フロアプラン用のブロックを生成する。そして、生成されたブロックと初期概略フロアプランを組合わせ、逐次改良を行ない、最終フロアプランを得るように構成したから、従来システムのように、ブロック生成とフロアプランとが完全に独立に行なわれることがなく、有機的に情報を交換しながら動作するようになっているため、ブロック生成とフロアプラン全体を見た最適化が可能となる。
【００４７】
また、その結果、ブロック生成とフロアプラン設計の無駄な繰り返しを削減することできるため、フロアプラン設計時間全体の短縮が可能となる。
【００４８】
【発明の効果】
本発明の効果は、ブロック生成とフロアプランを有機的に結合することにより、ブロック生成とフロアプラン全体の統合的最適化が可能になった。
【図面の簡単な説明】
【図１】本発明の半導体集積回路の自動フロアプランシステムのブロック図である。
【図２】設計回路の論理階層構造を示す図である。
【図３】初期概略フロアプランを示す図である。
【図４】ブロック生成を行うためにチップ格子を示す図である。
【図５】初期概略フロアプランを基に生成されるブロック集合を示す図である。
【図６】初期フロアプランを示す図である。
【図７】最終フロアプランを示す図である。
【符号の説明】
１００  回路情報入力手段
１０１  論理回路構造抽出手段
１０２  初期ブロック生成手段
１０３  初期概略フロアプラン生成手段
１０４  ブロック生成手段
１０５  初期フロアプラン生成手段
１０６  フロアプラン改良手段
１０７  フロアプラン出力手段
Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ  初期ブロック
ＡＥ、ＢＦ、ＣＫ、ＤＪ、Ｇ、ＨＩ  最終フロアプラン用ブロック
２００  論理階層構造木
２０１  初期ブロック
２０２  ゲート（末端ノード）
３００  ブロック密度を考慮した２次計画法により生成される初期概略フロアプラン
３０１  ブロック間ネット
４００  初期概略フロアプランを基にブロック生成を行うためにチップ格子
５００  初期概略フロアプランを基に生成されたブロック集合
６００  初期概略フロアプラン３００とブロック集合５００から生成される初期フロアプラン
７００  初期フロアプラン６００を逐次改良することにより生成される最終フロアプラン
【図１】
0004534384.tif 000002
【図２】
0004534384.tif 000003
【図３】
0004534384.tif 000004
【図４】
0004534384.tif 000005
【図５】
0004534384.tif 000006
【図６】
0004534384.tif 000007
【図７】
0004534384.tif 000008