(57)【特許請求の範囲】
【請求項１】
設計対象回路の設計を支援する設計支援装置において、
前記設計対象回路が備える第１階層の回路と前記第１階層の下位階層である少なくとも１つの第２階層の回路それぞれの論理接続情報を含む第１のデータベースを格納するデータベース格納部と、
前記第１のデータベースに含まれる前記論理接続情報に基づいて、論理接続の種別を識別する論理接続種別識別情報のトレースを、前記第１階層の回路から前記第２階層の回路に向かって行い、前記第２階層の回路の階層端子と前記論理接続種別識別情報のトレース情報を有する階層端子コードとが関連づけられた階層端子コード情報を含む階層端子情報ファイルを生成するファイル生成部と、
前記ファイル生成部が生成した階層端子情報ファイルと、前記第２階層の回路の論理接続情報とに基づいて、前記設計対象回路が有する複数のセルの配置情報と前記複数のセル間の配線情報を含む前記第２階層の回路の第２のデータベースを生成するデータベース生成部と、
を有することを特徴とする設計支援装置。
【請求項２】
前記設計支援装置において、
前記第１のデータベースは、予め生成された階層端子コード情報を含み、
前記ファイル生成部は、階層端子情報ファイルを生成する場合、前記トレースにより得られた階層端子コード情報と前記予め生成された階層端子コード情報との差分を識別する識別情報を含む、前記階層端子情報ファイルを生成することを特徴とする請求項１記載の設計支援装置。
【請求項３】
前記設計支援装置において、
前記データベース生成部は、前記第２のデータベースと、前記第１階層の回路の論理接続情報とに基づいて、前記設計対象回路が有する複数のセルの配置情報と前記複数のセル間の配線情報を含む前記第１階層の回路の第３のデータベースを生成することを特徴とする請求項１記載の設計支援装置。
【請求項４】
前記設計支援装置において、
前記ファイル生成部は、前記第１階層の回路が、同一のモジュールに対応する複数のインスタンスを含む場合、前記同一のモジュールに対応する複数のインスタンスの各々について階層端子コードの異同を検出し、前記複数のインスタンスの各々について異なる階層端子コードが設定されているとき、異なる前記階層端子コードについて最も厳しい設計条件が設定されている階層端子コードを選択して前記階層端子情報ファイルを生成することを特徴とする請求項１記載の設計支援装置。
【請求項５】
前記設計支援装置において、
前記ファイル生成部は、前記異なる前記階層端子コードについて最も厳しい設計条件が設定されている階層端子コードを選択をしたことを識別する情報を前記階層端子情報ファイルに付与して前記階層端子情報ファイルを生成することを特徴とする請求項４記載の設計支援装置。
【請求項６】
前記設計支援装置において、
前記ファイル生成部は、前記第２階層の回路が階層端子と階層端子コードのみを含むブラックボックスに指定された場合、前記ブラックボックスに指定された前記第２階層の回路の階層端子に、予め用意された階層端子コードを設定して前記第２のデータベースを生成することを特徴とする請求項１記載の設計支援装置。
【請求項７】
前記設計支援装置において、
前記ファイル生成部は、設定された階層指定情報が示す階層について、前記階層端子情報ファイルを生成することを特徴とする請求項１記載の設計支援装置。
【請求項８】
前記設計支援装置において、
前記ファイル生成部は、設定されたチェック種別情報が示すチェック種別について、前記階層端子情報ファイルを生成することを特徴とする請求項１記載の設計支援装置。
【請求項９】
設計対象回路の設計を支援する設計支援装置において、
前記設計対象回路が備える第１階層の回路と前記第１階層の下位階層である複数の第２階層の回路それぞれの論理接続情報を含む第１のデータベースを格納する第１のデータベース格納部と、
前記第１のデータベースに含まれる前記論理接続情報に基づいて、論理接続の種別を識別する論理接続種別識別情報のトレースを、前記第１階層の回路から前記第２階層の回路に向かって行い、前記第２階層の回路の階層端子と前記論理接続種別識別情報のトレース情報を有する階層端子コードとが関連づけられた第１の階層端子コード情報を含む階層端子情報ファイルを生成するファイル生成部と、
前記第２階層の回路それぞれに対応して設けられ、予め生成された第２の階層端子コード情報を備える階層端子情報ファイルを有する複数の第２のデータベースを格納する第２のデータベース格納部と、
前記第２のデータベース格納部に格納された第２の階層端子コード情報の階層端子コードについて、前記第２の階層端子コード情報に対応する第１の階層端子コード情報の階層端子コードとの不一致部分を、前記第１の階層端子コード情報の階層端子コードに置換する置換部と、
を有することを特徴とする設計支援装置。
【請求項１０】
前記設計支援装置において、
前記第２の階層端子コード情報は、前記複数の第２階層の回路の一部の回路の論理接続情報に基づいて生成されることを特徴とする請求項９記載の設計支援装置。
【請求項１１】
設計対象回路の設計を支援する設計支援方法において、
コンピュータが、
前記設計対象回路が備える第１階層の回路と前記第１階層の下位階層である少なくとも１つの第２階層の回路それぞれの論理接続情報を含む第１のデータベースを格納するステップと、
前記第１のデータベースに含まれる前記論理接続情報に基づいて、論理接続の種別を識別する論理接続種別識別情報のトレースを、前記第１階層の回路から前記第２階層の回路に向かって行い、前記第２階層の回路の階層端子と前記論理接続種別識別情報のトレース情報を有する階層端子コードとが関連づけられた階層端子コード情報を含む階層端子情報ファイルを生成するステップと、
前記生成した階層端子情報ファイルと、前記第２階層の回路の論理接続情報とに基づいて、前記設計対象回路が有する複数のセルの配置情報と前記複数のセル間の配線情報を含む前記第２階層の回路の第２のデータベースを生成するステップと、
を実行することを特徴とする設計支援方法。
【請求項１２】
設計対象回路の設計を支援する設計支援プログラムにおいて、
コンピュータに、
前記設計対象回路が備える第１階層の回路と前記第１階層の下位階層である少なくとも１つの第２階層の回路それぞれの論理接続情報を含む第１のデータベースを格納させるステップと、
前記第１のデータベースに含まれる前記論理接続情報に基づいて、論理接続の種別を識別する論理接続種別識別情報のトレースを、前記第１階層の回路から前記第２階層の回路に向かって行い、前記第２階層の回路の階層端子と前記論理接続種別識別情報のトレース情報を有する階層端子コードとが関連づけられた階層端子コード情報を含む階層端子情報ファイルを生成させるステップと、
前記生成した階層端子情報ファイルと、前記第２階層の回路の論理接続情報とに基づいて、前記設計対象回路が有する複数のセルの配置情報と前記複数のセル間の配線情報を含む前記第２階層の回路の第２のデータベースを生成させるステップと、
を実行させることを特徴とする設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は設計支援装置、設計支援方法および設計支援プログラムに関する。
【背景技術】
【０００２】
近年、ＬＳＩ（Large Scale Integration）の大規模化に伴い、複数の階層を用いることにより階層的なＬＳＩの設計が行われることが主流になっている。
階層的なＬＳＩの設計において、例えば、トランジスタ等の素子と、素子の端子間の接続を定義する論理接続情報（論理ネット）にネットの種別（クロック信号用、テスト信号用等）を識別するコード（ネットコード）を付与することで、階層間のネット接続関係を把握する技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１９３００１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットコードの付与は、例えば各階層において、自階層の階層ピンに対して他の階層の影響を考慮した階層ピンコードに基づいて行われる。階層ピンコードは、ネットコードのトレース情報を有し、階層ピンに設定するコードである。
【０００５】
しかしながら、人手で階層ピンコードを付与すると、誤った階層ピンコードの指定をしてしまうことにより、階層間のインタフェースの整合性が取れないという問題があった。
本発明はこのような点に鑑みてなされたものであり、誤った階層ピンコードの指定を抑制する設計支援装置、設計支援方法および設計支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、開示の設計支援装置が提供される。この設計支援装置は、データベース格納部と、ファイル生成部と、データベース生成部とを有している。
データベース格納部は、設計対象回路が備える第１階層の回路と第１階層の下位階層である少なくとも１つの第２階層の回路それぞれの論理接続情報を含む第１のデータベースを格納する。
【０００７】
ファイル作成部は、第１のデータベースに含まれる論理接続情報に基づいて、論理接続の種別を識別する論理接続種別識別情報のトレースを、第１階層の回路から第２階層の回路に向かって行い、第２階層の回路の階層端子と論理接続種別識別情報のトレース情報を有する階層端子コードとが関連づけられた階層端子コード情報を含む階層端子情報ファイルを生成する。
【０００８】
データベース作成部は、ファイル生成部が生成した階層端子情報ファイルと、第２階層の回路の論理接続情報とに基づいて、設計対象回路が有する複数のセルの配置情報と複数のセル間の配線情報を含む第２階層の回路の第２のデータベースを生成する。
【発明の効果】
【０００９】
誤った階層端子コードの指定を抑制し、階層間のインタフェースの整合性を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態の設計支援装置の概要を示す図である。
【図２】第２の実施の形態の設計支援装置のハードウェアの一構成例を示す図である。
【図３】設計支援装置の機能を示すブロック図である。
【図４】設計対象回路の一例を示すブロック図である。
【図５】階層ピンコード指示ファイルと、マニュアル階層ピンコード指示ファイルを説明する図である。
【図６】階層ピンコード情報を説明する図である。
【図７】階層ピンコード情報を説明する図である。
【図８】階層ピンコード情報を説明する図である。
【図９】ユーザ設定ファイルの内容を説明する図である。
【図１０】「ＯｕｔｐｕｔＵｎｉｔ」の設定を説明する図である。
【図１１】「ＢｌａｃｋＢｏｘＵｎｉｔ」の設定を説明する図である。
【図１２】「ＣｈｅｃｋＫｉｎｄ」の設定を説明する図である。
【図１３】第１の全体処理を示すフローチャートである。
【図１４】論理ＤＢ作成処理を示すフローチャートである。
【図１５】階層ピンコード指示ファイル作成処理を示すフローチャートである。
【図１６】階層ピンコード指示ファイル出力処理を示すフローチャートである。
【図１７】階層ピンコード指示ファイル出力処理を示すフローチャートである。
【図１８】実装ＤＢ作成処理を示すフローチャートである。
【図１９】下位階層側でそれぞれ異なったピンコードが設定されていた場合の具体例を示す図である。
【図２０】第２の全体処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態の設計支援装置について説明し、その後、実施の形態をより具体的に説明する。
【００１２】
＜第１の実施の形態＞
図１は、第１の実施の形態の設計支援装置の概要を示す図である。
第１の実施の形態の設計支援装置（コンピュータ）１は、設計対象の回路に対し、回路の各階層の階層ピンコードを設定する装置である。
【００１３】
図１では設計対象回路２を図示している。この設計対象回路２は、第１階層の回路２ａと、第１階層の下位階層である２つの第２階層の回路２ｂ、２ｃとを有している。
設計支援装置１は、記憶部１ａと、第１のデータベース作成部（論理データベース作成部）１ｂと、第１のデータベース格納部１ｃと、ファイル作成部１ｄと、第２のデータベース作成部（実装データベース作成部）１ｅと、第２のデータベース格納部１ｆとを有している。
【００１４】
記憶部１ａは、設計対象回路２が備える第１階層の回路２ａの論理接続情報（例えば素子間の接続を定義する論理ネット）と、第１階層の下位階層である第２階層の回路２ｂ、２ｃの論理接続情報とを記憶する。
【００１５】
また、記憶部１ａは、例えば設計者が作成した第１階層の回路２ａの階層端子と階層端子の論理接続の種別を識別する論理接続種別識別情報（例えばネットコード）とが関連づけられた階層端子コード情報を有する階層端子コード情報ファイル４ｂを記憶することができる。なお、階層端子コード情報ファイル４ｂの内容については後述する。
【００１６】
第１のデータベース作成部１ｂは、記憶部１ａに記憶されている第１階層の回路２ａと第２階層の回路２ｂ、２ｃそれぞれの論理接続情報を含む第１のデータベースを作成する。なお、第１のデータベースには、階層端子コード情報ファイル４ｂを含めることができる。
【００１７】
第１のデータベース作成部１ｂは、作成した第１のデータベースを第１のデータベース格納部１ｃに格納する。
ファイル作成部１ｄは、第１のデータベースに含まれる論理接続情報に基づいて、論理接続種別識別情報のトレースを、第１階層の回路２ａから第２階層の回路２ｂ、２ｃに向かって行い、第２階層の回路２ｂ、２ｃの階層端子と論理接続種別識別情報のトレース情報を有する階層端子コードとが関連づけられた階層端子コード情報を有する階層端子コード情報ファイルを作成する。
【００１８】
図１では、一例として、第２階層の回路２ｂの階層端子コード情報３ａを有する階層端子コード情報ファイル４ａを図示している。
階層端子コード情報ファイル４ａは、回路２ｂのモジュール名がＭｏｄ２ｂであり、階層端子コード情報３ａとしてＰｉｎＸ  Ｃｏｄｅ１、ＰｉｎＷ  Ｃｏｄｅ２、ＰｉｎＹ  Ｃｏｄｅ３を有していることを示している。ここで、ＰｉｎＸ、ＰｉｎＷ、ＰｉｎＹが階層端子であり、Ｃｏｄｅ１、Ｃｏｄｅ２、Ｃｏｄｅ３が、論理接続種別識別情報のトレース情報を有する階層端子コードである。
【００１９】
また、第１のデータベースが、階層端子コード情報ファイル４ｂをさらに含んでいる場合、ファイル作成部１ｄは、トレースにより得られた階層端子コード情報と予め作成された階層端子コード情報ファイルの階層端子コード情報との差分を識別する識別情報を、作成した階層端子コード情報３ａに「／＊」と「＊／」の記号の間に表されたコメントとして設定することができる。
【００２０】
図１では、予め作成された階層端子コード情報３ｂを有する階層端子コード情報ファイル４ｂを図示している。
階層端子コード情報ファイル４ａには、階層端子コード情報３ｂのＰｉｎＸ  Ｃｏｄｅ１、ＰｉｎＹ  Ｃｏｄｅ３、ＰｉｎＺ  Ｃｏｄｅ３と、トレースにより得られた階層ピンコードＰｉｎＸ  Ｃｏｄｅ１、ＰｉｎＷ  Ｃｏｄｅ２、ＰｉｎＹ  Ｃｏｄｅ３との差分を識別する識別情報３１ａ、３２ａが「／＊」と「＊／」の記号の間に表されたコメントとして設定されている。「／＊＋＊／」で表された識別情報３１ａは、階層ピンコードＰｉｎＷ  Ｃｏｄｅ２が階層端子コード情報３ａに新たに追加されたことを識別する情報である。また、「／＊―＊／」で表された識別情報３２ａは、階層ピンコードＰｉｎＺ  Ｃｏｄｅ３が階層端子コード情報３ａから削除されたことを識別する情報である。
【００２１】
第２のデータベース作成部１ｅは、作成された階層端子コード情報ファイル４ａと、第２階層の回路２ｂの論理接続情報とに基づいて、設計対象回路２が有するセルの配置情報とセル間の配線情報を含む第２階層の回路２ｂの第２のデータベースを作成する。また、第２のデータベース作成部１ｅは、第２階層の回路２ｃについて作成された階層端子コード情報ファイルと、第２階層の回路２ｃの論理接続情報とに基づいて、設計対象回路２が有するセルの配置情報とセル間の配線情報を含む第２階層の回路２ｃの第２のデータベースを作成する。
【００２２】
その後、第２のデータベース作成部１ｅは、第２階層の回路２ｂ、２ｃのそれぞれについて作成された第２のデータベースと、記憶部１ａに記憶されている第１階層の回路２ａの論理接続情報とに基づいて、設計対象回路２が有するセルの配置情報とセル間の配線情報を含む第１階層の回路２ａの第３のデータベースを作成することができる。
【００２３】
この設計支援装置１によれば、第１のデータベース作成部１ｂにより、全ての回路の論理ネットを含む第１のデータベースが作成される。この第１のデータベースにトレースを行って階層端子コード情報を作成することで、階層間の正しい接続関係を示す階層端子コード情報を有する階層端子コード情報ファイル４ａが得られる。従って、この階層端子コード情報ファイル４ａを用いてネットコードを付与することで、付与したネットコードの信頼性を高めることができる。
【００２４】
なお、第１のデータベース作成部１ｂ、ファイル作成部１ｄ、および第２のデータベース作成部１ｅは、設計支援装置１が有するＣＰＵ（Central Processing Unit）が備える機能により実現することができる。また、記憶部１ａ、第１のデータベース格納部１ｃ、および第２のデータベース格納部１ｆは、設計支援装置１が有するＲＡＭ（Random Access Memory）やハードディスクドライブ（Hard Disk Drive）等が備えるデータ記憶領域により実現することができる。
【００２５】
以下、実施の形態をより具体的に説明する。
＜第２の実施の形態＞
図２は、第２の実施の形態の設計支援装置のハードウェアの一構成例を示す図である。
【００２６】
設計支援装置１０は、ＣＰＵ１０１によって装置全体の動作が制御される。ＣＰＵ１０１には、バス１０８を介してＲＡＭ１０２と複数の周辺機器が接続される。
ＲＡＭ１０２は、設計支援装置１０の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００２７】
バス１０８に接続されている周辺機器としては、ハードディスクドライブ１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、および通信インタフェース１０７がある。
【００２８】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、設計支援装置１０の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００２９】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０４ａの画面に表示させる。モニタ１０４ａとしては、ＬＣＤ（Liquid Crystal Display）を用いた表示装置や液晶表示装置等が挙げられる。
【００３０】
入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等が挙げられる。
【００３１】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２００に記録されたデータの読み取りを行う。光ディスク２００は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２００には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。
【００３２】
通信インタフェース１０７は、ネットワーク１００に接続されている。通信インタフェース１０７は、ネットワーク１００を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００３３】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
このようなハードウェア構成の設計支援装置１０内には、以下のような機能が設けられる。
【００３４】
図３は、設計支援装置の機能を示すブロック図である。
設計支援装置１０は、設計対象回路（例えば、ＬＳＩ等）が備える階層毎に、ネットコードを付与する装置である。
【００３５】
図４は、設計対象回路の一例を示すブロック図である。
設計対象回路２０には、インスタンスＩｎｓｔ−Ａ、Ｉｎｓｔ−Ｂ、Ｉｎｓｔ−Ｃの３つのインスタンスが配置されている。インスタンスＩｎｓｔ−Ａは、モジュールＭｏｄ１を有している。Ｉｎｓｔ−Ｂは、モジュールＭｏｄ２を有している。Ｉｎｓｔ−Ｃは、モジュールＭｏｄ３を有している。
【００３６】
また、設計対象回路２０には、モジュールＭｏｄ１、Ｍｏｄ２、Ｍｏｄ３の上位階層となるモジュールＭｏｄ４を有するインスタンスＩｎｓｔ−Ｄが配置されている。
なお、本実施の形態では、２つの階層を例示するが、これに限らず、開示の構成を３つ以上の階層にも適用することができる。
【００３７】
再び図３に戻って説明する。
設計支援装置１０は、実装ＤＢ作成処理部１０ａ、１０ｂ、１０ｃ、１０ｄを有している。
【００３８】
実装ＤＢ作成処理部１０ａ、１０ｂ、１０ｃ、１０ｄは、設計対象回路２０が備える階層毎に、設計対象の一部の回路の実装情報を示す実装ＤＢ（Data Base）を作成する。
設計支援装置１０は、設計対象回路２０が備える３つの下位階層のモジュールＭｏｄ１、Ｍｏｄ２、Ｍｏｄ３の実装ＤＢを作成する実装ＤＢ作成処理部１０ａ、１０ｂ、１０ｃと、上位階層のモジュールＭｏｄ４の実装ＤＢを作成する実装ＤＢ作成処理部１０ｄとを有している。
【００３９】
以下、実装ＤＢ作成処理部１０ａの構成を説明する。
実装ＤＢ作成処理部１０ａは、階層ピンコード指示ファイル格納部１１０と、ネットリスト格納部１２０と、実装ＤＢ作成部１３０と、実装ＤＢ格納部１４０とを有している。
【００４０】
階層ピンコード指示ファイル格納部１１０には、階層ピンコード指示ファイル１１２の作成前の初期状態において、予め作成されたマニュアル階層ピンコード指示ファイル１１１が格納されている。
【００４１】
マニュアル階層ピンコード指示ファイル１１１は、設計者がモジュールＭｏｄ１について作成した階層ピンコード情報を有するファイルである。なお、図３では、１つのマニュアル階層ピンコード指示ファイル１１１を図示しているが、マニュアル階層ピンコード指示ファイル１１１は、後述する設計仕様に関するチェック種別毎に複数設けられている。
【００４２】
また、後述する階層ピンコード指示ファイル作成部１５により階層ピンコード指示ファイル１１２が作成された場合、実装ＤＢ作成処理部１０ａは、作成された階層ピンコード指示ファイル１１２を、マニュアル階層ピンコード指示ファイル１１１とは別個に階層ピンコード指示ファイル格納部１１０に格納する。この階層ピンコード指示ファイル１１２は、マニュアル階層ピンコード指示ファイル１１１との差異点が明記されたファイルである。マニュアル階層ピンコード指示ファイル１１１と階層ピンコード指示ファイル１１２の具体的内容については、後述する。
【００４３】
さらに、階層ピンコード指示ファイル作成部１５により再度、階層ピンコード指示ファイル１１２が作成された場合、実装ＤＢ作成処理部１０ａは、再作成された階層ピンコード指示ファイル１１２を、階層ピンコード指示ファイル格納部１１０に格納されている階層ピンコード指示ファイル１１２とは別個に階層ピンコード指示ファイル格納部１１０に格納する。
【００４４】
ネットリスト格納部１２０には、モジュールＭｏｄ１の各端子間の接続情報をまとめたネットリストが格納されている。
実装ＤＢ作成部１３０は、実装ＤＢを作成する。具体的には、実装ＤＢ作成部１３０は、ネットリスト格納部１２０に格納されているネットリストとマニュアル階層ピンコード指示ファイル１１１、または、ネットリスト格納部１２０に格納されているネットリストと階層ピンコード指示ファイル１１２に基づいて、論理ネットにネットコードを付与したネットコード付与情報を作成する。なお、論理ネットへのネットコードの付与は、マニュアル階層ピンコード指示ファイル１１１および階層ピンコード指示ファイル１１２が有する階層ピンコード情報をトレースすることにより付与することができる。
【００４５】
そして、実装ＤＢ作成部１３０は、作成したネットコード付与情報と、ネットコード付与情報の作成の際に用いた階層ピンコード情報を含めた実装ＤＢを作成する。
実装ＤＢ格納部１４０は、実装ＤＢ作成部１３０により作成された実装ＤＢを格納する。
【００４６】
実装ＤＢ作成処理部１０ｂ、１０ｃも実装ＤＢ作成処理部１０ａと同様の構成を有する。なお、実装ＤＢ作成処理部１０ｂ、１０ｃについては、記載を簡略化し、実装ＤＢ作成処理部１０ａに対応する符号のみを付している。例えば、実装ＤＢ作成処理部１０ｂは、階層ピンコード指示ファイル格納部１１０と同様の機能を有する階層ピンコード指示ファイル格納部２１０と、ネットリスト格納部１２０と同様の機能を有するネットリスト格納部２２０と、実装ＤＢ作成部１３０と同様の機能を有する実装ＤＢ作成部２３０と、実装ＤＢ格納部１４０と同様の機能を有する実装ＤＢ格納部２４０を有している。
【００４７】
次に、実装ＤＢ作成処理部１０ｄの構成を説明する。
実装ＤＢ作成処理部１０ｄは、階層ピンコード指示ファイル格納部４１０と、ネットリスト格納部４２０と、実装ＤＢ作成部４３０と、実装ＤＢ格納部４４０とを有している。
【００４８】
階層ピンコード指示ファイル格納部４１０は、マニュアル階層ピンコード指示ファイル４１１を有している。
マニュアル階層ピンコード指示ファイル４１１は、設計者がモジュールＭｏｄ４について作成した階層ピンコード情報を有するファイルである。なお、図３では、１つのマニュアル階層ピンコード指示ファイル４１１を図示しているが、マニュアル階層ピンコード指示ファイル４１１は、設計仕様に関するチェック種別毎に複数設けられている。
【００４９】
実装ＤＢ作成部４３０は、実装ＤＢ格納部１４０、２４０、３４０それぞれに格納されている実装ＤＢと、マニュアル階層ピンコード指示ファイル４１１と、ネットリスト格納部４２０に格納されているネットリストとに基づいて、実装ＤＢを作成する。なお、実装ＤＢの作成方法は、前述した方法と同様である。
【００５０】
実装ＤＢ格納部４４０には、実装ＤＢ作成部４３０が作成した実装ＤＢが格納される。
さらに、設計支援装置１０は、論理ＤＢ作成部１１と、論理ＤＢ格納部１２と、ユーザ設定ファイル作成用アプリケーション１３と、ユーザ設定ファイル格納部１４と、階層ピンコード指示ファイル作成部１５とトレースルール格納部１６を有している。
【００５１】
論理ＤＢ作成部１１は、ネットリスト格納部１２０、２２０、３２０、４２０に格納されている全階層のネットリストと、マニュアル階層ピンコード指示ファイル４１１を入力として、全回路の論理接続情報および階層ピンコード情報を含む論理ＤＢを作成する。
【００５２】
この論理ＤＢは実装ＤＢで保持する実装情報を持たないＤＢとすることができる。これにより、データ量を小さくすることができる。
なお、論理ＤＢ作成部１１は、論理ＤＢの作成にあたり一時的に作成する情報（後述するネット接続情報）や、テーブル（後述する実装階層テーブルおよび階層ピンテーブル等）を記憶する記憶領域（以下、「テーブルメモリ」）と言う）を有している。
【００５３】
論理ＤＢ格納部１２には、論理ＤＢ作成部１１により作成された論理ＤＢが格納される。
ユーザ設定ファイル格納部１４には、それぞれ後述する、階層ピンコード情報を作成させる対象のインスタンスの指定や、ブラックボックスの指定や、チェック種別の指定等についての項目を設計者が設定したユーザ設定ファイルが格納される。
【００５４】
ユーザ設定ファイルの各項目の指定は、ユーザ設定ファイル作成用アプリケーション１３を起動することにより実行することができる。設計者は、例えばキーボード１０５ａやマウス１０５ｂを操作することにより、ユーザ設定ファイル作成用アプリケーション１３を起動することができる。
【００５５】
ユーザ設定ファイル作成用アプリケーション１３が起動すると、モニタ１０４ａに設定画面が表示される。設計者は、表示された設定画面を見ながら、キーボード１０５ａやマウス１０５ｂを操作することにより、ユーザ設定ファイルを設定することができる。
【００５６】
階層ピンコード指示ファイル作成部１５は、ユーザ設定ファイル格納部１４に格納されているユーザ設定ファイルに基づいて、階層ピンコード指示ファイルを作成する。なお、階層ピンコード指示ファイル作成部１５は、階層ピンコード指示ファイルの作成にあたり、一時的に作成するデータを記憶するテーブルメモリを有している。
【００５７】
トレースルール格納部１６には、トレースルールが格納されている。
なお、図３では、設計支援装置１０が、各階層に対応する複数の実装ＤＢ作成部を有する例を挙げたが、これに限らず、１つの実装ＤＢ作成部が、各階層のネットリストおよびマニュアル階層ピンコード指示ファイルからそれぞれの階層に対応した実装ＤＢを作成するようにしてもよい。
【００５８】
次に、階層ピンコード指示ファイル１１２とマニュアル階層ピンコード指示ファイル１１１の内容を説明する。
図５は、階層ピンコード指示ファイルと、マニュアル階層ピンコード指示ファイルを説明する図である。
【００５９】
階層ピンコード指示ファイル作成部１５が出力する階層ピンコード指示ファイル１１２には、先頭部分に設計者がファイルを管理するためのヘッダ情報が設定されている。前述したように、ヘッダ情報は、スラッシュ「／」とアスタリスク「＊」によって囲まれたコメント形式になっており、プログラムの実行時には、考慮されない。
【００６０】
階層ピンコード指示ファイル１１２のヘッダ情報の１行目には、階層ピンコード指示ファイル１１２の作成日付が設定されている。当該ヘッダ情報の２行目には、階層ピンコード指示ファイル１１２の作成を設計支援装置１０に指示した設計者名が設定されている。当該ヘッダ情報の３行目には、階層ピンコード指示ファイル１１２のプログラム情報が設定されている。当該ヘッダ情報の４行目には、階層ピンコード指示ファイル１１２の作成元となったインスタンス名が設定されている。当該ヘッダ情報の５行目には、後述する階層ピンコード指示ファイル出力処理を行うことにより設定された、階層ピンコード指示ファイル１１２のチェック種別が設定されている。これにより自動階層ピンコード指示ファイルがどのチェック種別に対して出力されたか判別可能である。なお、前述したように、チェック種別が複数存在する場合、階層ピンコード指示ファイル１１２は、そのチェック種別に応じて複数存在する。
【００６１】
６〜８行目には、記号の示す意味を示す情報が設定されている。記号には３種類あり、それぞれ、追加、削除、不一致を意味している。図５ではそれぞれプラス「＋」、マイナス「−」、エクスクラメーション「！」で表記されている部分である。
【００６２】
ヘッダ情報の下部には階層ピンコード情報が設定されている。
階層ピンコード情報は、階層ピンに対して階層ピン単位に設定されている。この階層ピンコード情報は、モジュールＭｏｄ１について下位実装ライブラリ作成元となった、マニュアル階層ピンコード指示ファイル１１１と矛盾が生じている部分については記号が付加されている。この記号付けによって、設計者がこのマークを参照することでどの部分で矛盾が発生しているかを容易に把握することが可能となる。
【００６３】
なお、ヘッダ情報と同様に、プラス「＋」、マイナス「−」、エクスクラメーション「！」等のスラッシュ「／」とアスタリスク「＊」で囲まれた部分はコメント形式になっており、プログラム実行時には無視される。
【００６４】
次に、階層ピンコード指示ファイル１１２の階層ピンコード情報の「ＰｉｎＢ  Ｃｏｄｅ２／＊＋＊／」について説明する。
図６は、階層ピンコード情報を説明する図である。
【００６５】
図６のマニュアル階層ピンコード指示ファイル１１１および階層ピンコード指示ファイル１１２は、図５に示すマニュアル階層ピンコード指示ファイル１１１および階層ピンコード指示ファイル１１２を一部抜粋して示している。マニュアル階層ピンコード指示ファイル１１１は、設計者が、ピン名がピンＢのピンｐ４について階層ピンコードが設定されないゲートＧ４と接続することを想定して階層ピンコードを設定しなかったことを示している。
【００６６】
ところが、階層ピンコード指示ファイル作成部１５が設計対象回路２０の全てのネットリストについてトレースした結果、実際にはピンｐ４については階層ピンコード「Ｃｏｄｅ２」が設定されるゲートＧ５と接続をしていた。この状態を「追加」と定義する。階層ピンコード指示ファイル１１２では、ピンｐ４のピン名ＰｉｎＢについて階層ピンコードＣｏｄｅ２が設定されている。また、プラス「＋」の記号をコメント形式「／＊＋＊／」で表現することにより、ＰｉｎＢについて階層ピンコードＣｏｄｅ２を追加した旨を表現する。
【００６７】
次に、階層ピンコード指示ファイル１１２の階層ピンコード情報の「／＊ＰｉｎＤ  Ｃｏｄｅ３＊／／＊−＊／」について説明する。
図７は、階層ピンコード情報を説明する図である。
【００６８】
図７のマニュアル階層ピンコード指示ファイル１１１および階層ピンコード指示ファイル１１２は、図５に示すマニュアル階層ピンコード指示ファイル１１１および階層ピンコード指示ファイル１１２を一部抜粋して示している。マニュアル階層ピンコード指示ファイル１１１は、設計者が、ピン名がピンＤのピンｐ５についてピンコード「Ｃｏｄｅ３」が設定されるゲートＧ６と接続されることを想定してピンコード設定の指示を行ったことを示している。
【００６９】
ところが、階層ピンコード指示ファイル作成部１５が設計対象回路２０の全てのネットリストについてトレースを実施した結果、実際にはピンｐ５についてはピンコードが設定されないゲートＧ７と接続していた。この状態を「削除」と定義する。
【００７０】
階層ピンコード指示ファイル１１２では、ピン名ＰｉｎＤについて階層ピンコードＣｏｄｅ３が削除された旨がコメント形式で表現されている。また、マイナス「−」の記号をコメント形式「／＊−＊／」で表現する。
【００７１】
次に、階層ピンコード指示ファイル１１２の階層ピンコード情報の「ＰｉｎＧ  Ｃｏｄｅ１／＊Ｃｏｄｅ３＊／／＊！＊／」について説明する。
図８は、階層ピンコード情報を説明する図である。
【００７２】
図８のマニュアル階層ピンコード指示ファイル１１１および階層ピンコード指示ファイル１１２は、図５に示すマニュアル階層ピンコード指示ファイル１１１および階層ピンコード指示ファイル１１２を一部抜粋して示している。マニュアル階層ピンコード指示ファイル１１１は、設計者が、ピン名がピンＧのピンｐ６についてピンコード「Ｃｏｄｅ３」が設定されるゲートＧ８と接続されることを想定してピンコード設定の指示を行ったことを示している。
【００７３】
ところが、階層ピンコード指示ファイル作成部１５が設計対象回路２０の全てのネットリストについてトレースした結果、実際にはピンｐ６についてはピンコード「Ｃｏｄｅ１」が設定されるゲートＧ９と接続をしていた。この状況を「不一致」と定義する。階層ピンコード指示ファイル１１２ではエクスクラメーション「！」の記号をコメント形式で表現する。さらにこの「不一致」では、マニュアル階層ピンコード指示ファイル１１１で設定されていたピンコード「Ｃｏｄｅ３」もコメント形式「／＊Ｃｏｄｅ３＊／」で表現している。
【００７４】
次に、ユーザ設定ファイルの内容を説明する。
図９は、ユーザ設定ファイルの内容を説明する図である。
ユーザ設定ファイル１４ａは、大別して「ＯｕｔｐｕｔＵｎｉｔ」、「ＢｌａｃｋＢｏｘＵｎｉｔ」および「ＣｈｅｃｋＫｉｎｄ」の３つの項目が設定されている。
【００７５】
＜ＯｕｔｐｕｔＵｎｉｔ＞
「ＯｕｔｐｕｔＵｎｉｔ」の項目には、階層ピンコード指示ファイル作成部１５に階層ピンコード情報を作成させる対象として設計者が指定した階層が設定されている。
【００７６】
この「ＯｕｔｐｕｔＵｎｉｔ」における階層の指定は、モジュール単位、インスタンス単位で行うことができる。
図９では、「ＯｕｔｐｕｔＵｎｉｔ」における階層の詳細指定項目として、「Ａｌｌ」、「Ｍｏｄｕｌｅ  ＥＵＮＩＴ」、「Ｉｎｓｔａｎｃｅ  Ｃ０／ＥＵ」、「Ｉｎｓｔａｎｃｅ  Ｃ１／ＥＵ／  １，２」、「Ｉｎｓｔａｎｃｅ  Ｃ２／ＥＵ／  ３−５」、「Ｉｎｓｔａｎｃｅ  Ｃ３／ＥＵ／  ６−」が記述されている。
【００７７】
設計者が「Ａｌｌ」を指定すると、全ての階層についての階層ピンコード情報を含む階層ピンコード指示ファイルを、階層ピンコード指示ファイル作成部１５に作成させることができる。２行目の「Ｍｏｄｕｌｅ  ＥＵＮＩＴ」を指定すると、階層ピンコード情報を作成させる対象をモジュール単位で指定することが可能となる。３行目の「Ｉｎｓｔａｎｃｅ」を指定すると階層ピンコード情報を作成させる対象をインスタンス単位で指定することが可能となる。インスタンスの指定は、指定した階層から何階層下の階層を、階層ピンコード情報を作成させる対象にするかを指定することができる。
【００７８】
例えば、４行目の「Ｉｎｓｔａｎｃｅ  Ｃ１／ＥＵ／  １，２」は、インスタンス名Ｃ１のインスタンスの１階層下の階層及び２階層下の階層を指定した例である。５行目の「Ｉｎｓｔａｎｃｅ  Ｃ２／ＥＵ／  ３−５」は、インスタンス名Ｃ２のインスタンスの３〜５階層下の階層を指定した例である。６行目の「Ｉｎｓｔａｎｃｅ  Ｃ３／ＥＵ／  ６−」は、インスタンス名Ｃ３のインスタンスの６階層下の階層以下を全て指定した例である。自分の階層も含めたい時は「０」を指定する。
【００７９】
また、設計者が、「ＯｕｔｐｕｔＵｎｉｔ」で重複する条件を指定した場合には、階層ピンコード指示ファイル作成部１５は、全体の論理和（ＯＲ）をとって得られた階層を、階層ピンコード情報を作成する対象とする。
【００８０】
図１０は、「ＯｕｔｐｕｔＵｎｉｔ」の設定を説明する図である。
図１０に示すユーザ設定ファイル１４ａは、「ＯｕｔｐｕｔＵｎｉｔ」以外の記載を省略している。
【００８１】
また、図１０では、ユーザ設定ファイル１４ａの指定に対応する設計対象回路のインスタンスを図示している。各インスタンスにおいて、階層ピンコード情報を作成する対象の階層（以下、「出力対象の階層」とも言う）を実線で示し、出力対象ではない階層を点線で示している。
【００８２】
ユーザ設定ファイル１４ａの記載「Ｉｎｓｔａｎｃｅ  ＡＡＡ／  ０，１，３」により、図１０（ａ）に示すように、インスタンス名ＡＡＡのインスタンスＩｎｓｔ−Ｅの階層３０、３１、３３が出力対象の階層となり、階層３２は、階層ピンコード情報を作成する対象から除外される。
【００８３】
また、ユーザ設定ファイル１４ａの記載「Ｉｎｓｔａｎｃｅ  ＢＢＢ／  １−３」により、図１０（ｂ）に示すように、インスタンス名ＢＢＢのインスタンスＩｎｓｔ−Ｆの階層４１、４２、４３が出力対象の階層となり、階層４０、４４は、階層ピンコード情報を作成する対象から除外される。
【００８４】
また、ユーザ設定ファイル１４ａの記載「Ｉｎｓｔａｎｃｅ  ＣＣＣ／  ０，２−」により、インスタンス名ＣＣＣのインスタンスＩｎｓｔ−Ｇの階層５０、５２、５３、５４が出力対象の階層となり、階層５１は、階層ピンコード情報を作成する対象から除外される。
【００８５】
再び図９に戻って説明する。
次に、ブラックボックスの指定に対応するＢｌａｃｋＢｏｘＵｎｉｔの項目を説明する。
【００８６】
＜ＢｌａｃｋＢｏｘＵｎｉｔ＞
「ＢｌａｃｋＢｏｘＵｎｉｔ」の指定は、設計途中の階層が存在する場合に有効である。すなわち、ネットリストが不完全な階層以下をブラックボックス化することにより、不完全な論理接続状態の影響を受けずにネットコードのトレースを行うことが可能である。
【００８７】
具体的には、実装ＤＢ作成処理部１０ａ、１０ｂ、１０ｃのネットリスト格納部のいずれかのネットリストが不完全な状態で、設計者が設計支援装置１０に実装ＤＢを作成させる際には、ユーザ設定ファイル１４ａの「ＢｌａｃｋＢｏｘＵｎｉｔ」の欄に、その不完全な状態の階層のピンに設計途中の階層の完成後に設定されると設計者が予想した階層ピンコードを、設計者が予め設定しておく。
【００８８】
そして、階層ピンコード指示ファイル作成部１５が論理ＤＢ格納部１２に格納された論理ＤＢからデータを取得する際に、「ＢｌａｃｋＢｏｘＵｎｉｔ」の指定された階層にフラグを設定する。そして、階層ピンコード指示ファイル作成部１５は、フラグが設定された階層については、設計者が設定した階層ピンコードを設定する。なお、階層ピンコード指示ファイル作成部１５は、ユーザ設定ファイル１４ａにおいてブラックボックスに指定した階層の実装ＤＢのピンに階層ピンコードが設定されていた場合には、そのピンからもネットコードのトレースを行う。
【００８９】
以上の処理により、階層ピンコード指示ファイル作成部１５は、指定した階層以下の論理接続情報を論理ＤＢ格納部１２から参照せずにネットコードのトレースを行い階層ピンコード指示ファイルの作成を行うことが可能である。
【００９０】
この「ＢｌａｃｋＢｏｘＵｎｉｔ」の指定も、「ＯｕｔｐｕｔＵｎｉｔ」と同様に、モジュール単位、インスタンス単位での指定が可能である。インスタンス指定がモジュール指定に包含されていた場合は、モジュール指定を有効とする。
【００９１】
図１１は、「ＢｌａｃｋＢｏｘＵｎｉｔ」の設定を説明する図である。
図１１（ａ）に示すように、インスタンスＩｎｓｔ−ＨとインスタンスＩｎｓｔ−Ｉのいずれも「ＢｌａｃｋＢｏｘＵｎｉｔ」に設定されていない場合、階層ピンコード指示ファイル作成部１５は、設計対象回路６０の入力端子Ｉｎおよび出力端子ＯｕｔとインスタンスＩｎｓｔ−ＨのゲートおよびインスタンスＩｎｓｔ−Ｉのゲートからネットコードのトレースを実施する。
【００９２】
他方、図１１（ｂ）に示すように、インスタンスＩｎｓｔ−ＨとインスタンスＩｎｓｔ−Ｉのうち、インスタンスＩｎｓｔ−Ｈのみが「ＢｌａｃｋＢｏｘＵｎｉｔ」に設定されている場合、階層ピンコード指示ファイル作成部１５は、設計対象回路６０の入力端子Ｉｎ、出力端子Ｏｕｔと、インスタンスＩｎｓｔ−Ｈのピンｐ１、ピンｐ２とインスタンスＩｎｓｔ−ＩのゲートＧ１からネットコードをトレースする。
【００９３】
再び図９に戻って説明する。
＜ＣｈｅｃｋＫｉｎｄ＞
「ＣｈｅｃｋＫｉｎｄ」の項目では、階層ピンコード指示ファイル作成部１５に階層ピンコード情報を作成させる対象として設計者が指定したチェック種別が設定されている。階層ピンコード指示ファイル作成部１５は、指定されたチェック種別に対応したネットコードのトレースを行い、階層ピンコード指示ファイルを作成する。具体的には、階層ピンコード指示ファイル作成部１５は、チェック種別毎に異なるトレース条件で論理ＤＢにネットコードのトレースを行い、それぞれのチェック種別用に階層ピンコード指示ファイルを作成する。
【００９４】
図９では、「ＣｈｅｃｋＫｉｎｄ」におけるチェック種別の詳細設定項目として、「Ａｌｌ」、「ＣｒｏｓｓｔａｌｋＮｏｉｓｅＣｈｅｃｋ」、「ＴｒｆＣｈｅｃｋ」が設けられている。
【００９５】
設計者が、「Ａｌｌ」を指定すると、全てのチェック種別についての階層ピンコード指示ファイルを、階層ピンコード指示ファイル作成部１５に作成させることができる。「ＣｒｏｓｓｔａｌｋＮｏｉｓｅＣｈｅｃｋ」を指定すると、設計者が隣接信号線間のクロストークノイズチェックに使用する階層ピンコード指示ファイルを階層ピンコード指示ファイル作成部１５に作成させることができる。「ＴｒｆＣｈｅｃｋ」を指定すると、設計者が入力波形の波形なまりチェックに使用する階層ピンコード指示ファイルを階層ピンコード指示ファイル作成部１５に作成させることができる。
【００９６】
なお、チェック種別の対象が複数指定された場合には、階層ピンコード指示ファイル作成部１５は、指定したチェック種別用の階層ピンコード指示ファイルを全て作成する。
以下、チェック種別毎に自動階層ピンコード指示ファイルを作成する具体例について説明する。
【００９７】
図１２は、「ＣｈｅｃｋＫｉｎｄ」の設定を説明する図である。
図１２において、設計対象回路７０のモジュールＭｏｄ５の出力側に接続された、ピン名がＰｉｎＢであるピンｐ３には、階層ピンコードＣｏｄｅ１が設定されるゲートＧ２、または、階層ピンコードＣｏｄｅ２が設定されるゲートＧ３が接続される。
【００９８】
この状態でＰｉｎＢについてはピンコードＣｏｄｅ１かピンコードＣｏｄｅ２が合流するため設計者は、どちらかを指定する。
それぞれの指定に従って階層ピンコード指示ファイル作成部１５が作成した階層ピンコード指示ファイル１１２を図１２の下部に示す。
【００９９】
ユーザ設定ファイル１４ａにて「ＣｒｏｓｓｔａｌｋＮｏｉｓｅＣｈｅｃｋ」が指定されている場合、階層ピンコード指示ファイル作成部１５は、トレースルールに従って階層ピンコードＣｏｄｅ１を選択する。選択の結果、階層ピンコード指示ファイル作成部１５は、「ＰｉｎＢ  Ｃｏｄｅ１」を階層ピンコード指示ファイルに記述する。
【０１００】
他方、ユーザ設定ファイル１４ａにて「ＴｒｆＣｈｅｃｋ」が指定されている場合、階層ピンコード指示ファイル作成部１５は、トレースルールに従ってピンコードＣｏｄｅ２を選択する。選択の結果、階層ピンコード指示ファイル作成部１５は、「ＰｉｎＢ  Ｃｏｄｅ２」を階層ピンコード指示ファイルに記述する。
【０１０１】
次に、設計者が設計支援装置１０を操作して実装ＤＢを作成する処理（第１の全体処理）を説明する。
＜第１の全体処理＞
第１の全体処理は、論理ＤＢの作成処理を開始する時点で、ネットリスト格納部１２０、２２０、３２０、４２０にネットリストが存在した場合の処理である。なお、ネットリスト格納部１２０、２２０、３２０、４２０のうち、一部のネットリスト格納部にネットリストが存在しない場合の処理については、第２の全体処理として後述する。
【０１０２】
図１３は、第１の全体処理を示すフローチャートである。
［ステップＳ１］  論理ＤＢ作成部１１は、ネットリスト格納部１２０、２２０、３２０、４２０に格納されているネットリストとマニュアル階層ピンコード指示ファイル４１１を入力として、設計対象回路２０の全ての回路の論理接続情報を含んだ論理ＤＢを作成する。作成した論理ＤＢは、論理ＤＢ格納部１２に格納する。その後、ステップＳ２に遷移する。なお、論理ＤＢの作成方法については、後述する。
【０１０３】
［ステップＳ２］  階層ピンコード指示ファイル作成部１５は、ステップＳ１にて作成された論理ＤＢに対してネットコードのトレースを行い、各下位階層に設定すべき階層ピンコード指示ファイルを作成する。なお、階層ピンコード指示ファイルの作成方法については、後に詳述する。
【０１０４】
階層ピンコード指示ファイル作成部１５は、階層ピンコード指示ファイル作成後に論理ＤＢ格納部１２に格納されている論理ＤＢを破棄する。
［ステップＳ３］  実装ＤＢ作成部１３０は、ステップＳ２にて作成された下位階層に設定すべき階層ピンコード指示ファイルとネットリスト格納部１２０に格納されているネットリストから下位階層の実装ＤＢを作成する。作成した実装ＤＢは、実装ＤＢ格納部１４０に格納する。実装ＤＢ作成部２３０も実装ＤＢ作成部１３０と同様の処理を行って実装ＤＢを作成し、作成した実装ＤＢを実装ＤＢ格納部２４０に格納する。実装ＤＢ作成部３３０も実装ＤＢ作成部１３０と同様の処理を行って実装ＤＢを作成し、作成した実装ＤＢを実装ＤＢ格納部３４０に格納する。その後、ステップＳ４に遷移する。なお、実装ＤＢの作成方法については、後述する。
【０１０５】
［ステップＳ４］  設計者により、全ての下位階層で実装ＤＢの作成が完了したか否かが判断される。
全ての下位階層で実装ＤＢの作成が完了していない場合（ステップＳ４のＮｏ）、ステップＳ３に遷移する。全ての下位階層で実装ＤＢの作成が完了した場合（ステップＳ４のＹｅｓ）、設計者は、上位階層の実装ＤＢの作成を設計支援装置１０に指示する。その後、ステップＳ５に遷移する。
【０１０６】
［ステップＳ５］  実装ＤＢ作成部４３０は、全下位階層の実装ＤＢの作成を完了した後に、ネットリスト格納部４２０に格納されたネットリストとマニュアル階層ピンコード指示ファイル４１１を入力とし、上位階層の実装ＤＢを作成する。実装ＤＢ作成部４３０は、作成した実装ＤＢを実装ＤＢ格納部４４０に格納する。その後、ステップＳ６に遷移する。
【０１０７】
［ステップＳ６］  設計者は、ネットリスト格納部４２０に格納されているネットリストが最終形か否かを判断する。この判断は、ステップＳ５にて作成された実装ＤＢによって、ネットリスト格納部４２０に格納されているネットリストを変更する必要があるか否かにより行う。設計者が、ネットリストが最終形であると判断した場合（ステップＳ６のＹｅｓ）、ステップＳ５にて作成された実装ＤＢが、設計対象回路２０の半導体製造工場に対してテープアウトされる最終的な設計物に含まれる実装ＤＢの元になる。取得目的の実装ＤＢが得られたため、全体処理を終了する。
【０１０８】
他方、設計者が、ネットリストが最終形ではない、すなわち、まだ論理変更（ネットリストの変更）を行うと判断した場合（ステップＳ６のＮｏ）、設計者は、ネットリスト格納部４２０に格納されているネットリストの論理を変更する。そして、設計者は、論理変更後のネットリストに基づいた論理ＤＢの作成を設計支援装置１０に指示する。その後、ステップＳ７に遷移する。
【０１０９】
［ステップＳ７］  論理ＤＢ作成部１１は、論理変更後のネットリストから全回路の論理情報を含んだ論理ＤＢを作成する。作成した論理ＤＢは、論理ＤＢ格納部１２に格納する。その後、ステップＳ８に遷移する。
【０１１０】
［ステップＳ８］  階層ピンコード指示ファイル作成部１５は、論理ＤＢ格納部１２に格納されている論理ＤＢを読み出す。そして、読み出した論理ＤＢから各下位階層の階層ピンコード指示ファイルを作成する。なお、階層ピンコード指示ファイルを作成する際には、実装ＤＢ格納部１４０、２４０、３４０に格納されている論理変更前に設定した階層ピンコード情報とネットコードのトレース結果との差分が明示されたフォーマットで階層ピンコード指示ファイルを作成する。その後、ステップＳ９に遷移する。
【０１１１】
［ステップＳ９］  設計者により、階層ピンコード指示ファイル格納部１１０、２１０、３１０のうち、いずれか１つが選択される。選択後、ステップＳ１０に遷移する。
［ステップＳ１０］  設計者は、ステップＳ９にて選択した階層ピンコード指示ファイル格納部に格納されている、ステップＳ８にて作成した、すなわち論理変更後に作成した階層ピンコード指示ファイルと、ステップＳ２にて作成した、すなわち論理変更前に作成した階層ピンコード指示ファイルの差分を確認する。その後、ステップＳ１１に遷移する。
【０１１２】
［ステップＳ１１］  設計者は、ステップＳ１０の確認の結果、階層ピンコード指示ファイルと論理変更前に作成した階層ピンコード指示ファイルが一致するか否かを判断する。一致すると判断した場合（ステップＳ１１のＹｅｓ）、ステップＳ１３に遷移する。一致しないと判断した場合（ステップＳ１１のＮｏ）、ステップＳ１２に遷移する。
【０１１３】
［ステップＳ１２］  設計者は、不一致が生じた階層ピンコード指示ファイルを格納する階層ピンコード指示ファイル格納部を有する実装ＤＢ作成処理部にネットコードの再設定を指示する。指示された実装ＤＢ作成処理部の実装ＤＢ作成部は、論理変更後に作成された階層ピンコード指示ファイルに基づいて、実装ＤＢの階層ピンコード情報と論理ネットへのネットコード付与情報を更新する。その後、ステップＳ１３に遷移する。
【０１１４】
［ステップＳ１３］設計者は、全ての下位階層についてステップＳ１０〜ステップＳ１２の処理を行ったか否かを判断する。設計者が、全ての下位階層についてステップＳ１０〜ステップＳ１２の処理を行っていないと判断した場合（ステップＳ１３のＮｏ）、ステップＳ９に遷移し、未選択の階層ピンコード指示ファイル格納部を選択し、ステップＳ１０以降の処理を行う。全ての下位階層でステップＳ１０〜ステップＳ１２の処理を行ったと判断した場合（ステップＳ１３のＹｅｓ）、設計者は、上位階層の実装ＤＢの作成を設計支援装置１０に指示する。その後、ステップＳ５に遷移する。
【０１１５】
以上で、図１３に示す第１の全体処理の説明を終了する。
次に、ステップＳ１およびステップＳ７の論理ＤＢ作成部１１の論理ＤＢの作成処理（論理ＤＢ作成処理）を、フローチャートを用いて説明する。
【０１１６】
図１４は、論理ＤＢ作成処理を示すフローチャートである。
［ステップＳ２１］  論理ＤＢ作成部１１は、ネットリスト格納部１２０、２２０、３２０、４２０から設計者により指定されたネットリストを読み込み、ネットリストにどういうモジュールが存在するかを示すモジュール情報を取得する。その後、ステップＳ２２に遷移する。
【０１１７】
［ステップＳ２２］  論理ＤＢ作成部１１は、図示しないセルライブラリデータベースから、セル情報を取得する。その後、ステップＳ２３に遷移する。
［ステップＳ２３］  論理ＤＢ作成部１１は、ステップＳ２１にて取得したモジュール情報からステップＳ２４〜Ｓ２７の処理を実行していないモジュールを１つ選択する。その後、ステップＳ２４に遷移する。
【０１１８】
［ステップＳ２４］  論理ＤＢ作成部１１は、ステップＳ２３にて選択したモジュールが論理階層であるか実装階層であるかを判断する。具体的には、ステップＳ２２にて取得したセル情報を参照し、セルライブラリが存在しないモジュール階層は論理階層であると判断する。セルライブラリが存在するモジュール階層は実装階層とする。論理階層であると判断した場合（ステップＳ２４のＹｅｓ）、ステップＳ２５に遷移する。論理階層ではないと判断した場合（ステップＳ２４のＮｏ）、実装階層であると判断してステップＳ２７に遷移する。
【０１１９】
［ステップＳ２５］  論理ＤＢ作成部１１は、ステップＳ２３にて選択したモジュールを論理階層テーブルに登録する。その後、ステップＳ２６に遷移する。
［ステップＳ２６］  論理ＤＢ作成部１１は、ステップＳ２３にて選択したモジュール内の論理接続を追い、ネット接続情報を登録する。その後、ステップＳ２８に遷移する。
【０１２０】
［ステップＳ２７］  論理ＤＢ作成部１１は、ステップＳ２３にて選択したモジュールを実装階層テーブルに登録する。その後、ステップＳ２８に遷移する。
［ステップＳ２８］  論理ＤＢ作成部１１は、全てのモジュールについてステップＳ２４〜Ｓ２７の処理が終了したか否かを判断する。これは、例えば、ステップＳ２４〜Ｓ２７の処理が終了したモジュールに何らかの識別子を付すことにより判断することができる。全てのモジュールについてステップＳ２４〜Ｓ２７の処理が終了したと判断した場合（ステップＳ２８のＹｅｓ）、ステップＳ２９に遷移する。全てのモジュールについてステップＳ２４〜Ｓ２７の処理が終了していないと判断した場合（ステップＳ２８のＮｏ）、ステップＳ２３に遷移する。そして、未選択のモジュールを選択し、ステップＳ２４以降の処理を行う。
【０１２１】
［ステップＳ２９］  論理ＤＢ作成部１１は、ユーザ設定ファイル１４ａを参照し、指定されているチェック種別を１つ選択する。その後、ステップＳ３０に遷移する。
［ステップＳ３０］  論理ＤＢ作成部１１は、ステップＳ２９にて選択したチェック種別に対応するマニュアル階層ピンコード指示ファイル４１１を読み込む。そして、階層ピンテーブルに階層ピンコード情報を登録する。その後、ステップＳ３１に遷移する。
【０１２２】
［ステップＳ３１］  論理ＤＢ作成部１１は、トレースルール格納部１６に格納されているステップＳ２９にて選択したチェック種別に対応するトレースルールファイルを読み込み、トレース情報を格納する。その後、ステップＳ３２に遷移する。
【０１２３】
［ステップＳ３２］  論理ＤＢ作成部１１は、階層ピンコード情報とトレース情報から、論理接続情報のトレースを行い、ステップＳ２９にて選択したチェック種別に対応するネットコードをネットテーブルに設定する。その後、ステップＳ３３に遷移する。
【０１２４】
［ステップＳ３３］  論理ＤＢ作成部１１は、ユーザ設定ファイル１４ａに指定されている全てのチェック種別についてＳ３０〜Ｓ３２の処理を行ったか否かを判断する。全てのチェック種別についてＳ３０〜Ｓ３２の処理を行っていないと判断した場合（ステップＳ３３のＮｏ）、ステップＳ２９に遷移する。そして、未選択のチェック種別を選択し、ステップＳ３０以降の処理を継続して行う。これにより、チェック種別毎のネットコードがネットテーブルに設定される。全てのチェック種別についてＳ３０〜Ｓ３２の処理を行ったと判断した場合（ステップＳ３３のＹｅｓ）、論理ＤＢ作成処理を終了する。
【０１２５】
この論理ＤＢ作成処理により、論理階層テーブル、ネット接続情報、実装階層テーブル、階層ピンコード情報、トレース情報、ネットテーブルをそれぞれ含む論理ＤＢが作成される。
【０１２６】
以上で、論理ＤＢ作成処理の説明を終了する。
次に、図１３のステップＳ２およびステップＳ８に示す階層ピンコード指示ファイル作成部１５の詳細処理（階層ピンコード指示ファイル作成処理）を説明する。
【０１２７】
図１５は、階層ピンコード指示ファイル作成処理を示すフローチャートである。
［ステップＳ４１］  階層ピンコード指示ファイル作成部１５は、ユーザ設定ファイル１４ａの読み込みを行う。ステップＳ４２に遷移する。
【０１２８】
［ステップＳ４２］  階層ピンコード指示ファイル作成部１５は、読み込んだユーザ設定ファイル１４ａの「ＯｕｔｐｕｔＵｎｉｔ」の記載を参照して設定された階層に出力対象フラグを設定する。そして、階層ピンコード指示ファイル作成部１５は、出力対象フラグを設定した階層を識別する出力対象フラグ情報をテーブルメモリに記憶する。その後、ステップＳ４３に遷移する。
【０１２９】
［ステップＳ４３］  階層ピンコード指示ファイル作成部１５は、読み込んだユーザ設定ファイル１４ａの「ＢｌａｃｋＢｏｘＵｎｉｔ」の記載を参照してネットコードのトレース時に、例えば未完成であることによりブラックボックスとして扱う階層についてブラックボックスフラグを設定する。そして、階層ピンコード指示ファイル作成部１５は、ブラックボックスフラグを設定した階層を識別するブラックボックスフラグ情報をテーブルメモリに記憶する。その後、ステップＳ４４に遷移する。
【０１３０】
［ステップＳ４４］  階層ピンコード指示ファイル作成部１５は、読み込んだユーザ設定ファイル１４ａの「ＣｈｅｃｋＫｉｎｄ」の記載を参照して対象のチェック種別に対してネットコードのトレース及び階層ピンコード指示ファイルの出力を行うチェック種別フラグを設定する。そして、階層ピンコード指示ファイル作成部１５は、チェック種別フラグを識別するチェック種別フラグ情報をテーブルメモリに記憶する。その後、ステップＳ４５に遷移する。
【０１３１】
［ステップＳ４５］  階層ピンコード指示ファイル作成部１５は、論理ＤＢ格納部１２から論理ＤＢの読み込みを行う。読み込んだ情報は、テーブルメモリに記憶する。
［ステップＳ４６］  階層ピンコード指示ファイル作成部１５は、ステップＳ４５にて読み込んだ論理ＤＢに含まれる最上位階層の階層ピンコード情報を取得する。その後、ステップＳ４７に遷移する。
【０１３２】
［ステップＳ４７］  階層ピンコード指示ファイル作成部１５は、下位階層の階層を１つ選択する。その後、ステップＳ４８に遷移する。
［ステップＳ４８］  階層ピンコード指示ファイル作成部１５は、テーブルメモリに記憶しているブラックボックスフラグ情報を参照する。そして、ブラックボックスフラグの設定の有無に応じて、ステップＳ４７にて選択した階層が、ブラックボックスとして扱う階層に指定されていたかを判断する。ブラックボックスフラグが設定されている場合（ステップＳ４８のＹｅｓ）、階層ピンコード指示ファイル作成部１５は、ステップＳ４７にて選択した階層が、ブラックボックスとして扱う階層に指定されていると判断し、ステップＳ４９に遷移する。ブラックボックスフラグが設定されていない場合（ステップＳ４８のＮｏ）、階層ピンコード指示ファイル作成部１５は、ステップＳ４７にて選択した階層が、ブラックボックスとして扱う階層と指定されていないと判断し、ステップＳ５０に遷移する。
【０１３３】
［ステップＳ４９］  階層ピンコード指示ファイル作成部１５は、ブラックボックスとして扱う階層では、その階層以下の論理接続情報を参照せずに、ステップＳ４７にて選択した階層に対応する実装ＤＢで設定されている階層ピンコード情報を取得し、テーブルメモリに情報を読み込む。その後、ステップＳ５１に遷移する。
【０１３４】
［ステップＳ５０］  階層ピンコード指示ファイル作成部１５は、ブラックボックスとして扱わない階層では、論理ＤＢに含まれる、ステップＳ４７にて選択した階層以下の論理接続情報を参照し、参照した論理接続情報をテーブルメモリに読み込む。その後、ステップＳ５１に遷移する。
【０１３５】
［ステップＳ５１］  階層ピンコード指示ファイル作成部１５は、全ての階層についてステップＳ４８〜ステップＳ５０の処理が終了したか否かを判断する。未だ処理をしていない階層が存在する場合（ステップＳ５１のＮｏ）、ステップＳ４７に遷移し、未選択の階層についてステップＳ４８〜Ｓ５０の処理を引き続き行う。全ての階層について処理が終了した場合（ステップＳ５１のＹｅｓ）、ステップＳ５２に遷移する。
【０１３６】
ステップＳ５１までの処理にて論理ＤＢからのデータの読み込みが完了となる。
［ステップＳ５２］  階層ピンコード指示ファイル作成部１５は、チェック種別毎のネットコードをトレースする。具体的には、チェック種別を１つ選択する。その後、ステップＳ５３に遷移する。
【０１３７】
［ステップＳ５３］  階層ピンコード指示ファイル作成部１５は、テーブルメモリに記憶しているチェック種別フラグ情報を参照する。そして、チェック種別フラグの有無に応じて、ステップＳ５２にて選択したチェック種別が、ユーザ設定ファイル１４ａで処理対象のチェック種別に指定されていたか否かを判断する。チェック種別フラグが設定されている場合（ステップＳ５３のＹｅｓ）、階層ピンコード指示ファイル作成部１５は、ステップＳ５２にて選択したチェック種別が、ユーザ設定ファイルで処理対象のチェック種別に指定されていたと判断し、ステップＳ５４に遷移する。チェック種別フラグが設定されていない場合（ステップＳ５３のＮｏ）、階層ピンコード指示ファイル作成部１５は、ステップＳ５２にて選択したチェック種別が、ユーザ設定ファイルで処理対象のチェック種別に指定されていなかったと判断し、ステップＳ５６に遷移する。
【０１３８】
［ステップＳ５４］  階層ピンコード指示ファイル作成部１５は、処理対象のチェック種別に対応する論理回路のトレースルールを取得する。取得したトレースルールをテーブルメモリに読み込む。その後、ステップＳ５５に遷移する。
【０１３９】
［ステップＳ５５］  階層ピンコード指示ファイル作成部１５は、トレースルールのテーブルメモリへの読み込みが完了すると、ステップＳ５０で読み込んでおいた論理接続情報、ステップＳ４６で読み込んでおいた最上位階層のピンコード情報、ステップＳ４９で読み込んでおいたブラックボックス階層のピンコード情報に基づいて、論理回路に対してトレースルール通りにネットコードのトレースを行う。そしてトレースによって得られたネットコード情報をテーブルメモリに読み込む。その後、ステップＳ５６に遷移する。
【０１４０】
［ステップＳ５６］  階層ピンコード指示ファイル作成部１５は、全てのチェック種類でステップＳ５３〜Ｓ５５の処理が終了したか否かを判断する。未処理のチェック種類が存在する場合（ステップＳ５６のＮｏ）、ステップＳ５２に遷移し、未選択のチェック種別についてステップＳ５３〜Ｓ５５の処理を引き続き行う。全てのチェック種類で処理が終了した場合（ステップＳ５６のＹｅｓ）、ステップＳ５７に遷移する。
【０１４１】
ステップＳ５６までの処理にてトレース処理が終了となる。
［ステップＳ５７］  階層ピンコード指示ファイル作成部１５は、ステップＳ５５にてテーブルメモリに読み込まれたネットコード情報に基づいて、階層ピンコード指示ファイルを出力する。その後、図１５に示す処理を終了する。
【０１４２】
次に、図１５のステップＳ５７の処理（階層ピンコード指示ファイル出力処理）を詳しく説明する。
図１６および図１７は、階層ピンコード指示ファイル出力処理を示すフローチャートである。
【０１４３】
［ステップＳ５７１］  階層ピンコード指示ファイル作成部１５は、テーブルメモリに記憶している出力チェック種別フラグ情報に基づいて、チェック種別を特定する。その後、ステップＳ５７２に遷移する。
【０１４４】
［ステップＳ５７２］  階層ピンコード指示ファイル作成部１５は、図１５のステップＳ４２で設定した出力対象フラグから出力対象のモジュール階層を特定する。その後、ステップＳ５７３に遷移する。
【０１４５】
［ステップＳ５７３］  階層ピンコード指示ファイル作成部１５は、論理ＤＢに含まれる論理階層テーブルまたは実装階層テーブルに基づいて、出力対象のモジュール階層に対する階層ピン情報を取得する。その後、ステップＳ５７４に遷移する。
【０１４６】
［ステップＳ５７４］  階層ピンコード指示ファイル作成部１５は、モジュールの階層ピン情報に対して、モジュールをインスタンスしている、インスタンスの階層ピンコード情報を実装ＤＢから取得する。その後、ステップＳ５７５に遷移する。
【０１４７】
［ステップＳ５７５］  階層ピンコード指示ファイル作成部１５は、全てのインスタンスの階層ピンコード情報が一致しているか判断する。全てのインスタンスの階層ピンコード情報が一致していると判断した場合（ステップＳ５７５のＹｅｓ）、ステップＳ５７８に遷移する。全てのインスタンスの階層ピンコード情報が一致していないと判断した場合（ステップＳ５７５のＮｏ）、ステップＳ５７６に遷移する。
【０１４８】
［ステップＳ５７６］  それぞれのインスタンスの階層ピン情報に不一致の情報と、モジュール階層に不一致情報を格納する。また、不一致フラグをＯＮに設定する。その後、ステップＳ５７７に遷移する。
【０１４９】
［ステップＳ５７７］  階層ピンコード指示ファイル作成部１５は、それぞれのインスタンスの階層ピンコードのチェック値の論理積（ＡＮＤ）をとることで、それぞれのインスタンスの階層ピンコードの中でチェック値の制限が最も厳しい階層ピンコードを選択する。そして、選択した階層ピンコードをテーブルメモリに記憶する。その後、ステップＳ５７８に遷移する。
【０１５０】
［ステップＳ５７８］  階層ピンコード指示ファイル作成部１５は、それぞれのインスタンスの階層ピンコードと、マニュアル階層ピンコードとを比較する。その後、ステップＳ５７９に遷移する。
【０１５１】
［ステップＳ５７９］  階層ピンコード指示ファイル作成部１５は、ステップＳ５７８の比較結果が、マニュアル階層ピンコード設定無、および図１５のステップＳ５５のトレース結果に基づいて、トレースされた階層ピンコード設定有の状態か否かを判断する。マニュアル階層ピンコード設定無、およびトレースされた階層ピンコード設定有の状態であれば（ステップＳ５７９のＹｅｓ）、ステップＳ５８０に遷移する。マニュアル階層ピンコード設定無、およびトレースされた階層ピンコード設定有の状態でなければ（ステップＳ５７９のＮｏ）、ステップＳ５８１に遷移する。
【０１５２】
［ステップＳ５８０］  階層ピンコード指示ファイル作成部１５は、ステップＳ５７３にて取得したモジュールの階層ピン情報に追加コードであるプラス「＋」を関連づけた関連情報を、階層ピンコード指示ファイル作成部１５のテーブルメモリに読み込む。その後、ステップＳ５８５に遷移する。
【０１５３】
［ステップＳ５８１］  階層ピンコード指示ファイル作成部１５は、ステップＳ５７８の比較結果が、マニュアル階層ピンコード設定有、およびトレースされた階層ピンコード設定無の状態か否かを判断する。マニュアル階層ピンコード設定有、およびトレースされた階層ピンコード設定無の状態であれば（ステップＳ５８１のＹｅｓ）、ステップＳ５８２に遷移する。マニュアル階層ピンコード設定有、およびトレースされた階層ピンコード設定無の状態でなければ（ステップＳ５８１のＮｏ）、ステップＳ５８３に遷移する。
【０１５４】
［ステップＳ５８２］  階層ピンコード指示ファイル作成部１５は、ステップＳ５７３にて取得したモジュールの階層ピン情報に削除コードであるマイナス「−」を関連づけた関連情報を、階層ピンコード指示ファイル作成部１５のテーブルメモリに読み込む。その後、ステップＳ５８５に遷移する。
【０１５５】
［ステップＳ５８３］  階層ピンコード指示ファイル作成部１５は、ステップＳ５７８の比較結果が、マニュアル階層ピンコードとトレースされた階層ピンコード一致の状態か否かを判断する。マニュアル階層ピンコードとトレースされた階層ピンコード一致の状態であれば（ステップＳ５８３のＹｅｓ）、ステップＳ５８５に遷移する。マニュアル階層ピンコードとトレースされた階層ピンコード一致の状態でなければ（ステップＳ５８３のＮｏ）、ステップＳ５８４に遷移する。
【０１５６】
［ステップＳ５８４］  階層ピンコード指示ファイル作成部１５は、ステップＳ５７３にて取得したモジュールの階層ピン情報に不一致コードであるエクスクラメーション「！」を関連づけた関連情報を、階層ピンコード指示ファイル作成部１５のテーブルメモリに読み込む。その後、ステップＳ５８５に遷移する。
【０１５７】
［ステップＳ５８５］  階層ピンコード指示ファイル作成部１５は、ステップＳ５７４〜Ｓ５８４の処理を全ての階層ピンについて実行したか否かを判断する。全ての階層ピンについて実行したと判断した場合（ステップＳ５８５のＹｅｓ）、ステップＳ５８６に遷移する。全ての階層ピン群について実行していないと判断した場合（ステップＳ５８５のＮｏ）、ステップＳ５７４に遷移し、未処理のピンコード情報を取得し、ステップＳ５７５以降の処理を実行する。
【０１５８】
［ステップＳ５８６］  階層ピンコード指示ファイル作成部１５は、ステップＳ５７４〜Ｓ５８４の処理を全てのモジュール階層について実行したか否かを判断する。全てのモジュール階層について実行したと判断した場合（ステップＳ５８６のＹｅｓ）、ステップＳ５８７に遷移する。全てのモジュール階層について実行していないと判断した場合（ステップＳ５８５のＮｏ）、ステップＳ５７３に遷移し、未処理のモジュール階層を取得し、ステップＳ５７４以降の処理を実行する。
【０１５９】
［ステップＳ５８７］  階層ピンコード指示ファイル作成部１５は、ステップＳ５７４〜Ｓ５８４の処理を全てのチェック種別について実行したか否かを判断する。全てのチェック種別について実行したと判断した場合（ステップＳ５８７のＹｅｓ）、ステップＳ５８８に遷移する。全てのチェック種別について実行していないと判断した場合（ステップＳ５８５のＮｏ）、ステップＳ５７２に遷移し、未処理のチェック種別を取得し、ステップＳ５７３以降の処理を実行する。
【０１６０】
［ステップＳ５８８］  階層ピンコード指示ファイル作成部１５は、Ｓ５７１と同じ方法で、出力チェック種別情報を取得する。その後、ステップＳ５８９に遷移する。
［ステップＳ５８９］  階層ピンコード指示ファイル作成部１５は、Ｓ５７２と同じ方法で、出力モジュール階層情報を取得する。その後、ステップＳ５９０に遷移する。
【０１６１】
［ステップＳ５９０］  階層ピンコード指示ファイル作成部１５は、Ｓ５７３と同じ方法で、出力モジュール階層に対する階層ピン情報を取得する。その後、ステップＳ５９１に遷移する。
【０１６２】
［ステップＳ５９１］  階層ピンコード指示ファイル作成部１５は、ステップＳ５７６でチェック格納した、モジュール階層をインスタンスしている階層ピン情報の不一致フラグがＯＮか否かを判断する。不一致フラグがＯＮでない場合（ステップＳ５９１のＮｏ）、ステップＳ５９２に遷移する。不一致フラグがＯＮである場合（ステップ５９１のＹｅｓ）、ステップＳ５９４に遷移する。
【０１６３】
［ステップＳ５９２］  不一致フラグがＯＮでないということは、モジュールをインスタンスしている階層ピン情報のトレース結果が全て同じであることを意味している。階層ピンコード指示ファイル作成部１５は、ステップＳ５８０、Ｓ５８２、Ｓ５８４でテーブルメモリに取り込んだ関連情報を読み出す。その後、ステップＳ５９３に遷移する。
【０１６４】
［ステップＳ５９３］  階層ピンコード指示ファイル作成部１５は、読み出した関連情報を付加したモジュール階層の階層ピンコード指示ファイルを、各階層ピンコード指示ファイル格納部にモジュール階層単位で出力する。その後、ステップＳ５９７に遷移する。
【０１６５】
［ステップＳ５９４］  階層ピンコード指示ファイル作成部１５は、不一致フラグがＯＮの場合は、モジュールをインスタンスしている階層ピン情報のトレース結果が一部でも不一致があることを意味している。階層ピンコード指示ファイル作成部１５は、インスタンスの階層ピンに対してステップＳ５８０、Ｓ５８２、Ｓ５８４で格納した情報を取得する。その後、ステップＳ５９５に遷移する。
【０１６６】
［ステップＳ５９５］  階層ピンコード指示ファイル作成部１５は、ステップＳ５９４で取得した情報を、インスタンスの階層モジュールピンコード指示ファイルとしてインスタンス単位で出力する。その後、ステップＳ５９６に遷移する。
【０１６７】
［ステップＳ５９６］  階層ピンコード指示ファイル作成部１５は、ステップＳ５７７、Ｓ５８０、Ｓ５８２、Ｓ５８４で格納したインスタンスの階層ピンについてマージした情報を取り込み、取り込んだマージ後の情報をモジュール階層の階層ピンコード指示ファイルとしてモジュール階層単位で各階層ピンコード指示ファイル格納部に出力する。その後、ステップＳ５９７に遷移する。
【０１６８】
［ステップＳ５９７］  階層ピンコード指示ファイル作成部１５は、ステップＳ５９１〜Ｓ５９６の処理を全ての階層ピンについて実行したか否かを判断する。全ての階層ピンについて実行したと判断した場合（ステップＳ５９７のＹｅｓ）、ステップＳ５９８に遷移する。全ての階層ピン群について実行していないと判断した場合（ステップＳ５９７のＮｏ）、ステップＳ５９０に遷移し、未処理のピンコード情報を取得し、ステップＳ５９１以降の処理を実行する。
【０１６９】
［ステップＳ５９８］  階層ピンコード指示ファイル作成部１５は、ステップＳ５９１〜Ｓ５９６の処理を全てのモジュール階層について実行したか否かを判断する。全てのモジュール階層について実行したと判断した場合（ステップＳ５９８のＹｅｓ）、ステップＳ５９９に遷移する。全てのモジュール階層について実行していないと判断した場合（ステップＳ５９８のＮｏ）、ステップＳ５８９に遷移し、未処理のモジュール階層を取得し、ステップＳ５９０以降の処理を実行する。
【０１７０】
［ステップＳ５９９］  階層ピンコード指示ファイル作成部１５は、ステップＳ５９１〜Ｓ５９６の処理を全てのチェック種別について実行したか否かを判断する。全てのチェック種別について実行したと判断した場合（ステップＳ５９９のＹｅｓ）、階層ピンコード指示ファイル出力処理を終了する。全てのチェック種別について実行していないと判断した場合（ステップＳ５９９のＮｏ）、ステップＳ５８８に遷移し、未処理のチェック種別を取得し、ステップＳ５８９以降の処理を実行する。
【０１７１】
ステップＳ５９７〜Ｓ５９９の処理により、ステップＳ５９１〜Ｓ５９６を全ての階層ピン群、モジュール階層群、チェック種別群で実施することで、全ての出力対象のチェック種別、出力対象のモジュール階層、インスタンス階層に対して、階層ピンコード指示ファイルを出力することになる。
【０１７２】
以上で、階層ピンコード指示ファイル出力処理の説明を終了する。
次に、ステップＳ３およびステップＳ５の実装ＤＢ作成部１３０、２３０、３３０、４３０の実装ＤＢの作成処理（実装ＤＢ作成処理）を、フローチャートを用いて説明する。
【０１７３】
なお、実装ＤＢ作成処理部１０ａ、１０ｂ、１０ｃ、１０ｄの各実装ＤＢ作成部の処理は、等しいため、実装ＤＢ作成部１３０の処理を例示する。
図１８は、実装ＤＢ作成処理を示すフローチャートである。
【０１７４】
［ステップＳ６１］  実装ＤＢ作成部１３０は、ネットリスト格納部１２０から設計者により指定されたネットリストを読み込み、モジュール情報を取得する。その後ステップＳ６２に遷移する。
【０１７５】
［ステップＳ６２］  実装ＤＢ作成部１３０は、図示しないセルライブラリデータベースから、セル情報を取得する。その後、ステップＳ６３に遷移する。
［ステップＳ６３］  実装ＤＢ作成部１３０は、ステップＳ６４〜Ｓ６７の処理を実行していないモジュールを１つ選択する。その後、ステップＳ６４に遷移する。
【０１７６】
［ステップＳ６４］  実装ＤＢ作成部１３０は、ステップＳ６３にて選択したモジュールが論理階層であるか又は実装階層であるかを判断する。ここで、セルライブラリが存在しないモジュール階層は論理階層と判断する。セルライブラリが存在するモジュール階層は実装階層と判断する。論理階層と判断した場合（ステップＳ６４のＹｅｓ）、ステップＳ６５に遷移する。論理階層ではないと判断した場合（ステップＳ６４のＮｏ）、実装階層と判断してステップＳ６７に遷移する。
【０１７７】
［ステップＳ６５］  実装ＤＢ作成部１３０は、ステップＳ６３にて選択したモジュールを論理階層テーブルに登録する。その後、ステップＳ６６に遷移する。
［ステップＳ６６］  実装ＤＢ作成部１３０は、ステップＳ６３にて選択したモジュール内の論理接続を追い、ネット接続情報を登録する。その後、ステップＳ６８に遷移する。
【０１７８】
［ステップＳ６７］  実装ＤＢ作成部１３０は、ステップＳ６３にて選択したモジュールを実装階層テーブルに登録する。その後、ステップＳ６８に遷移する。
［ステップＳ６８］  実装ＤＢ作成部１３０は、全てのモジュールについてステップＳ６４〜Ｓ６７の処理が終了したか否かを判断する。これは、例えば、ステップＳ６４〜Ｓ６７の処理が終了したモジュールに何らかの識別子を付すことにより判断することができる。全てのモジュールについてステップＳ６４〜Ｓ６７の処理が終了したと判断した場合（ステップＳ６８のＹｅｓ）、ステップＳ６９に遷移する。全てのモジュールについてステップＳ６４〜Ｓ６７の処理が終了していないと判断した場合（ステップＳ６８のＮｏ）、ステップＳ６３に遷移する。
【０１７９】
［ステップＳ６９］  実装ＤＢ作成部１３０は、配置、配線等の実装作業を行うための実装情報を設定する実装情報テーブルを作成する。その後、ステップＳ７０に遷移する。
［ステップＳ７０］  実装ＤＢ作成部１３０は、ユーザ設定ファイル１４ａを参照し、指定されているチェック種別を１つ選択する。その後、ステップＳ７１に遷移する。
【０１８０】
［ステップＳ７１］  実装ＤＢ作成部１３０は、ステップＳ７０にて選択したチェック種別に対応するマニュアル階層ピンコード指示ファイル１１１を読み込む。そして、階層ピンテーブルに階層ピンコードの情報を登録する。その後、ステップＳ７２に遷移する。
【０１８１】
［ステップＳ７２］  実装ＤＢ作成部１３０は、トレースルール格納部１６に格納されているステップＳ７０にて選択したチェック種別に対応するトレースルールファイルを読み込み、トレース情報を格納する。その後、ステップＳ７３に遷移する。
【０１８２】
［ステップＳ７３］  実装ＤＢ作成部１３０は、階層ピンコード情報とトレース情報から、論理接続情報のトレースを行い、ステップＳ７０にて選択したチェック種別に対応するネットコードをネットテーブルに設定する。ここで設定されたネットコードは、実装設計時に設計者が使用する。その後、ステップＳ７４に遷移する。
【０１８３】
［ステップＳ７４］  実装ＤＢ作成部１３０は、ユーザ設定ファイル１４ａに指定されている全てのチェック種別についてＳ７１〜Ｓ７３の処理を行ったか否かを判断する。全てのチェック種別についてＳ７１〜Ｓ７３の処理を行っていないと判断した場合（ステップＳ７４のＮｏ）、ステップＳ７０に遷移する。そして、未選択のチェック種別を選択し、ステップＳ７１以降の処理を継続して行う。これにより、チェック種別毎のネットコードがネットテーブルに設定される。全てのチェック種別についてＳ７１〜Ｓ７３の処理を行ったと判断した場合（ステップＳ７４のＹｅｓ）、実装ＤＢ作成処理を終了する。
【０１８４】
次に、ステップＳ５７７の具体例を説明する。
前述したように、階層ピンコード指示ファイル作成部１５は、階層ピンコード指示ファイルの出力に関して、ユーザ設定ファイル１４ａの指定に従い、インスタンス単位またはモジュール単位のいずれかの単位で階層ピンコード指示ファイルを作成する。
【０１８５】
モジュール単位で階層ピンコード情報が一致している場合に限り、モジュール単位で階層ピンコード指示ファイルを作成する。モジュール単位で階層ピンコード情報が一致していない場合、インスタンス単位で階層ピンコード指示ファイルを作成する。
【０１８６】
同一のモジュールにインスタンスされている場合においては、設計対象回路内におけるモジュールの使用方法がインスタンス毎に同じであれば、作成されるファイルはインスタンス毎では同じ結果となる。ところが設計対象回路内における当該モジュールの使用方法がインスタンス毎に異なる場合には、作成されるファイルで指定された同一のピンに対するピンコードはインスタンス毎に異なった結果となる。作成されたファイルで指定された同一のピンに対するピンコードがインスタンス毎に異なる結果となった場合において、下位階層側でインスタンス毎の階層ピンコード指示ファイルを用いて実装作業を行った場合には設計期間の増大に繋がる。
【０１８７】
そこで、階層ピンコード指示ファイル作成部１５は、同一のモジュールをインスタンスされて、作成されたファイルで指定された同一のピンに対するピンコードがそれぞれ異なる結果となった場合、作成された各ファイルをマージしてモジュール単位でファイルを再作成する。作成された各ファイルをマージする場合において、同一のピンが存在する場合におけるピンコードの選択基準は、ピンコードが異なったピンに対してそのチェック種別について一番制限値が厳しいものを選択するものとする。これにより、マージされたモジュール単位のファイルを下位階層側においても使用することにより、全てのインスタンスの制約を満たすことが可能となるため、設計期間増大を抑制することができる。
【０１８８】
図１９は、下位階層側でそれぞれ異なったピンコードが設定されていた場合の具体例を示す図である。
設計対象回路８０上には、インスタンスＩｎｓｔ−Ｊ〜Ｉｎｓｔ−Ｎの５つのインスタンスが配置されている。ここでインスタンスＩｎｓｔ−Ｊ〜Ｉｎｓｔ−Ｌの３つのインスタンスは、同一のモジュールＭｏｄ６についてインスタンスされている。
【０１８９】
階層ピンコード指示ファイル作成部１５が、設計対象回路８０に含まれる全ての回路をトレースした結果、この３つの階層ピンコード指示ファイル１１２ａ、１１２ｂ、１１２ｃが得られたものとする。階層ピンコード指示ファイル１１２ａ、１１２ｂ、１１２ｃは、図１９に示すようにＰｉｎＧについて設定された階層ピンコードが、インスタンスＩｎｓｔ−ＪはＣｏｄｅ１、インスタンスＩｎｓｔ−ＫはＣｏｄｅ２、インスタンスＩｎｓｔ−ＬはＣｏｄｅ３となり、作成されたファイルで指定された同一のピンに対するピンコードが異なる結果となったことを示している。
【０１９０】
このような状態においては、図１６のステップＳ５７７にて前述したように、ファイルのマージ処理を実施する。マージ方法としては、ファイル作成時のチェック種別の制限値の一番厳しいコードを選択してＰｉｎＧの階層ピンコードとして設定する。
【０１９１】
また、マージしたファイルについては、そのファイルがマージされたファイルである旨の識別情報を出力する。また、具体的にどのようにマージされたかを示すマージ情報を出力する。
【０１９２】
図１９では、最終的に階層ピンコード指示ファイル格納部１１０に出力される階層ピンコード指示ファイル１１２に設定されているＰｉｎＧについて以下の（１）〜（４）のマージ情報を記述している。（１）ＰｉｎＧにＣｏｄｅ２が選択された。（２）Ｃｏｄｅ２は、インスタンスＩｎｓｔ−Ｋで設定された階層ピンコードである。（３）異なったインスタンスはインスタンスＩｎｓｔ−Ｊ、Ｉｎｓｔ−Ｌである。（４）異なった階層ピンコード情報はＩｎｓｔ−Ｊ  Ｃｏｄｅ１、Ｉｎｓｔ−Ｌ  Ｃｏｄｅ３である。
【０１９３】
さらにヘッダ情報には、マージ処理を行ったことを示す「／＊Ｆｒｏｍ  Ｍｅｒｇｅ  Ｉｎｓｔ．＊／」がコメントとして設定される。
インスタンスＩｎｓｔ−Ｊ〜Ｉｎｓｔ−Ｌの３つの階層ピンコード指示ファイル１１２ａ、１１２ｂ、１１２ｃをそれぞれ下位階層モジュールに適用して全ての制約を満たすように処理する設計期間と比較すると、このマージした階層ピンコード指示ファイル１１２を下位階層のモジュールＭｏｄ６に適用して実装設計を行うことで、インスタンスＩｎｓｔ−Ｊ〜Ｉｎｓｔ−Ｌの全てのインスタンスの制約を満たす設計がより短期間で可能となる。
【０１９４】
以上述べたように、設計支援装置１０によれば、階層ピンコード指示ファイル作成部１５が階層ピンコード指示ファイルを作成することにより、設計者が手動で階層ピンコードを付加する場合に比べ、階層ピンコードの指定の精度が向上する。これにより、ネットコードの誤った付与を抑制することができる。従って、ネットコードを用いた各種チェックの精度が向上し、設計対象の回路の信頼性を向上することができる。
【０１９５】
また、階層ピンコード指示ファイル作成部１５が階層ピンコード指示ファイルを作成することにより、設計期間の短縮を図ることができる。
また、階層ピンコードが不一致の場合には、全階層ピンコードの中で制限値の一番厳しいコードを選択した階層ピンコード指示ファイル１１２を出力するようにしたので、設計対象回路に対する仕様の過剰チェックまたは過小チェックを抑制することができる。
【０１９６】
次に、第２の全体処理を説明する。
＜第２の全体処理＞
前述したように第２の全体処理は、処理を開始する時点で、一部の階層のネットリストのみが、各ネットリスト格納部に存在した場合の処理である。
【０１９７】
図２０は、第２の全体処理を示すフローチャートである。なお、図２０では、第１の全体処理に対応するステップについては、ステップ番号の最後に「ａ」を付している。
［ステップＳ３ａ］  設計者は、ネットリストが完成した階層の実装ＤＢ作成部に対し、実装ＤＢの作成を指示する。その後、ステップＳ３ｂに遷移する。
【０１９８】
［ステップＳ３ｂ］  設計者により、全ての下位階層で実装ＤＢの作成が完了したか否かが判断される。全ての下位階層で実装ＤＢの作成が完了していない場合（ステップＳ３ｂのＮｏ）、ステップＳ３ａに遷移する。全ての下位階層で実装ＤＢの作成が完了した場合（ステップＳ３ｂのＮｏ）、ステップＳ１ａに遷移する。
【０１９９】
［ステップＳ１ａ］  論理ＤＢ作成部１１は、ネットリストが完成した階層から実装作業を進め、全階層のネットリストが完成した段階で全回路の論理情報を含んだ論理ＤＢを作成する。論理ＤＢ作成部１１は、作成した論理ＤＢを論理ＤＢ格納部１２に格納する。その後、ステップＳ２ａに遷移する。
【０２００】
［ステップＳ２ａ］  階層ピンコード指示ファイル作成部１５は、論理ＤＢ格納部１２に格納された論理ＤＢから各下位階層の階層ピンコード指示ファイルを作成する。なお、階層ピンコード指示ファイル作成部１５は、階層ピンコード指示ファイルを作成する際に、実装ＤＢ格納部に保持されていたマニュアル階層ピンコード指示ファイルに設定されている階層ピンコード情報とネットコードのトレース結果との差分が明示されたフォーマットで階層ピンコード指示ファイルを作成する。その後、ステップＳＴ１に遷移する。
【０２０１】
［ステップＳＴ１］  設計者は、実装ＤＢ作成部１３０、２３０、３３０のうちステップＳＴ２〜ＳＴ４を実行していない実装ＤＢ作成部を１つ選択する。選択後、ステップＳＴ２に遷移する。
【０２０２】
［ステップＳＴ２］  設計者は、ステップＳ２ａにて作成した階層ピンコード指示ファイルとマニュアルで作成した階層ピンコード指示ファイルとの差分を階層単位で確認する。その後、ステップＳＴ３に遷移する。
【０２０３】
［ステップＳＴ３］  設計者は、ステップＳＴ２の確認の結果、ステップＳ２ａにて作成した階層ピンコード指示ファイルの各階層ピンコードと論理変更前に作成した階層ピンコード指示ファイルの階層ピンコードとが一致するか否かを判断する。ステップＳ２ａにて作成した階層ピンコード指示ファイルの各階層ピンコードと論理変更前に作成した階層ピンコード指示ファイルの階層ピンコードの全てが一致する場合（ステップＳＴ３のＹｅｓ）、ステップＳ４ａに遷移する。一致しない階層ピンコードが存在する場合（ステップＳＴ３のＮｏ）、ステップＳＴ４に遷移する。
【０２０４】
［ステップＳＴ４］  ステップＳＴ１にて選択された実装ＤＢ作成部は、ステップＳ２ａにて作成された階層ピンコード指示ファイルの階層ピンコードの内容で、対応する実装ＤＢ内の階層ピンコード指示ファイルの、一致しない階層ピンコードを更新（置換）する。また、対応する実装ＤＢ内のネットコード付与情報を更新する。その後、ステップＳ４ａに遷移する。
【０２０５】
［ステップＳ４ａ］  設計者により、全ての下位階層の実装ＤＢ作成部についてステップＳＴ２〜ＳＴ４の処理が終了したか否かが判断される。全ての下位階層の実装ＤＢ作成部についてステップＳＴ２〜ＳＴ４の処理が終了したと判断した場合（ステップＳ４ａのＹｅｓ）、設計者は、上位階層の実装ＤＢの作成を設計支援装置１０に指示する。その後、ステップＳ５ａに遷移する。未だステップＳＴ２〜ＳＴ４の処理が終了していない下位階層の実装ＤＢ作成部が存在すると判断した場合（ステップＳ４ａのＮｏ）、設計者は、ステップＳＴ２〜ＳＴ４を実行していない実装ＤＢ作成部を１つ選択する。そして選択した実装ＤＢ作成部の処理を設計支援装置１０に指示する。その後、ステップＳＴ１に遷移する。
【０２０６】
［ステップＳ５ａ］  実装ＤＢ作成部４３０は、ネットリスト格納部４２０に格納されたネットリストとマニュアル階層ピンコード指示ファイル４１１を入力として、上位階層の実装ＤＢを作成する。実装ＤＢ作成部４３０は、作成した実装ＤＢを実装ＤＢ格納部４４０に格納する。
【０２０７】
［ステップＳ６ａ］  設計者は、ネットリスト格納部４２０に格納されているネットリストが最終形か否かを判断する。設計者が、ネットリストが最終形であると判断した場合（ステップＳ６ａのＹｅｓ）、ステップＳ５ａにて作成された実装ＤＢが最終的に設計対象回路２０のテープアウトを行う実装ＤＢの元になる。取得目的の実装ＤＢが得られたため、全体処理を終了する。
【０２０８】
他方、設計者が、ネットリストが最終形ではないと判断した場合（ステップＳ６ａのＮｏ）、設計者は、ネットリスト格納部４２０に格納されているネットリストの論理を変更する。そして、設計者は、論理変更後のネットリストに基づいた論理ＤＢの作成を設計支援装置１０に指示する。その後、ステップＳ７ａに遷移する。
【０２０９】
［ステップＳ７ａ］  論理ＤＢ作成部１１は、論理変更後のネットリストから全回路の論理情報を含んだ論理ＤＢを作成する。作成した論理ＤＢは、論理ＤＢ格納部１２に格納する。その後、ステップＳ８ａに遷移する。
【０２１０】
［ステップＳ８ａ］  階層ピンコード指示ファイル作成部１５は、論理ＤＢ格納部１２に格納されている論理ＤＢを読み出す。そして、読み出した論理ＤＢから各下位階層の階層ピンコード指示ファイルを作成する。なお、階層ピンコード指示ファイルを作成する際に、実装ＤＢ格納部に格納されている論理変更前に設定した階層ピンコード情報とネットコードのトレース結果を比較して、差分が分かるフォーマットで階層ピンコード指示ファイルを作成する。その後、ステップＳ９ａに遷移する。
【０２１１】
［ステップＳ９ａ］  設計者により、階層ピンコード指示ファイル格納部１１０、２１０、３１０のうち、１つが選択される。選択後、ステップＳ１０ａに遷移する。
［ステップＳ１０ａ］  設計者は、ステップＳ８ａにて作成した、すなわち論理変更後に作成した階層ピンコード指示ファイルと、ステップＳ２ａにて作成した、すなわち論理変更前に作成した階層ピンコード指示ファイルの差分を確認する。その後、ステップＳ１１ａに遷移する。
【０２１２】
［ステップＳ１１ａ］  設計者は、ステップＳ１０ａの確認の結果、階層ピンコード指示ファイルと論理変更前に作成した階層ピンコード指示ファイルが一致するか否かを判断する。一致すると判断した場合（ステップＳ１１ａのＹｅｓ）、ステップＳ１３ａに遷移する。一致しないと判断した場合（ステップＳ１１ａのＮｏ）、ステップＳ１２ａに遷移する。
【０２１３】
［ステップＳ１２ａ］  設計者は、不一致が生じた階層ピンコード指示ファイルを格納する階層ピンコード指示ファイル格納部１１０を有する実装ＤＢ作成処理部にネットコードの再設定を指示する。指示された実装ＤＢ作成処理部の実装ＤＢ作成部は、論理変更後に作成された階層ピンコード指示ファイルに基づいて、実装ＤＢの階層ピンコード情報と論理ネットへのネットコード付与情報を更新する。その後、ステップＳ１３ａに遷移する。
【０２１４】
［ステップＳ１３ａ］  設計者は、全ての下位階層についてステップＳ１０ａ〜ステップＳ１２ａの処理を行ったか否かを判断する。設計者が、全ての下位階層でステップＳ１０ａ〜ステップＳ１２ａの処理を行っていないと判断した場合（ステップＳ１３ａのＮｏ）、ステップＳ９ａに遷移し、未選択の階層ピンコード指示ファイル格納部を選択し、ステップＳ１０ａ以降の処理を行う。全ての下位階層でステップＳ１０ａ〜ステップＳ１２ａの処理を行ったと判断した場合（ステップＳ１３ａのＹｅｓ）、設計者は、上位階層の実装ＤＢの作成を設計支援装置１０に指示する。その後、ステップＳ５ａに遷移する。
【０２１５】
以上で、図２０に示す第２の全体処理の説明を終了する。
この第２の全体処理によれば、全てのネットリストが完成していなくても、実装ＤＢ作成部４３０が実装ＤＢを作成することができる。
【０２１６】
なお、設計支援装置１０が行った処理が、複数の装置によって分散処理されるようにしてもよい。例えば、１つの装置が、論理ＤＢ作成処理までを行って論理ＤＢを作成しておき、他の装置が、その論理ＤＢを用いて階層ピンコード指示ファイルを作成するようにしてもよい。
【０２１７】
以上、本発明の設計支援装置、設計支援方法および設計支援プログラムを、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０２１８】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、設計支援装置１、または設計支援装置１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０２１９】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０２２０】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０２２１】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０２２２】
以上の第１〜第２の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  設計対象回路の設計を支援する設計支援装置において、
前記設計対象回路が備える第１階層の回路と前記第１階層の下位階層である少なくとも１つの第２階層の回路それぞれの論理接続情報を含む第１のデータベースを格納するデータベース格納部と、
前記第１のデータベースに含まれる前記論理接続情報に基づいて、論理接続の種別を識別する論理接続種別識別情報のトレースを、前記第１階層の回路から前記第２階層の回路に向かって行い、前記第２階層の回路の階層端子と前記論理接続種別識別情報のトレース情報を有する階層端子コードとが関連づけられた階層端子コード情報を含む階層端子情報ファイルを生成するファイル生成部と、
前記ファイル生成部が生成した階層端子情報ファイルと、前記第２階層の回路の論理接続情報とに基づいて、前記設計対象回路が有する複数のセルの配置情報と前記複数のセル間の配線情報を含む前記第２階層の回路の第２のデータベースを生成するデータベース生成部と、
を有することを特徴とする設計支援装置。
【０２２３】
（付記２）  前記設計支援装置において、
前記第１のデータベースは、予め生成された階層端子コード情報を含み、
前記ファイル生成部は、階層端子情報ファイルを生成する場合、前記トレースにより得られた階層端子コード情報と前記予め生成された階層端子コード情報との差分を識別する識別情報を含む、前記階層端子情報ファイルを生成することを特徴とする付記１記載の設計支援装置。
【０２２４】
（付記３）  前記設計支援装置において、
前記データベース生成部は、前記第２のデータベースと、前記第１階層の回路の論理接続情報とに基づいて、前記設計対象回路が有する複数のセルの配置情報と前記複数のセル間の配線情報を含む前記第１階層の回路の第３のデータベースを生成することを特徴とする付記１記載の設計支援装置。
【０２２５】
（付記４）  前記設計支援装置において、
前記ファイル生成部は、前記第１階層の回路が、同一のモジュールに対応する複数のインスタンスを含む場合、前記同一のモジュールに対応する複数のインスタンスの各々について階層端子コードの異同を検出し、前記複数のインスタンスの各々について異なる階層端子コードが設定されているとき、異なる前記階層端子コードについて最も厳しい設計条件が設定されている階層端子コードを選択して前記階層端子情報ファイルを生成することを特徴とする付記１記載の設計支援装置。
【０２２６】
（付記５）  前記設計支援装置において、
前記ファイル生成部は、前記異なる前記階層端子コードについて最も厳しい設計条件が設定されている階層端子コードを選択をしたことを識別する情報を前記階層端子情報ファイルに付与して前記階層端子情報ファイルを生成することを特徴とする付記４記載の設計支援装置。
【０２２７】
（付記６）  前記設計支援装置において、
前記ファイル生成部は、前記第２階層の回路が階層端子と階層端子コードのみを含むブラックボックスに指定された場合、前記ブラックボックスに指定された前記第２階層の回路の階層端子に、予め用意された階層端子コードを設定して前記第２のデータベースを生成することを特徴とする付記１記載の設計支援装置。
【０２２８】
（付記７）  前記設計支援装置において、
前記ファイル生成部は、設定された階層指定情報が示す階層について、前記階層端子情報ファイルを生成することを特徴とする付記１記載の設計支援装置。
【０２２９】
（付記８）  前記設計支援装置において、
前記ファイル生成部は、設定されたチェック種別情報が示すチェック種別について、前記階層端子情報ファイルを生成することを特徴とする付記１記載の設計支援装置。
【０２３０】
（付記９）  設計対象回路の設計を支援する設計支援装置において、
前記設計対象回路が備える第１階層の回路と前記第１階層の下位階層である複数の第２階層の回路それぞれの論理接続情報を含む第１のデータベースを格納する第１のデータベース格納部と、
前記第１のデータベースに含まれる前記論理接続情報に基づいて、論理接続の種別を識別する論理接続種別識別情報のトレースを、前記第１階層の回路から前記第２階層の回路に向かって行い、前記第２階層の回路の階層端子と前記論理接続種別識別情報のトレース情報を有する階層端子コードとが関連づけられた第１の階層端子コード情報を含む階層端子情報ファイルを生成するファイル生成部と、
前記第２階層の回路それぞれに対応して設けられ、予め生成された第２の階層端子コード情報を備える階層端子情報ファイルを有する複数の第２のデータベースを格納する第２のデータベース格納部と、
前記第２のデータベース格納部に格納された第２の階層端子コード情報の階層端子コードについて、前記第２の階層端子コード情報に対応する第１の階層端子コード情報の階層端子コードとの不一致部分を、前記第１の階層端子コード情報の階層端子コードに置換する置換部と、
を有することを特徴とする設計支援装置。
【０２３１】
（付記１０）  前記設計支援装置において、
前記第２の階層端子コード情報は、前記複数の第２階層の回路の一部の回路の論理接続情報に基づいて生成されることを特徴とする付記９記載の設計支援装置。
【０２３２】
（付記１１）  設計対象回路の設計を支援する設計支援方法において、
コンピュータが、
前記設計対象回路が備える第１階層の回路と前記第１階層の下位階層である少なくとも１つの第２階層の回路それぞれの論理接続情報を含む第１のデータベースを格納するステップと、
前記第１のデータベースに含まれる前記論理接続情報に基づいて、論理接続の種別を識別する論理接続種別識別情報のトレースを、前記第１階層の回路から前記第２階層の回路に向かって行い、前記第２階層の回路の階層端子と前記論理接続種別識別情報のトレース情報を有する階層端子コードとが関連づけられた階層端子コード情報を含む階層端子情報ファイルを生成するステップと、
前記生成した階層端子情報ファイルと、前記第２階層の回路の論理接続情報とに基づいて、前記設計対象回路が有する複数のセルの配置情報と前記複数のセル間の配線情報を含む前記第２階層の回路の第２のデータベースを生成するステップと、
を実行することを特徴とする設計支援方法。
【０２３３】
（付記１２）  設計対象回路の設計を支援する設計支援プログラムにおいて、
コンピュータに、
前記設計対象回路が備える第１階層の回路と前記第１階層の下位階層である少なくとも１つの第２階層の回路それぞれの論理接続情報を含む第１のデータベースを格納させるステップと、
前記第１のデータベースに含まれる前記論理接続情報に基づいて、論理接続の種別を識別する論理接続種別識別情報のトレースを、前記第１階層の回路から前記第２階層の回路に向かって行い、前記第２階層の回路の階層端子と前記論理接続種別識別情報のトレース情報を有する階層端子コードとが関連づけられた階層端子コード情報を含む階層端子情報ファイルを生成させるステップと、
前記生成した階層端子情報ファイルと、前記第２階層の回路の論理接続情報とに基づいて、前記設計対象回路が有する複数のセルの配置情報と前記複数のセル間の配線情報を含む前記第２階層の回路の第２のデータベースを生成させるステップと、
を実行させることを特徴とする設計支援プログラム。
【符号の説明】
【０２３４】
１、１０  設計支援装置
１ａ  記憶部
１ｂ  第１のデータベース作成部
１ｃ  第１のデータベース格納部
１ｄ  ファイル作成部
１ｅ  第２のデータベース作成部
１ｆ  第２のデータベース格納部
２、２０、６０、７０、８０  設計対象回路
２ａ  第１階層の回路
２ｂ、２ｃ  第２階層の回路
３ａ、３ｂ  階層端子コード情報
４ａ、４ｂ  階層端子コード情報ファイル
１０ａ、１０ｂ、１０ｃ、１０ｄ  実装ＤＢ作成処理部
１１  論理ＤＢ作成部
１２  論理ＤＢ格納部
１３  ユーザ設定ファイル作成用アプリケーション
１４  ユーザ設定ファイル格納部
１４ａ  ユーザ設定ファイル
１５  階層ピンコード指示ファイル作成部
１６  トレースルール格納部
３１ａ、３２ａ  識別情報
１１０、２１０、３１０、４１０  階層ピンコード指示ファイル格納部
１１１、２１１、３１１、４１１  マニュアル階層ピンコード指示ファイル
１１２、１１２ａ、１１２ｂ、１１２ｃ、２１２、３１２、４１２  階層ピンコード指示ファイル
１２０、２２０、３２０、４２０  ネットリスト格納部
１３０、２３０、３３０、４３０  実装ＤＢ作成部
１４０、２４０、３４０、４４０  実装ＤＢ格納部
【図１】
0005605087.tif 000002
【図２】
0005605087.tif 000003
【図３】
0005605087.tif 000004
【図４】
0005605087.tif 000005
【図５】
0005605087.tif 000006
【図６】
0005605087.tif 000007
【図７】
0005605087.tif 000008
【図８】
0005605087.tif 000009
【図９】
0005605087.tif 000010
【図１０】
0005605087.tif 000011
【図１１】
0005605087.tif 000012
【図１２】
0005605087.tif 000013
【図１３】
0005605087.tif 000014
【図１４】
0005605087.tif 000015
【図１５】
0005605087.tif 000016
【図１６】
0005605087.tif 000017
【図１７】
0005605087.tif 000018
【図１８】
0005605087.tif 000019
【図１９】
0005605087.tif 000020
【図２０】
0005605087.tif 000021