(57)【要約】【課題】インプリメント前後の論理回路の端子の対応関係を簡単に求める。【解決手段】論理回路ＣＲ１のモジュールＭＬ１および論理回路ＣＲ２のモジュールＭＬ２において共通に使用される端子名を検索し（＃３）、共通だがモジュールＭＬ２では不使用の端子の端子名を確認し（＃４）、モジュールＭＬ１では使用されるがモジュールＭＬ２では不使用の端子名を確認し（＃５）、確認された端子名を使用する端子が接続される第一論理ゲートを特定方向にトレースして検索し（＃６）、その第一論理ゲートに対応する、論理回路ＣＲ２の第二論理ゲートが接続される、モジュールＭＬ２の端子を前記特定方向とは反対方向にトレースして検索し（＃７）、モジュールＭＬ１の端子の端子名と、その端子が接続される第一論理ゲートに対応する第二論理ゲートが接続されるモジュールＭＬ２の端子の端子名とを対応付けた、対応端子情報を生成する（＃８）。【選択図】図１１
2008171036.tif 000002
【特許請求の範囲】
【請求項１】
第一の論理回路の構造を記述した第一の論理回路データと、前記第一の論理回路を変更した第二の論理回路の構造を記述した第二の論理回路データと、を記憶する、論理回路データ記憶手段と、
前記第一の論理回路データおよび前記第二の論理回路データに基づいて、前記第一の論理回路を構成する第一のブロックの入出力端子の端子名と前記第二の論理回路を構成する、当該第一のブロックに対応する第二のブロックの入出力端子の端子名とを照合することによって、両ブロックにおいて共通に使用される端子名を検索する、同一端子名検索手段と、
同一端子名検索手段によって検索された端子名の入出力端子が前記第二のブロックにおいて使用されるか否かを前記第二の論理回路データに基づいて確認する使用有無確認手段と、
前記第一のブロックのいずれかの入出力端子に使用されているが前記第二のブロックのいずれの入出力端子にも使用されていない端子名を、前記第一の論理回路データおよび前記第二の論理回路データに基づいて確認する、非使用端子名確認手段と、
前記第一のブロックの入出力端子のうちの前記使用有無確認手段によって使用されていないことが確認されまたは前記非使用端子名確認手段によって確認された端子名を使用する入出力端子が接続される第一の論理ゲートを、前記第一の論理回路データに基づいて特定の方向にトレースすることによって検索する、接続論理ゲート検索手段と、
前記接続論理ゲート検索手段によって検索された前記第一の論理ゲートに対応する、前記第二の論理回路の前記第二の論理ゲートが接続される、前記第二のブロックの入出力端子を、前記第二の論理回路データに基づいて前記特定の方向とは反対の方向にトレースすることによって検索する、接続入出力端子検索手段と、
前記第一のブロックの入出力端子の端子名と、前記接続論理ゲート検索手段によって検索された当該入出力端子が接続される前記第一の論理ゲートに対応する、前記第二の論理ゲートが接続される、前記接続入出力端子検索手段によって検索された前記第二のブロックの入出力端子とが、互いに対応することを示す、対応端子情報を生成する、対応端子情報生成手段と、
を有することを特徴とする論理回路検査支援装置。
【請求項２】
前記第一の論理回路のシミュレーションの際に使用したテストベンチに示される、前記第一のブロックの入出力端子の端子名を、前記対応端子情報に基づいて、当該入出力端子に対応する、前記第二のブロックの入出力端子の端子名に読み換える、端子名読換手段と、
前記端子名読換手段によって読み換えられた前記テストベンチに基づいて前記第二の論理回路のシミュレーションを行うシミュレーション手段と、を有する、
請求項１記載の論理回路検査支援装置。
【請求項３】
前記特定の方向は、信号の入力元へ遡る方向である、
請求項１または請求項２記載の論理回路検査支援装置。
【請求項４】
第一の論理回路を構成する第一のブロックの入出力端子と、前記第一の論理回路を変更した第二の論理回路を構成する、前記第一のブロックに対応する第二のブロックの入力端子との、対応関係を求める、入出力端子対応関係導出方法であって、
前記第一の論理回路の構造を記述した第一の論理回路データおよび前記第二の論理回路の構造を記述した第二の論理回路データに基づいて、前記第一の論理回路を構成する第一のブロックの入出力端子の端子名と前記第二の論理回路を構成する、当該第一のブロックに対応する第二のブロックの入出力端子の端子名とを照合することによって、両ブロックにおいて共通に使用される端子名を検索する、第一のステップと、
前記第一のステップで検索された端子名の入出力端子が前記第二のブロックにおいて使用されるか否かを前記第二の論理回路データに基づいて確認する第二のステップと、
前記第一のブロックのいずれかの入出力端子に使用されているが前記第二のブロックのいずれの入出力端子にも使用されていない端子名を、前記第一の論理回路データおよび前記第二の論理回路データに基づいて確認する、第三のステップと、
前記第一のブロックの入出力端子のうちの前記第二のステップで使用されていないことが確認されまたは前記第三のステップで確認された端子名を使用する入出力端子が接続される第一の論理ゲートを、前記第一の論理回路データに基づいて特定の方向にトレースすることによって検索する、第四のステップと、
前記第四のステップで検索された前記第一の論理ゲートに対応する、前記第二の論理回路の前記第二の論理ゲートが接続される、前記第二のブロックの入出力端子を、前記第二の論理回路データに基づいて前記特定の方向とは反対の方向にトレースすることによって検索する、第五のステップと、
前記第一のブロックの入出力端子の端子名と、前記第四のステップで検索された当該入出力端子が接続される前記第一の論理ゲートに対応する、前記第二の論理ゲートが接続される、前記第五のステップで検索された前記第二のブロックの入出力端子とが、互いに対応することを示す、対応端子情報を生成する、第六のステップと、
を有することを特徴とする入出力端子対応関係導出方法。
【請求項５】
第一の論理回路を構成する第一のブロックの入出力端子と、前記第一の論理回路を変更した第二の論理回路を構成する、前記第一のブロックに対応する第二のブロックの入力端子との、対応関係を求めるためのコンピュータに用いられるコンピュータプログラムであって、
前記コンピュータに、
前記第一の論理回路の構造を記述した第一の論理回路データおよび前記第二の論理回路の構造を記述した第二の論理回路データに基づいて、前記第一の論理回路を構成する第一のブロックの入出力端子の端子名と前記第二の論理回路を構成する、当該第一のブロックに対応する第二のブロックの入出力端子の端子名とを照合することによって、両ブロックにおいて共通に使用される端子名を検索する、第一の処理と、
前記第一の処理で検索された端子名の入出力端子が前記第二のブロックにおいて使用されるか否かを前記第二の論理回路データに基づいて確認する第二の処理と、
前記第一のブロックのいずれかの入出力端子に使用されているが前記第二のブロックのいずれの入出力端子にも使用されていない端子名を、前記第一の論理回路データおよび前記第二の論理回路データに基づいて確認する、第三の処理と、
前記第一のブロックの入出力端子のうちの前記第二の処理で使用されていないことが確認されまたは前記第三の処理で確認された端子名を使用する入出力端子が接続される第一の論理ゲートを、前記第一の論理回路データに基づいて特定の方向にトレースすることによって検索する、第四の処理と、
前記第四の処理で検索された前記第一の論理ゲートに対応する、前記第二の論理回路の前記第二の論理ゲートが接続される、前記第二のブロックの入出力端子を、前記第二の論理回路データに基づいて前記特定の方向とは反対の方向にトレースすることによって検索する、第五の処理と、
前記第一のブロックの入出力端子の端子名と、前記第四の処理で検索された当該入出力端子が接続される前記第一の論理ゲートに対応する、前記第二の論理ゲートが接続される、前記第五の処理で検索された前記第二のブロックの入出力端子とが、互いに対応することを示す、対応端子情報を生成する、第六の処理と、
を実行させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路のシミュレーションを支援する装置および方法などに関する。
【背景技術】
【０００２】
近年、チップに実装される回路がますます大規模化し、多層化した論理回路の設計がなされるようになっている。それに伴って、論理回路のシミュレーションをチップレベルの最上位層だけで実施するのではなく、下位階層つまり機能ブロック単位でも実施しなくてはならない傾向が、強くなっている。
【０００３】
論理回路は通常、インプリメント工程を進めて行く過程において、タイミング調整や負荷調整のための修正が幾度となく行われるため、インプリメント後は、インプリメント前に回路設計者が所望した通りの仕様でインプリメント（実装）されたかを確認するために、シミュレーションを行う必要がある。その際に、インプリメント前のシミュレーションで使用したテストベンチを常に再利用できれば、新規にテストベンチを作成する工程が不要となり、効率的である。
【特許文献１】特開２００１−２９０８５９号公報
【特許文献２】特開平９−１４６９９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、論理回路の下位の階層のシミュレーションには、インプリメント前のテストベンチを使用することができないことがある。なぜなら、インプリメントの際に下位の階層においては、入出力端子の端子名が変更され、新たに入出力端子が追加され、入出力端子が削除され、または一部の入出力端子が使用されなくなることが、よく起こるからである。
【０００５】
したがって、従来、インプリメント前のシミュレーションで使用したテストベンチをそのまま再利用して下位の階層のシミュレーションを行うことができるのは、その階層の入出力端子がインプリメントによって変更されていないことを確認できた場合に限られていた。または、テストベンチをインプリメント後の入出力端子に合わせて編集するために、インプリメントの前後の入出力端子の対応関係を確認しなければならなかった。
【０００６】
特許文献１には論理等価性の検証の方法が記載されている。この方法によって検証可能なのは入力端子のみであり、出力端子または不使用の端子については検証不可能である。
【０００７】
特許文献２にも論理等価性の検証の方法が記載されている。この方法によって検証を行い、インプリメント前後の入出力端子の対応関係を確認することは可能である。しかし、この方法では、論理トレースのための情報として、全ゲートの全端子とその端子での計算式の情報とを抽出し、記憶しておく必要がある。そのためには、膨大な量のメモリを必要とする。しかも、検証の際に膨大な計算量を必要とする。
【０００８】
本発明は、このような問題点に鑑み、インプリメントの前後それぞれの論理回路の下位の階層の入出力端子の対応関係を従来よりも簡単に求めることができるようにすることを、目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る論理回路検査支援装置は、第一の論理回路の構造を記述した第一の論理回路データと、前記第一の論理回路を変更した第二の論理回路の構造を記述した第二の論理回路データと、を記憶する、論理回路データ記憶手段と、前記第一の論理回路データおよび前記第二の論理回路データに基づいて、前記第一の論理回路を構成する第一のブロックの入出力端子の端子名と前記第二の論理回路を構成する、当該第一のブロックに対応する第二のブロックの入出力端子の端子名とを照合することによって、両ブロックにおいて共通に使用される端子名を検索する、同一端子名検索手段と、同一端子名検索手段によって検索された端子名の入出力端子が前記第二のブロックにおいて使用されるか否かを前記第二の論理回路データに基づいて確認する使用有無確認手段と、前記第一のブロックのいずれかの入出力端子に使用されているが前記第二のブロックのいずれの入出力端子にも使用されていない端子名を、前記第一の論理回路データおよび前記第二の論理回路データに基づいて確認する、非使用端子名確認手段と、前記第一のブロックの入出力端子のうちの前記使用有無確認手段によって使用されていないことが確認されまたは前記非使用端子名確認手段によって検索された端子名を使用する入出力端子が接続される第一の論理ゲートを、前記第一の論理回路データに基づいて特定の方向にトレースすることによって検索する、接続論理ゲート検索手段と、前記接続論理ゲート検索手段によって検索された前記第一の論理ゲートに対応する、前記第二の論理回路の前記第二の論理ゲートが接続される、前記第二のブロックの入出力端子を、前記第二の論理回路データに基づいて前記特定の方向とは反対の方向にトレースすることによって検索する、接続入出力端子検索手段と、前記第一のブロックの入出力端子の端子名と、前記接続論理ゲート検索手段によって検索された当該入出力端子が接続される前記第一の論理ゲートに対応する、前記第二の論理ゲートが接続される、前記接続入出力端子検索手段によって検索された前記第二のブロックの入出力端子とが、互いに共通の意義の信号の入出力を行うことを示す、共通端子情報を生成する、共通端子情報生成手段と、を有することを特徴とする。
【００１０】
好ましくは、前記第一の論理回路のシミュレーションの際に使用したテストベンチに示される、前記第一のブロックの入出力端子の端子名を、前記共通端子情報に基づいて、当該入出力端子に対応する、前記第二のブロックの入出力端子の端子名に読み換える、端子名読換手段と、前記端子名読換手段によって読み換えられた前記テストベンチに基づいて前記第二の論理回路のシミュレーションを行うシミュレーション手段と、を有する。
【００１１】
前記特定の方向は、信号の入力元へ遡る方向である。または、信号の出力先へ進む方向であってもよい。
【発明の効果】
【００１２】
本発明によると、インプリメントの前後それぞれの論理回路の下位の階層の入出力端子の対応関係を従来よりも簡単に求めることができる。
【発明を実施するための最良の形態】
【００１３】
図１はコンピュータ１の全体的な構成およびコンピュータ本体１０のハードウェア構成の例を示す図、図２はコンピュータ１の機能的構成の例を示す図である。
【００１４】
図１（ａ）に示すコンピュータ１は、コンピュータ本体１０、ディスプレイ１１、キーボード１２、およびマウス１３などによって構成される。コンピュータ１として、パーソナルコンピュータまたはワークステーションなどが用いられる。
【００１５】
コンピュータ本体１０は、図１（ｂ）に示すように、ＣＰＵ１０ａ、ＲＡＭ１０ｂ、ＲＯＭ１０ｃ、ハードディスク１０ｄ、画像インタフェース１０ｅ、入出力インタフェース１０ｆ、およびネットワークカード１０ｇなどによって構成される。
【００１６】
画像インタフェース１０ｅは、ディスプレイ１１と接続するためのインタフェースであって、画面を表示するための映像信号をディスプレイ１１に送出する。入出力インタフェース１０ｆは、キーボード１２およびマウス１３と接続するために用いられ、ユーザの操作の信号をキーボード１２およびマウス１３から入力する。ネットワークカード１０ｇは、ＬＡＮまたはインターネットなどと接続するためのＮＩＣ（Network Interface Card）である。
【００１７】
ハードディスク１０ｄには、オペレーティングシステムのほか、本発明に係るコンピュータプログラムＣＰがインストールされている。このコンピュータプログラムＣＰは、図２に示すような階層端子情報抽出部１０１、階層端子名照合部１０２、階層端子使用確認部１０３、階層端子差分確認部１０４、接続論理ゲート検索部１０５、階層端子検索部１０６、互換情報生成部１０７、階層端子読換部１０８、シミュレーション実行部１０９、ネットリスト記憶部１Ｋ１、階層端子照合情報記憶部１Ｋ２、階層端子使用情報記憶部１Ｋ３、階層端子差分情報記憶部１Ｋ４、接続論理ゲート情報記憶部１Ｋ５、接続階層端子情報記憶部１Ｋ６、および階層端子互換情報記憶部１Ｋ７などの機能を実現するためのコンピュータプログラムである。
【００１８】
コンピュータプログラムＣＰによると、ある論理回路のインプリメント（実装）の前後の、下位の階層のブロック（モジュール）の入出力端子の対応関係（互換関係）を、求めることができる。さらに、インプリメント前のテストベンチを用いて、インプリメント後の論理回路ＣＲの動作のシミュレーションを行うことができる。
【００１９】
これらのプログラムおよびデータは、必要に応じてＲＡＭ１０ｂにロードされ、ＣＰＵ１０ａによってプログラムが実行される。
【００２０】
図３はインプリメント前後の論理回路ＣＲ１、ＣＲ２の構成の例を示す図、図４はインプリメント前階層端子情報ＪＡ１およびインプリメント後階層端子情報ＪＡ２の例を示す図、図５は階層端子照合情報ＪＢの例を示す図、図６は階層端子使用情報ＪＣの例を示す図、図７は階層端子差分情報ＪＤの例を示す図、図８は接続論理ゲート情報ＪＥの例を示す図、図９は接続階層端子情報ＪＦの例を示す図、図１０は階層端子互換情報ＪＧの例を示す図である。
【００２１】
以下、図３（ａ）に示す論理回路ＣＲが図３（ｂ）に示すようにインプリメントされた際の、モジュールＭＬの入出力端子についてのインプリメント前後の対応関係を求める場合を例に、図２の各部の処理内容などについて説明する。なお、インプリメント前および後の論理回路ＣＲをそれぞれ「論理回路ＣＲ１」および「論理回路ＣＲ２」と区別して記載し、インプリメント前および後のモジュールＭＬをそれぞれ「モジュールＭＬ１」および「モジュールＭＬ２」と区別して記載することがある。
【００２２】
図２において、ネットリスト記憶部１Ｋ１には、論理回路ＣＲ１、ＣＲ２それぞれの端子の定義、構成要素の定義、およびネットの定義などを記述したネットリストＮＬ１、ＮＬ２が記憶されている。
【００２３】
ネットリストＮＬ１、ＮＬ２は、ネットワークカード１０ｇまたは入出力インタフェース１０ｆを介して他のコンピュータから入力される。または、ネットリスト記述言語に基づいて設計者によってコンピュータ１に入力される。
【００２４】
階層端子情報抽出部１０１は、インプリメント前のネットリストつまり論理回路ＣＲ１のネットリストＮＬ１をネットリスト記憶部１Ｋ１から呼び出す。そして、モジュールＭＬ１への信号の入力の端子およびモジュールＭＬ１からの信号の出力の端子それぞれの端子名および所属する階層の階層名を、ネットリストＮＬ１から抽出する。１つの端子の端子名および所属する階層の階層名とは、「階層名／端子名」のように、「／」などの所定の記号で連結しておく。図３（ａ）に示す論理回路ＣＲ１のネットリストＮＬ１によると、図４（ａ）に示すような抽出結果が得られる。以下、この抽出結果の情報を「インプリメント前階層端子情報ＪＡ１」と記載する。
【００２５】
なお、論理ゲートの端子は、その論理ゲート名および端子名とその論理ゲートの属する階層の階層名とを「／」で連結し「階層名／論理ゲート名／端子名」のような名称で記載される。
【００２６】
同様に、階層端子情報抽出部１０１は、インプリメント後のネットリストつまり論理回路ＣＲ２のネットリストＮＬ２をネットリスト記憶部１Ｋ１から呼び出し、モジュールＭＬ２への信号の入力の端子およびモジュールＭＬ２からの信号の出力の端子それぞれの端子名および所属する階層の階層名を、ネットリストＮＬ２から抽出する。図３（ｂ）に示す論理回路ＣＲ２のネットリストＮＬ２からは、図４（ｂ）に示すような抽出結果が得られる。以下、この抽出結果の情報を「インプリメント後階層端子情報ＪＡ２」と記載する。
【００２７】
また、インプリメント前の階層名と端子名とを組み合わせた名称または階層名と論理ゲート名と端子名とを組み合わせた名称を「インプリメント前階層端子固有名」と記載し、インプリメント後の階層名と端子名とを組み合わせた名称または階層名と論理ゲート名と端子名とを組み合わせた名称を「インプリメント後階層端子固有名」と記載する。
【００２８】
階層端子名照合部１０２は、インプリメント前階層端子情報ＪＡ１に示されるインプリメント前階層端子固有名とインプリメント後階層端子情報ＪＡ２に示されるインプリメント後階層端子固有名とを照合することによって、互いに一致するインプリメント前階層端子固有名およびインプリメント後階層端子固有名を検索する。検索されたインプリメント前階層端子固有名に係る端子とインプリメント後階層端子固有名に係る端子とは、同一である。
【００２９】
そして、一致するインプリメント前階層端子固有名とインプリメント後階層端子固有名とを同じ行に並べることによって対応付け、かつ、それ以外のインプリメント前階層端子固有名およびインプリメント後階層端子固有名をそれぞれ別々の行に配置した、階層端子照合情報ＪＢを生成する。生成された階層端子照合情報ＪＢは、階層端子照合情報記憶部１Ｋ２に記憶される。
【００３０】
例えば図４に示すインプリメント前階層端子情報ＪＡ１およびインプリメント後階層端子情報ＪＡ２によると、ともに「ＭＯＤ＿１／Ｉｎ＿Ａ」というインプリメント前階層端子固有名とインプリメント後階層端子固有名とが対応付けられ、「ＭＯＤ＿１／Ｏｕｔ＿Ａ」というインプリメント前階層端子固有名とインプリメント後階層端子固有名とが対応付けられた、図５に示すような階層端子照合情報ＪＢが生成され、階層端子照合情報記憶部１Ｋ２に記憶される。
【００３１】
以下、モジュールＭＬ２の端子のうち、インプリメントの前から存在しかつ端子名に変更のない端子を、「無変更端子」と記載する。インプリメント前階層端子固有名およびインプリメント後階層端子固有名が同一である端子が無変更端子であると、言える。
【００３２】
階層端子使用確認部１０３は、階層端子照合情報ＪＢに示される無変更端子がインプリメント後に使用されているか否かを、次のような方法で確認する。
【００３３】
階層端子照合情報記憶部１Ｋ２から階層端子照合情報ＪＢを呼び出す。その階層端子照合情報ＪＢを参照し、無変更端子のインプリメント後階層端子固有名をチェックする。図５の例では、「ＭＯＤ＿１／Ｉｎ＿Ａ」および「ＭＯＤ＿１／Ｏｕｔ＿Ａ」の２つがチェックされる。
【００３４】
ネットリスト記憶部１Ｋ１からネットリストＮＬ２を呼び出す。そのネットリストＮＬ２に基づいて、それぞれの無変更端子の位置からバックトレースを行うことによって、それぞれの無変更端子の接続先（接続相手）を検索する。そして、接続先があれば、その無変更端子は使用されていると判別し、接続先がなければ、その無変更端子は使用されていないと判別する。
【００３５】
図３（ｂ）に示すように、階層「ＭＯＤ＿１」の端子「Ｉｎ＿Ａ」は接続先が存在するが、階層「ＭＯＤ＿１」の端子「Ｏｕｔ＿Ａ」には接続先が存在しない。したがって、本例では、前者は使用されており、後者は使用されていないと、判別される。
【００３６】
なお、無変更端子が入力端子である場合は、フォワードトレースを行うことによって、その接続先を検索してもよい。
【００３７】
そして、階層端子使用確認部１０３は、階層端子照合情報ＪＢに示される端子ごとに（つまり、行ごとに）「階層端子不使用フラグ」というフラグを設け、不使用であることが確認できた無変更端子の階層端子不使用フラグを立てる（「１」にする）ことによって、図６のような階層端子使用情報ＪＣを生成する。この階層端子使用情報ＪＣは、階層端子使用情報記憶部１Ｋ３に記憶される。
【００３８】
階層端子差分確認部１０４は、階層端子使用情報記憶部１Ｋ３から階層端子使用情報ＪＣを呼び出し、その階層端子使用情報ＪＣに基づいて、インプリメント前のモジュールＭＬ（つまり、モジュールＭＬ１）にのみ存在する端子名を確認する。すなわち、同一のインプリメント後階層端子固有名が存在しないインプリメント前階層端子固有名を確認する。
【００３９】
そして、階層端子使用情報ＪＣに端子ごとに（つまり、行ごとに）「階層端子差分フラグ」というフラグを設け、インプリメント前には存在したがインプリメント後に削除されていることを確認できたインプリメント前階層端子固有名に係る端子の階層端子差分フラグを立てる（「１」にする）ことによって、図７のような階層端子差分情報ＪＤを生成する。階層端子差分情報ＪＤは、階層端子差分情報記憶部１Ｋ４に記憶される。
【００４０】
接続論理ゲート検索部１０５は、モジュールＭＬ１にのみ存在する端子名を有すると階層端子差分確認部１０４によって確認された端子が接続される、論理ゲート（ＡＮＤゲート、ＯＲゲート、ＮＯＴゲート、ＮＯＲゲート、またはＮＡＮＤゲート）の出力端子を、論理回路ＣＲ１の中から次のような方法で検索する。
【００４１】
ネットリスト記憶部１Ｋ１からネットリストＮＬ１を呼び出し、階層端子差分情報記憶部１Ｋ４から階層端子差分情報ＪＤを呼び出す。階層端子差分情報ＪＤの階層端子不使用フラグまたは階層端子差分フラグが「１」である端子に注目する。その端子に接続されている論理ゲートの出力端子を、ネットリストＮＬ１に基づいて論理回路ＣＲ２をバックトレースすることによって検索する。「１」である端子が複数ある場合は、それぞれについて、検索を行う。
【００４２】
図７の階層端子差分情報ＪＤおよび図３（ａ）の論理回路ＣＲ１のネットリストＮＬ１によると、モジュールＭＬ１の「ＭＯＤ＿１／Ｉｎ＿Ｂ」および「ＭＯＤ＿１／Ｏｕｔ＿Ａ」の各端子の接続先として、それぞれ、「ＡＮＤ＿２／Ｘ」および「ＭＯＤ＿１／ＡＮＤ＿３／Ｘ」が検索される。
【００４３】
そして、階層端子差分情報ＪＤに「接続先論理ゲート端子」というパラメータを端子ごとに設け、検索した論理ゲートの論理ゲート名および端子名をそのパラメータに書き込むことによって、図８のような接続論理ゲート情報ＪＥを生成する。接続論理ゲート情報ＪＥは、接続論理ゲート情報記憶部１Ｋ５に記憶される。
【００４４】
階層端子検索部１０６は、接続論理ゲート検索部１０５によって検索された論理ゲートの各端子が、インプリメント後にどの端子に接続されているのかを、フォワードトレースによって次のように検索する。
【００４５】
ネットリスト記憶部１Ｋ１からネットリストＮＬ２を呼び出し、接続論理ゲート情報記憶部１Ｋ５から接続論理ゲート情報ＪＥを呼び出す。接続論理ゲート情報ＪＥの「接続先論理ゲート端子」に示される端子に注目する。その端子に接続されている端子を、ネットリストＮＬ２に基づいてフォワードトレースすることによって検索する。「接続先論理ゲート端子」に示される端子が複数ある場合は、それぞれについて、検索を行う。
【００４６】
図８の接続論理ゲート情報ＪＥおよび図３（ｂ）の論理回路ＣＲ２のネットリストＮＬ２によると、「ＡＮＤ＿２／Ｘ」の端子の接続先として「ＭＯＤ＿１／Ｉｎ＿Ｂ＿１」の端子が検索され、「ＭＯＤ＿１／ＡＮＤ＿３／Ｘ」の端子の接続先として「ＭＯＤ＿１／Ｏｕｔ＿Ａ＿１」、「ＭＯＤ＿１／Ｏｕｔ＿Ａ＿２」、「ＭＯＤ＿１／Ｏｕｔ＿Ａ＿３」の３つの端子が検索される。
【００４７】
そして、接続論理ゲート情報ＪＥに「接続先階層端子」というパラメータを端子ごとに設け、検索した接続先をそのパラメータに書き込むことによって、図９のような接続階層端子情報ＪＦを生成する。接続階層端子情報ＪＦは、接続階層端子情報記憶部１Ｋ６に記憶される。
【００４８】
互換情報生成部１０７は、図１０のような、インプリメントの前後の端子の対応関係つまりモジュールＭＬ１のどの端子とモジュールＭＬ２のどの端子とに互換性があるかを示す階層端子互換情報ＪＧを、次のような方法で生成する。
【００４９】
接続階層端子情報記憶部１Ｋ６から接続階層端子情報ＪＦを呼び出す。「階層端子不使用フラグ」、「階層端子差分フラグ」、および「接続先論理ゲート端子」の列を削除する。「インプリメント前階層端子固有名」のない行を削除する。「インプリメント後階層端子固有名」に、同じ行の「接続階層端子」に示される名称を上書きする。そして、「接続階層端子」の列を削除する。これにより、階層端子互換情報ＪＧが生成される。同じ行のインプリメント前階層端子固有名の端子とインプリメント後階層端子固有名の端子とに、互換性がある。生成された階層端子互換情報ＪＧは、階層端子互換情報記憶部１Ｋ７に記憶される。
【００５０】
なお、「互換性がある」とは、両端子に入力される信号の意義が共通であり、または、両端子から出力される信号の意義が共通であることを、意味する。
【００５１】
階層端子読換部１０８およびシミュレーション実行部１０９は、インプリメント前のテストベンチを用いたインプリメント後の論理回路ＣＲの動作のシミュレーションを、次のような方法で行う。
【００５２】
階層端子読換部１０８は、階層端子互換情報記憶部１Ｋ７から階層端子互換情報ＪＧを呼び出す。そして、その階層端子互換情報ＪＧに基づいて、コンピュータ１に入力されたインプリメント前のテストベンチの階層名および端子名（つまり、インプリメント前階層端子固有名）を、インプリメント後の階層名および端子名（つまり、インプリメント後階層端子固有名）に読み換える。例えば、図１０に示す階層端子互換情報ＪＧによると、「ＭＯＤ＿１／ＩＮ＿Ｂ」というインプリメント前階層端子固有名は、「ＭＯＤ＿１／ＩＮ＿Ｂ＿１」というインプリメント後階層端子固有名に読み換えられる。
【００５３】
シミュレーション実行部１０９は、読み換えられたテストベンチを用いて、従来通り、インプリメント後の論理回路ＣＲのシミュレーションを実行し、その結果を出力する。
【００５４】
図１１はコンピュータ１の全体的な処理の流れの例を説明するフローチャートである。
【００５５】
次に、論理回路ＣＲのインプリメントの前後のモジュールＭＬの入出力端子の階層端子互換情報ＪＧを生成する場合を例に、コンピュータ１の全体的な処理の流れを、図１１のフローチャートを参照して説明する。
【００５６】
図１１において、コンピュータ１は、コンピュータプログラムＣＰの起動後、階層端子互換情報ＪＧの生成のコマンドが入力されると（＃１）、論理回路ＣＲのインプリメント前後それぞれのネットリストつまりネットリストＮＬ１、ＮＬ２に基づいて、モジュールＭＬ１、ＭＬ２それぞれの入出力端子を抽出することによって、図４のようなインプリメント前階層端子情報ＪＡ１、ＪＡ２を生成する（＃２）。
【００５７】
互いに一致するインプリメント前階層端子固有名およびインプリメント後階層端子固有名を抽出し、図５のような、両者を同じ行に記した階層端子照合情報ＪＢを生成する（＃３）。
【００５８】
同一のインプリメント前階層端子固有名が存在するインプリメント後階層端子固有名の端子（つまり、無変更端子）がインプリメント後に使用されているか否かを確認し、図６のような、使用されていない端子の階層端子不使用フラグを立てた階層端子使用情報ＪＣを生成する（＃４）。
【００５９】
インプリメント前は存在したがインプリメント後に見られなくなったインプリメント前階層端子固有名を確認し、図７のような、そのインプリメント前階層端子固有名に係る端子の階層端子差分フラグを立てた階層端子差分情報ＪＤを生成する（＃５）。
【００６０】
階層端子不使用フラグまたは階層端子差分フラグのいずれかが立っている端子が、インプリメント前において接続されていた論理ゲートの端子を、ネットリストＮＬ１に基づいて論理回路ＣＲ１をバックトレースすることによって検索する（＃６）。そして、図８のような、その結果を示す接続論理ゲート情報ＪＥを生成する。
【００６１】
ステップ＃６で検索された論理ゲートの端子の、インプリメント後の接続相手を、ネットリストＮＬ２に基づいて論理回路ＣＲ２をバックトレースすることによって検索する（＃７）。そして、図９のような、その結果を示す接続階層端子情報ＪＦを生成する。
【００６２】
接続階層端子情報ＪＦから「階層端子不使用フラグ」、「階層端子差分フラグ」、および「接続先論理ゲート端子」の列を削除する。「インプリメント前階層端子固有名」のない行を削除する。「インプリメント後階層端子固有名」に、同じ行の「接続階層端子」に示される名称を上書きする。そして、「接続階層端子」の列を削除する。これにより、階層端子互換情報ＪＧが生成される（＃８）。
【００６３】
その後、コンピュータ１は、引き続き、インプリメント前のテストベンチを入力し、端子名を読み換え、インプリメント後のモジュールＭＬ（ＭＬ２）のシミュレーションを行うことができる。
【００６４】
本実施形態によると、インプリメントの前後それぞれの論理回路の下位の階層の入出力端子の対応関係を従来よりも簡単に求めることができる。
【００６５】
すなわち、本実施形態によると、従来のように論理等価性の検証を行うことなく、インプリメント前後のネットリストＮＬ１、ＮＬ２のみに基づいてモジュールＭＬ１、ＭＬ２の入出力端子の対応関係を求めることができる。よって、従来技術よりも使用するデータの量および演算の量を大幅に削減を可能とすることができる。
【００６６】
しかも、本実施形態によると、インプリメント後に使用されなくなった入出力端子（いわゆる、浮き端子）が存在する場合であっても、適切に対応関係を求めることができる。
【００６７】
その他、コンピュータ１の全体または各部の構成、処理内容、処理順序、インプリメント前階層端子情報ＪＡ１などの情報の構成は、本発明の趣旨に沿って適宜変更することができる。
【図面の簡単な説明】
【００６８】
【図１】コンピュータの全体的な構成およびコンピュータ本体のハードウェア構成の例を示す図である。
【図２】コンピュータの機能的構成の例を示す図である。
【図３】インプリメント前後の論理回路の構成の例を示す図である。
【図４】前階層端子情報および後階層端子情報の例を示す図である。
【図５】階層端子照合情報の例を示す図である。
【図６】階層端子使用情報の例を示す図である。
【図７】階層端子差分情報の例を示す図である。
【図８】接続論理ゲート情報の例を示す図である。
【図９】接続階層端子情報の例を示す図である。
【図１０】階層端子互換情報の例を示す図である。
【図１１】コンピュータの全体的な処理の流れの例を説明するフローチャートである。
【符号の説明】
【００６９】
１  コンピュータ
１０２  階層端子名照合部（同一端子名検索手段）
１０３  階層端子使用確認部（使用有無確認手段）
１０４  階層端子差分確認部（非使用端子名確認手段）
１０５  接続論理ゲート検索部（接続論理ゲート検索手段）
１０６  階層端子検索部（接続入出力端子検索手段）
１０７  互換情報生成部（対応端子情報生成手段）
１０８  階層端子読換部（端子名読換手段）
１０９  シミュレーション実行部（シミュレーション手段）
１Ｋ１  ネットリスト記憶部（論理回路データ記憶手段）
ＣＲ１  論理回路（第一の論理回路）
ＣＲ２  論理回路（第二の論理回路）
ＪＧ  階層端子互換情報（対応端子情報）
ＭＬ１  モジュール（第一のブロック）
ＭＬ２  モジュール（第二のブロック）
ＮＬ１  ネットリスト（第一の論理回路データ）
ＮＬ２  ネットリスト（第二の論理回路データ）
【図１】
2008171036.tif 000003
【図２】
2008171036.tif 000004
【図３】
2008171036.tif 000005
【図４】
2008171036.tif 000006
【図５】
2008171036.tif 000007
【図６】
2008171036.tif 000008
【図７】
2008171036.tif 000009
【図８】
2008171036.tif 000010
【図９】
2008171036.tif 000011
【図１０】
2008171036.tif 000012
【図１１】
2008171036.tif 000013