(57)【特許請求の範囲】
【請求項１】
半導体集積回路をレイアウトするためのネットリストを入力する入力装置、
を具備し、
前記ネットリストは、
座標領域に配置された複数の端子と、
前記複数の端子のうちの第１端子と第２端子間に配置されたＭ個の経路（Ｍは１以上の整数）と、
前記Ｍ個の経路の各々に配置されたＮ個の順序回路（Ｎは０以上の整数）と、
前記Ｍ個の経路の各々に配置されたｍ個の論理ゲート素子（ｍは０以上の整数）と、
を含み、
前記Ｍ個の経路における順序回路数Ｎ、論理ゲート素子数ｍは各々異なり、
更に、
前記Ｍ個の経路の中から、前記順序回路数Ｎが最も小さい経路を選択経路として検索する最短経路検索処理を実行する端子間経路検索部と、
前記第１端子、前記第２端子及び前記選択経路を表すラッツネストと、前記選択経路に対する前記論理ゲート素子数ｍ、及び、前記選択経路に対する前記順序回路数Ｎである最小順序回路数を表す文字列とを生成するラッツネスト生成部と、
前記ラッツネストと前記文字列とを対応付けて表示装置に表示するラッツネスト表示制御部と、
を具備する半導体集積回路のフロアプラン編集装置。
【請求項２】
前記Ｍ個の経路の各々は、
前記第１端子と前記Ｎ個の順序回路のうちの１番目の順序回路（Ｎが１以上である場合）との間に前記ｍ個の論理ゲート素子のうちのｘ個の論理ゲート素子（ｘはｘ＜ｍを満たす整数）が配置されたＸ個の始点部分経路（Ｘは１以上の整数）と、
前記Ｎ個の順序回路のうちのＪ番目の順序回路｛Ｎが２以上である場合、Ｊは、１≦Ｊ≦（Ｎ−１）を満たす整数｝と（Ｊ＋１）番目の順序回路との間に前記ｍ個の論理ゲート素子のうちのｙ個の論理ゲート素子（ｙはｙ＜ｍを満たす整数）が配置されたＹ個の中間部分経路（Ｙは１以上の整数）と、
前記Ｎ個の順序回路のうちのＮ番目の順序回路（Ｎが１以上である場合）と前記第２端子との間に前記ｍ個の論理ゲート素子のうちのｚ個の論理ゲート素子（ｚはｚ＜ｍを満たす整数）が配置されたＺ個の終点部分経路（Ｚは１以上の整数）と、
を含み、
前記Ｍ個の経路における部分論理ゲート素子数ｘ、ｙ、ｚは各々異なり、
更に、
前記Ｍ個の経路の各々に対して、前記Ｘ個の始点部分経路、前記Ｙ個の中間部分経路、前記Ｚ個の終点部分経路の中から、それぞれ、前記部分論理ゲート素子数ｘ、ｙ、ｚが最も大きい部分経路を選択始点経路、選択中間経路、選択終点経路として検索する最長経路検索処理を実行する部分経路検索部、
を具備し、
前記ラッツネスト生成部は、
前記第１端子、前記第２端子及び前記選択経路を表すラッツネストと、前記選択経路の前記選択始点経路、前記選択中間経路、前記選択終点経路のそれぞれに対する部分論理ゲート素子数ｘ、ｙ、ｚの合計値である前記論理ゲート素子数ｍ、及び、前記選択経路に対する前記順序回路数Ｎである前記最小順序回路数を表す文字列とを生成する
請求項１に記載の半導体集積回路のフロアプラン編集装置。
【請求項３】
更に、
前記入力装置により入力された前記ネットリストが格納される接続情報記憶部と、
部分接続情報記憶部と、
を具備し、
前記部分経路検索部は、
前記接続情報記憶部を参照して、前記Ｍ個の経路の各々に対して、前記最長経路検索処理を実行し、
前記Ｍ個の経路の各々の前記選択始点経路、前記選択中間経路、前記選択終点経路と、それに対応する論理ゲート素子数ｘ、ｙ、ｚとを前記部分接続情報記憶部に格納し、
前記端子間経路検索部は、
前記部分接続情報記憶部を参照して、前記最短経路検索処理を実行する
請求項２に記載の半導体集積回路のフロアプラン編集装置。
【請求項４】
更に、
配置距離指標記憶部、
を具備し、
前記端子間経路検索部は、
前記最短経路検索処理を実行した後、前記選択経路と、前記選択経路に対する前記論理ゲート素子数ｍと、前記選択経路に対する前記最小順序回路数とを前記配置距離指標記憶部に格納し、
前記ラッツネスト生成部は、
前記接続情報記憶部と前記配置距離指標記憶部とを参照して、前記ラッツネストと前記文字列とを生成する
請求項３に記載の半導体集積回路のフロアプラン編集装置。
【請求項５】
前記入力装置は、前記第２端子に対するラッツネスト表示要求を入力し、
前記ラッツネスト生成部は、前記ラッツネスト表示要求に応じて、前記ラッツネストと前記文字列とを生成する
請求項１〜４のいずれかに記載の半導体集積回路のフロアプラン編集装置。
【請求項６】
前記半導体集積回路は、
チップに設けられ、接続端子を有する階層モジュールと、
前記チップ又は前記階層モジュールに設けられ、接続端子を有するハードマクロと、
を具備し、
前記複数の端子の各々は、前記階層モジュールの接続端子、前記ハードマクロの接続端子のいずれかを表している
請求項１〜５のいずれかに記載の半導体集積回路のフロアプラン編集装置。
【請求項７】
前記Ｎ個の順序回路は、フリップフロップである
請求項１〜６のいずれかに記載の半導体集積回路のフロアプラン編集装置。
【請求項８】
前記Ｎ個の順序回路は、ラッチ回路である
請求項１〜６のいずれかに記載の半導体集積回路のフロアプラン編集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のフロアプラン編集装置（以下、フロアプラン編集装置）に関する。
【背景技術】
【０００２】
半導体集積回路のレイアウト設計においては、フロアプランという作業が行われる。フロアプランとは、設計者が、半導体集積回路に含まれる部品（論理ゲート素子や順序回路）の配置を決定するに先立って、コンピュータのグラフィカルインターフェース（ＧＵＩ）を利用し、半導体集積回路の一部分である階層モジュールとその端子や、ハードマクロとその端子等の主要な部品の配置を対話的に決定するこという。また、このような作業を支援する装置をフロアプラン編集装置という。
【０００３】
設計者が、フロアプラン編集装置を用いて半導体集積回路をレイアウトするときに、フロアプラン編集装置では、半導体集積回路のフロアプランを行う。このフロアプランの工程では、階層モジュールの端部において階層モジュール間の配線の本数が多すぎて後の配線工程で階層モジュールに対して配線不可能になったり、配線の距離が遠すぎて信号を伝達するときの遅延時間が大きすぎたりしまわないように、階層モジュールの形状、配置と端子の位置を決定する。また、ある階層モジュールの端子やハードマクロの端子が接続先のハードマクロの端子に近すぎて後の配線工程で配線の混雑により配線不可能になったり、配線の距離が遠すぎて無駄な空間ができてしまったりすることのないように、ハードマクロの配置と階層モジュール端子の位置を決定したり、ハードマクロ間の距離を決定したりする。
【０００４】
このように、フロアプラン編集装置では、階層モジュールやハードマクロの接続関係、配線本数、配線の距離等を設計者にとって視覚的に分かりやすくさせるものである。このフロアプラン編集装置では、階層モジュール端子間、階層モジュールとハードマクロの端子間、ハードマクロ端子間などの接続関係、配線本数、配線の距離等を表す回路接続情報（ネットネスト）を基に、端子間のうちの一方の端子、他方の端子と、端子間の配線（経路）と、を表す表示データを表示する。表示データの経路は、直線等の線分により表示される。このような表示データは、ラッツネストもしくはフライラインと呼ばれ、ラッツネストの表示については、例えば、非特許文献１に記載されている。
【０００５】
また、半導体集積回路の端子間（特に、階層モジュールとハードマクロの端子間、ハードマクロ端子間の場合）は、経路に配置された複数の論理ゲート素子や複数の順序回路を介して接続されていることが多い。そこで、特許文献１に記載された技術では、端子間の経路に論理ゲート素子や順序回路が１つ以上配置されている場合に、端子間のうちの一方の端子、他方の端子と、経路と、素子とを表すラッツネストを表示している。
【０００６】
設計者は、階層モジュール、ハードマクロをチップに配置するための適切な位置を検討する場合、端子間に信号を伝達するときの遅延を考慮しなければならない。例えば、設計者は、端子間の遅延が１クロックサイクルに収まるか否かを考慮した上で、階層モジュール、ハードマクロの端子がチップに配置される適切な位置を検討したい。しかしながら、設計者が、フロアプラン編集装置を用いて半導体集積回路をレイアウトするときに、フロアプラン編集装置は、ラッツネストを表示するだけである。このため、ラッツネストが表示されたときに、階層モジュール、ハードマクロの端子がチップに配置される適切な位置を検討できることが望まれる。
【０００７】
フロアプランに関連する技術について紹介する。
【０００８】
上記の特許文献１として、特開２００６−２９３７０１号公報には、ネット表示プログラムが開示されている。ネット表示プログラムは、基板に搭載する部品間の接続を表示するものである。このネット表示プログラムは、コンピュータに、画面に表示した部品の中から指定された複数個の部品を受け付ける指定受付手順と、前記指定された部品の内の任意の１つの部品を第１の部品として、該第１の部品の端子に接続する信号線に対して、電気信号が伝搬する方向、又は伝搬される方向に接続先を追跡する信号線追跡手順と、前記第１の部品以外の指定された部品を第２の部品として、該第２の部品の端子が前記追跡した信号線の接続先に含まれるとき、該第１と該第２の部品の端子間を接続線で結び、該接続線を表示する接続線表示手順と、を実行させることを特徴としている。
【０００９】
特開２００６−３０１９６１号公報には、自動フロアプラン手法が開示されている（特許文献２）。自動フロアプラン手法は、少なくともブロック境界の入力及び出力情報を有し、予め形状と面積を設定した１つ以上のブラックボックスブロックと、ブロック境界の入力及び出力情報だけでなくブロック内部の構成要素とそれらの接続情報をも有する１つ以上のホワイトボックスブロックとで構成された半導体集積回路の階層型レイアウト設計において、階層構造を展開し配置したフラット配置の結果情報を基にしてブロックの形状や面積を決定するものである。この自動フロアプラン手法は、前記ブラックボックスブロックのコア領域として前記ブラックボックスブロックの内部に多角形又は円形又は楕円形を設定し、前記ブラックボックスブロックと、階層展開されたホワイトボックスブロック内部の構成要素との配置位置の重複を前記コア領域以外に対して許可して前記フラット配置を行う第１のステップと、前記ブラックボックスブロックと前記ホワイトボックスブロック内部の構成要素との配置位置の重複を確認する第２のステップと、前記重複の状況に応じて前記ブラックボックスブロックの形状及び面積を予め設定したものから変更する第３のステップと、を備え、設定した条件を満たすまで前記第１〜第３のステップを順番に繰り返すことを特徴としている。
【００１０】
特開平１１−２１３０２９号公報には、レジスタ転送レベル論理記述ハードウェア性能評価装置が開示されている（特許文献３）。レジスタ転送レベル論理記述ハードウェア性能評価装置は、レジスタ転送レベル論理記述を入力してＬＳＩハードウェア性能を予測評価するものである。この装置は、前記論理記述に基づき、各ブロックの大きさとブロック間の相対位置関係を決定するブロック面積推定手段と、前記ブロック間の相対位置関係情報に基づき、３次元的な容量を考慮したネットディレイを求めるパスディレイ計算手段と、消費電力を計算する消費電力計算手段と、複数のレジスタ転送レベル論理記述に対する上記各手段による評価値のトレードオフを表示する方式間評価手段とを備えたことを特徴としている。
【００１１】
特開平１０−３４０２９１号公報には、論理シミュレーション用モデルの作成方法が開示されている（特許文献４）。論理シミュレーション用モデルの作成方法は、検証済みの論理回路情報より論理ブロックを抽出し前記論理ブロックの論理を最適化する論理合成手段と、前記論理回路情報からタイミング情報を抽出する遅延情報作成手段と、を備え、モデル作成時点で組み合わせ回路、及び順序素子の接続関係に基づき、かつ非同期ループも考慮して、素子の演算順序を決定することにより、冗長な処理を消去し、高速なシミュレーションを可能としたことを特徴としている。
【００１２】
特開２００３−２２３４７９号公報には、回路設計装置が開示されている（特許文献５）。回路設計装置は、設計対象回路についての論理設計を行う論理設計部と、該論理設計部による論理設計結果に基づいてセルの配置を行う配置部と、該配置部により配置された該セルの相互間の配線を行う配線部と、該配置部による配置結果もしくは該配線部による配線結果に対して１以上のトレース開始ピンからパストレースを行うパストレース部と、該パストレース部によるパストレースが行われるときに、該１以上のトレース開始ピンから、パスが通過した配置対象セルの各ピンまでの積算ディレイ値の最大値又は最小値を算出するディレイ値算出部と、該論理設計部による論理設計後に、設計対象の全てのセルに単位ディレイ値を割り付けるとともに該セルの相互間の全てのネットにディレイ値として０を割り付けた状態で、該論理設計部による論理設計結果に対して該パストレース部によるパストレースを行いながら該ディレイ値算出部により積算ディレイ値の最大値又は最小値を算出させ、その積算ディレイ値の最大値又は最小値に基づいて、該設計対象回路における順序回路セル間もしくは入出力ピンと順序回路セルとの間のゲート段数を算出するゲート段数算出部と、を備えたことを特徴としている。
【００１３】
特開２００５−２２８１２４号公報には、半導体集積回路設計における階層ブロック生成方法が開示されている（特許文献６）。半導体集積回路設計における階層ブロック生成方法は、コンピュータを用いて、半導体集積回路の論理階層情報を保持した回路情報から複数の階層ブロックを生成するものである。この階層ブロック生成方法は、前記半導体集積回路の論理階層情報を保持した回路情報を入力し、この入力した回路情報から前記半導体集積回路の各論理階層について回路構造を抽出する回路構造抽出工程と、前記抽出された各論理階層の回路構造に基づいて前記各論理階層を併合して複数の階層ブロックを生成し、この生成した階層ブロックの構造を出力する階層ブロック生成工程と、を有することを特徴としている。
【００１４】
【非特許文献１】マグマ・デザイン・オートメーション社発行「ブラストプランプロ」カタログ第２頁、［ｏｎｌｉｎｅ］、２００５年、［平成１９年６月２５日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｍａｇｍａ−ｄａ．ｃｏ．ｊｐ／ｐｒｏｄｕｃｔ／ｉｍａｇｅ＿ｐｒ／ＰＤＦ／ＰｌａｎＰｒｏ２００５０６．ｐｄｆ＞
【特許文献１】特開２００６−２９３７０１号公報
【特許文献２】特開２００６−３０１９６１号公報
【特許文献３】特開平１１−２１３０２９号公報
【特許文献４】特開平１０−３４０２９１号公報
【特許文献５】特開２００３−２２３４７９号公報
【特許文献６】特開２００５−２２８１２４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
本発明の課題は、ラッツネストが表示されたときに、階層モジュール、ハードマクロの端子がチップに配置される適切な位置を検討することができる半導体集積回路のフロアプラン編集装置を提供することにある。
【課題を解決するための手段】
【００１６】
本発明の半導体集積回路のフロアプラン編集装置は、半導体集積回路をレイアウトするためのネットリストを入力する入力装置、を具備している。
前記ネットリストは、座標領域に配置された複数の端子と、前記複数の端子のうちの第１端子と第２端子間に配置されたＭ個の経路（Ｍは１以上の整数）と、前記Ｍ個の経路の各々に配置されたＮ個の順序回路（Ｎは０以上の整数）と、前記Ｍ個の経路の各々に配置されたｍ個の論理ゲート素子（ｍは０以上の整数）と、を含んでいる。
前記Ｍ個の経路における順序回路数Ｎ、論理ゲート素子数ｍは各々異なる。
本発明の半導体集積回路のフロアプラン編集装置は、更に、端子間経路検索部と、ラッツネスト生成部と、ラッツネスト表示制御部と、を具備している。
前記端子間経路検索部は、前記Ｍ個の経路の中から、前記順序回路数Ｎが最も小さい経路を選択経路として検索する最短経路検索処理を実行する。
前記ラッツネスト生成部は、前記第１端子、前記第２端子及び前記選択経路を表すラッツネストと、前記選択経路に対する前記論理ゲート素子数ｍ、及び、前記選択経路に対する前記順序回路数Ｎである最小順序回路数を表す文字列とを生成する。
前記ラッツネスト表示制御部は、前記ラッツネストと前記文字列とを対応付けて表示装置に表示する。
【発明の効果】
【００１７】
設計者は、階層モジュール、ハードマクロをチップに配置するための適切な位置を検討する場合、端子間に信号を伝達するときの遅延を考慮しなければならない。例えば、設計者は、端子間の遅延が１クロックサイクルに収まるか否かを考慮した上で、階層モジュール、ハードマクロの端子がチップに配置される適切な位置を検討したい。
【００１８】
そこで、本発明のフロアプラン編集装置では、最短経路検索処理を実行することにより、Ｍ個の経路の中から、順序回路数Ｎが最も小さい経路を選択経路として検索する。その結果、ラッツネスト（第１端子、第２端子及び選択経路）と、文字列（論理ゲート素子数ｍ、最小順序回路数Ｎ）とを表示装置に表示する。例えば、選択経路に順序回路が存在しない場合、設計者は、端子間の遅延を１クロックサイクル未満に収める必要がある。例えば、選択経路に順序回路が１つ存在する場合、設計者は、第１端子又は第２端子と順序回路間の遅延を１クロックサイクル未満に収める必要がある。このように、本発明のフロアプラン編集装置では、ラッツネストと文字列とが表示されたときに、設計者は、最も小さい順序回路数Ｎにより、端子間の遅延とクロックサイクルとを考慮することができる。このため、本発明のフロアプラン編集装置では、階層モジュール、ハードマクロがチップに配置される適切な位置を検討することができる。
【発明を実施するための最良の形態】
【００１９】
以下に添付図面を参照して、本発明の半導体集積回路のフロアプラン編集装置について詳細に説明する。
【００２０】
［構成］
図１は、本発明の半導体集積回路のフロアプラン編集装置（以下、本発明のフロアプラン編集装置）の構成を示している。本発明のフロアプラン編集装置は、コンピュータであり、入力装置３０１と、データ処理装置３０２と、記憶装置３０３と、表示装置３０４と、を具備している。
【００２１】
入力装置３０１としては、キーボードやポインティングデバイス（マウス）等が例示される。
【００２２】
データ処理装置３０２は、コンピュータプログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。コンピュータプログラムは、入力制御部３０２１と、検索部３０２２と、ラッツネスト生成部３０２３と、ラッツネスト表示制御部３０２４と、を含んでいる。検索部３０２２は、部分経路検索部３０２２１と、端子間経路検索部３０２２２と、を含んでいる。
【００２３】
記憶装置３０３は、接続情報記憶部３０３１と、部分接続情報記憶部３０３２と、配置距離指標記憶部３０３３と、上記のコンピュータプログラムと、を備えている。
【００２４】
入力装置３０１は、設計者の操作により、半導体集積回路をレイアウトするための回路接続情報（ネットリスト）を入力し、入力制御部３０２１に出力する。入力制御部３０２１は、そのネットリストを接続情報記憶部３０３１に格納する。
【００２５】
ネットリストは、座標領域に配置された複数の端子と、Ｍ個の経路（Ｍは１以上の整数）と、Ｍ個の経路の各々に配置されたＮ個の順序回路（Ｎは０以上の整数）と、Ｍ個の経路の各々に配置されたｍ個の論理ゲート素子（ｍは０以上の整数）と、を含んでいる。
【００２６】
Ｍ個の経路は、複数の端子のうちの第１端子と第２端子間に配置されている。Ｎ個の順序回路としては、フリップフロップやラッチ回路が挙げられる。以下、Ｎ個の順序回路をフリップフロップと称する。ｍ個の論理ゲート素子としては、ＡＮＤ回路、ＯＲ回路、ＮＡＮＤ回路、ＮＯＲ回路、ＮＯＴ回路等が挙げられる。ここで、Ｍ個の経路におけるフリップフロップ数Ｎ、論理ゲート素子数ｍは各々異なる。
【００２７】
Ｍ個の経路の各々は、Ｘ個の始点部分経路（Ｘは１以上の整数）と、Ｙ個の中間部分経路（Ｙは１以上の整数）と、Ｚ個の終点部分経路（Ｚは１以上の整数）と、を含んでいる。Ｘ個の始点部分経路は、第１端子とＮ個の順序回路のうちの１番目のフリップフロップ（Ｎが１以上である場合）との間に、ｍ個の論理ゲート素子のうちのｘ個の論理ゲート素子（ｘはｘ＜ｍを満たす整数）が配置されている。Ｙ個の中間部分経路は、Ｎ個の順序回路のうちのＪ番目のフリップフロップ｛Ｎが２以上である場合、Ｊは、１≦Ｊ≦（Ｎ−１）を満たす整数｝と（Ｊ＋１）番目のフリップフロップとの間に、ｍ個の論理ゲート素子のうちのｙ個の論理ゲート素子（ｙはｙ＜ｍを満たす整数）が配置されている。Ｚ個の終点部分経路は、Ｎ個の順序回路のうちのＮ番目のフリップフロップ（Ｎが１以上である場合）と第２端子との間に、ｍ個の論理ゲート素子のうちのｚ個の論理ゲート素子（ｚはｚ＜ｍを満たす整数）が配置されている。ここで、Ｍ個の経路における論理ゲート素子数（部分論理ゲート素子数とする）ｘ、ｙ、ｚは各々異なる。
【００２８】
部分経路検索部３０２２１は、接続情報記憶部３０３１を参照して、Ｍ個の経路の各々に対して、Ｘ個の始点部分経路、Ｙ個の中間部分経路、Ｚ個の終点部分経路の中から、それぞれ、部分論理ゲート素子数ｘ、ｙ、ｚが最も大きい部分経路を選択始点経路、選択中間経路、選択終点経路として検索する最長経路検索処理を実行する。部分経路内の論理ゲート素子数が多ければ多いほど、その部分経路も長くなるので、選択始点経路、選択中間経路、選択終点経路は、最長経路として検索される。その後、部分経路検索部３０２２１は、Ｍ個の経路の各々の選択始点経路、選択中間経路、選択終点経路と、それに対応する部分論理ゲート素子数ｘ、ｙ、ｚとを部分接続情報記憶部３０３２に格納する。
【００２９】
端子間経路検索部３０２２２は、部分接続情報記憶部３０３２を参照して、Ｍ個の経路の中から、フリップフロップ数Ｎが最も小さい経路を選択経路として検索する最短経路検索処理を実行する。経路内のフリップフロップ数が少なければ少ないほど、その経路における処理時間が短くなるので、選択経路は、最短経路として検索される。その後、端子間経路検索部３０２２２は、選択経路と、選択経路に含まれる選択始点経路、選択中間経路、選択終点経路のそれぞれに対する部分論理ゲート素子数ｘ、ｙ、ｚの合計値である論理ゲート素子数ｍと、選択経路に対するフリップフロップ数Ｎである最小フリップフロップ数と、を配置距離指標記憶部３０３３に格納する。
【００３０】
入力装置３０１は、設計者により指定される第２端子に対するラッツネスト表示要求を入力したものとする。ラッツネスト生成部３０２３は、ラッツネスト表示要求に応じて、接続情報記憶部３０３１と配置距離指標記憶部３０３３とを参照して、第１端子、第２端子及び選択経路を表すラッツネストと、選択経路に対する論理ゲート素子数ｍ及び選択経路に対する最小フリップフロップ数Ｎを表す文字列とを生成する。ラッツネスト表示制御部３０２４は、ラッツネストと文字列とを対応付けて表示装置３０４に表示する。ラッツネストの選択経路は、第１端子と第２端子間を結ぶ線として表示装置３０４に表示される。
【００３１】
［動作］
図２は、本発明のフロアプラン編集装置の動作を示すフローチャートである。
【００３２】
設計者は、本発明のフロアプラン編集装置を用いることにより、半導体集積回路をレイアウトする。図３は、本発明のフロアプラン編集装置を用いることによりレイアウトされる半導体集積回路を示している。半導体集積回路は、接続端子１０３を有する階層モジュール１０２と、接続端子１０５を有するハードマクロ１０４と、を具備している。階層モジュール１０２は、チップ１０１に設けられている。ハードマクロ１０４は、チップ１０１又は階層モジュール１０２に設けられている。
【００３３】
入力装置３０１は、設計者の操作により、半導体集積回路をレイアウトするためのネットリストを入力し、入力制御部３０２１に出力する（ステップＳ１）。このとき、入力制御部３０２１は、入力装置３０１からのネットリストを接続情報記憶部３０３１に格納する接続情報記憶処理を実行する（ステップＳ２）。
【００３４】
図４Ａは、接続情報記憶処理が実行されたときのネットリストを示す模式図である。図４Ｂは、接続情報記憶部３０３１に格納されるネットリストを示している。
【００３５】
上述のように、ネットリストは、座標領域に配置された複数の端子Ｔ０１〜Ｔ０３を含んでいる。複数の端子Ｔ０１〜Ｔ０３の各々は、階層モジュール１０２の接続端子１０３、ハードマクロ１０４の接続端子１０５のいずれかを表している。
【００３６】
上述のように、ネットリストは、更に、Ｍ個の経路（この場合、Ｍは３とする）を含んでいる。３個の経路をそれぞれ経路（５０４）（５０５、５０６、５０７、５０８）（５０９、５１０、５１１）とする。経路（５０４）は、複数の端子Ｔ０１〜Ｔ０３のうちの端子Ｔ０１と端子Ｔ０３間に配置されている。経路（５０５、５０６、５０７、５０８）（５０９、５１０、５１１）は、複数の端子Ｔ０１〜Ｔ０３のうちの端子Ｔ０２と端子Ｔ０３間に配置されている。
【００３７】
上述のように、ネットリストは、更に、経路（５０５、５０６、５０７、５０８）（５０９、５１０、５１１）の各々に配置されたＮ個のフリップフロップを含んでいる。経路（５０５、５０６、５０７、５０８）（５０９、５１０、５１１）のそれぞれに対応してＮを“０”、“２”、“１”とした場合、経路（５０４）には、フリップフロップが配置されていない。経路（５０５、５０６、５０７、５０８）には、２個のフリップフロップＦ０１、Ｆ０２が配置されている。経路（５０９、５１０、５１１）には、１個のフリップフロップＦ０３が配置されている。このように、経路（５０５、５０６、５０７、５０８）（５０９、５１０、５１１）におけるフリップフロップ数Ｎは各々異なる。
【００３８】
経路（５０４）は、始点である端子Ｔ０１と、終点である端子Ｔ０３との間に２個の論理ゲート素子が配置されている。
【００３９】
経路（５０５、５０６、５０７、５０８）は、Ｘ個の始点部分経路（この場合、Ｘは１とする）５０５と、Ｙ個の中間部分経路（この場合、Ｙは２とする）５０６、５０７と、Ｚ個の終点部分経路（この場合、Ｚは１とする）５０８と、を含んでいる。始点部分経路５０５は、始点である端子Ｔ０２と、終点である１番目のフリップフロップＦ０１との間にｘ個の論理ゲート素子（ｍを“６”、“７”とした場合、ｘは“２”とする）が配置されている。中間部分経路５０６、５０７は、始点である１番目のフリップフロップＦ０１と、終点である２番目のフリップフロップＦ０２との間にｙ個の論理ゲート素子（ｍを“６”、“７”とした場合、ｙは“２”、“３”とする）が配置されている。終点部分経路５０８は、始点である２番目のフリップフロップＦ０２と、終点である端子Ｔ０３との間にｚ個の論理ゲート素子（ｍを“６”、“７”とした場合、ｚは“２”とする）が配置されている。このように、経路（５０５、５０６、５０７、５０８）における部分論理ゲート素子数ｘ、ｙ、ｚは各々異なる。
【００４０】
経路（５０９、５１０、５１１）は、Ｘ個の始点部分経路（この場合、Ｘは２とする）５０９、５１０と、Ｙ個の中間部分経路（Ｎが１の場合、Ｙは０とする）と、Ｚ個の終点部分経路（この場合、Ｚは１とする）５１１と、を含んでいる。始点部分経路（５０９、５１０）は、始点である端子Ｔ０２と、終点であるフリップフロップＦ０３との間にｘ個の論理ゲート素子（ｍを“９”、“１０”とした場合、ｘは“４”、“５”とする）が配置されている。終点部分経路（５１１）は、始点であるフリップフロップＦ０３と、終点である端子Ｔ０３との間にｚ個の論理ゲート素子（ｍを“９”、“１０”とした場合、ｚは“５”とする）が配置されている。このように、経路（５０９、５１０、５１１）における部分論理ゲート素子数ｘ、ｙ、ｚは各々異なる。
【００４１】
部分経路検索部３０２２１は、接続情報記憶部３０３１を参照して、階層モジュール１０２、ハードマクロ１０４、フリップフロップを始点、終点、論理ゲート素子を経由点として、最長経路検索処理を実行する（ステップＳ３）。図５Ａは、最長経路検索処理が実行されたときのネットリストを示す模式図である。
【００４２】
最長経路検索処理（ステップＳ３）において、部分経路検索部３０２２１は、経路（５０５、５０６、５０７、５０８）に対して、始点部分経路５０５、中間部分経路５０６、５０７、終点部分経路５０８の中から、それぞれ、部分論理ゲート素子数が最も大きい部分経路を選択始点経路、選択中間経路、選択終点経路として検索する。ここで、部分経路検索部３０２２１は、始点部分経路５０５を選択始点経路５０５として検索する。この場合、選択始点経路５０５に対する部分論理ゲート素子数は“２”である。また、部分経路検索部３０２２１は、中間部分経路５０６、５０７の中から、部分論理ゲート素子数が最も大きい中間部分経路５０７を選択中間経路５０７として検索する。この場合、選択中間経路５０７に対する部分論理ゲート素子数は“３”である。また、部分経路検索部３０２２１は、終点部分経路５０８を選択終点経路５０８として検索する。この場合、選択終点経路５０８に対する部分論理ゲート素子数は“２”である。上述のように、部分経路内の論理ゲート素子数が多ければ多いほど、その部分経路も長くなるので、選択始点経路５０５、選択中間経路５０７、選択終点経路５０８は、最長経路として検索される。
【００４３】
また、最長経路検索処理（ステップＳ３）において、部分経路検索部３０２２１は、経路（５０９、５１０、５１１）に対して、始点部分経路５０９、５１０、終点部分経路５１１の中から、それぞれ、部分論理ゲート素子数が最も大きい部分経路を選択始点経路、選択終点経路として検索する。ここで、部分経路検索部３０２２１は、２個の始点部分経路５０９、５１０の中から、部分論理ゲート素子数が最も大きい始点部分経路５１０を選択始点経路５１０として検索する。この場合、選択始点経路５１０に対する部分論理ゲート素子数は“５”である。また、部分経路検索部３０２２１は、終点部分経路５１１を選択終点経路５１１として検索する。この場合、選択終点経路５１１に対する部分論理ゲート素子数は“５”である。上述のように、部分経路内の論理ゲート素子数が多ければ多いほど、その部分経路も長くなるので、選択始点経路５１０、選択終点経路５１１は、最長経路として検索される。
【００４４】
部分経路検索部３０２２１は、最長経路検索処理が実行されたときに、部分接続情報記憶処理を実行する（ステップＳ４）。図５Ｂは、部分接続情報記憶処理が実行されたときに部分接続情報記憶部３０３２に格納されるネットリストを示している。
【００４５】
部分接続情報記憶処理（ステップＳ４）において、部分経路検索部３０２２１は、経路（５０４）と、それに対応する論理ゲート素子数“２”を部分接続情報記憶部３０３２に格納する。
【００４６】
また、部分接続情報記憶処理（ステップＳ４）において、部分経路検索部３０２２１は、経路（５０５、５０６、５０７、５０８）の各々の選択始点経路５０５、選択中間経路５０７、選択終点経路５０８と、それに対応する部分論理ゲート素子数“２”、“３”、“２”とを部分接続情報記憶部３０３２に格納する。
【００４７】
また、部分接続情報記憶処理（ステップＳ４）において、部分経路検索部３０２２１は、経路（５０９、５１０、５１１）の選択始点経路５１０、選択終点経路５１１と、それに対応する部分論理ゲート素子数“５”、“５”とを部分接続情報記憶部３０３２に格納する。
【００４８】
端子間経路検索部３０２２２は、部分接続情報記憶部３０３２を参照して、階層モジュール１０２、ハードマクロ１０４を始点、終点、フリップフロップを経由点として、最短経路検索処理を実行する（ステップＳ５）。図６Ａは、最短経路検索処理が実行されたときのネットリストを示す模式図である。
【００４９】
最短経路検索処理（ステップＳ５）において、端子間経路検索部３０２２２は、経路（５０５、５０７、５０８）（５１０、５１１）の中から、フリップフロップ数Ｎが最も小さい経路を選択経路として検索する。この場合、端子間経路検索部３０２２２は、経路（５０５、５０７、５０８）（５１０、５１１）の中から、フリップフロップ数Ｎが最も小さい経路（５１０、５１１）を選択経路（５１０、５１１）として検索する。上述のように、経路内のフリップフロップ数が少なければ少ないほど、その経路における処理時間が短くなるので、選択経路（５１０、５１１）は、最短経路として検索される。
【００５０】
端子間経路検索部３０２２２は、最短経路検索処理が実行されたときに、配置距離指標記憶処理を実行する（ステップＳ６）。図６Ｂは、配置距離指標記憶処理が実行されたときに配置距離指標記憶部３０３３に格納されるネットリストを示している。
【００５１】
配置距離指標記憶処理（ステップＳ６）において、端子間経路検索部３０２２２は、経路（５０４）と、経路（５０４）に対する論理ゲート素子数“２”と、経路に対するフリップフロップ数“０”と、を配置距離指標記憶部３０３３に格納する。
【００５２】
また、配置距離指標記憶処理（ステップＳ６）において、端子間経路検索部３０２２２は、選択経路（５１０、５１１）と、選択経路（５１０、５１１）に含まれる選択始点経路５１０、選択中間経路、選択終点経路５１１のそれぞれに対する部分論理ゲート素子数“５”、“０”、“５”の合計値である論理ゲート素子数“１０”と、選択経路（５１０、５１１）に対するフリップフロップ数である最小フリップフロップ数“１”と、を配置距離指標記憶部３０３３に格納する。
【００５３】
入力装置３０１は、設計者により指定される端子Ｔ０３に対するラッツネスト表示要求を入力したものとする。この場合、ラッツネスト表示要求は、ラッツネスト生成部３０２３に出力される（ステップＳ７）。
【００５４】
図７は、本発明のフロアプラン編集装置を用いることによりラッツネスト表示される半導体集積回路を示している。
【００５５】
ラッツネスト生成部３０２３は、ラッツネスト表示要求に応じて、接続情報記憶部３０３１と配置距離指標記憶部３０３３とを参照して、ラッツネスト生成処理を実行する（ステップＳ８）。
【００５６】
ラッツネスト生成処理（ステップＳ８）において、ラッツネスト生成部３０２３は、端子Ｔ０１、端子Ｔ０２及び経路（５０４）を表すラッツネスト１１１と、経路（５０４）に対する論理ゲート素子数“２”及び経路（５０４）に対する最小フリップフロップ数“０”を表す文字列“２、０”とを生成する。
【００５７】
また、ラッツネスト生成処理（ステップＳ８）において、ラッツネスト生成部３０２３は、端子Ｔ０２、端子Ｔ０３及び選択経路（５１０、５１１）を表すラッツネスト１１２と、選択経路（５１０、５１１）に対する論理ゲート素子数“１０”及び選択経路（５１０、５１１）に対する最小フリップフロップ数“１”を表す文字列“１０、１”とを生成する。
【００５８】
ラッツネスト表示制御部３０２４は、ラッツネスト生成処理が実行されたときに、ラッツネスト表示処理を実行する（ステップＳ９）。
【００５９】
ラッツネスト表示処理（ステップＳ９）において、ラッツネスト表示制御部３０２４は、ラッツネスト１１１と文字列“２、０”とを対応付けて表示装置３０４に表示する。このとき、ラッツネスト１１１の選択経路（５０４）は、端子Ｔ０１と端子Ｔ０２間を結ぶ線として表示装置３０４に表示され、文字列“２、０”は、論理ゲート素子数“２”、フリップフロップ数“０”がこの順に表示装置３０４に表示される。
【００６０】
また、ラッツネスト表示処理（ステップＳ９）において、ラッツネスト表示制御部３０２４は、ラッツネスト１１２と文字列“１０、１”とを対応付けて表示装置３０４に表示する。このとき、ラッツネスト１１２の選択経路（５１０、５１１）は、端子Ｔ０２と端子Ｔ０３間を結ぶ線として表示装置３０４に表示され、文字列“１０、１”は、論理ゲート素子数“１０”、フリップフロップ数“１”がこの順に表示装置３０４に表示される。
【００６１】
このように、本発明のフロアプラン編集装置を用いることにより、半導体集積回路がラッツネスト表示される。ここで、順序回路としてフリップフロップＦ０１、Ｆ０２、Ｆ０３を挙げたが、ラッチ回路Ｆ０１、Ｆ０２、Ｆ０３としてもよい。
【００６２】
［効果］
本発明のフロアプラン編集装置の効果について説明する。
【００６３】
設計者は、階層モジュール１０２、ハードマクロ１０４をチップ１０１に配置するための適切な位置を検討する場合、端子間に信号を伝達するときの遅延を考慮しなければならない。例えば、設計者は、端子間の遅延が１クロックサイクルに収まるか否かを考慮した上で、階層モジュール、ハードマクロの端子がチップに配置される適切な位置を検討したい。
【００６４】
そこで、本発明のフロアプラン編集装置では、最短経路検索処理を実行することにより、経路（５０４）（５０５、５０６、５０７、５０８）（５０９、５１０、５１１）の中から、フリップフロップ数Ｎが最も小さい経路を選択経路として検索する。その結果、ラッツネスト（第１端子、第２端子及び選択経路）と、文字列（論理ゲート素子数ｍ、最小フリップフロップ数Ｎ）とを表示装置３０４に表示する。例えば、選択経路にフリップフロップが存在しない場合、設計者は、端子間の遅延を１クロックサイクル未満に収める必要がある。例えば、選択経路にフリップフロップが１つ存在する場合、設計者は、第１端子又は第２端子とフリップフロップ間の遅延を１クロックサイクル未満に収める必要がある。このように、本発明のフロアプラン編集装置では、例えばラッツネスト１１２と文字列“１０、１”とが表示されたときに、設計者は、最も小さいフリップフロップ数Ｎにより、端子間の遅延とクロックサイクルとを考慮することができる。このため、本発明のフロアプラン編集装置では、階層モジュール１０２、ハードマクロ１０４がチップ１０１に配置される適切な位置を検討することができる。
【００６５】
また、本発明のフロアプラン編集装置では、最長経路検索処理を実行することにより、経路（５０５、５０６、５０７、５０８）（５０９、５１０、５１１）の中から、部分論理ゲート素子数ｘ、ｙ、ｚが最も大きい部分経路を選択始点経路、選択中間経路、選択終点経路として検索する。その結果、ラッツネスト｛第１端子、第２端子及び選択経路（選択始点経路、選択中間経路、選択終点経路）｝と、文字列｛論理ゲート素子数ｍ（ｍ＝ｘ＋ｙ＋ｚ）、最小フリップフロップ数Ｎ｝とを表示装置３０４に表示する。例えば、選択経路にフリップフロップが存在しなくても、最も大きい論理ゲート素子数ｍが規定数以内である場合、設計者は、端子間の遅延を１クロックサイクル未満に収める必要がある。例えば、選択経路にフリップフロップが１つ存在し、最も大きい論理ゲート素子数ｍが規定数以内である場合、設計者は、第１端子又は第２端子とフリップフロップ間の遅延を１クロックサイクル未満に収める必要がある。このように、本発明のフロアプラン編集装置では、例えばラッツネスト１１２と文字列“１０、１”とが表示されたときに、設計者は、最も大きい論理ゲート素子数ｍと最も小さいフリップフロップ数Ｎとにより、端子間の遅延とクロックサイクルとを考慮することができる。このため、本発明のフロアプラン編集装置では、階層モジュール１０２、ハードマクロ１０４がチップ１０１に配置される適切な位置を検討することができる。
【産業上の利用可能性】
【００６６】
本発明によれば、半導体集積回路のフロアプラン設計やプリント基板の配線設計といった用途に適用できる。
【図面の簡単な説明】
【００６７】
【図１】図１は、本発明の半導体集積回路のフロアプラン編集装置（以下、本発明のフロアプラン編集装置）の構成を示している。
【図２】図２は、本発明のフロアプラン編集装置の動作を示すフローチャートである。
【図３】図３は、本発明のフロアプラン編集装置を用いることによりレイアウトされる半導体集積回路を示している。
【図４Ａ】図４Ａは、接続情報記憶処理が実行されたときのネットリストを示す模式図である。
【図４Ｂ】図４Ｂは、接続情報記憶部３０３１に格納されるネットリストを示している。
【図５Ａ】図５Ａは、最長経路検索処理が実行されたときのネットリストを示す模式図である。
【図５Ｂ】図５Ｂは、部分接続情報記憶処理が実行されたときに部分接続情報記憶部３０３２に格納されるネットリストを示している。
【図６Ａ】図６Ａは、最短経路検索処理が実行されたときのネットリストを示す模式図である。
【図６Ｂ】図６Ｂは、配置距離指標記憶処理が実行されたときに配置距離指標記憶部３０３３に格納されるネットリストを示している。
【図７】図７は、本発明のフロアプラン編集装置を用いることによりラッツネスト表示される半導体集積回路を示している。
【符号の説明】
【００６８】
１０１    チップ、
１０２    階層モジュール、
１０３    接続端子、
１０４    ハードマクロ、
１０５    接続端子、
３０１    入力装置、
３０２    データ処理装置、
３０２１    入力制御部、
３０２２    検索部、
３０２２１    部分経路検索部、
３０２２２    端子間経路検索部、
３０２３    ラッツネスト生成部、
３０２４    ラッツネスト表示制御部、
３０３    記憶装置、
３０３１    接続情報記憶部、
３０３２    部分接続情報記憶部、
３０３３    配置距離指標記憶部、
３０４    表示装置、
Ｆ０１〜Ｆ０３    順序回路（フリップフロップ又はラッチ回路）、
Ｔ０１〜Ｔ０３    端子、
【図１】
0004998150.tif 000002
【図２】
0004998150.tif 000003
【図３】
0004998150.tif 000004
【図４Ａ】
0004998150.tif 000005
【図４Ｂ】
0004998150.tif 000006
【図５Ａ】
0004998150.tif 000007
【図５Ｂ】
0004998150.tif 000008
【図６Ａ】
0004998150.tif 000009
【図６Ｂ】
0004998150.tif 000010
【図７】
0004998150.tif 000011