(57)【要約】【課題】パスを特定可能な経路情報を得るまでの時間の短縮を図ることができる。【解決手段】回路内のモジュールと前記モジュール間の接続関係とを示す回路情報１０１に基づいてイベントドリブンのシミュレーションを実行可能な検証支援装置１００が回路内のモジュールのうちＦＦを有する第１モジュールＢ，Ｄの各々が、モジュールの入力端子の入力元を示す識別情報を含む経路情報を第１モジュールＢ，Ｄの入力端子の入力元から受信する動作をシミュレーションする。検証支援装置１００が、第１モジュールの入力端子の入力元から受信する動作のシミュレーションにおいてテーブルを受信した第１モジュールＢ，Ｄの各々について、受信されたテーブルに対してテーブルを受信した第１モジュールの入力端子を示す識別情報が追加されたテーブルを出力する。【選択図】図１
2014132424.tif 000002
【特許請求の範囲】
【請求項１】
検証の対象回路内のモジュールと前記モジュール間の接続関係とを示す回路情報に基づいてイベントドリブンのシミュレーションを実行可能なコンピュータに、
前記対象回路内のモジュールのうちフリップフロップを有するモジュールの各々が、前記モジュールの入力端子の入力元を示す識別情報を含む経路情報を前記モジュールの入力端子の入力元から受信する動作をシミュレーションし、
前記モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて前記経路情報を受信した前記モジュールの各々について、受信された前記経路情報に対して前記経路情報を受信した前記モジュールの入力端子を示す識別情報が追加された経路情報を出力する、
処理を実行させることを特徴とする検証支援プログラム。
【請求項２】
前記コンピュータに、
前記対象回路内のモジュールのうちフリップフロップを有するモジュールの各々が、前記モジュールの出力端子を示す識別情報を含む経路情報を前記モジュールの前記出力端子の出力先へ送信する動作をシミュレーションする処理を実行させ、
前記モジュールの入力端子の入力元から受信する動作のシミュレーションでは、前記フリップフロップを有するモジュールの各々が、前記出力端子の出力先へ送信する動作のシミュレーションにおいて前記対象回路内のモジュールのうちフリップフロップを有する他のモジュールから送信された経路情報を受信することを特徴とする請求項１に記載の検証支援プログラム。
【請求項３】
前記コンピュータに、
前記対象回路内のモジュールのうちのフリップフロップを有さない第２モジュールの各々が、前記第２モジュールの入力端子の入力元を示す識別情報を含む経路情報を前記第２モジュールの入力端子の入力元から受信する動作をシミュレーションし、
前記第２モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて前記経路情報を受信した前記第２モジュールの各々について、受信された前記経路情報に対して、前記第２モジュールの入力端子のうちの前記経路情報を受信した入力端子を示す識別情報と、前記第２モジュールの出力端子のうちの前記経路情報を受信した入力端子と接続関係のある出力端子を示す識別情報と、を追加し、
前記第２モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて前記経路情報を受信した前記第２モジュールの各々が、前記入力端子を示す識別情報と前記出力端子を示す識別情報とが追加された経路情報を前記第２モジュールの出力端子の出力先へ送信する動作をシミュレーションする、
処理を実行させ、
前記対象回路内のモジュールのうちのフリップフロップを有するモジュール（以下、「第１モジュール」と称する。）の入力端子の入力元から受信する動作のシミュレーションでは、前記第１モジュールの各々が、前記対象回路内のモジュールのうちの他の第１モジュールが前記出力端子の出力先へ送信する動作のシミュレーションにおいて送信された経路情報と、前記第２モジュールが前記出力端子の出力先へ送信する動作のシミュレーションにおいて送信された経路情報と、のうちの少なくともいずれかを受信し、
前記第２モジュールの入力端子の入力元から受信する動作のシミュレーションでは、前記第１モジュールが前記出力端子の出力先へ送信する動作のシミュレーションにおいて送信された経路情報と、前記対象回路内のモジュールのうちの他の第２モジュールが前記出力端子の出力先へ送信する動作のシミュレーションにおいて送信された経路情報と、のうちの少なくともいずれかを受信することを特徴とする請求項２に記載の検証支援プログラム。
【請求項４】
前記入力端子を示す識別情報と前記出力端子を示す識別情報とを追加する処理では、前記第２モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて前記経路情報を受信した前記第２モジュールの各々が、受信された前記経路情報に対して、前記第２モジュールの入力端子のうちの前記経路情報を受信した入力端子を示す識別情報と、前記第２モジュールの出力端子のうちの前記経路情報を受信した入力端子と接続関係のある出力端子を示す識別情報と、を追加する動作をシミュレーションすることを特徴とする請求項３に記載の検証支援プログラム。
【請求項５】
前記追加された経路情報を出力する処理では、前記フリップフロップを有するモジュールの入力端子の入力元から受信する動作のシミュレーションにおいて受信された経路情報に対して、前記経路情報を受信した前記モジュールの入力端子を示す識別情報を追加する動作をシミュレーションし、追加する動作のシミュレーションにおいて追加された経路情報を出力することを特徴とする請求項１〜４のいずれか一つに記載の検証支援プログラム。
【請求項６】
前記第１モジュールの入力端子の入力元から受信する動作をシミュレーションする処理では、
前記第１モジュールの入力端子の入力元を示す識別情報を含む経路情報を示す識別情報を前記第１モジュールの入力端子の入力元から受信し、
前記識別情報が追加された経路情報を出力する処理では、前記第１モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて受信された識別情報が示す経路情報に対して前記識別情報を受信した前記第１モジュールの入力端子を示す識別情報が追加された経路情報を示す識別情報を出力し、
前記入力端子の識別情報と前記出力端子を示す識別情報と、を追加する処理では、前記第２モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて受信された識別情報が示す経路情報に対して、前記第２モジュールの入力端子のうちの前記識別情報を受信した入力端子を示す識別情報と、前記第２モジュールの出力端子のうち前記識別情報を受信した前記入力端子と接続関係のある出力端子を示す識別情報と、を追加し、
前記入力端子を示す識別情報と前記出力端子を示す識別情報とが追加された経路情報を送信する動作のシミュレーションでは、前記識別情報を受信した前記第２モジュールの各々が、前記入力端子を示す識別情報と前記出力端子を示す識別情報とが追加された経路情報を示す識別情報を前記第２モジュールの出力端子の出力先へ送信することを特徴とする請求項３に記載の検証支援プログラム。
【請求項７】
前記第１モジュールが前記経路情報を前記第１モジュールの前記出力端子の出力先へ送信する動作のシミュレーションでは、
前記第１モジュールの各々が、前記第１モジュールの出力端子を示す識別情報を含む経路情報を示す識別情報を前記第１モジュールの前記出力端子の出力先へ送信することを特徴とする請求項６に記載の検証支援プログラム。
【請求項８】
前記識別情報が追加された経路情報を出力する処理では、
前記第１モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて受信された識別情報が示す経路情報を複製する動作と、複製した経路情報に対して前記識別情報を受信した前記第１モジュールの入力端子を示す識別情報が追加する動作と、をシミュレーションし、
追加する動作のシミュレーションにおいて追加された経路情報を示す識別情報を出力することを特徴とする請求項６または７に記載の検証支援プログラム。
【請求項９】
前記対象回路内の各信号を示す前記回路情報内の各信号のビット幅が、前記経路情報を示す識別情報を表すことが可能なビット幅であることを特徴とする請求項６〜８のいずれか一つに記載の検証支援プログラム。
【請求項１０】
前記コンピュータに、
前記第１モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて受信された経路情報と、前記第２モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて受信された経路情報と、の各々について、前記経路情報内に同一の端子の識別情報があるか否かを判断し、
前記同一の端子の識別情報があると判断された前記経路情報に対して、前記経路情報が示す経路がループしていることを示す情報が追加された経路情報を出力する、
処理を実行させることを特徴とする請求項３に記載の検証支援プログラム。
【請求項１１】
前記コンピュータに、
複数ある入力端子の各々から入力される複数の入力信号のいずれかの信号を制御信号に基づき選択して出力する前記対象回路内の選択回路と、前記選択回路へ前記制御信号を入力する前記対象回路内の回路と、の動作であって、前記選択回路からの出力信号が前記選択回路に入力されない動作をシミュレーションし、
前記選択回路と前記制御信号を入力する回路との動作のシミュレーション結果に基づいて、前記選択回路の複数の入力端子のうち、前記選択回路の出力端子から出力される信号が入力される入力端子を特定する、
処理を実行させ、
前記入力端子を示す識別情報を追加する処理では、前記対象回路内のモジュールのうちの前記選択回路を有するモジュールが受信する動作のシミュレーションにおいて前記経路情報を受信した入力端子が特定した前記入力端子と一致しない場合、前記入力端子を示す識別情報を前記経路情報に追加しないことを特徴とする請求項３に記載の検証支援プログラム。
【請求項１２】
前記コンピュータに、
前記対象回路内の各配線の遅延量を記憶する記憶装置から、出力した前記経路情報が示す経路上にある各信号線に対応する配線の遅延量を検索し、
前記配線の遅延量を合計することにより、前記経路情報が示す経路上の遅延量を算出する、
処理を実行させることを特徴とする請求項１〜１１のいずれか一つに記載の検証支援プログラム。
【請求項１３】
対象回路内のモジュールと前記モジュール間の接続関係とを示す回路情報に基づいてイベントドリブンのシミュレーションを実行可能なコンピュータが、
前記対象回路内のモジュールのうちフリップフロップを有するモジュールの各々が、前記モジュールの入力端子の入力元を示す識別情報を含む経路情報を前記モジュールの入力端子の入力元から受信する動作をシミュレーションし、
前記モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて前記経路情報を受信した前記モジュールの各々について、受信された前記経路情報に対して前記経路情報を受信した前記モジュールの入力端子を示す識別情報が追加された経路情報を出力する、
処理を実行することを特徴とする検証支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検証支援プログラム、および検証支援方法に関する。
【背景技術】
【０００２】
従来、半導体集積回路の設計において、半導体集積回路を示す回路情報に基づく論理シミュレーションを用いて半導体集積回路内のパスの各信号線が活性化されたか否かを検出する技術が知られている（たとえば、下記特許文献１参照。）
【０００３】
また、半導体集積回路の設計において、指定されたクロック周波数で動作するか否かを検証するタイミング解析の技術が知られている。たとえば、半導体集積回路内の素子や素子間の接続関係を示す回路情報に基づいて静的に経路を解析して、タイミングを解析する静的タイミング解析が知られている（たとえば、下記特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−２８７７２３号公報
【特許文献２】特開平７−９３３８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、経路が動的に変化する半導体集積回路であると、接続関係を網羅して検索するために時間がかかり、パスを特定可能な経路情報を短時間で得ることができない可能性がある。
【０００６】
１つの側面では、本発明は、パスを特定可能な経路情報を得るまでの時間の短縮を図ることができる検証支援プログラム、および検証支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、検証の対象回路内のモジュールと前記モジュール間の接続関係とを示す回路情報に基づいてイベントドリブンのシミュレーションを実行可能なコンピュータに、前記対象回路内のモジュールのうちフリップフロップを有するモジュールの各々が、前記モジュールの入力端子の入力元を示す識別情報を含む経路情報を前記モジュールの入力端子の入力元から受信する動作をシミュレーションし、前記モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて前記経路情報を受信した前記モジュールの各々について、受信された前記経路情報に対して前記経路情報を受信した前記モジュールの入力端子を示す識別情報が追加された経路情報を出力する、処理を実行させる検証支援プログラム、および検証支援方法が提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、パスを特定可能な経路情報を得ることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、検証支援装置による一動作例を示す説明図である。
【図２】図２は、検証支援装置のハードウェア構成例を示すブロック図である。
【図３】図３は、検証支援装置の機能構成例を示すブロック図である。
【図４】図４は、制御情報の一例を示す説明図である。
【図５】図５は、検証支援装置によるライブラリ生成処理手順例を示すフローチャートである。
【図６】図６は、モジュール内部遅延テーブルの一例を示す説明図である。
【図７】図７は、インスタンス・モジュール対応表の一例を示す説明図である。
【図８】図８は、検証支援装置によるメインプログラム生成処理手順例を示すフローチャートである。
【図９】図９は、信号ビット幅変更処理手順例を示すフローチャートである。
【図１０】図１０は、遅延解析モデルの一例を示す説明図である。
【図１１】図１１は、配線遅延テーブルの一例を示す説明図である。
【図１２】図１２は、ルートテーブルの一例を示す説明図である。
【図１３】図１３は、リンクテーブルの一例を示す説明図である。
【図１４】図１４は、ルート確定テーブルの一例を示す説明図である。
【図１５】図１５は、動作例を示す説明図である。
【図１６】図１６は、ルートテーブルの出力処理例の流れを示す説明図（その１）である。
【図１７】図１７は、ルートテーブルの出力処理例の流れを示す説明図（その２）である。
【図１８】図１８は、ルートテーブルの出力処理例の流れを示す説明図（その３）である。
【図１９】図１９は、ルートテーブルの出力処理例の流れを示す説明図（その４）である。
【図２０】図２０は、動作例によって得られるルート確定テーブル例を示す説明図である。
【図２１】図２１は、制御部が行う処理手順例を示すフローチャートである。
【図２２】図２２は、受信スレッドが行う処理手順例を示すフローチャート（その１）である。
【図２３】図２３は、受信スレッドが行う処理手順例を示すフローチャート（その２）である。
【図２４】図２４は、送信スレッドが行う処理手順例を示すフローチャート（その１）である。
【図２５】図２５は、送信スレッドが行う処理手順例を示すフローチャート（その２）である。
【図２６】図２６は、制御部が行う遅延計算処理手順の詳細例を示すフローチャート（その１）である。
【図２７】図２７は、制御部が行う遅延計算処理手順の詳細例を示すフローチャート（その２）である。
【図２８】図２８は、動的ルート変更回路例を示す説明図である。
【図２９】図２９は、動的ルート変更解析用モデルの一例を示す説明図である。
【図３０】図３０は、動的ルート変更時の制御部が行う処理手順例を示すフローチャート（その１）である。
【図３１】図３１は、動的ルート変更時の制御部が行う処理手順例を示すフローチャート（その２）である。
【図３２】図３２は、動作モデルが行う処理手順例を示すフローチャートである。
【図３３】図３３は、ＦＦスルーセレクタ動作モデルが行う処理手順例を示すフローチャートである。
【図３４】図３４は、スイッチモデルが行う処理手順例を示すフローチャートである。
【図３５】図３５は、動的ルート変更時の受信スレッドが行う処理手順例を示すフローチャート（その１）である。
【図３６】図３６は、動的ルート変更時の受信スレッドが行う処理手順例を示すフローチャート（その２）である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本発明にかかる検証支援プログラム、および検証支援方法の実施の形態を詳細に説明する。本実施の形態では、フリップフロップを有するモジュールに到達するまで経路情報を伝搬させるシミュレーションを行い、モジュールを経由するごとに該当モジュールの端子情報を経路情報に追加する。これにより、対象回路内のパスを特定可能な経路情報を得ることができる。
【００１１】
図１は、検証支援装置による一動作例を示す説明図である。検証支援装置１００は、検証の対象回路内のモジュールとモジュール間の接続関係とを示す回路情報１０１に基づいてイベントドリブンのシミュレーションを実行可能なコンピュータであり、対象回路内のパスを特定可能な経路情報を出力することができる。ここで、パスとは、対象回路の外部入力端子からフリップフロップ（ＦＦ：Ｆｌｉｐ  Ｆｌｏｐ）までの経路と、ＦＦからＦＦまでの経路と、ＦＦから対象回路の外部出力端子までの経路と、を示す。
【００１２】
図１の例では、対象回路は、ＦＦを有さない第２モジュールＡと、ＦＦを有する第１モジュールＢと、ＦＦを有さない第２モジュールＣと、ＦＦを有する第１モジュールＤと、を含む。ここで、対象回路内の各モジュールは、対象回路内の各素子を示す最小単位のモジュールであったり、複数の素子の集合を纏めたハードマクロである。回路情報１０１は、対象回路を示すネットリストｌｉｓｔ１と、外部モデルｍｄｌと、を含む。
【００１３】
回路情報１０１は、たとえば、ＶｅｒｉｌｏｇやＶＨＤＬ（Ｖｅｒｙ  ｈｉｇｈ  ｓｐｅｅｄ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）などのハードウェア記述言語ややシステム記述言語によって記述される。
【００１４】
図１に示す各モジュールは、対象回路内のモジュールがモデル化された例である。モデル化された各モジュールは、受信スレッドｒｅｃと、送信スレッドｔｒａと、受信スレッドｒｅｃと送信スレッドｔｒａとの間のデータの受け渡しを行うＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）と、を有する。外部モデルｍｄｌは、対象回路の外部入力端子や外部出力端子を表すために設けられたモデルである。制御部ｃｔｒｌは、各モジュールと、外部モデルｍｄｌと、を制御するためのモデルである。検証支援装置１００は、各モジュールがモデル化された回路情報１０１を論理シミュレータに与えることにより、回路情報１０１に記述された各モデルに規定された動作をシミュレーションする。モデルの詳細例については、後述する。
【００１５】
検証支援装置１００は、制御部ｃｔｒｌによって開始命令を発行させる。開始命令を発効させると、検証支援装置１００は、対象回路内のモジュールのうちＦＦを有する第１モジュールの各々が、第１モジュールの出力端子を示す識別情報を含む経路情報を第１モジュールの出力端子の出力先へ送信する動作をシミュレーションする。図１の例では、テーブルが経路情報である。たとえば、第１モジュールＢが、第２モジュールＣに対してテーブルを送信し、第１モジュールＤが、外部モデルｍｄｌに対してテーブルを送信する。外部モデルｍｄｌに対してテーブルを送信することは、対象回路の外部出力端子から外部にテーブルを出力していることを示す。また、開始命令を発効させると、検証支援装置１００は、外部モデルｍｄｌの出力端子を示す識別情報を含むテーブルを外部モデルｍｄｌの出力端子の出力先へ送信する動作をシミュレーションする。
【００１６】
また、検証支援装置１００は、テーブルの代わりにテーブルを示す識別情報を送信してもよい。ここでは、テーブルを示す識別情報をテーブルのポインタと称する。これにより、テーブルよりもテーブルを示すポインタの方が送受信における情報量が減少する。そのため、各信号のビット幅がテーブルを送受信する場合よりも小さくなる。たとえば、ネットリスト内の各信号のビット幅を３２ビットに拡張しておけばよい。以降、ポインタを送受信する例を用いて説明する。
【００１７】
また、検証支援装置１００は、ＦＦを有さない第２モジュールの各々が、第２モジュールの入力端子の入力元を示す識別情報を含むテーブルのポインタを第２モジュールの入力端子の入力元から受信する動作をシミュレーションする。たとえば、第１モジュールＢが送信したテーブルの識別情報を第２モジュールＣが受信する。
【００１８】
そして、検証支援装置１００は、第２モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて受信されたポインタが示すテーブルに対して、第２モジュールの入力端子のうちのポインタを受信した入力端子を示す識別情報を追加する。さらに、検証支援装置１００は、第２モジュールの入力端子のうちのテーブルを受信した入力端子と接続関係のある第２モジュールの出力端子を示す識別情報を追加する。図１の例では、追加されたテーブルをテーブル＋１として表す。
【００１９】
具体的に、検証支援装置１００は、ポインタを受信した第２モジュールが、受信されたポインタが示すテーブルを複製し、複製したテーブルに対して、当該入力端子を示す識別情報と出力端子を示す識別情報とを追加する動作をシミュレーションする。テーブルを複製することにより、シミュレーションにおいて伝搬されるデーブルを示すポインタがすべて異なることとなる。これにより、シミュレーション中に、各モジュールが送受信するポインタはすべて異なるため、信号変化の検出によるイベントドリブンのシミュレーションでは、モジュールがポインタを送受信する都度、イベントが発生することとなる。そのため、経由するモジュールの端子の識別情報が漏れなく経路情報に追加される。したがって、経路情報が示す経路の精度を向上させることができる。
【００２０】
つぎに、検証支援装置１００は、第２モジュールの各々が、入力端子を示す識別情報と出力端子を示す識別情報とが追加された後のテーブルを示すポインタを第２モジュールの出力端子の出力先へ送信する動作をシミュレーションする。これにより、ＦＦ間にＦＦを有さないモジュールが設けられたパスを特定可能な経路情報を得ることができる。
【００２１】
また、検証支援装置１００は、ＦＦを有する第１モジュールの各々が、第１モジュールの入力端子の入力元を示す識別情報を含むテーブルを示すポインタを第１モジュールの入力端子の入力元から受信する動作をシミュレーションする。検証支援装置１００は、第１モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて受信されたポインタが示すテーブルに対してテーブルを受信した第１モジュールの入力端子を示す識別情報が追加されたテーブルを出力する。これにより、ＦＦに到達するまでの経路を示す経路情報が得られ、入力元からＦＦを有するモジュールに到達するまでのパスを特定することができる。入力元は、図１の例では、ＦＦを有さない第２モジュールとなっているが、対象回路の外部入力端子であってもよい。
【００２２】
図１の例では、第１モジュールＢがテーブル＋１を受信して、第１モジュールＢの入力端子を示す識別情報が追加されたテーブル＋２が出力される。第１モジュールＤがテーブル＋１を受信して、第１モジュールＤの入力端子を示す識別情報が追加されたテーブル＋２が出力される。出力形式としては、図１に示すように、検証支援装置１００がアクセス可能な記憶装置への保存でもよいし、ディスプレイへの表示であってもよいし、ネットワークを介して他の装置へ送信することもよい。
【００２３】
また、検証支援装置１００は、外部出力端子が対象回路内のモジュールから当該入力元の出力端子の識別情報を含むテーブルを示すポインタを受信する動作をシミュレーションする。そして、検証支援装置は、外部出力端子が受信する動作のシミュレーションにおいて受信されたポインタを示すテーブルに対して、外部出力端子の識別情報が追加されたテーブルを出力する。具体的には、たとえば、検証支援装置１００は、外部モデルｍｄｌが第１モジュールＤからテーブルを受信する動作をシミュレーションする。そして、検証支援装置は、外部ｍｄｌが受信する動作のシミュレーションにおいて受信されたポインタを示すテーブルに対して、外部出力端子の識別情報が追加されたテーブル＋１を出力する。出力形式としては、上述と同様である。これにより、ＦＦから対象回路の外部出力端子までのパスを特定可能な経路情報を得ることができる。
【００２４】
したがって、図１に示した検証支援装置１００によれば、外部入力端子からＦＦまでのパスと、ＦＦからＦＦまでのパスと、ＦＦから外部出力端子までのパスと、を特定可能な経路情報を得るまでの時間の短縮を図ることができる。また、シミュレータを利用するが、対象回路の動作をシミュレーションしないため、論理が無視されるため、入力パターンを利用しなくてよい。そのため、ネットリストｌｉｓｔ１内の各モジュールのモデルは、図１に示すような遅延解析専用のモデルに変更される。
【００２５】
また、従来静的タイミング解析が普及する前までは、実遅延回路シミュレータによってタイミング解析が行われていたが、実遅延回路シミュレーションでは、対象回路のすべてを動作させるための入力パターンが用意されなければならない。静的タイミング解析は、以降ＳＴＡ（Ｓｔａｔｉｃ  Ｔｉｍｉｎｇ  Ａｎａｌｙｓｉｓ）と称する。さらに、近年の大規模な半導体集積回路において実遅延回路シミュレーションを実施すると、シミュレーションに年単位の時間がかかる可能性がある。そのため、実遅延回路シミュレーションによるタイミング解析を実施することは困難である。
【００２６】
ＳＴＡでは、実遅延回路シミュレータよりも解析にかかる時間を短縮することができるが、経路が動的に変化する対象回路であると、接続関係を網羅して検索するために時間がかかり、パスを特定可能な経路情報を短時間で得ることができない可能性がある。具体的には、ＳＴＡでは、ネットリストを静的に解析し、すべてに繋がるネットを検索するが、セレクタ値によって経路が決定される回路があると、外部パラメータとしてセレクタ値を与えたり、ネットを切断する等の諸条件を与えなければならない。動的に変更される場合、条件すべてのケースにおいての指示を行わなければならず、大規模な半導体集積回路の場合、１回のＳＴＡによるタイミング解析処理に数十時間かかる可能性がある。たとえば、条件によってＮケースとなる場合、処理時間はＮ倍になる。また、指定された条件に間違いがある場合、上述した無限ループが発生するなどによって誤ったルートが探索されることとなる。一方、本実施の形態では、外部から利用者が条件を指定しなくてもよく、利用者の操作が容易になる。
【００２７】
（検証支援装置１００のハードウェア構成例）
図２は、検証支援装置のハードウェア構成例を示すブロック図である。図２において、検証支援装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、ディスクドライブ２０４と、ディスク２０５と、ディスプレイ２０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０９と、キーボード２１０と、マウス２１１と、を有する。また、各部はバス２００によってそれぞれ接続される。
【００２８】
ここで、ＣＰＵ２０１は、検証支援装置１００の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶する。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがってディスク２０５に対するデータのリード／ライトを制御する。ディスク２０５は、ディスクドライブ２０４の制御で書き込まれたデータを記憶する。
【００２９】
ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがってディスク２０５に対するデータのリード／ライトを制御する。ディスク２０５は、ディスクドライブ２０４の制御で書き込まれたデータを記憶したり、ディスク２０５に記憶されたデータをコンピュータに読み取らせたりする。ディスク２０５としては、たとえば、磁気ディスクや光ディスクが挙げられる。
【００３０】
ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３１】
Ｉ／Ｆ２０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワークＮＥＴに接続され、ネットワークＮＥＴを介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワークＮＥＴと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえば、モデムやＬＡＮアダプタなどを採用することができる。
【００３２】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
【００３３】
図３は、検証支援装置の機能構成例を示すブロック図である。検証支援装置１００は、（１）ライブラリ生成部３０１と、（２）メインプログラム生成部３０２と、（３）ビット幅変更処理部３０３と、（４）シミュレーション実行部３０４と、を有する。各部の機能がコーディングされた検証支援プログラムが、具体的には、たとえば、図２に示したＲＯＭ２０２やディスク２０５などの記憶装置に記憶される。具体的には、シミュレーションを実行可能なＣＰＵ２０１が、該記憶装置から検証支援プログラムを読み出し、検証支援プログラムにコーディングされた処理を実行する。これにより、各部の機能が実現される。
【００３４】
ライブラリ生成部３０１と、メインプログラム生成部３０２と、ビット幅変更処理部３０３と、は、シミュレータに与える情報を作成する前処理である。そして、シミュレーション実行部３０４は、対象回路内のパスのルートを探索して、タイミング解析を行う。そのため、本実施の形態にかかる検証支援装置１００による経路探索の詳細な説明の前に、ライブラリ生成部３０１と、メインプログラム生成部３０２と、ビット幅変更処理部３０３と、の処理を簡単に説明する。
【００３５】
（ライブラリ生成処理手順）
検証支援装置１００は、モジュールライブラリ３１１と、共通モデル部品３１０と、制御情報４００と、に基づいて（１）ライブラリを生成する。モジュールライブラリ３１１は、ＳＴＡや実遅延シミュレータなどで利用されるライブラリであって、モジュール内のディレイ値が入力端子から出力端子までの内部ルートごとに設定されたテーブルである。モジュールライブラリ３１１では、ＦＦが存在する場合、入力端子からＦＦまでのディレイ値と、ＦＦから出力端子までのディレイ値と、が設定される。モジュールライブラリ３１１は、たとえば、ディスク２０５などの記憶装置に記憶されてある。
【００３６】
共通モデル部品３１０には、ＳｙｓｔｅｍＣやＳｙｓｔｅｍＶｅｒｉｌｏｇなどのシステム記述言語によって部品化された本発明で用いられる送信スレッドｔｒａ、受信スレッドｒｅｃ、動作モデルなどを含む。部品化とは、クラスや関数として規定されてあることを示す。
【００３７】
図４は、制御情報の一例を示す説明図である。制御情報４００は、クロック信号の端子名と当該クロック信号の周波数、対象回路の外部端子のディレイ値、動的ルート変更制御回路、ＦＦスルー制御セレクタに与えられる値などの利用者によって指定される情報である。動的ルート変更の詳細は、後述する。制御情報４００は、たとえば、ディスク２０５などの記憶装置に記憶される。
【００３８】
図５は、検証支援装置によるライブラリ生成処理手順例を示すフローチャートである。検証支援装置１００は、記憶装置から制御情報４００の読み込みを行い（ステップＳ５０１）、制御情報４００をテーブル化する（ステップＳ５０２）。ステップＳ５０１とステップＳ５０２によって初期化が行われる。検証支援装置１００は、記憶装置からモジュールライブラリ３１１の読み込みを行い、未選択のモジュールから１モジュールを選択して読み込む（ステップＳ５０３）。
【００３９】
検証支援装置１００は、読み込まれたモジュールから外部端子情報、ディレイ値を取り出す（ステップＳ５０４）。取り出してディスク２０５などの記憶装置に記憶されることにより、モジュール内部遅延テーブル６００が作成される。モジュール内部遅延テーブル６００の詳細は図６を用いて後述する。
【００４０】
つぎに、検証支援装置１００は、モジュール内部インスタンス外部端子を３２ビットに拡張し（ステップＳ５０５）、入力端子側に受信スレッドｒｅｃをインスタンスし（ステップＳ５０６）、外部端子側に送信スレッドｔｒａをインスタンスする（ステップＳ５０７）。検証支援装置１００は、動的ルート変更制御回路があるか否かを判断する（ステップＳ５０８）。動的ルート変更制御回路がある場合（ステップＳ５０８：Ｙｅｓ）、検証支援装置１００は、動的ルート変更制御回路に対応するモジュール名によって対象の動作モデルを共通モデル部品から検索する（ステップＳ５０９）。
【００４１】
そして、検証支援装置１００は、入力端子側に動作モデルをインスタンスし（ステップＳ５１０）、モジュール名を変更し（ステップＳ５１１）、ステップＳ５１２へ移行する。一方、ステップＳ５０８において、動的ルート変更制御回路がない場合（ステップＳ５０８：Ｎｏ）、検証支援装置１００は、ステップＳ５１２へ移行する。ステップＳ５１１、またはステップＳ５０８のＮｏの場合のつぎに、検証支援装置１００は、変更したモジュールをモジュールモデル３１２に書き込む（ステップＳ５１２）。モジュールモデル３１２には、後述するネットリストｌｉｓｔ１に示すようなモジュールが含まれる。検証支援装置１００は、全モジュール終了したか否かを判断する（ステップＳ５１３）。全モジュール終了していない場合（ステップＳ５１３：Ｎｏ）、ステップＳ５０３へ戻る。全モジュール終了した場合（ステップＳ５１３：Ｙｅｓ）、一連の処理を終了する。
【００４２】
図６は、モジュール内部遅延テーブルの一例を示す説明図である。モジュール内部遅延テーブル６００は、対象回路の各モジュール内の入力端子から出力端子へ繋がるすべての内部論理、配線のディレイ値を有するライブラリである。モジュール内部遅延テーブル６００は、Ｎｏ.、モジュール名、入力端子名、出力端子名、およびディレイ値のフィールドを有する。モジュール内部遅延テーブル６００は、ライブラリ生成によって作成される。各フィールドに情報が設定されることにより、レコードとして記憶される。たとえば、レコードは、６０１−１１１である。モジュール内部遅延テーブル６００は、ディスク２０５などの記憶装置によって実現される。
【００４３】
Ｎｏ.のフィールドには、モジュールごとに付された番号が設定される。出力端子名のフィールドには、入力端子名が示す入力端子から入力された信号を出力する出力端子の名称が設定される。ディレイ値のフィールドには、入力端子名が示す入力端子から入力された信号を出力する出力端子までの遅延時間が設定される。モジュール内にＦＦがある場合、たとえば、入力端子名または出力端子名のフィールドに入力端子名または出力端子名と併せてＦＦを表すキーワードが入力される。
【００４４】
また、入力端子と接続関係のある出力端子について入力端子から出力端子までの経路が複数ある場合、モジュール内部遅延テーブル６００には、最大のディレイ値が設定される。
【００４５】
図７は、インスタンス・モジュール対応表の一例を示す説明図である。インスタンス・モジュール対応表７００は、インスタンス名からモジュール名を特定可能なテーブルであり、ネットリストｌｉｓｔ０に基づいて作成される。インスタンス・モジュール対応表７００は、ディスク２０５などの記憶装置によって実現される。インスタンス・モジュール対応表７００は、インスタンス名、モジュール名のフィールドを有し、各フィールドに情報が設定されることにより、レコードとして記憶される。レコードは、たとえば、７００−１である。たとえば、検証支援装置１００は、インスタンス・モジュール対応表７００によってインスタンス名からモジュール名を取得した後に、モジュール内部遅延テーブル６００からモジュール名を入力してディレイ値を取得する。
【００４６】
（メインプログラム生成処理手順）
図８は、検証支援装置によるメインプログラム生成処理手順例を示すフローチャートである。検証支援装置１００は、記憶装置に記憶された制御情報４００の読み込みを行い（ステップＳ８０１）、読み込まれた制御情報４００をテーブル化する（ステップＳ８０２）。検証支援装置１００は、記憶装置に記憶されたネットリストｌｉｓｔ０からネットリストｌｉｓｔ０のモジュール定義を読み込む（ステップＳ８０３）。モジュール定義とは、モジュールの入力端子と出力端子に関する情報である。
【００４７】
検証支援装置１００は、端子のビット幅を３２ビットに拡張したネットリストｌｉｓｔ１、制御部ｃｔｒｌ、外部モデルｍｄｌをインスタンスする（ステップＳ８０４）。検証支援装置１００は、制御部ｃｔｒｌの生成を行う（ステップＳ８０５）。ステップＳ８０５では、動的変更回路がある場合と動的変更回路がない場合とで異なるアルゴリズムによって生成が行われる。検証支援装置１００は、外部モデルｍｄｌの入力端子側に受信スレッドｒｅｃをインスタンスし、出力端子側に送信スレッドｔｒａをインスタンスすることにより、外部モデルｍｄｌの生成を行い（ステップＳ８０６）、プログラムの書き込みを行い（ステップＳ８０７）、一連の処理を終了する。これにより、メインプログラム１０００が生成される。
【００４８】
（信号ビット幅変更処理手順例）
図９は、信号ビット幅変更処理手順例を示すフローチャートである。検証支援装置１００は、記憶装置に記憶された制御情報４００の読み込みを行い（ステップＳ９０１）、読み込まれた制御情報４００をテーブル化する（ステップＳ９０２）。検証支援装置１００は、記憶装置に記憶されたネットリストｌｉｓｔ０を読み込み（ステップＳ９０３）すべての信号のビット幅を３２ビットに変更する（ステップＳ９０４）。具体的に、たとえば、検証支援装置１００は、すべての信号の型をＩｎｔｅｇｅｒに変更することにより、ビット幅を３２ビットに変更してもよい。
【００４９】
つぎに、検証支援装置１００は、動的ルート変更制御回路があるか否かを判断する（ステップＳ９０５）。動的ルート変更制御回路がある場合（ステップＳ９０５：Ｙｅｓ）、検証支援装置１００は、動的ルート変更制御回路に対応するインスタンスのモジュール名をルールに基づき変更し（ステップＳ９０６）、ステップＳ９０７へ移行する。動的ルート変更制御回路がない場合（ステップＳ９０５：Ｎｏ）、ステップＳ９０７へ移行する。ステップＳ９０６、またはステップＳ９０５のＮｏの場合のつぎに、ネットリストｌｉｓｔ１の書き込みを行い（ステップＳ９０７）、一連の処理を終了する。これにより、ビット幅が変更されたネットリストｌｉｓｔ１が作成される。
【００５０】
図１０は、遅延解析モデルの一例を示す説明図である。たとえば、遅延解析モデル１０１０は、メインプログラム１０００と、共通の記憶領域１０２０と、を含む。メインプログラム１０００は、外部モデルｍｄｌと、制御部ｃｔｒｌと、ネットリストｌｉｓｔ１と、を含む。共通の記憶領域１０２０は、たとえば、ＲＡＭ２０３やディスク２０５などの記憶装置から検証支援装置１００用に確保された領域である。
【００５１】
メインプログラム１０００は、ＶｅｒｉｌｏｇやＶＨＤＬなどのハードウェア記述言語やシステム記述言語によって記述される。
【００５２】
制御部ｃｔｒｌは、開始や終了の制御、遅延計算、チェック処理などが記述される。ネットリストｌｉｓｔ１には、対象回路内のモジュールやその内部のセル（ＦＦやＲＡＭなど）の接続関係が記述される。対象回路内の各信号を示すネットリストｌｉｓｔ１内の各信号のビット幅はすべて３２ビットに変換済みである。外部モデルｍｄｌとネットリストｌｉｓｔ１内の各モジュールには、ルート情報伝搬保存処理モデル１００１が記述される。ルート情報伝搬保存処理モデル１００１は、ルート情報伝搬モデルと、保存処理モデルと、を有する。ルート情報伝搬モデルは、受信スレッドｒｅｃと、送信スレッドｔｒａと、受信スレッドｒｅｃと送信スレッドｔｒａとを繋ぐＦＩＦＯと、を有する。ここで、利用されるネットリストｌｉｓｔ１および外部モデルｍｄｌ内のモジュールの内部構造は、すべて同一の機能に置き換えられ、端子数が異なるだけである。
【００５３】
（実行処理）
つぎに、検証支援装置１００は、メインプログラム１０００をシミュレータに与えることにより、各部に規定された処理が実行される。以降、各部を実行主体として記載するが、実際には検証支援装置１００が、各部に規定された動作をシミュレーションしたり、各部を実行する。
【００５４】
制御部ｃｔｒｌは、シミュレーションが開始すると、配線遅延ライブラリ３１３を読み込み、配線遅延テーブルを作成する。
【００５５】
図１１は、配線遅延テーブルの一例を示す説明図である。配線遅延テーブル１１００は、レイアウトデータによって抽出された各モジュール間の配線のディレイ値を有するテーブルであり、本実施の形態において経路確定後のタイミング解析時に利用される。配線遅延テーブル１１００は、Ｎｏ.、出力端子名、入力端子名、およびディレイ値のフィールドを有する。各フィールドに情報が設定されることにより、レコードとして記憶される。配線遅延テーブル１１００は、ディスク２０５などの記憶装置に記憶される。
【００５６】
出力端子名のフィールドには、インスタンス名と出力端子名とが関連付けられて設定される。入力端子名のフィールドには、インスタンス名と入力端子名とが関連付けられて設定される。ディレイ値のフィールドには、出力端子から入力端子までの間のディレイ値が設定される。外部端子の場合には、端子名のみで、出力端子名の欄に外部入力端子名が、入力端子名の欄には外部出力端子名が設定される。
【００５７】
制御部ｃｔｒｌは、対象回路内の各モジュールに対して、開始指示のイベントを送信する。具体的には、たとえば、制御部ｃｔｒｌは、開始モードのフラグを「実行」に設定する。
【００５８】
ＦＦを有するモジュールの送信スレッドｔｒａは、モジュールの出力端子を示す識別情報を含む経路情報をモジュールの出力端子の出力先へ送信する。ここで送信される経路情報をルートテーブルと称する。
【００５９】
図１２は、ルートテーブルの一例を示す説明図である。ルートテーブル１２００は、Ｎｏ.、端子名、種別のフィールドを有する。Ｎｏ.のフィールドには、追加される端子の識別情報に併せて番号が付される。端子名のフィールドには、経路上にあるモジュールの端子の識別情報や外部端子の識別情報が設定される。端子名のフィールドには、モジュールの端子の場合、モジュールのインスタンス名と端子名とが関連付けて設定され、外部端子の場合、外部端子名が設定される。種別のフィールドには、外部、内部、外部端子、無限ループのいずれかが設定される。
【００６０】
また、ＦＦを有するモジュールの受信スレッドｒｅｃは、モジュールの入力端子の入力元を示す識別情報を含むルートテーブル１２００をモジュールの入力端子の入力元から受信する。
【００６１】
また、送信スレッドｔｒａは、ルートテーブル１２００に代わってルートテーブル１２００を示す識別情報を送信し、受信スレッドｒｅｃは、ルートテーブル１２００に代わってルートテーブル１２００を示す識別情報を受信してもよい。ルートテーブル１２００を示す識別情報とは、たとえば、ルートテーブル１２００に付された各ルートテーブル１２００固有の番号（ポインタ）であってもよい。これにより、送受信されるデータ量を削減することができる。上述したように各信号のビット幅が３２ビットに変更されたのは、ポインタを送信するためである。以降ポインタを送受信することとして説明する。
【００６２】
図１３は、リンクテーブルの一例を示す説明図である。リンクテーブル１３００は、図１０に示した遅延解析モデル１０１０内で単一のテーブルであり、各ルートテーブル１２００のポインタが登録される。これにより、検証支援装置１００は、異なるルートテーブル１２００に対して同一のポインタが付されてないように管理することができる。イベントドリブンのシミュレーションの場合、信号が連続して同一値であると、シミュレータはイベントが発生していないと判断してしまう。そのため、同一のポインタが複数の箇所で発生しないため、各受信モジュールは、各送信動作が発生する都度、信号にイベントが発生したとして、受信動作を行うことができる。したがって、ルート検索の精度を向上させることができる。
【００６３】
ＦＦを有する第１モジュールの受信スレッドｒｅｃまたは外部モデルｍｄｌの受信スレッドｒｅｃは、受信したポインタが示すルートテーブル１２００に対してポインタを受信した自入力端子を示す識別情報が追加されたルートテーブル１２００を出力する。具体的には、受信スレッドｒｅｃは、受信したポインタが示すルートテーブル１２００を複製し、ポインタを受信したモジュールの入力端子を示す識別情報を複製したルートテーブル１２００に追加する。そして、受信スレッドｒｅｃは、追加されたルートテーブル１２００を出力する。出力形式としては、共通の記憶領域１０２０へ格納することとしてもよいし、ディスプレイに表示してもよいし、Ｉ／Ｆ２０９を用いてネットワークＮＥＴを介して他の装置へ送信してもよい。ここでは、ルート確定テーブルへ確定されたルートテーブル１２００のポインタが登録されることとする。
【００６４】
図１４は、ルート確定テーブルの一例を示す説明図である。ルート確定テーブル１４００には、ＦＦに到達したルートテーブル１２００のポインタ、または外部モデルｍｄｌへ到達したルートテーブル１２００のポインタが記憶される。ルート確定テーブル１４００は、ディスク２０５などの記憶装置によって実現され、利用者などによってアクセス可能とする。
【００６５】
ルート確定テーブル１４００には、たとえば、Ｎｏ.、ルートテーブルポインタ、ディレイ値、その他のフィールドを有する。Ｎｏ.のフィールドには、設定されたルートテーブルポインタに付される番号が設定される。ルートテーブルポインタのフィールドには、ＦＦに到達したルートテーブル１２００のポインタ、または外部モデルｍｄｌへ到達したルートテーブル１２００のポインタが設定される。ディレイ値のフィールドには、遅延計算後のルート上のディレイ値が設定され、その他のフィールドは、各種タイミング解析時の作業用領域である。
【００６６】
ＦＦを有する第１モジュールの送信スレッドｔｒａには、第１モジュールの出力端子を示す識別情報を含む経路情報を第１モジュールの出力端子の出力先へ送信する動作が規定されてある。
【００６７】
また、対象回路内のモジュールのうちＦＦを有さない第２モジュールの受信スレッドｒｅｃは、第２モジュールの入力端子の入力元を示す識別情報を含むルートテーブル１２００のポインタを第２モジュールの入力端子の入力元から受信する。
【００６８】
そして、第２モジュールの受信スレッドｒｅｃは、第２モジュールの入力端子の入力元から受信されたポインタが示すルートテーブル１２００に対して、第２モジュールの入力端子のうちのポインタを受信した入力端子を示す識別情報を追加する。さらに、第２モジュールの受信スレッドｒｅｃは、第２モジュールの入力端子のうちのポインタを受信した入力端子と接続関係のある第２モジュールの出力端子を示す識別情報を追加する。
【００６９】
具体的には、第２モジュールの受信スレッドｒｅｃは、受信されたポインタが示すルートテーブル１２００を複製する。そして、第２モジュールの受信スレッドｒｅｃは、複製したルートテーブル１２００に対して、自第２モジュールの入力端子のうちのポインタを受信した入力端子の入力端子名を追加する。さらに、第２モジュールの受信スレッドｒｅｃは、複製したルートテーブル１２００に対して、ポインタを受信した入力端子と接続関係のある自第２モジュールの出力端子の出力端子名を追加する。
【００７０】
また、第２モジュールの受信スレッドｒｅｃは、ポインタを受信した入力端子と接続関係のある第２モジュールの出力端子が複数ある場合、出力端子ごとにルートテーブル１２００を複製してあらたなルートテーブル１２００を作成する。第２モジュールの受信スレッドｒｅｃは、ＦＩＦＯに対して、追加されたルートテーブル１２００のポインタを出力する。
【００７１】
第２モジュールの送信スレッドｔｒａは、入力端子を示す識別情報と出力端子を示す識別情報とが追加されたルートテーブル１２００を示すポインタを第２モジュールの出力端子の出力先へ送信する。具体的に、第２モジュールの送信スレッドｔｒａは、リンクテーブル１３００にあらたなルートテーブル１２００のポインタを追加する。そして、第２モジュールの送信スレッドｔｒａは、あらたなルートテーブル１２００を第２モジュールの出力端子の出力先へ送信する。
【００７２】
これにより、第２モジュールの受信スレッドｒｅｃまたは第１モジュールの受信スレッドｒｅｃは、対象回路内の他のモジュールの送信スレッドｔｒａからルートテーブル１２００のポインタを受信することとなる。したがって、ＦＦを有するモジュールからＦＦを有する他のモジュールまでの間にＦＦを有さないモジュールがあっても、ルートを特定することができる。
【００７３】
また、第２モジュールの受信スレッドｒｅｃまたは第１モジュールの受信スレッドｒｅｃは、送信スレッドｔｒａからルートテーブル１２００のポインタを受信することができる。外部モデルｍｄｌの送信スレッドｔｒａからルートテーブル１２００を受信することは、具体的には、外部入力端子からルートテーブル１２００を受信することを示す。したがって、外部入力端子からＦＦを有する他のモジュールまでの間にＦＦを有さないモジュールがあっても、ルートを特定することができる。
【００７４】
（動作例）
図１５は、動作例を示す説明図である。図１６〜図１９は、ルートテーブルの出力処理例の流れを示す説明図である。対象回路内のモジュールとモジュール間の接続関係を示すネットリストと、外部モデルｍｄｌと、を示す。
【００７５】
図１５に示すように、モジュール名がＢであり、インスタンス名がＹＹである第１モジュールと、モジュール名がＣであり、インスタンス名がＺＺであるモジュールと、が、ＦＦを有する第１モジュールである。ここでは、前者を第１モジュールＹＹと称し、後者を第１モジュールＺＺと称する。モジュール名がＡであり、インスタンス名がＸ０である第２モジュールと、モジュール名がＡであり、インスタンス名がＸ１である第２モジュールと、が、ＦＦを有さない第２モジュールである。ここでは、前者を第２モジュールＸ０と称し、後者を第２モジュールＸ１と称する。
【００７６】
図１５に示す（ａ）〜（ｈ）は、図１６〜図１９に示すルート確定テーブル１４００保存（ａ）〜（ｈ）に対応する。図１５に示す荷札マーク内の番号（ポインタ１〜３６）は、図１６〜図１９に示すリンクテーブル１３００の各レコードのそれぞれに付された番号（ポインタ１〜３６）に対応する。各レコードは、図１６〜図１９のリンクである。図１６〜図１９に示す（１ｄｅｌａｙ）〜（９ｄｅｌａｙ）はシミュレーションにおけるδ遅延であり、遅延の番号順に実行される。なお、δ遅延については、シミュレーションに依存する。リンクテーブル１３００が実線の矢印で指すテーブルは、リンクテーブル１３００に付されたポインタが示すルートテーブル１２００の簡易例である。図１６〜図１９に示す（１）〜（３０）の破線矢印は、複製元のルートテーブル１２００と複製先のルートテーブル１２００との関係を示し、矢印の先が複製先である。
【００７７】
（１ｄｅｌａｙ）
まず、（１ｄｅｌａｙ）では、外部モデルｍｄｌと、第１モジュールＹＹと、第１モジュールＺＺと、の各々の送信スレッドｔｒａが、出力端子の識別情報を含むルートテーブル１２００を示すポインタを送信する。
【００７８】
外部モデルｍｄｌは、外部モデルｍｄｌの端子の識別情報ＩＮ０を含むルートテーブル１２００のポインタ１を送信し、外部モデルｍｄｌの端子の識別情報ＩＮ１を含むルートテーブル１２００のポインタ２を送信する。外部モデルｍｄｌは、外部モデルｍｄｌの端子の識別情報ＩＮ２を含むルートテーブル１２００のポインタ３を送信し、外部モデルｍｄｌの端子の識別情報ＩＮ３を含むルートテーブル１２００のポインタ４を送信する。
【００７９】
第１モジュールＹＹは、第１モジュールＹＹの端子の識別情報ＹＹ．Ｏｕｔを含むルートテーブル１２００のポインタ５を送信する。第１モジュールＺＺは、第１モジュールＺＺの端子の識別情報ＺＺ．Ｏｕｔを含むルートテーブル１２００のポインタ６を送信する。
【００８０】
（２ｄｅｌａｙ）
つぎに、（２ｄｅｌａｙ）では、（１ｄｅｌａｙ）においてポインタを送信したモジュールと接続関係のあるモジュールの受信スレッドｒｅｃが送信されたポインタを受信する。
【００８１】
第２モジュールＸ０は、ポインタ５を受信し、（１）ポインタ５が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ５を受信した入力端子の識別情報Ｘ０．Ｉｎ０を追加する。さらに、第２モジュールＸ０は、複製したルートテーブル１２００に対して、ポインタ５を受信した入力端子と接続関係のある出力端子の識別情報Ｘ０．Ｏｕｔを追加する。そして、第２モジュールＸ０は、追加された後のルートテーブル１２００を示すポインタ７を送信する。
【００８２】
第２モジュールＸ０は、ポインタ１を受信し、（２）ポインタ１が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ１を受信した入力端子の識別情報Ｘ０．Ｉｎ１を追加する。さらに、第２モジュールＸ０は、複製したルートテーブル１２００に対して、ポインタ１を受信した入力端子と接続関係のある出力端子の識別情報Ｘ０．Ｏｕｔを追加する。そして、第２モジュールＸ０は、追加された後のルートテーブル１２００を示すポインタ８を送信する。
【００８３】
第１モジュールＺＺは、ポインタ５を受信し、（３）ポインタ５が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ５を受信した入力端子の識別情報ＺＺ．Ｉｎ０を追加する。さらに、第１モジュールＺＺは、複製したルートテーブル１２００に対して、ポインタ５を受信した入力端子がＦＦと接続関係があるため、ＦＦを追加すると、（ｆ）追加されたルートテーブル１２００を示すポインタ９をルート確定テーブル１４００に保存する。
【００８４】
外部モデルｍｄｌは、ポインタ６を受信し、（４）ポインタ６が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ６を受信した外部出力端子の識別情報ＯＵＴ１を追加する。そして、外部モデルｍｄｌは、（ａ）追加された後のルートテーブル１２００を示すポインタ１０をルート確定テーブル１４００に保存する。
【００８５】
（３ｄｅｌａｙ）
つぎに、（３ｄｅｌａｙ）では、（１ｄｅｌａｙ）においてポインタを送信したモジュールと接続関係のあるモジュールの受信スレッドｒｅｃが送信されたポインタを受信する。
【００８６】
第２モジュールＸ０は、ポインタ２を受信し、（５）ポインタ２が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ２を受信した入力端子の識別情報Ｘ０．Ｉｎ２を追加する。さらに、第２モジュールＸ０は、複製したルートテーブル１２００に対して、ポインタ２を受信した入力端子と接続関係のある出力端子の識別情報Ｘ０．Ｏｕｔを追加する。そして、第２モジュールＸ０は、追加された後のルートテーブル１２００を示すポインタ１１を送信する。
【００８７】
第２モジュールＸ１は、ポインタ２を受信し、（６）ポインタ２が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ２を受信した入力端子の識別情報Ｘ１．Ｉｎ１を追加する。さらに、第２モジュールＸ１は、複製したルートテーブル１２００に対して、ポインタ２を受信した入力端子と接続関係のある出力端子の識別情報Ｘ１．Ｏｕｔを追加する。そして、第２モジュールＸ１は、追加された後のルートテーブル１２００を示すポインタ１２を送信する。
【００８８】
（４ｄｅｌａｙ）
つぎに、（４ｄｅｌａｙ）では、（１ｄｅｌａｙ）または（２ｄｅｌａｙ）においてポインタを送信したモジュールと接続関係のあるモジュールの受信スレッドｒｅｃが送信されたポインタを受信する。
【００８９】
第１モジュールＹＹは、ポインタ７を受信し、（７）ポインタ７が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ７を受信した入力端子の識別情報ＹＹ．Ｉｎ０を追加する。さらに、第１モジュールＺＺは、複製したルートテーブル１２００に対して、ポインタ７を受信した入力端子がＦＦと接続関係があるため、複製したルートテーブル１２００にＦＦを追加する。そして、第１モジュールＺＺは、（ｃ）追加された後のルートテーブル１２００を示すポインタ１３をルート確定テーブル１４００に保存する。
【００９０】
第１モジュールＹＹは、ポインタ３を受信し、（８）ポインタ３が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ３を受信した入力端子の識別情報ＹＹ．Ｉｎ２を追加する。さらに、第１モジュールＹＹは、複製したルートテーブル１２００に対して、ポインタ３を受信した入力端子がＦＦと接続関係があるため、複製したルートテーブル１２００にＦＦを追加する。そして、第１モジュールＹＹは、（ｅ）追加された後のルートテーブル１２００を示すポインタ１４をルート確定テーブル１４００に保存する。
【００９１】
第２モジュールＸ１は、ポインタ７を受信し、（９）ポインタ７が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ７を受信した入力端子の識別情報Ｘ１．Ｉｎ０を追加する。さらに、第２モジュールＸ１は、複製したルートテーブル１２００に対して、ポインタ７を受信した入力端子と接続関係がある出力端子の識別情報Ｘ１．Ｏｕｔを追加する。そして、第２モジュールＸ１は、追加された後のルートテーブル１２００を示すポインタ１５を送信する。
【００９２】
第１モジュールＺＺは、ポインタ３を受信し、（１０）ポインタ３が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ３を受信した入力端子の識別情報ＺＺ．Ｉｎ２を追加する。さらに、第１モジュールＺＺは、複製したルートテーブル１２００に対して、ポインタ３を受信した入力端子がＦＦと接続関係があるため、複製したルートテーブル１２００にＦＦを追加する。そして、第１モジュールＺＺは、（ｈ）追加された後のルートテーブル１２００を示すポインタ１６をルート確定テーブル１４００に保存する。
【００９３】
（５ｄｅｌａｙ）
つぎに、（５ｄｅｌａｙ）では、（１ｄｅｌａｙ）、（２ｄｅｌａｙ）または（３ｄｅｌａｙ）においてポインタを送信したモジュールと接続関係のあるモジュールの受信スレッドｒｅｃが送信されたポインタを受信する。
【００９４】
第１モジュールＹＹは、ポインタ８を受信し、（１１）ポインタ８が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ８を受信した入力端子の識別情報ＹＹ．Ｉｎ０を追加する。さらに、第１モジュールＹＹは、複製したルートテーブル１２００に対して、ポインタ８を受信した入力端子がＦＦと接続関係があるため、複製したルートテーブル１２００にＦＦを追加する。そして、第１モジュールＹＹは、（ｃ）追加された後のルートテーブル１２００を示すポインタ１７をルート確定テーブル１４００に保存する。
【００９５】
第１モジュールＹＹは、ポインタ１２を受信し、（１２）ポインタ１２が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ１２を受信した入力端子の識別情報ＹＹ．Ｉｎ１を追加する。さらに、第１モジュールＹＹは、複製したルートテーブル１２００に対して、ポインタ１２を受信した入力端子がＦＦと接続関係があるため、複製したルートテーブル１２００にＦＦを追加する。そして、第１モジュールＹＹは、（ｄ）追加された後のルートテーブル１２００を示すポインタ１８をルート確定テーブル１４００に保存する。
【００９６】
第２モジュールＸ１は、ポインタ８を受信し、（１３）ポインタ８が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ８を受信した入力端子の識別情報Ｘ１．Ｉｎ０を追加する。さらに、第２モジュールＸ１は、複製したルートテーブル１２００に対して、ポインタ８を受信した入力端子と接続関係がある出力端子の識別情報Ｘ１．Ｏｕｔを追加する。そして、第２モジュールＸ１は、追加された後のルートテーブル１２００を示すポインタ１９を送信する。
【００９７】
第２モジュールＸ１は、ポインタ４を受信し、（１４）ポインタ４が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ４を受信した入力端子の識別情報Ｘ１．Ｉｎ２を追加する。さらに、第２モジュールＸ１は、複製したルートテーブル１２００に対して、ポインタ８を受信した入力端子と接続関係がある出力端子の識別情報Ｘ１．Ｏｕｔを追加する。そして、第２モジュールＸ１は、追加された後のルートテーブル１２００を示すポインタ２０を送信する。
【００９８】
第１モジュールＺＺは、ポインタ１２を受信し、（１５）ポインタ１２が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ１２を受信した入力端子の識別情報ＺＺ．Ｉｎ１を追加する。さらに、第１モジュールＺＺは、複製したルートテーブル１２００に対して、ポインタ１２を受信した入力端子がＦＦと接続関係があるため、複製したルートテーブル１２００にＦＦを追加する。そして、第１モジュールＺＺは、（ｇ）追加された後のルートテーブル１２００を示すポインタ２１をルート確定テーブル１４００に保存する。
【００９９】
外部モデルｍｄｌは、ポインタ１２を受信し、（１６）ポインタ１２が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ１２を受信した外部出力端子の識別情報ＯＵＴ０を追加する。そして、外部モデルｍｄｌは、（ｂ）追加された後のルートテーブル１２００を示すポインタ２２をルート確定テーブル１４００に保存する。
【０１００】
（６ｄｅｌａｙ）
つぎに、（６ｄｅｌａｙ）では、（３ｄｅｌａｙ）または（４ｄｅｌａｙ）においてポインタを送信したモジュールと接続関係のあるモジュールの受信スレッドｒｅｃが送信されたポインタを受信する。
【０１０１】
第１モジュールＹＹは、ポインタ１１を受信し、（１７）ポインタ１１が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ１１を受信した入力端子の識別情報ＹＹ．Ｉｎ０を追加する。さらに、第１モジュールＹＹは、複製したルートテーブル１２００に対して、ポインタ１１を受信した入力端子がＦＦと接続関係があるため、複製したルートテーブル１２００にＦＦを追加する。そして、第１モジュールＹＹは、（ｃ）追加された後のルートテーブル１２００を示すポインタ２３をルート確定テーブル１４００に保存する。
【０１０２】
第１モジュールＹＹは、ポインタ１５を受信し、（１８）ポインタ１５が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ１５を受信した入力端子の識別情報ＹＹ．Ｉｎ１を追加する。さらに、第１モジュールＹＹは、複製したルートテーブル１２００に対して、ポインタ１５を受信した入力端子がＦＦと接続関係があるため、複製したルートテーブル１２００にＦＦを追加する。そして、第１モジュールＹＹは、（ｄ）追加された後のルートテーブル１２００を示すポインタ２４をルート確定テーブル１４００に保存する。
【０１０３】
第２モジュールＸ１は、ポインタ１１を受信し、（１９）ポインタ１１が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ１１を受信した入力端子の識別情報Ｘ１．Ｉｎ０を追加する。さらに、第２モジュールＸ１は、複製したルートテーブル１２００に対して、ポインタ１１を受信した入力端子と接続関係がある出力端子の識別情報Ｘ１．Ｏｕｔを追加する。そして、第２モジュールＸ１は、追加された後のルートテーブル１２００を示すポインタ２５を送信する。
【０１０４】
第１モジュールＺＺは、ポインタ１５を受信し、（２０）ポインタ１５が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ１５を受信した入力端子の識別情報ＺＺ．Ｉｎ１を追加する。さらに、第１モジュールＺＺは、複製したルートテーブル１２００に対して、ポインタ１５を受信した入力端子がＦＦと接続関係があるため、複製したルートテーブル１２００にＦＦを追加する。そして、第１モジュールＺＺは、（ｇ）追加された後のルートテーブル１２００を示すポインタ２６をルート確定テーブル１４００に保存する。
【０１０５】
外部モデルｍｄｌは、ポインタ１５を受信し、（２１）ポインタ１５が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ１５を受信した外部出力端子の識別情報ＯＵＴ０を追加する。そして、外部モデルｍｄｌは、（ｂ）追加された後のルートテーブル１２００を示すポインタ２７をルート確定テーブル１４００に保存する。
【０１０６】
（７ｄｅｌａｙ）
つぎに、（７ｄｅｌａｙ）では、（５ｄｅｌａｙ）においてポインタを送信したモジュールと接続関係のあるモジュールの受信スレッドｒｅｃが送信されたポインタを受信する。
【０１０７】
第１モジュールＹＹは、ポインタ１９を受信し、（２２）ポインタ１９が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ１９を受信した入力端子の識別情報ＹＹ．Ｉｎ１を追加する。さらに、第１モジュールＹＹは、複製したルートテーブル１２００に対して、ポインタ１９を受信した入力端子がＦＦと接続関係があるため、複製したルートテーブル１２００にＦＦを追加する。そして、第１モジュールＹＹは、（ｄ）追加された後のルートテーブル１２００を示すポインタ２８をルート確定テーブル１４００に保存する。
【０１０８】
第１モジュールＺＺは、ポインタ１９を受信し、（２３）ポインタ１９が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ１９を受信した入力端子の識別情報ＺＺ．Ｉｎ１を追加する。さらに、第１モジュールＺＺは、複製したルートテーブル１２００に対して、ポインタ１９を受信した入力端子がＦＦと接続関係があるため、複製したルートテーブル１２００にＦＦを追加する。そして、第１モジュールＺＺは、（ｇ）追加された後のルートテーブル１２００を示すポインタ２９をルート確定テーブル１４００に保存する。
【０１０９】
外部モデルｍｄｌは、ポインタ１９を受信し、（２４）ポインタ１９が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ１９を受信した外部出力端子の識別情報ＯＵＴ０を追加する。そして、外部モデルｍｄｌは、（ｂ）追加された後のルートテーブル１２００を示すポインタ３０をルート確定テーブル１４００に保存する。
【０１１０】
（８ｄｅｌａｙ）
つぎに、（８ｄｅｌａｙ）では、（５ｄｅｌａｙ）においてポインタを送信したモジュールと接続関係のあるモジュールの受信スレッドｒｅｃが送信されたポインタを受信する。
【０１１１】
第１モジュールＹＹは、ポインタ２０を受信し、（２５）ポインタ２０が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ２０を受信した入力端子の識別情報ＹＹ．Ｉｎ１を追加する。さらに、第１モジュールＹＹは、複製したルートテーブル１２００に対して、ポインタ２０を受信した入力端子がＦＦと接続関係があるため、複製したルートテーブル１２００にＦＦを追加する。そして、第１モジュールＹＹは、（ｄ）追加された後のルートテーブル１２００を示すポインタ３１をルート確定テーブル１４００に保存する。
【０１１２】
第１モジュールＺＺは、ポインタ２０を受信し、（２６）ポインタ２０が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ２０を受信した入力端子の識別情報ＺＺ．Ｉｎ１を追加する。さらに、第１モジュールＺＺは、複製したルートテーブル１２００に対して、ポインタ２０を受信した入力端子がＦＦと接続関係があるため、複製したルートテーブル１２００にＦＦを追加する。そして、第１モジュールＺＺは、（ｇ）追加された後のルートテーブル１２００を示すポインタ３２をルート確定テーブル１４００に保存する。
【０１１３】
外部モデルｍｄｌは、ポインタ２０を受信し、（２７）ポインタ２０が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ２０を受信した外部出力端子の識別情報ＯＵＴ０を追加する。そして、外部モデルｍｄｌは、（ｂ）追加された後のルートテーブル１２００を示すポインタ３３をルート確定テーブル１４００に保存する。
【０１１４】
（９ｄｅｌａｙ）
つぎに、（９ｄｅｌａｙ）では、（６ｄｅｌａｙ）においてポインタを送信したモジュールと接続関係のあるモジュールの受信スレッドｒｅｃが送信されたポインタを受信する。
【０１１５】
第１モジュールＹＹは、ポインタ２５を受信し、（２８）ポインタ２５が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ２５を受信した入力端子の識別情報ＹＹ．Ｉｎ１を追加する。さらに、第１モジュールＹＹは、複製したルートテーブル１２００に対して、ポインタ２５を受信した入力端子がＦＦと接続関係があるため、複製したルートテーブル１２００にＦＦを追加する。そして、第１モジュールＹＹは、（ｄ）追加された後のルートテーブル１２００を示すポインタ３４をルート確定テーブル１４００に保存する。
【０１１６】
第１モジュールＺＺは、ポインタ２５を受信し、（２９）ポインタ２５が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ２５を受信した入力端子の識別情報ＺＺ．Ｉｎ１を追加する。さらに、第１モジュールＺＺは、複製したルートテーブル１２００に対して、ポインタ２５を受信した入力端子がＦＦと接続関係があるため、複製したルートテーブル１２００にＦＦを追加する。そして、第１モジュールＺＺは、（ｇ）追加された後のルートテーブル１２００を示すポインタ３５をルート確定テーブル１４００に保存する。
【０１１７】
外部モデルｍｄｌは、ポインタ２５を受信し、（３０）ポインタ２５が示すルートテーブル１２００を複製し、複製したルートテーブル１２００に対して、ポインタ２５を受信した外部出力端子の識別情報ＯＵＴ０を追加する。そして、外部モデルｍｄｌは、（ｂ）追加された後のルートテーブル１２００を示すポインタ３６をルート確定テーブル１４００に保存する。
【０１１８】
図２０は、動作例によって得られるルート確定テーブル例を示す説明図である。ルート確定テーブル１４００には、ルートテーブルポインタが順次保存され、ルート確定テーブル１４００は図２０のようになる。図２０のルート確定テーブル１４００では、ディレイ値、その他のフィールドを省略して表す。
【０１１９】
（制御部ｃｔｒｌが行う処理手順）
図２１は、制御部が行う処理手順例を示すフローチャートである。まず、制御部ｃｔｒｌは、配線遅延ライブラリ３１３を読み込み（ステップＳ２１０１）、配線遅延テーブルを作成する（ステップＳ２１０２）。制御部ｃｔｒｌは、開始モード＝初期化にして、各モジュールに対してイベントを発生させる（ステップＳ２１０３）。
【０１２０】
つぎに、制御部ｃｔｒｌは、１δ時間待って（ステップＳ２１０４）、開始モード＝実行にして、各モジュールに対してイベントを発生させ（ステップＳ２１０５）、終了まで待つ（ステップＳ２１０６）。ステップＳ２１０６では、すべてのイベント処理が終了すれば、制御部ｃｔｒｌのモデルに記述された実行時間分進み、つぎのステップ２１０７へ移行する。図２１の例では、１［ｐｓ］待ちとなっているが、実時間であれば特に限定しない。また、システム記述言語やハードウェア記述言語によっては、ステップＳ２１０４のように「１δ時間待ち」ができない場合があるが、この場合には、実時間（たとえば、１［ｆｓ］）待ちのようにしてもよい。以降のフローチャートのステップに記載の１δ時間待ちは同様にしてもよい。ステップＳ２１０４において実時間待ちにする場合、ステップＳ２１０６における終了待ちの時間を超えないように、終了待ち時間を大きな値とする。
【０１２１】
つぎに、制御部ｃｔｒｌは、全ルートの遅延計算を行い（ステップＳ２１０７）、遅延解析結果のレポートを出力し（ステップＳ２１０８）、一連の処理を終了する。ステップＳ２１０７については、図２６と図２７を用いて詳細に説明する。ステップＳ２１０８における出力形式は、ディスク２０５などの記憶装置に記憶させてもよいし、ディスプレイに表示させてもよいし、Ｉ／Ｆ２０９に基づきネットワークＮＥＴを介して他の装置に出力してもよい。
【０１２２】
（受信スレッドｒｅｃが行う処理手順）
図２２および図２３は、受信スレッドが行う処理手順例を示すフローチャートである。受信スレッドｒｅｃは、初期化し（ステップＳ２２０１）、各種イベント待ちを行う（ステップＳ２２０２）。イベントは、ポインタの受信、開始モードの変化などが挙げられる。受信スレッドｒｅｃは、イベントを受け付けると、開始モード＝実行であるか否かを判断する（ステップＳ２２０３）。開始モード＝実行でない場合（ステップＳ２２０３：Ｎｏ）、ステップＳ２２０２へ戻る。
【０１２３】
開始モード＝実行である場合（ステップＳ２２０３：Ｙｅｓ）、受信スレッドｒｅｃは、ポインタを受信した入力端子から未選択な入力端子があるか否かを判断する（ステップＳ２２０４）。未選択な入力端子がある場合（ステップＳ２２０４：Ｙｅｓ）、受信スレッドｒｅｃは、未選択な入力端子から１つの入力端子を選択し（ステップＳ２２０５）、選択した入力端子が受信したポインタからルートテーブル１２００を特定する（ステップＳ２２０６）。
【０１２４】
受信スレッドｒｅｃは、ルートテーブル１２００を参照して、ルート内に同じ入力端子が存在するか否かを判断する（ステップＳ２２０７）。ステップＳ２２０７によって、組み合わせ回路によって無限ループが発生するか否かが判定される。
【０１２５】
同じ入力端子が存在する場合（ステップＳ２２０７：Ｙｅｓ）、受信スレッドｒｅｃは、特定したルートテーブル１２００を複製し（ステップＳ２２０８）、複製したルートテーブル１２００に対して、種別を無限ループにして、ポインタを受信した入力端子の識別情報を追加する（ステップＳ２２０９）。受信スレッドｒｅｃは、追加された後のルートテーブル１２００のポインタをルート確定テーブル１４００に保存し（ステップＳ２２１０）、ステップＳ２２０４へ戻る。
【０１２６】
ステップＳ２２０７において、同じ入力端子が存在しない場合（ステップＳ２２０７：Ｎｏ）、受信スレッドｒｅｃは、自モジュールが外部モデルｍｄｌか否かを判断する（ステップＳ２２１１）。自モジュールが外部モデルｍｄｌである場合（ステップＳ２２１１：Ｙｅｓ）、受信スレッドｒｅｃは、ルートテーブル１２００を複製し（ステップＳ２２１２）、複製したルートテーブル１２００に対して、種別を外部端子にして、ポインタを受信した入力端子の識別情報を追加する（ステップＳ２２１３）。外部モデルｍｄｌの場合、ポインタを受信した入力端子は、対象回路の外部出力端子に対応する。受信スレッドｒｅｃは、ルート確定テーブル１４００に保存し（ステップＳ２２１４）、ステップＳ２２０４へ戻る。
【０１２７】
ステップＳ２２１１において、自モジュールが外部モデルｍｄｌでない場合（ステップＳ２２１１：Ｎｏ）、受信スレッドｒｅｃは、モジュール内部遅延テーブル６００からモジュール名とポインタを受信した入力端子の入力端子名とによって出力端子を検索する（ステップＳ２３０１）。受信スレッドｒｅｃは、検索した出力端子のうち、未選択の出力端子があるか否かを判断する（ステップＳ２３０２）。
【０１２８】
未選択の出力端子がある場合（ステップＳ２３０２：Ｙｅｓ）、受信スレッドｒｅｃは、未選択の出力端子から１つの出力端子を選択する（ステップＳ２３０３）。受信スレッドｒｅｃは、選択した入力端子が受信したポインタから特定したルートテーブル１２００を複製し（ステップＳ２３０４）、複製したルートテーブル１２００に対して、種別を内部にして、ポインタを受信した入力端子の識別情報を追加する（ステップＳ２３０５）。
【０１２９】
つぎに、受信スレッドｒｅｃは、検索した出力端子はＦＦであるか否かを判断する（ステップＳ２３０６）。ＦＦである場合（ステップＳ２３０６：Ｙｅｓ）、受信スレッドｒｅｃは、ルートテーブル１２００にＦＦキーワードを追加し（ステップＳ２３０７）、ルートテーブル１２００を示すポインタをルート確定テーブル１４００に保存し（ステップＳ２３０８）、ステップＳ２３０２へ戻る。
【０１３０】
ＦＦでない場合（ステップＳ２３０６：Ｎｏ）、受信スレッドｒｅｃは、種別を外部にして、ルートテーブル１２００に出力端子の識別情報を追加し（ステップＳ２３０９）、ＦＩＦＯにルートテーブル１２００のポインタを出力し（ステップＳ２３１０）、ステップＳ２３０２へ戻る。これにより、ＦＩＦＯは、同一モジュール内の受信スレッドｒｅｃから送信スレッドｔｒａへのデータを受け渡すためのＦＩＦＯである。
【０１３１】
ステップＳ２３０２において、未選択の出力端子がない場合（ステップＳ２３０２：Ｎｏ）、ステップＳ２２０４へ戻る。ステップＳ２２０４において、未選択な入力端子がない場合（ステップＳ２２０４：Ｎｏ）、ステップＳ２２０２へ戻る。
【０１３２】
（送信スレッドｔｒａが行う処理手順）
図２４および図２５は、送信スレッドが行う処理手順例を示すフローチャートである。送信スレッドｔｒａは、初期化（初期駆動ｆｌａｇ＝０）し（ステップＳ２４０１）、１δ時間待って（ステップＳ２４０２）、開始モード＝初期化であるか否かを判断する（ステップＳ２４０３）。開始モード＝初期化である場合（ステップＳ２４０３：Ｙｅｓ）、送信スレッドｔｒａは、初期駆動ｆｌａｇ＝＝０であるか否かを判断する（ステップＳ２４０４）。初期駆動ｆｌａｇ＝＝０である場合（ステップＳ２４０４：Ｙｅｓ）、送信スレッドｔｒａは、自モジュールがＦＦ有モジュールまたは外部モデルｍｄｌであるか否かを判断する（ステップＳ２４０５）。
【０１３３】
自モジュールがＦＦ有モジュールまたは外部モデルｍｄｌである場合（ステップＳ２４０５：Ｙｅｓ）、送信スレッドｔｒａは、未選択の出力端子があるか否かを判断する（ステップＳ２５０１）。未選択の出力端子がある場合（ステップＳ２５０１：Ｙｅｓ）、送信スレッドｔｒａは、未選択の出力端子から１つの出力端子を選択し（ステップＳ２５０２）、自モジュールがＦＦ有モジュールであるか否かを判断する（ステップＳ２５０３）。
【０１３４】
自モジュールがＦＦ有モジュールでない場合（ステップＳ２５０３：Ｎｏ）、送信スレッドｔｒａは、ルートテーブル１２００を生成する（ステップＳ２５０４）。そして、送信スレッドｔｒａは、ルートテーブル１２００に、種別を外部端子にして、出力端子の識別情報を追加し（ステップＳ２５０５）、ステップＳ２５０９へ移行する。ステップＳ２５０５において識別情報が追加された出力端子は、対象回路の外部出力端子に対応する。
【０１３５】
ステップＳ２５０３において、自モジュールがＦＦ有モジュールである場合（ステップＳ２５０３：Ｙｅｓ）、送信スレッドｔｒａは、ルートテーブル１２００を生成し（ステップＳ２５０６）、生成したルートテーブル１２００に対して、種別を内部にして、ＦＦキーワードを追加する（ステップＳ２５０７）。送信スレッドｔｒａは、ルートテーブル１２００に、種別を外部にして、出力端子の識別情報を追加し（ステップＳ２５０８）、ステップＳ２５０９へ移行する。
【０１３６】
ステップＳ２５０５またはステップＳ２５０８のつぎに、送信スレッドｔｒａは、リンクテーブル１３００を追加し（ステップＳ２５０９）、リンクテーブル１３００に、ルートテーブル１２００のポインタを設定する（ステップＳ２５１０）。送信スレッドｔｒａは、出力端子の出力信号をリンクテーブル１３００のポインタに設定し（ステップＳ２５１１）、１δ時間待って（ステップＳ２５１２）、ステップＳ２５０１へ戻る。１δ時間待つことにより、ステップＳ２５１１において設定されたポインタが出力先の受信スレッドｒｅｃへ送信される。
【０１３７】
ステップＳ２５０１において、未選択の出力端子がない場合（ステップＳ２５０１：Ｎｏ）、初期駆動ｆｌａｇ＝１にし（ステップＳ２５１３）、ステップＳ２４０２へ戻る。
【０１３８】
ステップＳ２４０３において、開始モード＝初期化でない場合（ステップＳ２４０３：Ｎｏ）、送信スレッドｔｒａは、初期駆動ｆｌａｇ＝０にし（ステップＳ２４０６）、ステップＳ２４０７へ移行する。ステップＳ２４０４において、初期駆動ｆｌａｇ＝＝０でない場合（ステップＳ２４０４：Ｎｏ）、ステップＳ２４０７へ移行する。自モジュールがＦＦ有モジュールまたは外部モデルｍｄｌでない場合（ステップＳ２４０５：Ｎｏ）、ステップＳ２４０７へ移行する。
【０１３９】
つぎに、送信スレッドｔｒａは、ＦＩＦＯから読み込みを行い（ステップＳ２４０７）、送信スレッドｔｒａは、ＦＩＦＯがエンプティか否かを判断する（ステップＳ２４０８）。ＦＩＦＯがエンプティでない場合（ステップＳ２４０８：Ｎｏ）、送信スレッドｔｒａは、リンクテーブル１３００を追加し（ステップＳ２４０９）、リンクテーブル１３００に、ルートテーブル１２００のポインタを設定する（ステップＳ２４１０）。つぎに、送信スレッドｔｒａは、出力端子の出力信号をリンクテーブル１３００のポインタに設定し（ステップＳ２４１１）、１δ時間待って（ステップＳ２４１２）、ステップＳ２４０７に戻る。１δ時間待つことにより、出力端子の出力信号に設定されたポインタが出力先の受信スレッドｒｅｃへ送信される。ステップＳ２４０８において、ＦＩＦＯがエンプティである場合（ステップＳ２４０８：Ｙｅｓ）、ステップＳ２４０２へ戻る。
【０１４０】
（制御部ｃｔｒｌが行う遅延計算処理手順）
図２６および図２７は、制御部が行う遅延計算処理手順の詳細例を示すフローチャートである。ここでは、制御部ｃｔｒｌは、ルートが確定した後に、ディレイ値の足し算を行う例を示すが、上述したルートを探索時にディレイ値の足し算を行ってもよい。
【０１４１】
まず、制御部ｃｔｒｌは、Ｉｘ＝０とし（ステップＳ２６０１）、Ｉｘ＜（ルート確定テーブル１４００のテーブル数−１）であるか否かを判断する（ステップＳ２６０２）。Ｉｘ＜（ルート確定テーブル１４００のテーブル数−１）である場合（ステップＳ２６０２：Ｙｅｓ）、送信スレッドｔｒａは、ルート確定テーブル１４００［Ｉｘ］からルートテーブル１２００を取得する（ステップＳ２６０３）。送信スレッドｔｒａは、ルートテーブル１２００［０］の種別＝外部端子であるか否かを判断する（ステップＳ２６０４）。
【０１４２】
ルートテーブル１２００［０］の種別＝外部端子である場合（ステップＳ２６０４：Ｙｅｓ）、制御部ｃｔｒｌは、Ｄｅｌａｙ＝外部端子の初期ディレイ値とし（ステップＳ２６０５）、ステップＳ２６０７へ移行する。ルートテーブル１２００［０］の種別＝外部端子でない場合（ステップＳ２６０４：Ｎｏ）、制御部ｃｔｒｌは、Ｄｅｌａｙ＝０とし（ステップＳ２６０６）、ステップＳ２６０７へ移行する。ステップＳ２６０５、またはステップＳ２６０６のつぎに、制御部ｃｔｒｌは、ルートテーブル１２００［テーブル数−１］の種別＝無限ループであるか否かを判断する（ステップＳ２６０７）。
【０１４３】
ルートテーブル１２００［テーブル数−１］の種別＝無限ループである場合（ステップＳ２６０７：Ｙｅｓ）、制御部ｃｔｒｌは、エラー出力し（ステップＳ２６０８）、ステップＳ２６１０へ移行する。
【０１４４】
ルートテーブル１２００［テーブル数−１］の種別＝無限ループでない場合（ステップＳ２６０７：Ｎｏ）、制御部ｃｔｒｌは、Ｊｘ＝０とし（ステップＳ２７０１）、Ｊｘ＜（ルートテーブル１２００のテーブル数−１）であるか否かを判断する（ステップＳ２７０２）。Ｊｘ＜（ルートテーブル１２００のテーブル数−１）である場合（ステップＳ２７０２：Ｙｅｓ）、制御部ｃｔｒｌは、ルートテーブル１２００［Ｊｘ］の種別＝外部であるか否かを判断する（ステップＳ２７０３）。
【０１４５】
ルートテーブル１２００［Ｊｘ］の種別＝外部である場合（ステップＳ２７０３：Ｙｅｓ）、制御部ｃｔｒｌは、パス遅延テーブルから、ルートテーブル１２００［Ｊｘ］の端子名とルートテーブル１２００［Ｊｘ＋１］の端子名とによって、ディレイ値を検索する（ステップＳ２７０４）。ルートテーブル１２００［Ｊｘ］の種別＝外部でない場合（ステップＳ２７０３：Ｎｏ）、制御部ｃｔｒｌは、モジュール内部遅延テーブル６００から、ルートテーブル１２００［Ｊｘ］の端子名とルートテーブル１２００［Ｊｘ＋１］の端子名とによって、ディレイ値を検索する（ステップＳ２７０５）。
【０１４６】
ステップＳ２７０４、またはステップＳ２７０５のつぎに、制御部ｃｔｒｌは、Ｄｅｌａｙ＝Ｄｅｌａｙ＋検索したディレイ値とし（ステップＳ２７０６）、Ｊｘ＝Ｊｘ＋１とし（ステップＳ２７０７）、ステップＳ２７０２へ戻る。Ｊｘ＜（ルートテーブル１２００のテーブル数−１）でない場合（ステップＳ２７０２：Ｎｏ）、制御部ｃｔｒｌは、ルート確定テーブル１４００［Ｉｘ］のディレイ値にＤｅｌａｙを格納し（ステップＳ２６０９）、ステップＳ２６１０へ移行する。
【０１４７】
ステップＳ２６０８またはステップＳ２６０９のつぎに、制御部ｃｔｒｌは、Ｉｘ＝Ｉｘ＋１とし（ステップＳ２６１０）、ステップＳ２６０２へ戻る。ステップＳ２６０２において、Ｉｘ＜（ルート確定テーブル１４００のテーブル数−１）でない場合（ステップＳ２６０２：Ｎｏ）、一連の処理を終了する。
【０１４８】
（動的ルート変更）
ダイナミックリコンフィギュラブル回路のように、利用される機能に応じて動的に回路の接続関係が変化する場合、パスが動的に変化してしまう。パスを変化させるのは、たとえば、選択回路（以下、「セレクタ」と称する。）が制御信号に応じて入力信号を選択して出力するためである。制御信号の値によっては、選択回路により無限ループになってしまう経路ができる可能性がある。この無限ループは、セレクタからの出力信号が、ＦＦを介さずに再度セレクタへ入力される場合に発生するが、実際の対象回路は無限ループが発生しないように利用される。
【０１４９】
そこで、本実施の形態では、セレクタの複数ある入力端子のうち、実際に利用される際のルートにおいてセレクタによって選択される入力端子を予め論理シミュレーションによって特定する。そして、本実施の形態では、経路を探索する際に、セレクタが特定した入力端子以外の入力端子から経路情報を受信しても、当該入力端子の識別情報を経路情報に追加しないことにより、ループしてしまう経路を除外することができる。
【０１５０】
図２８は、動的ルート変更回路例を示す説明図である。動的ルート変更回路２８００内のセレクタＳＥＬ１とセレクタＳＥＬ２とのそれぞれは、ＦＦからの出力信号と、ＦＦへの入力信号と、のうち、いずれかの信号をＦＦスルー制御信号Ｓに応じて選択して出力する。セレクタＳＥＬ１と、セレクタＳＥＬ２と、がいずれもＦＦからの出力信号を無視してしまうと、セレクタＳＥＬ１からＦＦ２またはセレクタＳＥＬ２への入力信号が組み合わせ回路になり、無限ループｌｏｏｐになってしまう。
【０１５１】
そのため、論理変更を制御する回路（図２８中動的論理変更制御回路モジュール群）２８０１は、無限ループｌｏｏｐにならないようにセレクタＳＥＬに与えるＦＦスルー制御信号Ｓによって制御すれば、ＦＦ１と、セレクタＳＥＬ１と、ＦＦ２と、セレクタＳＥＬ２とは、同期回路となる。たとえば、動的論理変更制御回路モジュール群２８０１では、メモリが設けられており、ＦＦスルー制御信号などをメモリに記憶させる。
【０１５２】
たとえば、ＳＴＡでは、すべての論理変更情報に対して、セレクタに与えるＦＦスルー制御信号を固定にする制御情報４００を与えてシミュレーションしたり、ＦＦを無視するルートを切断する制御情報４００を与えてシミュレーションしなければならない。たとえば、この制御情報４００は、対象回路の検証者が対象回路を確認しながら手作業で作成する。また、無限ループｌｏｏｐとなるような動的論理変更回路が対象回路内に大量にあると、誤った制御情報４００を与えたり、検証漏れが発生する可能性がある。１つの制御情報４００による固定値で、１回のシミュレーションの実行となる。
【０１５３】
そこで、本実施の形態では、動的論理変更制御回路モジュール群２８０１とセレクタＳＥＬ１，ＳＥＬ２との論理シミュレーションと、タイミング解析におけるシミュレーションと、を切り替えて行う。これにより、論理変更制御の情報をそのまま経路探索に利用することができ、検証時間の短縮化を図ることができる。
【０１５４】
図２９は、動的ルート変更解析用モデルの一例を示す説明図である。動的論理変更制御回路モジュールの場合、受信スレッドｒｅｃと並列に動作モデルｍｄｌが設けられ、スイッチモデルｓｗｉによって、送信スレッドｔｒａからの出力と動作モデルｍｄｌからの出力とが切り替えられる。
【０１５５】
ＦＦをスルーさせることができるセレクタの場合、受信スレッドｒｅｃと並列にＦＦスルーセレクタ動作モデルｓｍｄｌが設けられる。さらに、ＦＦスルー用のセレクタの場合、ルート情報が保存される領域であって、受信スレッドｒｅｃとＦＦスルーセレクタ動作モデルｓｍｄｌとのいずれもがアクセス可能な共通領域が設けられる。動的ルート変更解析用モデルの各々は、予め作成されて共通モデル部品３１０に記憶されてあることとする。
【０１５６】
（動的ルート変更時の各部が行う処理手順）
動的ルート変更時の各部が行う処理について、フローチャートを用いて詳細に説明する。
【０１５７】
（動的ルート変更時の制御部ｃｔｒｌが行う処理手順）
図３０および図３１は、動的ルート変更時の制御部が行う処理手順例を示すフローチャートである。まず、制御部ｃｔｒｌは、配線遅延ライブラリ３１３を読み込み（ステップＳ３００１）、配線遅延テーブルを作成する（ステップＳ３００２）。制御部ｃｔｒｌは、動的ルート変更制御のうち、未対象の動的ルート変更制御があるか否かを判断する（ステップＳ３００３）。動的ルート変更制御とは、たとえば、コンフィギュレーションデータである。未対象の動的ルート変更制御がある場合（ステップＳ３００３：Ｙｅｓ）、制御部ｃｔｒｌは、未対象の動的ルート変更制御のうち、１つの動的ルート変更制御を対象に決定する（ステップＳ３００４）。制御部ｃｔｒｌは、開始モード＝初期化にし、処理モード＝動作ｓｉｍにし、各モジュールに対してイベントを発生させる（ステップＳ３００５）。
【０１５８】
つぎに、制御部ｃｔｒｌは、１δ時間待って（ステップＳ３００６）、開始モード＝実行にし、処理モード＝動作ｓｉｍにし、各モジュールに対してイベントを発生させ（ステップＳ３００７）、１δ時間待つ（ステップＳ３００８）。
【０１５９】
そして、制御部ｃｔｒｌは、論理シミュレーション用のパターンを発生させ（ステップＳ３１０１）、シミュレーションの終了まで待つ（ステップＳ３１０２）。制御部ｃｔｒｌは、開始モード＝初期化にし、処理モード＝ルート探索にし、各モジュールに対してイベントを発生させ（ステップＳ３１０３）、１δ時間待つ（ステップＳ３１０４）。制御部ｃｔｒｌは、開始モード＝実行にし、処理モード＝ルート探索にし、各モジュールに対してイベントを発生させ（ステップＳ３１０５）、１δ時間待って（ステップＳ３１０６）、ステップＳ３００３へ戻る。
【０１６０】
ステップＳ３００３において、動的ルート変更制御のうち、未対象の動的ルート変更制御がない場合（ステップＳ３００３：Ｎｏ）、制御部ｃｔｒｌは、全ルートの遅延計算を行い（ステップＳ３００９）、遅延解析結果のレポートを出力し（ステップＳ３０１０）、一連の処理を終了する。ステップＳ３００９については、図２６と図２７を用いて詳細に説明した例と同一である。ステップＳ３０１０における出力形式は、ディスク２０５などの記憶装置に記憶させることでもよいし、ディスプレイ２０８に表示させてもよいし、Ｉ／Ｆ２０９に基づきネットワークＮＥＴを介して他の装置に出力してもよい。
【０１６１】
（動作モデルｍｄｌが行う処理手順）
図３２は、動作モデルが行う処理手順例を示すフローチャートである。動作モデルｍｄｌは、初期化を行い（ステップＳ３２０１）、イベントを待って（ステップＳ３２０２）、イベントを受け付けたら、開始モード＝初期化であるか否かを判断する（ステップＳ３２０３）。開始モード＝初期化である場合（ステップＳ３２０３：Ｙｅｓ）、動作モデルｍｄｌは、初期化を行い（ステップＳ３２０４）、ステップＳ３２０２へ戻る。
【０１６２】
開始モード＝初期化でない場合（ステップＳ３２０３：Ｎｏ）、動作モデルｍｄｌは、処理モード＝動作ｓｉｍであるか否かを判断する（ステップＳ３２０５）。処理モード＝動作ｓｉｍでない場合（ステップＳ３２０５：Ｎｏ）、ステップＳ３２０２へ移行する。処理モード＝動作ｓｉｍである場合（ステップＳ３２０５：Ｙｅｓ）、動作モデルｍｄｌは、信号値変化を検出したか否かを判断する（ステップＳ３２０６）。
【０１６３】
信号値変化が検出された場合（ステップＳ３２０６：Ｙｅｓ）、動作モデルｍｄｌは、自動作モデルｍｄｌに規定された回路の動作のシミュレーションを実行し（ステップＳ３２０７）、ステップＳ３２０２へ戻る。信号値変化が検出されなかった場合（ステップＳ３２０６：Ｎｏ）、ステップＳ３２０２へ戻る。
【０１６４】
（ＦＦスルーセレクタ動作モデルｓｍｄｌが行う処理手順）
図３３は、ＦＦスルーセレクタ動作モデルが行う処理手順例を示すフローチャートである。ＦＦスルーセレクタ動作モデルｓｍｄｌは、初期化を行い（ステップＳ３３０１）、各種イベントを待つ（ステップＳ３３０２）。ＦＦスルーセレクタ動作モデルｓｍｄｌは、イベントを受け付けると、開始モード＝実行であるか否かを判断する（ステップＳ３３０３）。
【０１６５】
開始モード＝実行である場合（ステップＳ３３０３：Ｙｅｓ）、ＦＦスルーセレクタ動作モデルｓｍｄｌは、処理モード＝動作ｓｉｍであるか否かを判断する（ステップＳ３３０４）。処理モード＝動作ｓｉｍでない場合（ステップＳ３３０４：Ｎｏ）、ステップＳ３３０２へ戻る。処理モード＝動作ｓｉｍである場合（ステップＳ３３０４：Ｙｅｓ）、ＦＦスルーセレクタ動作モデルｓｍｄｌは、信号値変化を検出したか否かを判断する（ステップＳ３３０５）。
【０１６６】
信号値変化が検出された場合（ステップＳ３３０５：Ｙｅｓ）、ＦＦスルーセレクタ動作モデルｓｍｄｌは、選択ルートの決定処理を行い（ステップＳ３３０６）、選択ルートを共通領域３３００にスタックし（ステップＳ３３０７）、ステップＳ３３０２へ戻る。信号値変化が検出されなかった場合（ステップＳ３３０５：Ｎｏ）、ステップＳ３３０２へ戻る。
【０１６７】
ステップＳ３３０３において、開始モード＝実行でない場合（ステップＳ３３０３：Ｎｏ）、ＦＦスルーセレクタ動作モデルｓｍｄｌは、処理モード＝動作ｓｉｍであるか否かを判断する（ステップＳ３３０８）。処理モード＝動作ｓｉｍである場合（ステップＳ３３０８：Ｙｅｓ）、ＦＦスルーセレクタ動作モデルｓｍｄｌは、共通領域３３００を削除し（ステップＳ３３０９）、ステップＳ３３０２へ戻る。処理モード＝動作ｓｉｍでない場合（ステップＳ３３０８：Ｎｏ）、ステップＳ３３０２へ戻る。
【０１６８】
（スイッチモデルｓｗｉが行う処理手順）
図３４は、スイッチモデルが行う処理手順例を示すフローチャートである。スイッチモデルｓｗｉは、初期化を行い（ステップＳ３４０１）、各種イベントを待って（ステップＳ３４０２）、イベントを受け付けると、開始モード＝実行であるか否かを判断する（ステップＳ３４０３）。
【０１６９】
開始モード＝実行でない場合（ステップＳ３４０３：Ｎｏ）、スイッチモデルｓｗｉは、初期化を行い（ステップＳ３４０４）、ステップＳ３４０２へ戻る。開始モード＝実行である場合（ステップＳ３４０３：Ｙｅｓ）、スイッチモデルｓｗｉは、処理モード＝動作ｓｉｍであるか否かを判断する（ステップＳ３４０５）。
【０１７０】
処理モード＝動作ｓｉｍである場合（ステップＳ３４０５：Ｙｅｓ）、スイッチモデルｓｗｉは、動作モデルｍｄｌからの入力値を出力端子へ設定し（ステップＳ３４０６）、ステップＳ３４０２へ戻る。処理モード＝動作ｓｉｍでない場合（ステップＳ３４０５：Ｎｏ）、スイッチモデルｓｗｉは、送信スレッドｔｒａからの入力値を出力端子へ設定し（ステップＳ３４０７）、ステップＳ３４０２へ戻る。
【０１７１】
（動的ルート変更時の受信スレッドｒｅｃが行う処理手順）
図３５および図３６は、動的ルート変更時の受信スレッドが行う処理手順例を示すフローチャートである。図３５に示すステップＳ３５０１〜ステップＳ３５１４については、図２２に示すステップＳ２２０１〜ステップＳ２２１４と同一処理であるため、詳細な説明を省略する。
【０１７２】
ステップＳ３５１１のＮｏの場合のつぎに、受信スレッドｒｅｃは、共通領域３３００からモジュール名とポインタを受信した入力端子の入力端子名と、によって出力端子を検索する（ステップＳ３６０１）。受信スレッドｒｅｃは、モジュール名と入力端子名が共通領域３３００内にあるか否かを判断する（ステップＳ３６０２）。モジュール名および入力端子名が共通領域３３００内にない場合（ステップＳ３６０２：Ｎｏ）、ステップＳ３５０４へ戻る。モジュール名と入力端子名が共通領域３３００内にある場合（ステップＳ３６０２：Ｙｅｓ）、受信スレッドｒｅｃは、決定した出力端子のうち、未選択の出力端子があるか否かを判断する（ステップＳ３６０３）。未選択の出力端子がない場合（ステップＳ３６０３：Ｎｏ）、ステップＳ３５０４へ戻る。
【０１７３】
未選択の出力端子がある場合（ステップＳ３６０３：Ｙｅｓ）、受信スレッドｒｅｃは、未選択の出力端子から１つの出力端子を選択する（ステップＳ３６０４）。受信スレッドｒｅｃは、選択した入力端子が受信したポインタから特定したルートテーブル１２００を複製し（ステップＳ３６０５）、複製したルートテーブル１２００に対して、種別を内部にして、ポインタを受信した入力端子の識別情報を追加する（ステップＳ３６０６）。
【０１７４】
つぎに、受信スレッドｒｅｃは、選択した出力端子はＦＦであるか否かを判断する（ステップＳ３６０７）。ＦＦである場合（ステップＳ３６０７：Ｙｅｓ）、受信スレッドｒｅｃは、ルートテーブル１２００にＦＦキーワードを追加し（ステップＳ３６０８）、ルートテーブル１２００が示すルートと同一ルートを示すルートテーブル１２００がすでにルート確定テーブル１４００にあるか否かを判断する（ステップＳ３６０９）。同一ルートがある場合（ステップＳ３６０９：Ｙｅｓ）、ステップＳ３６０３へ戻る。同一ルートがない場合（ステップＳ３６０９：Ｎｏ）、受信スレッドｒｅｃは、ルートテーブル１２００を示すポインタをルート確定テーブル１４００に保存し（ステップＳ３６１０）、ステップＳ３６０３へ戻る。
【０１７５】
ＦＦでない場合（ステップＳ３６０７：Ｎｏ）、受信スレッドｒｅｃは、種別を外部にして、ルートテーブル１２００に出力端子の識別情報を追加し（ステップＳ３６１１）、ＦＩＦＯにルートテーブル１２００のポインタを出力し（ステップＳ３６１２）、ステップＳ３６０３へ戻る。これにより、ＦＩＦＯは、同一モジュール内の受信スレッドｒｅｃから送信スレッドｔｒａへのデータを受け渡すためのＦＩＦＯである。
【０１７６】
また、送信スレッドｔｒａが行う処理手順については、図２４と図２５に示した処理手順と同一であるため、詳細な説明を省略する。
【０１７７】
以上説明したように、コンピュータは、ＦＦを有するモジュールが入力元の端子の識別情報を含む経路情報を受信する動作をシミュレーションし、シミュレーションにおいて受信された経路情報に当該モジュールの入力端子の識別情報を追加して出力する。これにより、入力元からＦＦまでのパスを特定可能な経路情報を得るまでの時間の短縮を図ることができる。
【０１７８】
また、コンピュータは、ＦＦを有するモジュールが、自モジュールの出力端子の識別情報を含む経路情報を出力先に送信する動作をシミュレーションする。さらに、コンピュータは、ＦＦを有するモジュールが、他のＦＦを有するモジュールが送信した経路情報を受信する動作をシミュレーションする。これにより、ＦＦ間のパスを特定可能な経路情報を得ることができる。
【０１７９】
また、コンピュータは、ＦＦを有さないモジュールが、入力元の端子の識別情報を含む経路情報を受信する動作をシミュレーションする。そして、コンピュータが、シミュレーションにおいて受信された経路情報に対して、当該経路情報を受信した入力端子の識別情報と、当該入力端子と接続関係のある自モジュール内の出力端子の識別情報と、が追加された経路情報を出力先に送信する。これにより、経由したモジュールが自端子の識別情報を追加しながら経路情報を伝搬させることができる。したがって、ＦＦ間にＦＦを有さないモジュールがあるパスを特定可能な経路情報を得ることができる。
【０１８０】
また、コンピュータは、経路情報を受信したＦＦを有さないモジュールが当該モジュールの入力端子のうち経路情報を受信した入力端子の識別情報と当該入力端子と接続関係のある当該モジュール内の出力端子の識別情報とを追加する動作をシミュレーションする。これにより、各モジュールに同様の動作を規定するだけで、伝搬中の経路情報に入力端子の識別情報と出力端子の識別情報とを追加させることができる。
【０１８１】
また、コンピュータは、経路情報を受信したＦＦを有するモジュールが当該モジュールの入力端子のうち経路情報を受信した入力端子の識別情報を追加する動作をシミュレーションする。これにより、ネットリスト内の各モジュールに同様の動作が規定されていれば、伝搬中の経路情報に入力端子の識別情報を追加させることができる。
【０１８２】
また、コンピュータは、経路情報に代わって経路情報を示す識別情報を各モジュールが送受信する動作をシミュレーションする。これにより、各信号を伝搬する情報量を削減することができる。
【０１８３】
また、コンピュータは、経路情報を示す識別情報を受信したＦＦを有するモジュールが、識別情報が示す経路情報を複製し、複製した経路情報に当該モジュールの入力端子のうち識別情報を受信した入力端子の識別情報を追加する動作をシミュレーションする。これにより、シミュレーション中に、各モジュールが送受信するポインタはすべて異なるため、信号変化の検出によるイベントドリブンのシミュレーションでは、モジュールがポインタを送受信する都度、イベントが発生することとなる。そのため、漏れなく経由するモジュールの端子の識別情報が経路情報に追加される。したがって、経路情報が示す経路の精度を向上させることができる。
【０１８４】
また、各モジュールが送受信する動作のシミュレーションにおいて、各モジュールが経路情報に代わって経路情報を示す識別情報を送受信する場合、回路情報内の各信号のビット幅は当該識別情報を送受信可能なビット幅に統一される。これにより、対象回路を示す回路情報のデータサイズを縮小することができる。
【０１８５】
また、コンピュータが、経路情報内に同一の端子情報があるか否かを判断することにより、経路情報が示す経路が１つの端子を２回経由するようなループする経路を特定することができる。
【０１８６】
また、ダイナミックリコンフィギュラブル回路のように、動的に回路の接続関係が変化する場合、たとえば、パスが動的に変化してしまう。パスを変化させるのは、選択回路が制御信号に応じて入力信号を選択して出力するためである。制御信号の値によっては、選択回路によりループしてしまう経路ができる可能性があるが、実際の対象回路はループしないように利用される。そこで、コンピュータは、複数ある選択回路の複数ある入力端子のうち、実際に利用される際のルートにおいて選択される入力端子を予め論理シミュレーションによって特定する。そして、コンピュータは、経路情報を受信するシミュレーションにおいて選択回路内の特定した入力端子以外の入力端子から経路情報を受信しても、その後の当該入力端子の識別情報を経路情報に追加するなどの処理を行わない。これにより、ループしてしまう経路を除外することができる。
【０１８７】
また、従来ＳＴＡが普及する前までは、実遅延回路シミュレータによってタイミング解析が行われていたが、実遅延回路シミュレーションでは、対象回路のすべてを動作させるための入力パターンが用意されなければならない。さらに、近年の大規模な半導体集積回路において実遅延回路シミュレーションを実施すると、シミュレーションに年単位の時間がかかる可能性がある。そのため、実遅延回路シミュレーションによるタイミング解析を実施することは困難である。
【０１８８】
ＳＴＡでは、実遅延回路シミュレータよりも解析にかかる時間を短縮することができるが、経路が動的に変化する対象回路であると、接続関係を網羅して検索するために時間がかかり、パスを特定可能な経路情報を短時間で得ることができない可能性がある。具体的には、ＳＴＡでは、ネットリストを静的に解析し、すべてに繋がるネットを検索するが、セレクタ値によって経路が決定される回路があると、外部パラメータとしてセレクタ値を与えたり、ネットを切断する等の諸条件を与えなければならない。動的に変更される場合、その条件すべてのケースにおいての指示を行わなければならず、大規模な半導体集積回路の場合、１回のＳＴＡによるタイミング解析処理に数十時間かかる可能性がある。たとえば、条件によってＮケースとなる場合、処理時間はＮ倍になる。また、指定された条件に間違いがある場合、上述した無限ループが発生するなどによって誤ったルートが探索されることとなる。一方、本実施の形態では、外部から利用者が条件を指定しなくてもよく、利用者による作業が容易になる。
【０１８９】
また、コンピュータは、第１モジュールまたは第２モジュールが外部入力端子の識別情報を含む経路情報を受信する動作をシミュレーションしてもよい。これにより、外部入力端子からＦＦまでのパスを特定可能な経路情報を得るまでの時間の短縮を図ることができる。
【０１９０】
また、コンピュータは、外部出力端子が第１モジュールまたは第２モジュールから、当該第１モジュールの出力端子または第２モジュールの出力端子を含む経路情報を受信する動作をシミュレーションする。そして、コンピュータは、受信するシミュレーションにおいて受信された経路情報に対して外部出力端子の識別情報を追加して出力する。これにより、ＦＦから外部出力端子までのパスを特定可能な経路情報を得るまでの時間の短縮を図ることができる。
【０１９１】
なお、本実施の形態で説明した検証支援方法は、予め用意された検証支援プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本検証支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本検証支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１９２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１９３】
（付記１）検証の対象回路内のモジュールと前記モジュール間の接続関係とを示す回路情報に基づいてイベントドリブンのシミュレーションを実行可能なコンピュータに、
前記対象回路内のモジュールのうちフリップフロップを有するモジュールの各々が、前記モジュールの入力端子の入力元を示す識別情報を含む経路情報を前記モジュールの入力端子の入力元から受信する動作をシミュレーションし、
前記モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて前記経路情報を受信した前記モジュールの各々について、受信された前記経路情報に対して前記経路情報を受信した前記モジュールの入力端子を示す識別情報が追加された経路情報を出力する、
処理を実行させることを特徴とする検証支援プログラム。
【０１９４】
（付記２）前記コンピュータに、
前記対象回路内のモジュールのうちフリップフロップを有するモジュールの各々が、前記モジュールの出力端子を示す識別情報を含む経路情報を前記モジュールの前記出力端子の出力先へ送信する動作をシミュレーションする処理を実行させ、
前記モジュールの入力端子の入力元から受信する動作のシミュレーションでは、前記フリップフロップを有するモジュールの各々が、前記出力端子の出力先へ送信する動作のシミュレーションにおいて前記対象回路内のモジュールのうちフリップフロップを有する他のモジュールから送信された経路情報を受信することを特徴とする付記１に記載の検証支援プログラム。
【０１９５】
（付記３）前記コンピュータに、
前記対象回路内のモジュールのうちのフリップフロップを有さない第２モジュールの各々が、前記第２モジュールの入力端子の入力元を示す識別情報を含む経路情報を前記第２モジュールの入力端子の入力元から受信する動作をシミュレーションし、
前記第２モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて前記経路情報を受信した前記第２モジュールの各々について、受信された前記経路情報に対して、前記第２モジュールの入力端子のうちの前記経路情報を受信した入力端子を示す識別情報と、前記第２モジュールの出力端子のうちの前記経路情報を受信した入力端子と接続関係のある出力端子を示す識別情報と、を追加し、
前記第２モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて前記経路情報を受信した前記第２モジュールの各々が、前記入力端子を示す識別情報と前記出力端子を示す識別情報とが追加された経路情報を前記第２モジュールの出力端子の出力先へ送信する動作をシミュレーションする、
処理を実行させ、
前記対象回路内のモジュールのうちのフリップフロップを有するモジュール（以下、「第１モジュール」と称する。）の入力端子の入力元から受信する動作のシミュレーションでは、前記第１モジュールの各々が、前記対象回路内のモジュールのうちの他の第１モジュールが前記出力端子の出力先へ送信する動作のシミュレーションにおいて送信された経路情報と、前記第２モジュールが前記出力端子の出力先へ送信する動作のシミュレーションにおいて送信された経路情報と、のうちの少なくともいずれかを受信し、
前記第２モジュールの入力端子の入力元から受信する動作のシミュレーションでは、前記第１モジュールが前記出力端子の出力先へ送信する動作のシミュレーションにおいて送信された経路情報と、前記対象回路内のモジュールのうちの他の第２モジュールが前記出力端子の出力先へ送信する動作のシミュレーションにおいて送信された経路情報と、のうちの少なくともいずれかを受信することを特徴とする付記２に記載の検証支援プログラム。
【０１９６】
（付記４）前記入力端子を示す識別情報と前記出力端子を示す識別情報とを追加する処理では、前記第２モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて前記経路情報を受信した前記第２モジュールの各々が、受信された前記経路情報に対して、前記第２モジュールの入力端子のうちの前記経路情報を受信した入力端子を示す識別情報と、前記第２モジュールの出力端子のうちの前記経路情報を受信した入力端子と接続関係のある出力端子を示す識別情報と、を追加する動作をシミュレーションすることを特徴とする付記３に記載の検証支援プログラム。
【０１９７】
（付記５）前記追加された経路情報を出力する処理では、前記フリップフロップを有するモジュールの入力端子の入力元から受信する動作のシミュレーションにおいて受信された経路情報に対して、前記経路情報を受信した前記モジュールの入力端子を示す識別情報を追加する動作をシミュレーションし、追加する動作のシミュレーションにおいて追加された経路情報を出力することを特徴とする付記１〜４のいずれか一つに記載の検証支援プログラム。
【０１９８】
（付記６）前記第１モジュールの入力端子の入力元から受信する動作をシミュレーションする処理では、
前記第１モジュールの入力端子の入力元を示す識別情報を含む経路情報を示す識別情報を前記第１モジュールの入力端子の入力元から受信し、
前記識別情報が追加された経路情報を出力する処理では、前記第１モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて受信された識別情報が示す経路情報に対して前記識別情報を受信した前記第１モジュールの入力端子を示す識別情報が追加された経路情報を示す識別情報を出力し、
前記入力端子の識別情報と前記出力端子を示す識別情報と、を追加する処理では、前記第２モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて受信された識別情報が示す経路情報に対して、前記第２モジュールの入力端子のうちの前記識別情報を受信した入力端子を示す識別情報と、前記第２モジュールの出力端子のうち前記識別情報を受信した前記入力端子と接続関係のある出力端子を示す識別情報と、を追加し、
前記入力端子を示す識別情報と前記出力端子を示す識別情報とが追加された経路情報を送信する動作のシミュレーションでは、前記識別情報を受信した前記第２モジュールの各々が、前記入力端子を示す識別情報と前記出力端子を示す識別情報とが追加された経路情報を示す識別情報を前記第２モジュールの出力端子の出力先へ送信することを特徴とする付記３に記載の検証支援プログラム。
【０１９９】
（付記７）前記第１モジュールが前記経路情報を前記第１モジュールの前記出力端子の出力先へ送信する動作のシミュレーションでは、
前記第１モジュールの各々が、前記第１モジュールの出力端子を示す識別情報を含む経路情報を示す識別情報を前記第１モジュールの前記出力端子の出力先へ送信することを特徴とする付記６に記載の検証支援プログラム。
【０２００】
（付記８）前記識別情報が追加された経路情報を出力する処理では、
前記第１モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて受信された識別情報が示す経路情報を複製する動作と、複製した経路情報に対して前記識別情報を受信した前記第１モジュールの入力端子を示す識別情報が追加する動作と、をシミュレーションし、
追加する動作のシミュレーションにおいて追加された経路情報を示す識別情報を出力することを特徴とする付記６または７に記載の検証支援プログラム。
【０２０１】
（付記９）前記対象回路内の各信号を示す前記回路情報内の各信号のビット幅が、前記経路情報を示す識別情報を表すことが可能なビット幅であることを特徴とする付記６〜８のいずれか一つに記載の検証支援プログラム。
【０２０２】
（付記１０）前記コンピュータに、
前記第１モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて受信された経路情報と、前記第２モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて受信された経路情報と、の各々について、前記経路情報内に同一の端子の識別情報があるか否かを判断し、
前記同一の端子の識別情報があると判断された前記経路情報に対して、前記経路情報が示す経路がループすることを示す情報が追加された経路情報を出力する、
処理を実行させることを特徴とする付記３に記載の検証支援プログラム。
【０２０３】
（付記１１）前記コンピュータに、
複数ある入力端子の各々から入力される複数の入力信号のいずれかの信号を制御信号に基づき選択して出力する前記対象回路内の選択回路と、前記選択回路へ前記制御信号を入力する前記対象回路内の回路と、の動作であって、前記選択回路からの出力信号が前記選択回路に入力されない動作をシミュレーションし、
前記選択回路と前記制御信号を入力する回路との動作のシミュレーション結果に基づいて、前記選択回路の複数の入力端子のうち、前記選択回路の出力端子から出力される信号が入力される入力端子を特定する、
処理を実行させ、
前記入力端子を示す識別情報を追加する処理では、前記対象回路内のモジュールのうちの前記選択回路を有するモジュールが受信する動作のシミュレーションにおいて前記経路情報を受信した入力端子が特定した前記入力端子と一致しない場合、前記入力端子を示す識別情報を前記経路情報に追加しないことを特徴とする付記３に記載の検証支援プログラム。
【０２０４】
（付記１２）前記フリップフロップを有するモジュールの入力端子の入力元から受信する動作のシミュレーションでは、前記対象回路内のモジュールのうちのいずれかの第１モジュールが、前記対象回路の外部入力端子から前記経路情報を受信することを特徴とする付記１〜１１のいずれか一つに記載の検証支援プログラム。
【０２０５】
（付記１３）前記フリップフロップを有さない第２モジュールの入力端子の入力元から受信する動作のシミュレーションでは、前記対象回路内のモジュールのうちのいずれかの第２モジュールが、前記対象回路の外部入力端子から前記経路情報を受信することを特徴とする付記３または４に記載の検証支援プログラム。
【０２０６】
（付記１４）前記コンピュータに、
前記対象回路の外部出力端子が前記対象回路内のモジュールから前記モジュールの出力端子の識別情報を含む経路情報を受信する動作をシミュレーションし、
前記外部出力端子が受信する動作のシミュレーションにおいて受信された経路情報に対して、前記外部出力端子の識別情報が追加された経路情報を出力する、
処理を実行させることを特徴とする付記２〜１３のいずれか一つに記載の検証支援プログラム。
【０２０７】
（付記１５）前記コンピュータに、
前記対象回路内の各配線の遅延量を記憶する記憶装置から、出力した前記経路情報が示す経路上にある各信号線に対応する配線の遅延量を検索し、
前記配線の遅延量を合計することにより、前記経路情報が示す経路上の遅延量を算出する、
処理を実行させることを特徴とする付記１〜１４のいずれか一つに記載の検証支援プログラム。
【０２０８】
（付記１６）対象回路内のモジュールと前記モジュール間の接続関係とを示す回路情報に基づいてイベントドリブンのシミュレーションを実行可能なコンピュータが、
前記対象回路内のモジュールのうちフリップフロップを有するモジュールの各々が、前記モジュールの入力端子の入力元を示す識別情報を含む経路情報を前記モジュールの入力端子の入力元から受信する動作をシミュレーションし、
前記モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて前記経路情報を受信した前記モジュールの各々について、受信された前記経路情報に対して前記経路情報を受信した前記モジュールの入力端子を示す識別情報が追加された経路情報を出力する、
処理を実行することを特徴とする検証支援方法。
【０２０９】
（付記１７）対象回路内のモジュールと前記モジュール間の接続関係とを示す回路情報に基づいてイベントドリブンのシミュレーションを実行可能なコンピュータに、
前記対象回路内のモジュールのうちフリップフロップを有するモジュールの各々が、前記モジュールの入力端子の入力元を示す識別情報を含む経路情報を前記モジュールの入力端子の入力元から受信する動作をシミュレーションし、
前記モジュールの入力端子の入力元から受信する動作のシミュレーションにおいて前記経路情報を受信した前記モジュールの各々について、受信された前記経路情報に対して前記経路情報を受信した前記モジュールの入力端子を示す識別情報が追加された経路情報を出力する、
処理を実行させる検証支援プログラムを記憶することを特徴とする前記コンピュータが読み取り可能な記録媒体。
【符号の説明】
【０２１０】
１００  検証支援装置
６００  モジュール内部遅延テーブル
１２００  ルートテーブル
１３００  リンクテーブル
１４００  ルート確定テーブル
３３００  共通領域
Ｂ，Ｄ  第１モジュール
Ａ，Ｃ  第２モジュール
ｌｉｓｔ０，ｌｉｓｔ１  ネットリスト
【図１】
2014132424.tif 000003
【図２】
2014132424.tif 000004
【図３】
2014132424.tif 000005
【図４】
2014132424.tif 000006
【図５】
2014132424.tif 000007
【図６】
2014132424.tif 000008
【図７】
2014132424.tif 000009
【図８】
2014132424.tif 000010
【図９】
2014132424.tif 000011
【図１０】
2014132424.tif 000012
【図１１】
2014132424.tif 000013
【図１２】
2014132424.tif 000014
【図１３】
2014132424.tif 000015
【図１４】
2014132424.tif 000016
【図１５】
2014132424.tif 000017
【図１６】
2014132424.tif 000018
【図１７】
2014132424.tif 000019
【図１８】
2014132424.tif 000020
【図１９】
2014132424.tif 000021
【図２０】
2014132424.tif 000022
【図２１】
2014132424.tif 000023
【図２２】
2014132424.tif 000024
【図２３】
2014132424.tif 000025
【図２４】
2014132424.tif 000026
【図２５】
2014132424.tif 000027
【図２６】
2014132424.tif 000028
【図２７】
2014132424.tif 000029
【図２８】
2014132424.tif 000030
【図２９】
2014132424.tif 000031
【図３０】
2014132424.tif 000032
【図３１】
2014132424.tif 000033
【図３２】
2014132424.tif 000034
【図３３】
2014132424.tif 000035
【図３４】
2014132424.tif 000036
【図３５】
2014132424.tif 000037
【図３６】
2014132424.tif 000038