(57)【要約】【課題】階層設計レイアウトにおいて、端子位置を最適な位置に決定することにより、設計品質の向上および設計期間の短縮化を図ること。【解決手段】階層設計レイアウト装置２００は、取得部２０１により第１のネットリスト２１１を取得する。抽出部２０２により第１のネットリスト２１１から第２のネットリスト２１２を抽出する。フロアプラン実行部２０３によりフロアプランを実行する。仮配置処理実行部２０４により仮配置処理を実行する。設定部２０５により配線禁止領域を設定する。ＣＴＳ処理部２０６によりＣＴＳ処理をする。仮配線処理実行部２０７により仮配線処理を実行する。仮決定部２０８により端子位置を仮決定する。最適化処理部２０９により端子位置の最適化処理を実行する。階層レイアウト部２１０により下位階層ブロックごとのレイアウト処理を実行するとともに上位階層のレイアウト処理を実行する。【選択図】図２
2008009787.tif 000002
【特許請求の範囲】
【請求項１】
設計対象回路に関する一方の下位階層ブロックのバウンダリ上に端子位置が仮決定された一方の端子から他方の下位階層ブロックのバウンダリ上に端子位置が仮決定された他方の端子までの仮配線経路を検出する仮配線経路検出手段と、
前記仮配線経路検出手段によって検出された仮配線経路上において、前記一方の端子を基準とした場合、前記他方の下位階層ブロックから所定距離以内で、かつ前記一方の端子からの配線長が最短となる第１の仮配線上ポイントを検出する第１の仮配線経路上ポイント検出手段と、
前記第１の仮配線経路上ポイント検出手段によって検出された第１の仮配線経路上ポイントから前記他方の下位階層ブロックのバウンダリまでの距離が最短となる第１のバウンダリポイントを検出する第１のバウンダリポイント検出手段と、
前記仮配線経路上において、前記一方の下位階層ブロックから所定距離以内で、かつ前記第１の仮配線経路上ポイント検出手段によって検出された第１の仮配線経路上ポイントからの配線長が最短となる第２の仮配線経路上ポイントを検出する第２の仮配線経路上ポイント検出手段と、
前記第２の仮配線経路上ポイント検出手段によって検出された第２の仮配線経路上ポイントから前記一方の下位階層ブロックのバウンダリまでの距離が最短となる第２のバウンダリポイントを検出する第２のバウンダリポイント検出手段と、
前記第１および第２のバウンダリポイント検出手段によって検出された検出結果に基づいて、前記一方の端子のあらたな端子位置と前記他方の端子のあらたな端子位置を決定する端子位置決定手段と、
を備えることを特徴とする階層設計レイアウト装置。
【請求項２】
前記設計対象回路に関するネットリストを取得する取得手段と、
前記取得手段によって取得されたネットリストから前記下位階層ブロックの境界部に関するネットリストを抽出する抽出手段と、
前記抽出手段によって抽出されたネットリストを用いて、前記下位階層ブロックのフロアプランを実行するフロアプラン実行手段と、
前記フロアプラン実行手段によって実行された実行結果に基づいて、前記各下位階層ブロック内のセルに関する仮配置処理を実行する仮配置処理実行手段と、
前記仮配置処理実行手段によって仮配置された一方の下位階層ブロック内のセルと他方の下位階層ブロック内のセルとを結線する仮配線処理を実行する仮配線処理実行手段と、
を備えることを特徴とする階層設計レイアウト装置。
【請求項３】
設計対象回路に関する一方の下位階層ブロックのバウンダリ上に端子位置が仮決定された一方の端子から他方の下位階層ブロックのバウンダリ上に端子位置が仮決定された他方の端子までの仮配線経路を検出する仮配線経路検出工程と、
前記仮配線経路検出工程によって検出された仮配線経路上において、前記一方の端子を基準とした場合、前記他方の下位階層ブロックから所定距離以内で、かつ前記一方の端子からの配線長が最短となる第１の仮配線上ポイントを検出する第１の仮配線経路上ポイント検出工程と、
前記第１の仮配線経路上ポイント検出工程によって検出された第１の仮配線経路上ポイントから前記他方の下位階層ブロックのバウンダリまでの距離が最短となる第１のバウンダリポイントを検出する第１のバウンダリポイント検出工程と、
前記仮配線経路上において、前記一方の下位階層ブロックから所定距離以内で、かつ前記第１の仮配線経路上ポイント検出工程によって検出された第１の仮配線経路上ポイントからの配線長が最短となる第２の仮配線経路上ポイントを検出する第２の仮配線経路上ポイント検出工程と、
前記第２の仮配線経路上ポイント検出工程によって検出された第２の仮配線経路上ポイントから前記一方の下位階層ブロックのバウンダリまでの距離が最短となる第２のバウンダリポイントを検出する第２のバウンダリポイント検出工程と、
前記第１および第２のバウンダリポイント検出工程によって検出された検出結果に基づいて、前記一方の端子のあらたな端子位置と前記他方の端子のあらたな端子位置を決定する端子位置決定工程と、
を含んだことを特徴とする階層設計レイアウト方法。
【請求項４】
設計対象回路に関する一方の下位階層ブロックのバウンダリ上に端子位置が仮決定された一方の端子から他方の下位階層ブロックのバウンダリ上に端子位置が仮決定された他方の端子までの仮配線経路を検出させる仮配線経路検出工程と、
前記仮配線経路検出工程によって検出された仮配線経路上において、前記一方の端子を基準とした場合、前記他方の下位階層ブロックから所定距離以内で、かつ前記一方の端子からの配線長が最短となる第１の仮配線上ポイントを検出させる第１の仮配線経路上ポイント検出工程と、
前記第１の仮配線経路上ポイント検出工程によって検出された第１の仮配線経路上ポイントから前記他方の下位階層ブロックのバウンダリまでの距離が最短となる第１のバウンダリポイントを検出させる第１のバウンダリポイント検出工程と、
前記仮配線経路上において、前記一方の下位階層ブロックから所定距離以内で、かつ前記第１の仮配線経路上ポイント検出工程によって検出された第１の仮配線経路上ポイントからの配線長が最短となる第２の仮配線経路上ポイントを検出させる第２の仮配線経路上ポイント検出工程と、
前記第２の仮配線経路上ポイント検出工程によって検出された第２の仮配線経路上ポイントから前記一方の下位階層ブロックのバウンダリまでの距離が最短となる第２のバウンダリポイントを検出させる第２のバウンダリポイント検出工程と、
前記第１および第２のバウンダリポイント検出工程によって検出された検出結果に基づいて、前記一方の端子のあらたな端子位置と前記他方の端子のあらたな端子位置を決定させる端子位置決定工程と、
をコンピュータに実行させることを特徴とする階層設計レイアウトプログラム。
【請求項５】
請求項４に記載の階層設計レイアウトプログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＬＳＩに用いる階層レイアウト手法におけるＣＡＤによる階層レイアウトブロックの端子配置決定処理をおこなう階層設計レイアウト装置、および階層設計レイアウト方法、階層設計レイアウトプログラム、および該プログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
近年の半導体集積回路（ＬＳＩ）は、大規模化・高集積化が進められているが、全回路を一括でレイアウト処理とデータ量が多くなるため、階層設計レイアウト手法を用いるケースが増えてきている。
【０００３】
階層設計レイアウト手法においては、下位階層ブロックの端子位置を決定することが、開発のキーポイントとなっている。一般的には、上位階層のフロアプランにおいて、下位階層ブロックの端子配置を、下位階層を含む全セルの配置をした後、仮配線をおこない、ブロック境界と配線の交点を階層ブロックの端子としていた（たとえば、下記特許文献１、２を参照。）。
【０００４】
【特許文献１】特開平７−１４７３２４号公報
【特許文献２】特開平１０−３３５４７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、下位階層ブロックの端子を決めるための配置・配線において全セルを対象としているため、処理時間が増加してしまい、開発期間の長期化を招くという問題があった。
【０００６】
また、下位階層ブロックの端子を決めるための配置・配線において全セルを対象とすると、大規模データを扱える処理精度の低い配置・配線ツールを使用せざるを得ない。このような配置・配線ツールを使用する場合、下位階層内の配置などの影響により、上位層からみた場合、必ずしも最適な位置に階層ブロック端子が配置されない場合があり、設計品質の低下を招くという問題があった。
【０００７】
また、上述の配置・配線ツールを使用する場合、下位階層をブロックとした上位階層の配線、特にブロックを跨ぐような配線において迂回が生じ、配線チャネル不足や配線バイオレーションの発生といった上位階層の配線性やタイミングを悪化させるという問題があった。これにより、階層ブロックの端子位置フェーズまで戻ることを余儀なくされたり、配線が引けなくなったり、余分なタイミング調整用セルを挿入やそれによる消費電力の増加を招くという問題があった。
【０００８】
ここで、上述した問題点を具体的に説明する。図６は、従来技術における端子アサイン結果の一例を示す説明図である。図６において、フロアプランにより下位階層ブロック６０１，６０２と上位階層のセル６０３とが配置されている。下位階層ブロック６０１，６０２内の黒塗り矩形は、下位階層ブロック６０１，６０２内部のセルをあらわしている。
【０００９】
図６では、上位階層のセル６０３と下位階層ブロック６０１内のセル６１１と下位階層ブロック６０２内のセル６２１とを配線接続する。この場合、下位階層ブロック６０１，６０２の端子の位置は、仮配置・仮配線の結果次第で決定される。データ量が多かったりすると処理時間やツールの関係上精度を低くせざるを得ず、下位階層ブロック６０１，６０２内部のある部分に集中してセルが配置されたり、下位階層ブロック６０１，６０２の内部結線が優先される。
【００１０】
たとえば、図６では、データ量やツールの精度上、チップ６００において下位階層ブロック６０１の端子６１０の位置はセル６１１の直近に決定され、下位階層ブロック６０２の端子６２０の位置もセル６２１の直近に決定されている。
【００１１】
図６では、端子６２０の位置は領域ａの間に決定されるべきであり、タイミング的に厳しくなる可能性が高い下位階層ブロック６０１，６０２間結線や上位階層のセル６０３との結線がおろそかになる可能性があるという問題があった。
【００１２】
また、図７は、従来技術における端子アサイン結果の他の例を示す説明図である。図７において、（Ａ）はチップ７００における上位階層仮配線結果を示しており、（Ｂ）は（Ａ）を用いた上位階層レイアウトの配線結果を示している。上位階層ブロック７０１〜７０３内の黒塗り矩形は、上位階層ブロック７０１〜７０３内部のセルをあらわしている。
【００１３】
図７中、（Ａ）では配線禁止を意識した概略配線をしていないため、上位階層ブロック７０１内のセル７１１と上位階層ブロック７０３内のセル７３１との間に結線される仮配線Ｌ１が上位階層ブロック７０２を跨いて概略配線されている。この場合、（Ｂ）のように端子７１０，７３０の位置が決定されても、上位階層レイアウトでは上位階層ブロック７０２が配線禁止領域であることが意識されるため、上位階層ブロック７０２を迂回して配線Ｌ２を引くこととなる。したがって、上位階層における配線性やタイミングが悪化するという問題があった。
【００１４】
この発明は、上述した従来技術による問題点を解消するため、端子位置を最適な位置に決定することにより、設計品質の向上および設計期間の短縮化を図ることができる階層設計レイアウト装置、および階層設計レイアウト方法、階層設計レイアウトプログラム、および該プログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上述した課題を解決し、目的を達成するため、第１の発明にかかる階層設計レイアウト装置、および階層設計レイアウト方法、階層設計レイアウトプログラム、および該プログラムを記録した記録媒体は、設計対象回路に関する一方の下位階層ブロックのバウンダリ上に端子位置が仮決定された一方の端子から他方の下位階層ブロックのバウンダリ上に端子位置が仮決定された他方の端子までの仮配線経路を検出し、検出された仮配線経路上において、前記一方の端子を基準とした場合、前記他方の下位階層ブロックから所定距離以内で、かつ前記一方の端子からの配線長が最短となる第１の仮配線上ポイントを検出し、検出された第１の仮配線経路上ポイントから前記他方の下位階層ブロックのバウンダリまでの距離が最短となる第１のバウンダリポイントを検出し、前記仮配線経路上において、前記一方の下位階層ブロックから所定距離以内で、かつ前記第１の仮配線経路上ポイントからの配線長が最短となる第２の仮配線経路上ポイントを検出し、前記第２の仮配線経路上ポイントから前記一方の下位階層ブロックのバウンダリまでの距離が最短となる第２のバウンダリポイントを検出し、検出結果に基づいて、前記一方の端子のあらたな端子位置と前記他方の端子のあらたな端子位置を決定することを特徴とする。
【００１６】
この発明によれば、上位階層レイアウトにおける迂回配線を抑制することができる。
【００１７】
また、上記発明において、前記設計対象回路に関するネットリストを取得し、取得されたネットリストから前記下位階層ブロックの境界部に関するネットリストを抽出し、抽出されたネットリストを用いて、前記下位階層ブロックのフロアプランを実行し、フロアプラン実行結果に基づいて、前記各下位階層ブロック内のセルに関する仮配置処理を実行し、仮配置処理された一方の下位階層ブロック内のセルと他方の下位階層ブロック内のセルとを結線する仮配線処理を実行し、仮配線処理によって得られたセル間仮配線経路上において、前記一方の下位階層ブロックのバウンダリ上に前記一方の端子の端子位置を仮決定するとともに、前記他方の下位階層ブロックのバウンダリ上に前記他方の端子の端子位置を仮決定し、仮決定結果に基づいて、前記仮配線経路を検出することとしてもよい。
【００１８】
この発明によれば、ネットリストのデータ量の低減化を図ることができる。また、下位階層ブロックの内部結線よりも下位階層ブロック間の仮配線を優先することができる。
【００１９】
また、上記発明において、前記下位階層ブロックの配置領域を配線禁止領域に設定し、設定された配線禁止領域を迂回するように、仮配置された一方の下位階層ブロック内のセルと他方の下位階層ブロック内のセルとを結線する仮配線処理を実行し、仮配線処理によって得られた前記配線禁止領域を迂回するセル間仮配線経路上において、前記一方の下位階層ブロックのバウンダリ上に前記一方の端子の端子位置を仮決定するとともに、前記他方の下位階層ブロックのバウンダリ上に前記他方の端子の端子位置を仮決定することとしてもよい。
【００２０】
この発明によれば、配線禁止領域を迂回する仮配線をおこなうことができ、上位階層レイアウトにおいて、迂回配線の作成を未然防止することができる。
【００２１】
また、上記発明において、前記設計対象回路に関するネットリストを取得し、取得されたネットリストを用いて、前記各下位階層ブロックのフロアプランを実行し、フロアプラン実行結果に基づいて、一方の下位階層ブロックおよび他方の下位階層ブロック内のセルに関する仮配置処理を実行し、前記一方の下位階層ブロックおよび前記他方の下位階層ブロック以外の別の下位階層ブロックの配置領域を配線禁止領域に設定し、設定された配線禁止領域を迂回するように、仮配置された一方の下位階層ブロック内のセルと他方の下位階層ブロック内のセルとを結線する仮配線処理を実行し、前記配線禁止領域を迂回するセル間仮配線経路上において、前記一方の下位階層ブロックのバウンダリ上に前記一方の端子の端子位置を仮決定するとともに、前記他方の下位階層ブロックのバウンダリ上に前記他方の端子の端子位置を仮決定し、仮決定された仮決定結果に基づいて、前記仮配線経路を検出することとしてもよい。
【００２２】
この発明によれば、ネットリストのデータ量の低減化を図ることができるとともに、下位階層ブロックの内部結線よりも下位階層ブロック間の仮配線を優先することができる。また、配線禁止領域を迂回する仮配線をおこなうことができ、上位階層レイアウトにおいて、迂回配線の作成を未然防止することができる。
【００２３】
また、上記発明において、前記下位階層ブロックのバウンダリ上にクロック端子の端子位置を決定し、決定されたクロック端子の端子位置と重ならないように、前記第２のバウンダリポイントを前記一方の端子の端子位置に決定するとともに、前記第１のバウンダリポイントを前記他方の端子の端子位置に決定することとしてもよい。
【００２４】
この発明によれば、クロック端子との重複による手戻りを防止することができる。
【００２５】
また、第２の発明にかかる階層設計レイアウト装置、および階層設計レイアウト方法、階層設計レイアウトプログラム、および該プログラムを記録した記録媒体は、前記設計対象回路に関するネットリストを取得し、取得されたネットリストから前記下位階層ブロックの境界部に関するネットリストを抽出し、抽出されたネットリストを用いて、前記下位階層ブロックのフロアプランを実行し、フロアプラン実行結果に基づいて、前記各下位階層ブロック内のセルに関する仮配置処理を実行し、仮配置された一方の下位階層ブロック内のセルと他方の下位階層ブロック内のセルとを結線する仮配線処理を実行することを特徴とする。
【００２６】
この発明によれば、ネットリストのデータ量の低減化を図ることができる。また、下位階層ブロックの内部結線よりも下位階層ブロック間の仮配線を優先することができる。
【発明の効果】
【００２７】
本発明にかかる階層設計レイアウト装置、および階層設計レイアウト方法、階層設計レイアウトプログラム、および該プログラムを記録した記録媒体によれば、端子位置を最適な位置に決定することにより、設計品質の向上および設計期間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２８】
以下に添付図面を参照して、この発明にかかる階層設計レイアウト装置、および階層設計レイアウト方法、階層設計レイアウトプログラム、および該プログラムを記録した記録媒体の好適な実施の形態を詳細に説明する。
【００２９】
（階層設計レイアウト装置のハードウェア構成）
まず、この発明の実施の形態にかかる階層設計レイアウト装置のハードウェア構成について説明する。図１は、この発明の実施の形態にかかる階層設計レイアウト装置のハードウェア構成を示すブロック図である。
【００３０】
図１において、階層設計レイアウト装置は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えている。また、各構成部はバス１００によってそれぞれ接続されている。
【００３１】
ここで、ＣＰＵ１０１は、階層設計レイアウト装置の全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００３２】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータを階層設計レイアウト装置に読み取らせたりする。
【００３３】
また、着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３４】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワーク１１４に接続され、このネットワーク１１４を介して他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３５】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３６】
スキャナ１１２は、画像を光学的に読み取り、階層設計レイアウト装置内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文書データを印刷する。プリンタ１１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３７】
（階層設計レイアウト装置の機能的構成）
つぎに、この発明の実施の形態にかかる階層設計レイアウト装置の機能的構成について説明する。図２は、この発明の実施の形態にかかる階層設計レイアウト装置の機能的構成を示すブロック図である。
【００３８】
図２において、階層設計レイアウト装置２００は、取得部２０１と、抽出部２０２と、フロアプラン実行部２０３と、仮配置処理実行部２０４と、設定部２０５と、ＣＴＳ（Ｃｌｏｃｋ  Ｔｒｅｅ  Ｓｙｎｔｈｅｓｉｓ）処理部２０６と、仮配線処理実行部２０７と、仮決定部２０８と、最適化処理部２０９と、階層レイアウト部２１０と、から構成されている。
【００３９】
まず、取得部２０１は、設計対象回路に関する第１のネットリスト２１１を取得する。第１のネットリスト２１１は、下位階層ブロックに関する記述情報を含むネットリストである。また、上位階層のモジュールに関する記述情報も含まれていてもよい。
【００４０】
抽出部２０２は、取得部２０１によって取得された第１のネットリスト２１１から下位階層ブロックの境界部に関するネットリストを抽出する。抽出された境界部に関するネットリストを第２のネットリスト２１２と称す。具体的には、下位階層ブロック内で閉じているセルやネットに関する記述情報を消去し、外部とインターフェースするセル、ネットに関する記述情報のみの構成とする。
【００４１】
図３は、抽出部２０２による抽出処理を模式的に示した説明図である。図３において、（Ａ）は抽出処理前の下位階層ブロック３００を示しており、（Ｂ）は抽出処理後の下位階層ブロック３００を示している。
【００４２】
（Ａ）の下位階層ブロック３００において、組合せ回路３０１，３０２およびＦＦ３０３，３０４は、入力端子ＰＩまたは出力端子ＰＯに直接接続されていないため、下位階層ブロック３００内で閉じているセルに該当する。また、組合せ回路３０１，３０２およびＦＦ３０３，３０４から直接引き出されている配線（図３中、太線で表示）も入力端子ＰＩまたは出力端子ＰＯに直接接続されていないため、下位階層ブロック３００内で閉じているネットに該当する。
【００４３】
一方、ＦＦ３１１〜３１５は、入力端子ＰＩまたは出力端子ＰＯに直接またはゲートＧを介して間接的に接続されているため、下位階層ブロック３００内で閉じているセルに該当しない。同様に、ＦＦ３１１〜３１５から直接引き出されている配線も入力端子ＰＩまたは出力端子ＰＯに直接またはゲートＧを介して間接的に接続されているため、下位階層ブロック３００内で閉じているネットに該当しない。
【００４４】
したがって、（Ｂ）の入力端子ＰＩ、出力端子ＰＯ、ＦＦ３１１〜３１５、ゲートＧおよびこれらを接続する配線からなる境界部の記述情報が第１のネットリスト２１１から抽出されて、第２のネットリスト２１２として出力される。
【００４５】
これにより、下位階層ブロック３００内の回路（セルやネット）の大部分は削除されているので、データ量の低減化を図ることができる。そのため、仮配置処理の時間短縮を図ることができる。また、データ量が低減化されているため、配置ツールとしては、配置精度の高いツールもしくは配置精度を上げるパラメータの指定が可能となる。
【００４６】
また、第１のネットリスト２１１に上位階層のモジュールに関する記述情報が含まれている場合、上位階層のモジュールについても、図３に示したように、モジュール内で閉じているセルやネットを削除して、境界部に関するネットリストを第２のネットリスト２１２として抽出する。
【００４７】
また、フロアプラン実行部２０３は、第１のネットリスト２１１または第２のネットリスト２１２を用いて、下位階層ブロックのフロアプランを実行する。フロアプラン実行部２０３は、既存のフロアプランツールで実現可能である。具体的には、たとえば、第１のネットリスト２１１を用いて下位階層ブロックの配置領域を自動的に計画する。第１のネットリスト２１１に上位階層のモジュールに関する記述情報が含まれている場合には、上位階層のモジュールの配置領域も自動的に計画する。
【００４８】
また、配置領域が計画されると、第２のネットリスト２１２を用いて下位階層ブロックを配置領域に自動配置する。第２のネットリスト２１２に上位階層のモジュールに関する記述情報が含まれている場合、上位階層モジュールの配置領域を位置決めする。
【００４９】
また、仮配置処理実行部２０４は、フロアプラン実行部２０３によって実行された実行結果に基づいて、各下位階層ブロック内のセルに関する仮配置処理を実行する。具体的には、たとえば、フロアプランによって得られたレイアウト情報において、チップ上に配置された下位階層ブロック内にセルを仮配置する。
【００５０】
また、設定部２０５は、下位階層ブロックの配置領域を配線禁止領域に設定する。具体的には、仮配線処理に先立って、フロアプランによって得られたレイアウト情報における下位階層ブロックの配置領域に配線禁止情報を与えることで、下位階層ブロックの配置領域を配線禁止領域として設定しておく。
【００５１】
また、ＣＴＳ処理部２０６は、下位階層ブロックのバウンダリにおけるクロック端子の端子位置を決定するＣＴＳ処理を実行する。これにより、仮決定部２０８において仮決定される端子位置、最適化処理部２０９で決定される端子位置と、クロック端子の端子位置との重複を防止することができ、手戻りを回避することができる。したがって、設計期間の短縮化を図ることができる。
【００５２】
また、仮配線処理実行部２０７は、仮配置処理実行部２０４によって仮配置処理された一方の下位階層ブロック内のセルと他方の下位階層ブロック内のセルとを結線する仮配線処理を実行する。この仮配線処理によって仮配線された経路を、セル間仮配線経路と称す。具体的には、下位階層ブロック内では、内部で閉じているセルやネットの記述情報が削除されているため、ここで、仮配線処理の対象となる下位階層ブロック内のセルとは、下位階層ブロック内の境界部のセルである。
【００５３】
たとえば、図３（Ｂ）に示した下位階層ブロック３００では、ＦＦ３１１〜３１５が仮配線処理の対象となるセルである。この仮配線処理により、一方の下位階層ブロック内のセルと他方の下位階層ブロック内のセルとの間にセル間仮配線経路が引かれる。また、設定部２０５により配線禁止領域が設定されている場合、仮配線処理は、配線禁止領域に設定された他の下位階層ブロックを回避して、迂回したセル間仮配線経路を引くこととなる。
【００５４】
これにより、上位階層レイアウトにおいて発生しうる迂回配線をこの段階で確認することができる。したがって、後述する最適化処理部２０９において、仮配線の迂回状況を考慮した端子位置決定をおこなうことができ、設計品質の向上を図ることができる。
【００５５】
また、仮決定部２０８は、仮配線処理実行部２０７によって得られたセル間仮配線経路上において、一方の下位階層ブロックのバウンダリ上に端子位置を仮決定するとともに、他方の下位階層ブロックのバウンダリ上に端子位置を仮決定する。以降、一方の下位階層ブロックのバウンダリ上に端子位置が仮決定される端子を一方の端子と称し、他方の下位階層ブロックのバウンダリ上に端子位置が仮決定される端子を他方の端子と称す。
【００５６】
具体的には、セル間仮配線経路と一方の下位階層ブロックのバウンダリとの交点を、一方の端子の端子位置に仮決定し、セル間仮配線経路と他方の下位階層ブロックのバウンダリとの交点を、他方の端子の端子位置に仮決定する。
【００５７】
図４−１は、仮決定部２０８による仮決定処理後におけるレイアウト情報の一例を示す説明図である。図４−１において、レイアウト情報２１３は、チップ４００上にフロアプランされた下位階層ブロック４０１〜４０３が仮配置された情報である。下位階層ブロック４０１，４０３内の黒塗り矩形はセルをあらわしている。ここで、下位階層ブロック４０１が上述した一方の下位階層ブロックに該当し、下位階層ブロック４０３が上述した他方の下位階層ブロックに該当する。
【００５８】
レイアウト情報２１３では、下位階層ブロック４０１内のセル４１１から下位階層ブロック４０３内のセル４３１までセル間仮配線経路Ｒ１が仮配線されている。セル間仮配線経路Ｒ１は、配線禁止領域に設定された下位階層ブロック４０２を迂回して引かれている。
【００５９】
また、下位階層ブロック４０１の境界をあらわすバウンダリ４１２とセル間仮配線経路Ｒ１との交点Ｘが端子４１０の端子位置となる。以降、端子位置Ｘと称す。同様に、下位階層ブロック４０３の境界をあらわすバウンダリ４３２とセル間仮配線経路Ｒ１との交点Ｙが端子４３０の端子位置となる。以降、端子位置Ｙと称す。
【００６０】
また、図２において、最適化処理部２０９は仮決定された端子位置Ｘ，Ｙを最適化する。具体的には、仮配線経路検出部２９１と、第１の仮配線経路上ポイント検出部２９２と、第１のバウンダリポイント検出部２９３と、第２の仮配線経路上ポイント検出部２９４と、第２のバウンダリポイント検出部２９５と、端子位置決定部２９６と、から構成されている。
【００６１】
まず、仮配線経路検出部２９１は、一方の下位階層ブロックのバウンダリ上に端子位置が仮決定された一方の端子から他方の下位階層ブロックのバウンダリ上に端子位置が仮決定された他方の端子までの仮配線経路を検出する。具体的には、たとえば、図４−１に示したレイアウト情報では、セル間仮配線経路Ｒ１から端子位置Ｘと端子位置Ｙとの間の仮配線経路Ｒ２を検出する。
【００６２】
また、第１の仮配線経路上ポイント検出部２９２は、仮配線経路検出部２９１によって検出された仮配線経路上において、一方の端子を基準とした場合、他方の端子を有する他方の下位階層ブロックから所定距離以内で、かつ一方の端子からの配線長が最短となる第１の仮配線上ポイントを検出する。この検出処理について図４−１に示したレイアウト情報２１３を用いて具体的に説明する。
【００６３】
図４−２は、第１の仮配線経路上ポイント検出部２９２による検出処理を示す説明図である。図４−２において、まず、仮配線経路Ｒ２上において、一方の端子４１１を基準とした場合、他方の端子４３１を有する他方の下位階層ブロック４０３から所定距離以内の経路を検出する。この所定距離はあらかじめ設定された値とする。所定距離をｄ１とすると、仮配線経路Ｒ２中、点線で示した経路Ｒ３が検出される。そして、この経路Ｒ３中、一方の端子４１０からの配線長が最短となる点Ｐａを、第１の仮配線上ポイントとして検出する。以降、第１の仮配線上ポイントＰａと称す。
【００６４】
また、図２において、第１のバウンダリポイント検出部２９３は、第１の仮配線経路上ポイント検出部２９２によって検出された第１の仮配線経路上ポイントから他方の下位階層ブロックのバウンダリまでの距離が最短となる第１のバウンダリポイントを検出する。この検出処理について図４−２を用いて具体的に説明する。
【００６５】
図４−２において、まず、第１の仮配線経路上ポイントＰａから他方の下位階層ブロック４０３のバウンダリ４３２までの距離が最短となるバウンダリ４３２上の点Ｐｂを第１のバウンダリポイントとして検出する。以降、第１のバウンダリポイントＰｂと称す。
【００６６】
また、図２において、第２の仮配線経路上ポイント検出部２９４は、仮配線経路上において、一方の下位階層ブロックから所定距離以内で、かつ第１の仮配線経路上ポイント検出部２９２によって検出された第１の仮配線経路上ポイントからの配線長が最短となる第２の仮配線経路上ポイントを検出する。この検出処理について具体的に説明する。
【００６７】
図４−３は、第２の仮配線経路上ポイント検出部２９４による検出処理を示す説明図である。図４−３において、仮配線経路Ｒ２上において、一方の下位階層ブロック４０１から所定距離以内の経路を検出する。この所定距離はあらかじめ設定された値とする。所定距離をｄ２とすると、仮配線経路Ｒ２中、一点鎖線で示した経路Ｒ４が検出される。そして、この経路Ｒ４中、第１の仮配線経路上ポイントＰａからの配線長が最短となる点Ｐｃを、第２の仮配線経路上ポイントとして検出する。以降、第２の仮配線経路上ポイントＰｃと称す。
【００６８】
また、図２において、第２のバウンダリポイント検出部２９５は、第２の仮配線経路上ポイント検出部２９４によって検出された第２の仮配線経路上ポイントから一方の下位階層ブロックのバウンダリまでの距離が最短となる第２のバウンダリポイントを検出する。この検出処理について図４−３を用いて具体的に説明する。
【００６９】
図４−３において、まず、第２の仮配線経路上ポイントＰｃから一方の下位階層ブロック４０１のバウンダリ４１２までの距離が最短となるバウンダリ４１２上の点Ｐｄを第２のバウンダリポイントとして検出する。以降、第２のバウンダリポイントＰｄと称す。
【００７０】
また、端子位置決定部２９６は、第１のバウンダリポイント検出部２９３および第２のバウンダリポイント検出部２９５によって検出された検出結果に基づいて、一方の端子のあらたな端子位置と他方の端子のあらたな端子位置を決定する。具体的には、たとえば、第１のバウンダリポイントおよび第２のバウンダリポイントを端子アサイン候補とし、第１のバウンダリポイントおよび第２のバウンダリポイントに端子が配置された場合に、デザインルールを遵守するか否かを判断する。
【００７１】
たとえば、クロック端子と重複する位置であったり、配線した場合に配線禁止領域を跨ぐような端子位置である場合には、デザインルール違反となる。この場合は、再度、第１の仮配線経路上ポイント検出部２９２から第２のバウンダリポイント検出部２９５までの検出処理を再度実行することとなる。再度実行する場合、すでに検出されたポイントＰａ〜Ｐｄを検出対象外とする。
【００７２】
また、デザインルールを遵守している場合には、第２のバウンダリポイントを一方の端子のあらたな端子位置に決定するとともに、第１のバウンダリポイントを他方の端子のあらたな端子位置に決定する。この決定処理について具体的に説明する。
【００７３】
図４−４は、端子位置決定部２９６による決定処理結果を示す説明図である。図４−４において、第２のバウンダリポイントＰｄが一方の端子４１０のあらたな端子位置に決定されている。第１のバウンダリポイントＰｂが他方の端子４３０のあらたな端子位置に決定されている。この図４−４に示したレイアウト情報４４０が最適化処理結果２１４に含まれる。また、レイアウト情報４４０を参照することで下位階層ブロックの端子情報やサイズ情報が得られ、最適化処理結果２１４に含まれることとなる。
【００７４】
また、図２において、階層レイアウト部２１０は、下位階層のレイアウトを実行するとともに、上位階層のレイアウトを実行する。具体的には、たとえば、最適化処理結果２１４に含まれている下位階層ブロックの端子情報やサイズ情報と、第１のネットリスト２１１とを用いて、下位階層ブロックごとに、配置配線処理をおこなうとともに、タイミング修正やデザインルール違反修正を実行する。これにより、タイミング情報や下位階層ブロック内部にセルが配置・配線されたあらたなレイアウト情報が得られる。
【００７５】
また、上位階層のレイアウトにおいては、最適化処理結果２１４に含まれている下位階層ブロックの端子情報やサイズ情報と、第１のネットリスト２１１（上位階層のモジュールに関する記述情報）と、下位階層レイアウトによって得られたタイミング情報やレイアウト情報とを用いて、上位階層の配置配線処理をおこなうとともに、タイミング修正やデザインルール違反修正を実行する。これにより、階層レイアウトが完了する。この上位階層レイアウト処理について具体的に説明する。
【００７６】
図４−５は、上位階層配線結果２１５を示す説明図である。図４−５において、最適化処理部２０９においてあらたな端子位置（第１のバウンダリポイントＰｂ，第２のバウンダリポイントＰｄ）に決定された端子４３０，４１０を結線すると、配線経路Ｌが得られる。このようにあらたな端子位置（第１のバウンダリポイントＰｂ，第２のバウンダリポイントＰｄ）による配線経路Ｌは、仮決定された端子位置から検出された仮配線経路Ｒ２よりも配線長が短くなる。これにより、迂回配線を抑制することができる。
【００７７】
なお、上述した取得部２０１、抽出部２０２、フロアプラン実行部２０３、仮配置処理実行部２０４、設定部２０５、ＣＴＳ処理部２０６、仮配線処理実行部２０７、仮決定部２０８、最適化処理部２０９、および階層レイアウト部２１０は、具体的には、たとえば、図１に示したＲＯＭ１０２，ＲＡＭ１０３，ＨＤ１０５などの記録媒体に記録されているプログラムを、ＣＰＵ１０１に実行させることによって、またはＩ／Ｆ１０９によって、その機能を実現する。
【００７８】
（階層設計レイアウト処理手順）
つぎに、この発明の実施の形態にかかる階層設計レイアウト装置２００の階層設計レイアウト処理手順について説明する。図５−１は、この発明の実施の形態にかかる階層設計レイアウト装置２００の階層設計レイアウト処理手順を示すフローチャートである。
【００７９】
図５−１において、まず、取得部２０１により、第１のネットリスト２１１を読み込むことで第１のネットリスト２１１を取得する（ステップＳ５０１）。つぎに、抽出部２０２により第１のネットリスト２１１から第２のネットリスト２１２を抽出する（ステップＳ５０２）。そして、フロアプラン実行部２０３により、フロアプランを実行する（ステップＳ５０３）。
【００８０】
つぎに、仮配置処理実行部２０４により、下位階層ブロック４０１，４０３内の境界のセル４１１，４１３について仮配置処理をおこない（ステップＳ５０４）、設定部２０５により配線禁止領域となる下位階層ブロック４０２を設定する（ステップＳ５０５）。そして、ＣＴＳ処理部２０６によりＣＴＳ処理、すなわち、クロック端子の端子位置をバウンダリ４１２，４３２に決定する（ステップＳ５０６）。
【００８１】
つぎに、仮配線処理実行部２０７により、一方の下位階層ブロック４０１内のセル４１１と他方の下位階層ブロック４３０のセル４３１との仮配線処理を実行する（ステップＳ５０７）。この仮配線処理では、配線禁止領域を迂回するように仮配線する。そして、仮決定部２０８により端子位置Ｘ，Ｙを仮決定する（ステップＳ５０８）。
【００８２】
つぎに、最適化処理部２０９により端子位置Ｘ，Ｙの最適化処理を実行する（ステップＳ５０９）。最後に、階層レイアウト部２１０により、下位階層ブロックごとのレイアウト処理を実行するとともに（ステップＳ５１０）、上位階層のレイアウト処理を実行する（ステップＳ５１１）。これにより、一連の処理を終了する。
【００８３】
（最適化処理手順）
つぎに、図５−１のステップＳ５０９に示した最適化処理手順について詳細に説明する。図５−２は、ステップＳ５０９に示した最適化処理手順を示すフローチャートである。まず、仮配線経路検出部２９１により、未処理のセル間仮配線経路があるか否かを判断し（ステップＳ５２１）、未処理のセル間仮配線経路がある場合（ステップＳ５２１：Ｙｅｓ）、第１の仮配線経路上ポイント検出部２９２により、一方の端子を基準端子に決定する（ステップＳ５２２）。
【００８４】
つぎに、仮配線経路上において、第１の仮配線経路上ポイント検出処理、すなわち、他方の下位階層ブロックから所定距離以内で、かつ一方の端子からの配線長が最短となる第１の仮配線上ポイントを検出する（ステップＳ５２３）。そして、第１のバウンダリポイント検出部２９３により、第１のバウンダリポイントを検出する（ステップＳ５２４）。
【００８５】
つぎに、第２の仮配線経路上ポイント検出部２９４により、第２の仮配線経路上ポイント検出処理、すなわち、仮配線経路上において、一方の下位階層ブロックから所定距離以内で、かつ第１の仮配線経路上ポイントからの配線長が最短となる第２の仮配線経路上ポイントを検出する（ステップＳ５２５）。そして、第２のバウンダリポイント検出部２９５により、第２のバウンダリポイントを検出する（ステップＳ５２６）。
【００８６】
つぎに、端子位置決定部２９６により、第１および第２のバウンダリポイントを端子アサイン候補に決定し（ステップＳ５２７）、第１および第２のバウンダリポイントに端子を配置することがデザインルールを遵守するか否かを判断する（ステップＳ５２８）。
【００８７】
デザインルール違反となると判断された場合（ステップＳ５２８：Ｎｏ）、ステップＳ５２２に戻る。一方、デザインルールを遵守すると判断された場合（ステップＳ５２８：Ｙｅｓ）、第１および第２のバウンダリポイントをあらたな端子位置に決定する（ステップＳ５２９）。そして、ステップＳ５２１に戻る。また、ステップＳ５２１において、未処理のセル間仮配線経路が検出されなかった場合（ステップＳ５２１：Ｎｏ）、図５−１に示したステップＳ５１０に移行する。
【００８８】
以上説明したように、従来技術では上位階層レイアウト時に、下位階層ブロックを跨ぐ配線が大きく迂回してしまう場合があったが、この発明の実施の形態によれば、このような迂回配線を抑制することができる。そのため、タイミングの悪化や消費電力の増加、デザインルールを遵守するためのバッファの追加を防止することができ、設計品質の向上と設計期間の短縮化を図ることができる。また、抽出部２０２により、仮配置処理や仮配線処理前に入力するデータ規模を縮小しているため、大規模データを扱う必要がなく、配置・配線精度の向上や設計時間の短縮化を図ることができる。
【００８９】
以上説明したように、階層設計レイアウト装置、階層設計レイアウト方法、および階層設計レイアウトプログラムによれば、端子位置を最適な位置に決定することにより、設計品質の向上および設計期間の短縮化を図ることができるという効果を奏する。
【００９０】
なお、本実施の形態で説明した階層設計レイアウト方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００９１】
（付記１）設計対象回路に関する一方の下位階層ブロックのバウンダリ上に端子位置が仮決定された一方の端子から他方の下位階層ブロックのバウンダリ上に端子位置が仮決定された他方の端子までの仮配線経路を検出する仮配線経路検出手段と、
前記仮配線経路検出手段によって検出された仮配線経路上において、前記一方の端子を基準とした場合、前記他方の下位階層ブロックから所定距離以内で、かつ前記一方の端子からの配線長が最短となる第１の仮配線上ポイントを検出する第１の仮配線経路上ポイント検出手段と、
前記第１の仮配線経路上ポイント検出手段によって検出された第１の仮配線経路上ポイントから前記他方の下位階層ブロックのバウンダリまでの距離が最短となる第１のバウンダリポイントを検出する第１のバウンダリポイント検出手段と、
前記仮配線経路上において、前記一方の下位階層ブロックから所定距離以内で、かつ前記第１の仮配線経路上ポイント検出手段によって検出された第１の仮配線経路上ポイントからの配線長が最短となる第２の仮配線経路上ポイントを検出する第２の仮配線経路上ポイント検出手段と、
前記第２の仮配線経路上ポイント検出手段によって検出された第２の仮配線経路上ポイントから前記一方の下位階層ブロックのバウンダリまでの距離が最短となる第２のバウンダリポイントを検出する第２のバウンダリポイント検出手段と、
前記第１および第２のバウンダリポイント検出手段によって検出された検出結果に基づいて、前記一方の端子のあらたな端子位置と前記他方の端子のあらたな端子位置を決定する端子位置決定手段と、
を備えることを特徴とする階層設計レイアウト装置。
【００９２】
（付記２）前記設計対象回路に関するネットリストを取得する取得手段と、
前記取得手段によって取得されたネットリストから前記下位階層ブロックの境界部に関するネットリストを抽出する抽出手段と、
前記抽出手段によって抽出されたネットリストを用いて、前記下位階層ブロックのフロアプランを実行するフロアプラン実行手段と、
前記フロアプラン実行手段によって実行された実行結果に基づいて、前記各下位階層ブロック内のセルに関する仮配置処理を実行する仮配置処理実行手段と、
前記仮配置処理実行手段によって仮配置処理された一方の下位階層ブロック内のセルと他方の下位階層ブロック内のセルとを結線する仮配線処理を実行する仮配線処理実行手段と、
前記仮配線処理実行手段によって得られたセル間仮配線経路上において、前記一方の下位階層ブロックのバウンダリ上に前記一方の端子の端子位置を仮決定するとともに、前記他方の下位階層ブロックのバウンダリ上に前記他方の端子の端子位置を仮決定する仮決定手段と、を備え、
前記仮配線経路検出手段は、
前記仮決定手段によって仮決定された仮決定結果に基づいて、前記仮配線経路を検出することを特徴とする付記１に記載の階層設計レイアウト装置。
【００９３】
（付記３）前記一方の下位階層ブロックおよび前記他方の下位階層ブロック以外の別の下位階層ブロックの配置領域を配線禁止領域に設定する設定手段を備え、
前記仮配線処理実行手段は、
前記設定手段によって設定された配線禁止領域を迂回するように、前記仮配置処理実行手段によって仮配置された一方の下位階層ブロック内のセルと他方の下位階層ブロック内のセルとを結線する仮配線処理を実行し、
前記仮決定手段は、
前記仮配線処理実行手段によって得られた前記配線禁止領域を迂回するセル間仮配線経路上において、前記一方の下位階層ブロックのバウンダリ上に前記一方の端子の端子位置を仮決定するとともに、前記他方の下位階層ブロックのバウンダリ上に前記他方の端子の端子位置を仮決定することを特徴とする付記２に記載の階層設計レイアウト装置。
【００９４】
（付記４）前記設計対象回路に関するネットリストを取得する取得手段と、
前記取得手段によって取得されたネットリストを用いて、前記各下位階層ブロックのフロアプランを実行するフロアプラン実行手段と、
前記フロアプラン実行手段によって実行された実行結果に基づいて、一方の下位階層ブロックおよび他方の下位階層ブロック内のセルに関する仮配置処理を実行する仮配置処理実行手段と、
前記一方の下位階層ブロックおよび前記他方の下位階層ブロック以外の別の下位階層ブロックの配置領域を配線禁止領域に設定する設定手段と、
前記設定手段によって設定された配線禁止領域を迂回するように、前記仮配置処理実行手段によって仮配置された一方の下位階層ブロック内のセルと他方の下位階層ブロック内のセルとを結線する仮配線処理を実行する仮配線処理実行手段と、
前記仮配線処理実行手段によって得られた前記配線禁止領域を迂回するセル間仮配線経路上において、前記一方の下位階層ブロックのバウンダリ上に前記一方の端子の端子位置を仮決定するとともに、前記他方の下位階層ブロックのバウンダリ上に前記他方の端子の端子位置を仮決定する仮決定手段と、を備え、
前記仮配線経路検出手段は、
前記仮決定手段によって仮決定された仮決定結果に基づいて、前記仮配線経路を検出することを特徴とする付記１に記載の階層設計レイアウト装置。
【００９５】
（付記５）前記下位階層ブロックのバウンダリ上にクロック端子の端子位置を決定するクロック端子位置決定手段を備え、
前記端子位置決定手段は、
前記クロック端子位置決定手段によって決定されたクロック端子の端子位置と重ならないように、前記第２のバウンダリポイントを前記一方の端子の端子位置に決定するとともに、前記第１のバウンダリポイントを前記他方の端子の端子位置に決定することを特徴とする付記１〜４のいずれか一つに記載の階層設計レイアウト装置。
【００９６】
（付記６）前記設計対象回路に関するネットリストを取得する取得手段と、
前記取得手段によって取得されたネットリストから前記下位階層ブロックの境界部に関するネットリストを抽出する抽出手段と、
前記抽出手段によって抽出されたネットリストを用いて、前記下位階層ブロックのフロアプランを実行するフロアプラン実行手段と、
前記フロアプラン実行手段によって実行された実行結果に基づいて、前記各下位階層ブロック内のセルに関する仮配置処理を実行する仮配置処理実行手段と、
前記仮配置処理実行手段によって仮配置された一方の下位階層ブロック内のセルと他方の下位階層ブロック内のセルとを結線する仮配線処理を実行する仮配線処理実行手段と、
を備えることを特徴とする階層設計レイアウト装置。
【００９７】
（付記７）設計対象回路に関する一方の下位階層ブロックのバウンダリ上に端子位置が仮決定された一方の端子から他方の下位階層ブロックのバウンダリ上に端子位置が仮決定された他方の端子までの仮配線経路を検出する仮配線経路検出工程と、
前記仮配線経路検出工程によって検出された仮配線経路上において、前記一方の端子を基準とした場合、前記他方の下位階層ブロックから所定距離以内で、かつ前記一方の端子からの配線長が最短となる第１の仮配線上ポイントを検出する第１の仮配線経路上ポイント検出工程と、
前記第１の仮配線経路上ポイント検出工程によって検出された第１の仮配線経路上ポイントから前記他方の下位階層ブロックのバウンダリまでの距離が最短となる第１のバウンダリポイントを検出する第１のバウンダリポイント検出工程と、
前記仮配線経路上において、前記一方の下位階層ブロックから所定距離以内で、かつ前記第１の仮配線経路上ポイント検出工程によって検出された第１の仮配線経路上ポイントからの配線長が最短となる第２の仮配線経路上ポイントを検出する第２の仮配線経路上ポイント検出工程と、
前記第２の仮配線経路上ポイント検出工程によって検出された第２の仮配線経路上ポイントから前記一方の下位階層ブロックのバウンダリまでの距離が最短となる第２のバウンダリポイントを検出する第２のバウンダリポイント検出工程と、
前記第１および第２のバウンダリポイント検出工程によって検出された検出結果に基づいて、前記一方の端子のあらたな端子位置と前記他方の端子のあらたな端子位置を決定する端子位置決定工程と、
を含んだことを特徴とする階層設計レイアウト方法。
【００９８】
（付記８）前記設計対象回路に関するネットリストを取得する取得工程と、
前記取得工程によって取得されたネットリストから前記下位階層ブロックの境界部に関するネットリストを抽出する抽出工程と、
前記抽出工程によって抽出されたネットリストを用いて、前記下位階層ブロックのフロアプランを実行するフロアプラン実行工程と、
前記フロアプラン実行工程によって実行された実行結果に基づいて、前記各下位階層ブロック内のセルに関する仮配置処理を実行する仮配置処理実行工程と、
前記仮配置処理実行工程によって仮配置された一方の下位階層ブロック内のセルと他方の下位階層ブロック内のセルとを結線する仮配線処理を実行する仮配線処理実行工程と、
を含んだことを特徴とする階層設計レイアウト方法。
【００９９】
（付記９）設計対象回路に関する一方の下位階層ブロックのバウンダリ上に端子位置が仮決定された一方の端子から他方の下位階層ブロックのバウンダリ上に端子位置が仮決定された他方の端子までの仮配線経路を検出させる仮配線経路検出工程と、
前記仮配線経路検出工程によって検出された仮配線経路上において、前記一方の端子を基準とした場合、前記他方の下位階層ブロックから所定距離以内で、かつ前記一方の端子からの配線長が最短となる第１の仮配線上ポイントを検出させる第１の仮配線経路上ポイント検出工程と、
前記第１の仮配線経路上ポイント検出工程によって検出された第１の仮配線経路上ポイントから前記他方の下位階層ブロックのバウンダリまでの距離が最短となる第１のバウンダリポイントを検出させる第１のバウンダリポイント検出工程と、
前記仮配線経路上において、前記一方の下位階層ブロックから所定距離以内で、かつ前記第１の仮配線経路上ポイント検出工程によって検出された第１の仮配線経路上ポイントからの配線長が最短となる第２の仮配線経路上ポイントを検出させる第２の仮配線経路上ポイント検出工程と、
前記第２の仮配線経路上ポイント検出工程によって検出された第２の仮配線経路上ポイントから前記一方の下位階層ブロックのバウンダリまでの距離が最短となる第２のバウンダリポイントを検出させる第２のバウンダリポイント検出工程と、
前記第１および第２のバウンダリポイント検出工程によって検出された検出結果に基づいて、前記一方の端子のあらたな端子位置と前記他方の端子のあらたな端子位置を決定させる端子位置決定工程と、
をコンピュータに実行させることを特徴とする階層設計レイアウトプログラム。
【０１００】
（付記１０）前記設計対象回路に関するネットリストを取得させる取得工程と、
前記取得工程によって取得されたネットリストから前記下位階層ブロックの境界部に関するネットリストを抽出させる抽出工程と、
前記抽出工程によって抽出されたネットリストを用いて、前記下位階層ブロックのフロアプランを実行させるフロアプラン実行工程と、
前記フロアプラン実行工程によって実行された実行結果に基づいて、前記各下位階層ブロック内のセルに関する仮配置処理を実行させる仮配置処理実行工程と、
前記仮配置処理実行工程によって仮配置された一方の下位階層ブロック内のセルと他方の下位階層ブロック内のセルとを結線する仮配線処理を実行させる仮配線処理実行工程と、
をコンピュータに実行させることを特徴とする階層設計レイアウトプログラム。
【０１０１】
（付記１１）付記９または付記１０に記載の階層設計レイアウトプログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【産業上の利用可能性】
【０１０２】
以上のように、本発明にかかる階層設計レイアウト装置、階層設計レイアウト方法、および階層設計レイアウトプログラム、および該プログラムを記録した記録媒体は、ＬＳＩの階層設計レイアウトに有用であり、特に、大規模なＬＳＩの階層設計レイアウトに適している。
【図面の簡単な説明】
【０１０３】
【図１】この発明の実施の形態にかかる階層設計レイアウト装置のハードウェア構成を示すブロック図である。
【図２】この発明の実施の形態にかかる階層設計レイアウト装置の機能的構成を示すブロック図である。
【図３】抽出部による抽出処理を模式的に示した説明図である。
【図４−１】仮決定部による仮決定処理後におけるレイアウト情報の一例を示す説明図である。
【図４−２】第１の仮配線経路上ポイント検出部による検出処理を示す説明図である。
【図４−３】第２の仮配線経路上ポイント検出部による検出処理を示す説明図である。
【図４−４】端子位置決定部による決定処理結果を示す説明図である。
【図４−５】上位階層配線結果を示す説明図である。
【図５−１】この発明の実施の形態にかかる階層設計レイアウト装置の階層設計レイアウト処理手順を示すフローチャートである。
【図５−２】ステップＳ５０９に示した最適化処理手順を示すフローチャートである。
【図６】従来技術における端子アサイン結果の一例を示す説明図である。
【図７】従来技術における端子アサイン結果の他の例を示す説明図である。
【符号の説明】
【０１０４】
２００  階層設計レイアウト装置
２０１  取得部
２０２  抽出部
２０３  フロアプラン実行部
２０４  仮配置処理実行部
２０５  設定部
２０６  ＣＴＳ処理部
２０７  仮配線処理実行部
２０８  仮決定部
２０９  最適化処理部
２１０  階層レイアウト部
２１１  第１のネットリスト
２１２  第２のネットリスト
２１３  レイアウト情報
２１４  最適化処理結果
２１５  上位階層配線結果
２９１  仮配線経路検出部
２９２  第１の仮配線経路上ポイント検出部
２９３  第１のバウンダリポイント検出部
２９４  第２の仮配線経路上ポイント検出部
２９５  第２のバウンダリポイント検出部
２９６  端子位置決定部
【図１】
2008009787.tif 000003
【図２】
2008009787.tif 000004
【図３】
2008009787.tif 000005
【図４−１】
2008009787.tif 000006
【図４−２】
2008009787.tif 000007
【図４−３】
2008009787.tif 000008
【図４−４】
2008009787.tif 000009
【図４−５】
2008009787.tif 000010
【図５−１】
2008009787.tif 000011
【図５−２】
2008009787.tif 000012
【図６】
2008009787.tif 000013
【図７】
2008009787.tif 000014