(57)【特許請求の範囲】
【請求項１】
半導体集積回路全体についての回路データである第１の回路データを格納する記憶装置と、
前記記憶装置に格納されている前記第１の回路データにおいて、タイミング検証対象として指定された回路素子である指定回路素子と当該指定回路素子以外の回路素子とを含む回路におけるタイミング検証を行う際にトレースすべきパスに含まれ且つ前記指定回路素子を含む複数の回路素子を特定する探索部と、
前記探索部によって特定された前記複数の回路素子以外の回路データを削除することによって、前記タイミング検証用の第２の回路データを生成し、前記記憶装置に格納する生成部と、
を有し、
前記探索部が、
前記指定回路素子に含まれる順序回路からデータパスを順方向又は逆方向に他の順序回路にたどり着くまでトレースすることによって回路素子を特定するデータパス探索部と、
前記データパス探索部によって特定された回路素子に含まれる順序回路のクロックパスを逆方向にクロック源にたどり着くまでトレースすることによって回路素子を特定するクロックパス探索部と、
を含むタイミング検証支援装置。
【請求項２】
前記探索部は、前記半導体集積回路を機能単位で分割した複数の機能ブロックの境界とは無関係に複数の前記指定回路素子を特定し、特定した複数の前記指定回路素子の各々のタイミング検証を行う際にトレースすべきパスに含まれる複数の回路素子を特定する
請求項１記載のタイミング検証支援装置。
【請求項３】
前記記憶装置から読み出された前記第１の回路データにおいて、前記第２の回路データに含めるべき回路素子端子を示すための第１のフラグと、当該第２の回路データに含めるべき回路素子端子に係る回路素子が順序回路であるか否かを示すための第２のフラグとを設けておき、
前記データパス探索部は、
前記指定回路素子に含まれる順序回路から他の順序回路にたどり着くまでのデータパス上の回路素子端子に係る第１のフラグをオンにセットし、当該第１のフラグをオンにセットした回路素子端子に係る回路素子が順序回路であれば第２のフラグをオンにセットし、
前記クロックパス探索部は、
前記第２のフラグがオンにセットされた順序回路のクロックパス上の回路素子端子に係る第１のフラグをオンにセットし、
前記生成部は、
前記記憶装置から読み出された前記第１の回路データから、前記第１のフラグがオフの回路素子端子についてのデータ及び全ての回路素子端子についてのデータが削除された回路素子についてのデータを削除することで前記第２の回路データを生成する
請求項１又は２記載のタイミング検証支援装置。
【請求項４】
半導体集積回路全体についての回路データである第１の回路データを格納する記憶装置と、
前記記憶装置に格納されている前記第１の回路データに含まれ且つ前記半導体集積回路を機能単位で分割した複数の機能ブロックの境界をまたいで繋がれる順序回路間の回路素子群と当該回路素子群にクロックを供給するパスに含まれる回路素子群とを特定する探索部と、
前記探索部によって特定された回路素子群以外の回路データを削除することによって、前記複数の機能ブロックの境界についてのタイミング検証用の第２の回路データを生成し、前記記憶装置に格納する生成部と、
を有し、
前記探索部が、
前記複数の機能ブロックの各々について、当該機能ブロックである第１の機能ブロック以外の第２の機能ブロックに含まれる順序回路からデータパスを順方向又は逆方向に他の順序回路にたどり着くまでトレースして前記第１の機能ブロック内部の回路素子を特定するデータパス探索部と、
前記データパス探索部によって特定された回路素子に含まれる順序回路のクロックパスを逆方向にクロック源にたどり着くまでトレースすることによって回路素子を特定するクロックパス探索部と、
を含むタイミング検証支援装置。
【請求項５】
前記記憶装置から読み出された前記第１の回路データにおいて、前記第２の回路データに含めるべき回路素子端子を示すための第１のフラグと、当該第２の回路データに含めるべき回路素子端子に係る回路素子が順序回路であるか否かを示すための第２のフラグとを設けておき、
前記データパス探索部は、
前記第２の機能ブロックに含まれる順序回路から他の順序回路にたどり着くまでのデータパス上の回路素子端子のうち前記第１の機能ブロックに含まれる回路素子端子に係る第１のフラグをオンにセットし、当該第１のフラグをオンにセットした回路素子端子に係る回路素子が順序回路であれば第２のフラグをオンにセットし、
前記クロックパス探索部は、
前記第２のフラグがオンにセットされた順序回路のクロックパス上の回路素子端子に係る第１のフラグをオンにセットし、
前記生成部は、
前記記憶装置から読み出された前記第１の回路データから、前記第１のフラグがオフの回路素子端子についてのデータ及び全ての回路素子端子についてのデータが削除された回路素子についてのデータを削除することで前記第２の回路データを生成する
請求項４記載のタイミング検証支援装置。
【請求項６】
半導体集積回路全体についての回路データである第１の回路データを格納する記憶装置に格納されている前記第１の回路データにおいて、タイミング検証対象として指定された回路素子である指定回路素子と当該指定回路素子以外の回路素子とを含む回路におけるタイミング検証を行う際にトレースすべきパスに含まれ且つ前記指定回路素子を含む複数の回路素子を特定する特定ステップと、
前記特定ステップにおいて特定された前記複数の回路素子以外の回路データを削除することによって、前記タイミング検証用の第２の回路データを生成し、前記記憶装置に格納するステップと、
を、コンピュータに実行させ、
前記特定ステップが、
前記指定回路素子に含まれる順序回路からデータパスを順方向又は逆方向に他の順序回路にたどり着くまでトレースすることによって回路素子を特定する探索ステップと、
前記探索ステップにおいて特定された回路素子に含まれる順序回路のクロックパスを逆方向にクロック源にたどり着くまでトレースすることによって回路素子を特定するステップと
を含むタイミング検証支援プログラム。
【請求項７】
前記特定ステップにおいて、前記半導体集積回路を機能単位で分割した複数の機能ブロックの境界とは無関係に複数の前記指定回路素子を特定し、特定した複数の前記指定回路素子の各々のタイミング検証を行う際にトレースすべきパスに含まれる複数の回路素子を特定する
請求項６記載のタイミング検証支援プログラム。
【請求項８】
半導体集積回路全体についての回路データである第１の回路データを格納する記憶装置に格納されている前記第１の回路データに含まれ且つ前記半導体集積回路を機能単位で分割した複数の機能ブロックの境界をまたいで繋がれる順序回路間の回路素子群と当該回路素子群にクロックを供給するパスに含まれる回路素子群とを特定する特定ステップと、
前記特定ステップにおいて特定された回路素子群以外の回路データを削除することによって、前記複数の機能ブロックの境界についてのタイミング検証用の第２の回路データを生成し、前記記憶装置に格納するステップと、
を、コンピュータに実行させ、
前記特定ステップが、
前記複数の機能ブロックの各々について、当該機能ブロックである第１の機能ブロック以外の第２の機能ブロックに含まれる順序回路からデータパスを順方向又は逆方向に他の順序回路にたどり着くまでトレースして前記第１の機能ブロック内部の回路素子を特定する探索ステップと、
前記探索ステップにおいて特定された回路素子に含まれる順序回路のクロックパスを逆方向にクロック源にたどり着くまでトレースすることによって回路素子を特定するステップと
を含むタイミング検証支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、半導体集積回路のタイミング検証を支援するための技術に関する。
【背景技術】
【０００２】
半導体集積回路の設計段階においては、当該半導体集積回路においてデータ転送が正常に実施可能か否かを判定するタイミング検証が行われている。このタイミング検証では、データ転送を行う２つの順序回路（例えば、フリップフロップ（Flip Flop。以下、ＦＦと記す。））間で、半導体集積回路の動作時における実際の電気特性を考慮したデータパスディレイとクロックパスディレイを計算し、要求されるクロック周期内でデータ転送が可能か否か（セットアップ（setup）タイミングチェック）や、データ転送が早すぎないかどうか（ホールド（hold）タイミングチェック）などを調べる。
【０００３】
典型的には、大規模な半導体集積回路（以下、チップと略する。）の設計においては、チップ全体を機能の単位である機能ブロックに分割し、機能ブロック単位で設計を並列に行っている。回路規模の大きな機能ブロックは、さらに機能単位で複数の下位階層の機能ブロックに分割して並列設計が行なわれる。このように集積回路を複数の論理階層にわたって機能ブロックに分割して並列設計を行なう階層設計を行なうことにより、設計期間の短縮を図っている。なお、機能ブロック内部のタイミング検証についても、機能ブロックの設計者が行う。
【０００４】
しかしながら、機能ブロック間のタイミング検証（以下、機能ブロック境界のタイミング検証とも呼ぶ）はチップレベルで行うことになる。機能ブロックの設計者が機能ブロック境界のタイミング検証を行うには、典型的には、チップレベルの回路データベースをメモリにロードして処理することになる。
【０００５】
チップレベルの回路データベース全体をメモリにロードすることになるので、メモリ容量が大きなコンピュータでなければ対応できず、ロードにかかる時間も長くなる。また、検証対象の機能ブロック以外のデータをも処理しなければならず、処理時間自体も長くなってしまう。さらに、チップレベルの検証結果は膨大であり、その中から検証対象の機能ブロックについての検証結果を抽出するのにも時間が掛ってしまう。
【０００６】
なお、マクロが含まれた半導体集積回路の動作タイミングを検証する技術が存在している。この技術では、機能ブロック境界のタイミング検証で境界遅延算出ツールを使用して、外部端子に対して与えられる物理量と境界遅延時間との間の依存性を示す特殊な境界遅延テーブルを生成する。
【０００７】
また、大規模マクロを含むカスタム論理ＩＣ（Integrated Circuit）の論理及びタイミングチェックを行うタイミングチェック技術も存在している。この技術では、大規模マクロのタイミング仕様を記述するデータシートタイミング定義ファイルと、内部論理を定義するゲートレベルネットリストファイルと、全体のシミュレーション時に大規模マクロ境界で状態値を取り出すプローブ処理と、状態値をプローブしたシミュレーション結果をインタフェースするためのプローブインタフェースファイルとを備える。そして、データシートタイミング定義ファイルの制約条件を満足するか否かをチェックし、規約違反と未検出タイミングエラー項目一覧を出力するチェックツールによって大規模マクロ境界とユーザロジック間でのタイミングチェックを行うものである。しかしながら、メモリ容量を少なくするというような観点はない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００１−２７３３３８号公報
【特許文献２】特開平６−１７４７８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従って、本技術の目的は、一側面において、半導体集積回路における回路境界についてのタイミング検証処理を、少ないメモリ容量で可能にするための技術を提供することである。
【課題を解決するための手段】
【００１０】
第１の態様に係るタイミング検証支援装置は、（Ａ）半導体集積回路全体についての回路データである第１の回路データを格納する記憶装置と、（Ｂ）記憶装置に格納されている第１の回路データにおいて、タイミング検証対象として指定された回路素子である指定回路素子と当該指定回路素子以外の部分との境界におけるタイミング検証を行う際にトレースすべきパスに含まれ且つ指定回路素子を含む複数の回路素子を特定する探索部と、（Ｃ）探索部によって特定された複数の回路素子についての回路データを含む、上記タイミング検証用の第２の回路データを生成し、記憶装置に格納する生成部とを有する。
【００１１】
第２の態様に係るタイミング検証支援装置は、（Ａ）半導体集積回路全体についての回路データである第１の回路データを格納する記憶装置と、（Ｂ）記憶装置に格納されている第１の回路データに含まれ且つ半導体集積回路を機能単位で分割した複数の機能ブロックの境界をまたいで繋がれる順序回路間の回路素子群と当該回路素子群にクロックを供給するパスに含まれる回路素子群とを特定する探索部と、（Ｃ）探索部によって特定された回路素子群についての回路データを含む、複数の機能ブロックの境界についてのタイミング検証用の第２の回路データを生成し、記憶装置に格納する生成部とを有する。
【発明の効果】
【００１２】
半導体集積回路における回路境界についてのタイミング検証処理が、少ないメモリ容量で可能になる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施の形態のシステム概要図である。
【図２】図２は、タイミング検証支援装置の機能ブロック図である。
【図３】図３は、タイミング検証装置の機能ブロック図である。
【図４】図４は、第１の実施の形態に係る処理の処理フローを示す図である。
【図５】図５は、チップの第１の例を示す図である。
【図６】図６は、チップの第２の例を示す図である。
【図７Ａ】図７Ａは、本実施の形態において用いられるデータ構造を示す図である。
【図７Ｂ】図７Ｂは、本実施の形態において用いられるデータ構造を示す図である。
【図８】図８は、回路素子についてのマーク付与処理の処理フローを示す図である。
【図９】図９は、回路素子についてのマーク付与処理の処理フローを示す図である。
【図１０】図１０は、バックワードトレースを説明するための図である。
【図１１】図１１は、バックワードトレースのデータ構造の一例を示す図である。
【図１２】図１２は、フォーワードトレースを説明するための図である。
【図１３】図１３は、フォーワードトレースのデータ構造の一例を示す図である。
【図１４】図１４は、回路素子についてのマーク付与処理の処理フローを示す図である。
【図１５】図１５は、クロックパスについてのマーク付与処理の処理フローを示す図である。
【図１６】図１６は、クロックパスのトレースについて説明するための図である。
【図１７】図１７は、クロックパスのトレースで生成されるデータ構造の一例を示す図である。
【図１８】図１８は、クロックパスのトレースで生成されるデータ構造の一例を示す図である。
【図１９】図１９は、クロックパスについてのマーク付与処理の処理フローを示す図である。
【図２０】図２０は、回路素子削除処理の処理フローを示す図である。
【図２１】図２１は、回路素子削除処理の処理フローを示す図である。
【図２２】図２２は、第２回路ＤＢを模式的に示す図である。
【図２３】図２３は、第２回路ＤＢを模式的に示す図である。
【図２４】図２４は、タイミング検証装置において実行される処理の処理フローを示す図である。
【図２５】図２５は、第２の実施の形態における処理の処理フローを示す図である。
【図２６Ａ】図２６Ａは、回路素子についての第２マーク付与処理の処理フローを示す図である。
【図２６Ｂ】図２６Ｂは、回路素子についての第２マーク付与処理の処理フローを示す図である。
【図２７】図２７は、回路素子についての第２マーク付与処理の処理フローを示す図である。
【図２８】図２８は、回路素子についての第２マーク付与処理の処理結果例を模式的に示す図である。
【図２９】図２９は、第２の実施の形態における処理結果例を示す図である。
【図３０】図３０は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１４】
［実施の形態１］
図１に本実施の形態に係るシステム概要を示す。図１に示すように、本システムにおいて、ネットワーク１には、タイミング検証支援装置３と、複数のタイミング検証装置５（図１ではタイミング検証装置５Ａ乃至５Ｄ）とが接続されている。本実施の形態では、例えば機能ブロックの設計者が、タイミング検証装置５を用いて、自身が設計を行っている機能ブロックの境界におけるタイミング検証を実施する。タイミング検証装置５によって行われるタイミング検証は、タイミング検証支援装置３によって生成されたデータを用いて行われる。タイミング検証支援装置３は、タイミング検証装置５よりも大容量のメモリを搭載しており、処理能力もタイミング検証装置５より高いものとする。
【００１５】
図１に示すように、タイミング検証支援装置３は、タイミング検証対象の半導体集積回路全体（チップレベルとも呼ぶ）の回路データベースのデータ等を格納する記憶装置３１を有する。なお、回路データベースは、マクロ情報、ディレイ情報、回路素子間の接続情報などを含む設計データである。また、タイミング検証装置５は、タイミング検証対象の機能ブロックの回路データベース及び本実施の形態で生成される、チップレベルの回路データベースを格納する記憶装置５１を有する。
【００１６】
図２に、タイミング検証支援装置３の機能ブロック図を示す。タイミング検証支援装置３は、処理部３３と、記憶装置３１と、メモリ３５とを有する。処理部３３は、タイミング検証支援部３３３を有しており、タイミング検証支援部３３３は、データパス探索部３３３１とクロックパス探索部３３３３とを含む探索部３３３０と、回路ＤＢ生成部３３３５とを有する。タイミング検証支援部３３３は、記憶装置３１に格納されている回路データベースのデータをメモリ３５に読み出して処理を実施し、処理結果の回路データベースのデータを記憶装置３１に格納する。本実施の形態では、記憶装置３１には、チップレベルの回路データベースである第１回路ＤＢ３１１が格納されており、タイミング検証支援部３３３は、第１回路ＤＢ３１１をメモリ３５に読み出して処理を実施して、処理結果である第２回路ＤＢ３１３を記憶装置３１に格納する。以下で説明するように、第１回路ＤＢ３１１よりも第２回路ＤＢ３１３の方がサイズが小さくなっている。
【００１７】
図３に、タイミング検証装置５の機能ブロック図を示す。タイミング検証装置５は、記憶装置５１と、処理部５３と、メモリ５５とを有する。処理部５３は、タイミング検証部５３１と設計処理部５３３とを有している。タイミング検証部５３１は、記憶装置５１に格納されている回路データベースのデータをメモリ５５に読み出して、よく知られているタイミング検証のための処理を実施し、処理結果を設計者に出力する。また、設計処理部５３３は、機能ブロック等の設計変更を行うためのツールなどである。本実施の形態では、記憶装置５１には、タイミング検証支援装置３で生成された第２回路ＤＢ３１３と、設計者が設計している機能ブロック等の回路データベースである第３回路ＤＢ５１１とが格納されている。タイミング検証部５３１は、記憶装置５１に格納されている第２回路ＤＢ３１３及び第３回路ＤＢ５１１をメモリ５５に読み出して、タイミング検証のためのデータを生成して、よく知られているタイミング検証のための処理を実施する。
【００１８】
次に、図４乃至図２３を用いて、タイミング検証支援装置３で行われる処理について説明する。タイミング検証支援装置３のタイミング検証支援部３３３は、機能ブロックの設計者から、処理開始の指示及び処理対象の機能ブロック等の指定を受け付け、処理対象の機能ブロック等を特定するためのデータをメモリ３５に格納する（ステップＳ１）。本実施の形態では、機能ブロック単位で処理対象を指定する他に、任意の領域内の回路を指定するようにしても良い。第１の例として、図５に示すようなチップを想定する。図５の例では、チップ１０００内に、処理対象の機能ブロック１１００が含まれており、この機能ブロック１１００には、ＦＦ（Ｌ０３乃至Ｌ０５）と、ゲートＧ０３乃至Ｇ０８及びＧ１０と、ネットＮ０５乃至Ｎ１０とが含まれる。チップ１０００には、機能ブロック１１００以外の回路も存在しているが、以下の処理で、機能ブロック境界についてのタイミング検証を行う際にトレースすべきパスに含まれる回路素子が抽出される。なお、ＦＦのＭは出力端子を表しＤは入力端子を表す。また、ＦＦの上部の三角印はクロック端子であり、ＦＦには外部クロック端子ＣＬＫからバッファを介してクロックが供給される。
【００１９】
また、第２の例として、図６に示すようなチップを想定する。図６の例では、チップ３０００内には、機能ブロック（subchipと示す）１乃至９が含まれているが、ここでは機能ブロック境界とは無関係に、処理対象領域３１００が指定されている。この処理対象領域３１００には、ＦＦ（ＣＯＭＰ３、ＣＯＭＰ９、ＣＯＭＰ１０及びＣＯＭＰ１６）が含まれている。このように、機能ブロック２、機能ブロック４、機能ブロック５、機能ブロック６及び機能ブロック８の一部が、処理対象領域３１００に含まれる。
【００２０】
次に、タイミング検証支援部３３３は、チップレベルの回路データベースである第１回路ＤＢ３１１のデータを、メモリ３５に読み込む（ステップＳ３）。本実施の形態では、以下の処理のために、第１回路ＤＢ３１１のデータは、図７Ａ及び図７Ｂに示すようなテーブル構造で展開される。但し、本実施の形態に特に関係ある部分のみが示されている。図７Ａに示すように、処理に係るチップについてのデータを保持するためのチップテーブル（chip_table）は、当該チップに含まれる機能ブロックのリストであるサブチップテーブルリスト（subchip_table_list）へリンクしている。本機能ブロックについてのデータを保持するためのサブチップテーブルリストの各エントリは、その機能ブロックのサブチップテーブル（subchip_table）へリンクしており、サブチップテーブルは、当該機能ブロックに含まれる回路素子のリストであるコンポーネントテーブルリスト（component_table_list）へリンクしている。コンポーネントテーブルリストの各エントリは、その回路素子のコンポーネントテーブル（component_table）へリンクしている。コンポーネントテーブル以下の構造については、図７Ｂに示されている。コンポーネントテーブルは、当該回路素子の種別（kind）と、本実施の形態で導入され且つ注目すべきＦＦであるか否かを表すフラグ（flag）とを含んでおり、当該回路素子のピンテーブルリスト（pin_table_list）へリンクしている。本回路素子の端子についてのデータを保持するためのピンテーブルリストの各エントリは、本回路素子に含まれる端子のピンテーブル（pin_table）へリンクしている。ピンテーブルは、当該ピンの種別（kind）と、入出力の区別（io）と、本実施の形態で導入され且つ第２回路ＤＢ３１３に含めるべきピンであるか否かを表すフラグ（flag）と、当該ピンを含む回路素子のコンポーネントテーブルと当該ピンが接続されているパス（fw_path及びbw_path）のパステーブルリスト（path_table_list(forward）及びpath_table_list(backward)）とへリンクしている。パステーブルリスト（path_table_list(forward）及びpath_table_list(backward)）の各エントリは、当該パスのパステーブル（path_table）へリンクしている。パステーブルは、接続元のピンのピンテーブルと、接続先のピンのピンテーブルとへリンクしている。なお、フラグについては、初期的には全て「０」にセットされている。また、チップテーブルにおけるsubchipはサブチップテーブルリストへのポインタを表しており、サブチップテーブルにおけるcomponentはコンポーネントテーブルリストへのポインタを表しており、コンポーネントテーブルにおけるpinはピンテーブルリストへのポインタを表す。
【００２１】
そして、探索部３３３０のデータパス探索部３３３１は、回路素子についてのマーク付与処理を実施する（ステップＳ５）。回路素子についてのマーク付与処理については、図８乃至図１４を用いて説明する。データパス探索部３３３１は、ステップＳ１で設計者から指定された処理対象が機能ブロックであるか判断する（ステップＳ２１）。設計者から指定された処理対象が機能ブロックであれば、データパス探索部３３３１は、メモリ３５に展開されているデータ構造において、処理対象の機能ブロックに該当するサブチップテーブル（subchip_table）を選択し（ステップＳ２３）、選択したサブチップテーブルのコンポーネントテーブルリスト（component_table_list）から、処理に係るコンポーネントテーブルリスト（component_table_list）を生成し、メモリ３５に格納する（ステップＳ２５）。選択したサブチップテーブルのコンポーネントテーブルリストからリンクしているコンポーネントテーブル（component_table）を、処理に係るコンポーネントテーブルリストに登録する。そして、ステップＳ３１に移行する。
【００２２】
一方、処理対象が機能ブロックではなく、設計者に指定された領域である場合には、データパス探索部３３３１は、メモリ３５に展開されているデータ構造から、指定された領域に含まれる回路素子を抽出し（ステップＳ２７）、抽出した回路素子のデータから、処理に係るコンポーネントテーブルリスト（component_table_list）を生成し、メモリ３５に格納する（ステップＳ２９）。該当する機能ブロックのコンポーネントテーブルリストから、該当する回路素子のコンポーネントテーブルを抽出して、処理に係るコンポーネントテーブルリストに登録する。そして、ステップＳ３１に移行する。
【００２３】
データパス探索部３３３１は、処理に係るコンポーネントテーブルリストに登録されているコンポーネントテーブル（component_table）におけるフラグと、当該コンポーネントテーブルにリンクしている全てのピンテーブル（pin_table）のフラグを「１」にセットする。これによって、処理対象の機能ブロック等の内部の回路素子及びピンのフラグについては全て「１」がセットされることになる。ピンのフラグが「１」にセットされているということは、そのピンを有する回路素子は削除しないことになる。
【００２４】
その後、データパス探索部３３３１は、処理に係るコンポーネントテーブルリストにおいて、未処理のコンポーネントテーブルが存在しているか判断する（ステップＳ３３）。未処理のコンポーネントテーブルが存在していない場合には、処理が完了したことになるので、呼び出し元の処理に戻る。
【００２５】
一方、処理に係るコンポーネントテーブルリストにおいて未処理のコンポーネントテーブルが存在している場合には、データパス探索部３３３１は、処理に係るコンポーネントテーブルリストから未処理のコンポーネントテーブルを１つ特定する（ステップＳ３５）。そして、データパス探索部３３３１は、特定されたコンポーネントテーブルにおける種別がＦＦを示しているか判断する（ステップＳ３７）。ＦＦでない場合には、探索対象ではないのでステップＳ３３に戻る。一方、ＦＦであれば、図８の結合子Ａを介して図９の処理に移行する。
【００２６】
図９の処理の説明に移行して、データパス探索部３３３１は、特定されたコンポーネントテーブルからリンクするピンテーブルリスト（pin_table_list）において未処理のピンが存在するか判断する（ステップＳ３９）。未処理のピンが存在しない場合には、結合子Ｂを介して図８のステップＳ３３に戻る。一方、未処理のピンが存在する場合には、データパス探索部３３３１は、特定されたコンポーネントテーブルからリンクするピンテーブルリストにおいて、未処理のピンを１つ特定する（ステップＳ４１）。そして、データパス探索部３３３１は、特定されたピンのピンテーブルにおけるピンの種別が入力ピンを表しているか判断する（ステップＳ４３）。特定されたピンのピンテーブルにおけるピンの種別が入力ピンであれば、データパス探索部３３３１は、当該ピンについてのバックワードトレースを行い、トレース結果をバックワードトレースのデータ構造として登録する（ステップＳ４５）。その後処理はステップＳ４９に移行する。
【００２７】
ステップＳ４５について図１０及び図１１を用いて説明する。図１０の例では、ＦＦ（ＣＯＭＰ６）が処理対象の機能ブロック等の内部に配置されている回路素子であるとする。本実施の形態では、ＦＦ（ＣＯＭＰ６）の入力ピンＤから、別のＦＦの出力ピンＭに到達するまでデータパスを、データパス上をデータが伝播する方向とは逆方向にトレースする。図１０の例では、ＦＦ（ＣＯＭＰ１）までのルート１（route_1）と、ＦＦ（ＣＯＭＰ３）までのルート２（route_2）とが検出される。この際、経路上の回路素子のピンは、ピンテーブルリスト（pin_table_list）に登録される。図１０に現れている部分では、ルート１では、ＣＯＭＰ６のピンＤ、ＣＯＭＰ５のピンＸ、ＣＯＭＰ５のピンＡ、．．．ＣＯＭＰ２のピンＸ、ＣＯＭＰ２のピンＡ、及びＣＯＭＰ１のピンＭが特定される。同様に、ルート２では、ＣＯＭＰ６のピンＤ、ＣＯＭＰ５のピンＸ、ＣＯＭＰ５のピンＡ、ＣＯＭＰ４のピンＸ、ＣＯＭＰ４のピンＡ、及びＣＯＭＰ３のピンＭが特定される。このようなトレースの結果は、例えば図１１に示すようなバックワードトレースのデータ構造で保持する。
【００２８】
図１１の例では、ルートテーブルリスト（route_table_list）に、探索で検出されたルートのリストが登録されており、各ルートのルートテーブル（route_table）にリンクしている。ルートテーブルは、ピンテーブルリスト（pin_table_list）にリンクしており、ピンテーブルリストは、ルート上検出されたピンが登録されている。ルート１についてのピンテーブルリストには、上で述べた回路素子のピンが登録されている。例えばＣＯＭＰ１．Ｍは、ＦＦ（ＣＯＭＰ１）のピンＭを表している。また、ルート２についてのピンテーブルリストにも、上で述べた回路素子のピンが登録されている。例えばＣＯＭＰ３．Ｍは、ＦＦ（ＣＯＭＰ３）のピンＭを表している。
【００２９】
一方、特定されたピンのピンテーブルにおけるピンの種別が出力ピンであれば、データパス探索部３３３１は、当該ピンについてのフォーワードトレースを行い、トレース結果をフォーワードトレースのデータ構造として登録する（ステップＳ４７）。その後処理はステップＳ４９に移行する。
【００３０】
ステップＳ４７について図１２及び図１３を用いて説明する。図１２の例では、ＦＦ（ＣＯＭＰ１）が処理対象の機能ブロック等の内部に配置されている回路素子であるとする。本実施の形態では、ＦＦ（ＣＯＭＰ１）の出力ピンＭから、別のＦＦの入力ピンＤに達するまでデータパスを順方向にトレースする。図１２の例では、ＦＦ（ＣＯＭＰ４）までのルート１（route_1）と、ＦＦ（ＣＯＭＰ６）までのルート２（route_2）とが検出される。この際、経路上の回路素子のピンは、ピンテーブルリスト（pin_table_list）に登録される。図１２に現れている部分では、ルート１では、ＣＯＭＰ１のピンＭ、ＣＯＭＰ２のピンＡ、ＣＯＭＰ２のピンＸ、．．．ＣＯＭＰ３のピンＡ、ＣＯＭＰ３のピンＸ、及びＣＯＭＰ４のピンＤが特定される。同様に、ルート２では、ＣＯＭＰ１のピンＭ、ＣＯＭＰ２のピンＡ、ＣＯＭＰ２のピンＸ、ＣＯＭＰ５のピンＡ、ＣＯＭＰ５のピンＸ、及びＣＯＭＰ６のピンＤが特定される。このようなトレースの結果は、例えば図１３に示すようなフォーワードトレースのデータ構造で保持する。
【００３１】
図１３の例では、ルートテーブルリスト（route_table_list）に、探索で検出されたルートが登録されており、各ルートのルートテーブル（route_table）にリンクしている。ルートテーブルは、ピンテーブルリスト（pin_table_list）にリンクしており、ピンテーブルリストは、ルート上検出されたピンが登録されている。このようにバックワードトレースとフォーワードトレースとは同じデータ構造となっている。
【００３２】
図５の例で、ＦＦ（Ｌ０３）についてバックワードトレース（ステップＳ４５）を実施する場合には、ＦＦ（Ｌ０３）の入力ピンＤ、ネットＮ０５、ゲートＧ０３、ネットＮ０４、ゲートＧ０２、ネットＮ０３、及びＦＦ（Ｌ０２）の出力ピンＭのルートが特定される。また、ＦＦ（Ｌ０４）についてバックワードトレース（ステップＳ４５）を実施する場合には、ＦＦ（Ｌ０４）の入力ピンＤ、ネットＮ０６、ゲートＧ０４、ネットＮ０４、ゲートＧ０２、ネットＮ０３、及びＦＦ（Ｌ０２）の出力ピンＭのルートが特定される。なお、ＦＦ（Ｌ０３）の出力ピンＭからはフォーワードトレースが行われて、ＦＦ（Ｌ０３）の出力ピンＭ、ネットＮ０７、及びゲートＧ０５のルートも特定される。但し、このルートについては、ステップＳ３１でフラグがオンにされている部分と同じ部分をトレースすることになる。ＦＦ（Ｌ０４）の出力ピンＭからのルートも同様である。
【００３３】
また、図５の例で、ＦＦ（Ｌ０５）についてフォーワードトレース（ステップＳ４７）を実施する場合には、ＦＦ（Ｌ０５）の出力ピンＭ、ネットＮ１０、ゲートＧ０８、ネットＮ１１、ゲートＧ０９、ネットＮ１２、及びＦＦ（Ｌ０６）の入力ピンＤのルートが特定される。また、ＦＦ（Ｌ０５）の出力ピンＭ、ネットＮ１０、ゲートＧ１０、ネットＮ１３、ゲートＧ１１、ネットＮ１４、及びＦＦ（Ｌ０７）の入力ピンＤのルートが特定される。なお、ＦＦ（Ｌ０５）の入力ピンＤからはバックワードトレースが行われて、ＦＦ（Ｌ０５）の入力ピンＤ、ネットＮ０９、及びゲートＧ０７のルートも特定される。但し、このルートについては、ステップＳ３１でフラグがオンにされている部分と同じ部分をトレースすることになる。
【００３４】
図６の例で、ＦＦ（ＣＯＭＰ３）についてバックワードトレース（ステップＳ４５）を行う場合には、ＦＦ（ＣＯＭＰ３）の入力ピンＤ、及びＦＦ（ＣＯＭＰ２）の出力ピンＭのルートが特定される。また、ＦＦ（ＣＯＭＰ９）についてバックワードトレース（ステップＳ４５）を行う場合には、ＦＦ（ＣＯＭＰ９）の入力ピンＤ、及びＦＦ（ＣＯＭＰ８）の出力ピンＭのルートが特定される。ＦＦ（ＣＯＭＰ１６）についてバックワードトレース（ステップＳ４５）を行う場合には、ＦＦ（ＣＯＭＰ１６）の入力ピンＤ、及びＦＦ（ＣＯＭＰ１５）の出力ピンＭのルートが特定される。一方、ＦＦ（ＣＯＭＰ３）についてフォーワードトレース（ステップＳ４７）を行う場合には、ＦＦ（ＣＯＭＰ３）の出力ピンＭ、及びＦＦ（ＣＯＭＰ４）の入力ピンＤのルートが特定される。また、ＦＦ（ＣＯＭＰ１０）についてフォーワードトレース（ステップＳ４７）を行う場合には、ＦＦ（ＣＯＭＰ１０）の出力ピンＭ、及びＦＦ（ＣＯＭＰ１１）の入力ピンＤのルートが特定される。ＦＦ（ＣＯＭＰ１６）についてフォーワードトレース（ステップＳ４７）を行う場合には、ＦＦ（ＣＯＭＰ１６）の出力ピンＭ、及びＦＦ（ＣＯＭＰ１７）の入力ピンＤのルートが特定される。
【００３５】
その後、データパス探索部３３３１は、ステップＳ４５又はＳ４７で生成されたルートテーブルリスト（route_table_list）において未処理のルートテーブル（route_table）が存在しているか判断する（ステップＳ４９）。未処理のルートテーブルが存在しない場合にはステップＳ３９に戻る。一方、データパス探索部３３３１は、ルートテーブルリストにおいて未処理のルートテーブルを１つ特定する（ステップＳ５１）。そして処理は図９の結合子Ｄを介して図１４の処理に移行する。
【００３６】
図１４の処理の説明に移行して、データパス探索部３３３１は、特定されたルートテーブルについてのピンテーブルリスト（pin_table_list）において未処理のピン（具体的にはピンテーブル（pin_table））が存在するか判断する（ステップＳ５３）。未処理のピンが存在しない場合には、図１４の結合子Ｃを介して図９のステップＳ４９に戻る。一方、未処理のピンが存在する場合には、データパス探索部３３３１は、特定されたルートテーブルについてのピンテーブルリストにおける未処理のピンを１つ特定する（ステップＳ５５）。そして、データパス探索部３３３１は、特定されたピンについてのピンテーブルにおけるフラグを１にセットする（ステップＳ５７）。さらに、データパス探索部３３３１は、特定されたピンを有する回路素子のコンポーネントテーブルにおける種別がＦＦであるか判断する（ステップＳ５９）。ＦＦでなければ、ステップＳ５３に戻る。一方、ＦＦであれば、当該ＦＦはクロックパスをトレースすべき回路素子であるから、データパス探索部３３３１は、当該コンポーネントテーブルにおけるフラグを１にセットする（ステップＳ６１）。そしてステップＳ５３に戻る。
【００３７】
以上のように、処理対象の機能ブロック等の内部に配置されているＦＦからフォーワードトレース又はバックワードトレースを行って、最初にＦＦを検出するまでのルート上の回路素子のピンにフラグをセットする。さらに、フォーワードトレース及びバックワードトレースにおいて検出されたＦＦについては、クロックパスのトレースを行う起点となるため、回路素子についてのフラグもセットする。
【００３８】
このような処理の後に図４の処理の説明に戻って、探索部３３３０のクロックパス探索部３３３３は、クロックパスについてのマーク付与処理を実施する（ステップＳ７）。クロックパスについてのマーク付与処理については、図１５乃至図１９を用いて説明する。クロックパス探索部３３３３は、図７Ａ及び図７Ｂで示したようなデータ構造においてマークされた（すなわちフラグがセットされた）ＦＦを特定し、当該ＦＦのコンポーネントテーブルをマーク付きＦＦテーブルリスト（marked_ff_table_list）に登録する（ステップＳ７１）。そして、クロックパス探索部３３３３は、マーク付きＦＦテーブルリストにおいて未処理のＦＦが存在するか判断する（ステップＳ７３）。未処理のＦＦが存在しない場合には、呼び出し元の処理に戻る。一方、未処理のＦＦが存在する場合には、クロックパス探索部３３３３は、マーク付きＦＦテーブルリストにおいて未処理のＦＦのコンポーネントテーブルを１つ特定する（ステップＳ７５）。
【００３９】
その後、クロックパス探索部３３３３は、特定されたＦＦのコンポーネントテーブルからリンクされるピンテーブルリストに列挙されたピンのうち種別がクロック入力であるピンについてバックワードトレースを実施して、トレース結果をトレースのデータ構造として登録する（ステップＳ７７）。
【００４０】
ステップＳ７７の処理については図１６乃至図１８を用いて説明する。図１６に示すように、処理対象の機能ブロック等３５００には、ＦＦ（ＣＯＭＰ３）が配置されており、処理対象の機能ブロック等３５００の外部には、当該ＦＦ（ＣＯＭＰ３）の入力ピンＤからバックワードトレースによって特定されたＦＦ（ＣＯＭＰ５）が配置されている。これらのＦＦ（ＣＯＭＰ３及び５）についてのコンポーネントテーブルにおけるフラグは１にセットされ、クロックパスのトレースの対象となる。そして、ＦＦ（ＣＯＭＰ３）のクロックピンからは、回路素子ＣＯＭＰ２の出力ピンＸと入力ピンＡと、．．．回路素子ＣＯＭＰ１の出力ピンＸと入力ピンＡとを介してクロック源までバックワードトレースが行われる。ここではこのトレースでのルートをルート１−１（route_1_1）とする。また、ＦＦ（ＣＯＭＰ５）のクロックピンからは、回路素子ＣＯＭＰ４の出力ピンＸと入力ピンＡと、．．．回路素子ＣＯＭＰ１の出力ピンＸと入力ピンＡとを介してクロック源までバックワードトレースが行われる。ここではこのトレースでのルートをルート２−１（route_2_1）とする。
【００４１】
ＦＦ（ＣＯＭＰ３）についてのトレースで生成されるデータ構造を、図１７に示す。図１７の例では、ＦＦ毎にルートテーブルリスト（route_table_list）が設けられ、当該ＦＦについて検出されたルートが登録されており、各エントリは、ルートテーブル（route_table）へリンクされている。ルートテーブルは、ピンテーブルリスト（pin_table_list）にリンクされており、当該ルートをトレースする際に検出されたピンのピンテーブルが列挙されている。図１７のピンテーブルリストは、ルート１−１について述べたピンのリストとなっている。
【００４２】
ＦＦ（ＣＯＭＰ５）についてのトレースで生成されるデータ構造を、図１８に示す。図１８も図１７と同様のデータ構造を示しており、図１８のピンテーブルリストは、ルート２−１について述べたピンのリストとなっている。
【００４３】
そして、クロックパス探索部３３３３は、ルートテーブルリスト（route_table_list）において未処理のルートテーブル（route_table）が存在するか判断する（ステップＳ７９）。未処理のルートテーブルが存在しない場合にはステップＳ７３に戻る。一方、未処理のルートテーブルが存在する場合には、クロックパス探索部３３３３は、ルートテーブルリストにおいて未処理のルートテーブルを１つ特定する（ステップＳ８１）。そして、処理は図１５の結合子Ｅを介して図１９の処理に移行する。
【００４４】
図１９の処理の説明に移行して、クロックパス探索部３３３３は、特定されたルートテーブルのピンテーブルリスト（pin_table_list）において未処理のピンが存在しているか判断する（ステップＳ８３）。未処理のピンが存在しない場合には、図１９の結合子Ｆを介して図１５のステップＳ７９に戻る。一方、未処理のピンが存在する場合には、クロックパス探索部３３３３は、特定されたルートテーブルのピンテーブルリストにおいて未処理のピンを１つ特定する（ステップＳ８５）。そして、クロックパス探索部３３３３は、当該ピンのピンテーブル（pin_table）におけるフラグを１にセットする（ステップＳ８７）。そしてステップＳ８３に戻る。
【００４５】
以上のような処理を実施することで、回路素子についてのマーク付与処理において特定された各ＦＦから探索されるクロックパス上の回路素子のピンにフラグをセットすることができる。
【００４６】
図５の例では、ＦＦ（Ｌ０２）、ＦＦ（Ｌ０３）、ＦＦ（Ｌ０４）、ＦＦ（Ｌ０５）、ＦＦ（Ｌ０６）及びＦＦ（Ｌ０７）について、クロック源（ＣＬＫ）までのルート上のゲート１１１０乃至１１５０のピンにはフラグがセットされる。
【００４７】
図４の処理の説明に戻って、回路ＤＢ生成部３３３５は、回路素子削除処理を実施する（ステップＳ９）。回路素子削除処理については、図２０乃至図２３を用いて説明する。回路ＤＢ生成部３３３５は、サブチップテーブルリスト（subchip_table_list）において未処理の機能ブロックが存在しているか判断する（ステップＳ９１）。未処理の機能ブロックが存在していない場合には、呼び出し元の処理に戻る。
【００４８】
一方、未処理の機能ブロックが存在している場合には、回路ＤＢ生成部３３３５は、サブチップテーブルリストにおいて未処理の機能ブロックを１つ特定する（ステップＳ９３）。そして、回路ＤＢ生成部３３３５は、特定された機能ブロックについてのサブチップテーブル（subchip_table）からリンクされているコンポーネントテーブルリスト（component_table_list）において未処理のコンポーネントテーブル（component_table）が存在するか判断する（ステップＳ９５）。未処理のコンポーネントテーブルが存在していない場合には、ステップＳ９１に戻る。
【００４９】
一方、未処理のコンポーネントテーブルが存在している場合には、回路ＤＢ生成部３３３５は、特定された機能ブロックについてのサブチップテーブルからリンクされているコンポーネントテーブルリストにおける未処理のコンポーネントテーブルを１つ特定する（ステップＳ９７）。そして、回路ＤＢ生成部３３３５は、特定されたコンポーネントテーブルからリンクされているピンテーブルリスト（pin_table_list）において未処理のピンが存在するか判断する（ステップＳ９９）。未処理のピンが存在しない場合については、後に説明する。
【００５０】
一方、未処理のピンが存在する場合には、回路ＤＢ生成部３３３５は、特定されたコンポーネントテーブルからリンクされているピンテーブルリストにおいて未処理のピンを１つ特定する（ステップＳ１０１）。処理は図２０の結合子Ｇを介して図２１の処理に移行する。
【００５１】
図２１の処理の説明に移行して、回路ＤＢ生成部３３３５は、特定されたピンのピンテーブルにおけるフラグが１にセットされているか判断する（ステップＳ１０９）。フラグが１であれば図２１の結合子Ｈを介して図２０のステップＳ９９に戻る。一方、フラグが０であれば、回路ＤＢ生成部３３３５は、該当するピンテーブル（pin_table）以下のデータを削除し、当該ピンテーブルにリンクしているピンテーブルリスト（pin_table_list）の該当ピンのエントリにＮＵＬＬを代入する（ステップＳ１０９）。これによりピン自体が存在しないことになる。そして図２１の結合子Ｈを介して図２０のステップＳ９９に戻る。
【００５２】
一方、ステップＳ９９で、特定されたコンポーネントテーブルからリンクされているピンテーブルリスト（pin_table_list）において未処理のピンが存在しないと判断された場合には、回路ＤＢ生成部３３３５は、特定されたコンポーネントテーブルからリンクされているピンテーブルリストのエントリが全てＮＵＬＬであるか判断する（ステップＳ１０３）。ピンテーブルリストのエントリが全てＮＵＬＬである場合には、回路ＤＢ生成部３３３５は、特定されたコンポーネントテーブルを削除する（ステップＳ１０５）。他の回路素子に接続されていない回路素子については全く用いられないので削除する。そしてステップＳ９５に戻る。一方、ピンテーブルリストのエントリの少なくとも１つにＮＵＬＬではない値が登録されている場合には、ステップＳ９５に戻る。
【００５３】
以上のような処理を実施することで、フラグがセットされていない回路素子のピンは削除され、いずれの回路素子にも接続されていない回路素子も削除される。
【００５４】
図４の処理の説明に戻って、回路ＤＢ生成部３３３５は、メモリ３５に格納されている、回路素子削除処理後の回路データを、チップレベルの新たな回路データベース、すなわち第２回路ＤＢ３１３として、記憶装置３１に格納する（ステップＳ１１）。回路データベースの構造などについてはよく知られているので生成方法などについては説明を省略する。なお、削除されてしまった回路素子については、ディレイ情報などのタイミング検証で用いられないデータについても削除され、第２回路ＤＢ３１３には含まれない。
【００５５】
例えば、設計者には、処理完了を通知する。第２回路ＤＢ３１３を、設計者が使用するタイミング検証装置５に送信するようにしても良い。
【００５６】
図５の例の処理結果を図２２に示す。図２２に示すように、上で述べた処理でフラグがセットされていない回路素子のピンについては削除され、全てのピンが削除された回路素子も削除され、回路データがコンパクト化されている。具体的には、ＦＦ（Ｌ０１）、ＦＦ（Ｌ０８）、ＦＦ（Ｌ０９）と、ゲートＧ０１、Ｇ１２及びＧ１３、ゲート１１６０及び１１７０とが削除されている。図６の例でも、ＦＦ（ＣＯＭＰ１）、ＦＦ（ＣＯＭＰ５）、ＦＦ（ＣＯＭＰ６）、ＦＦ（ＣＯＭＰ７）、ＦＦ（ＣＯＭＰ１２）、ＦＦ（ＣＯＭＰ１３）、ＦＦ（ＣＯＭＰ１４）及びＦＦ（ＣＯＭＰ１８）が削除される。
【００５７】
なお、図５の例では処理対象の機能ブロックとチップ全体との関係があまり明瞭ではないので、データ削減効果が分かりにくい。しかし、図２３に示すように、チップ１５００に機能ブロックが６４個あるような場合、処理対象の機能ブロック１６００については全ての回路素子のデータが含まれるが、当該機能ブロック１６００との境界についてタイミング検証を行う際にトレースすべきパス（データパス及びクロックパス）が存在している１４個の機能ブロックについては、一部の回路素子だけが含まれるようになる。すなわち、図２３においてハッチングが付されている１６個の機能ブロックにおいては、機能ブロック１６００内のＦＦからデータパスをトレースして検出される直前又は直後の隣接ＦＦまでの回路素子と機能ブロック１６００内のＦＦ及び隣接ＦＦに対するクロックパス上の回路素子とだけが残される。その他の機能ブロックについては、管理情報だけになるため、大幅にデータが削減されていることが分かる。従って、チップ全体の回路データが展開されるメモリ３５よりも少ないメモリしか有しないタイミング検証装置５においても、タイミング検証を実施できるようになる。
【００５８】
タイミング検証装置５の処理内容については従来とほぼ同じであるが、簡単に図２４を用いて説明する。タイミング検証装置５のタイミング検証部５３１は、機能ブロックの設計者からの指示に応じて、記憶装置５１（場合によってはタイミング検証支援装置３の記憶装置３１）からチップレベルの新しい回路ＤＢ（すなわち第２回路ＤＢ３１３）をメモリ５５に読み出すと共に、検証対象の機能ブロック等の回路データベースである第３回路ＤＢ５１１を記憶装置５１からメモリ５５に読み出して、マージする（ステップＳ２０１）。第２回路ＤＢ３１３に含まれる検証対象機能ブロック等の回路部分を、第３回路ＤＢ５１１の回路データで置換して繋ぎ直す処理を実施する。この処理はよく知られているのでこれ以上述べない。なお、検証対象機能ブロック等の最新データで第２回路ＤＢ３１３が生成されていれば（例えば初めて実行する場合など）、ステップＳ２０１では第３回路ＤＢ５１１を読み出してマージすることはない。
【００５９】
次に、タイミング検証部５３１は、周知の方法で機能ブロック境界（又は指定領域との境界）のディレイ計算を実施する（ステップＳ２０３）。そして、タイミング検証部５３１は、機能ブロック境界のディレイ計算の結果を用いて、周知の方法でタイミング検証を実施する（ステップＳ２０５）。検証結果はメモリ５５又は記憶装置５１に格納される。その後、タイミング検証部５３１は、検証結果から機能ブロック境界等の結果を検索して、出力装置（表示装置等）に出力する（ステップＳ２０７）。検証結果が問題なしを表している場合には、処理を終了する。
【００６０】
一方、検証結果に問題がある場合には、設計者は、タイミング検証装置５又は他の装置の設計処理部５３３により、機能ブロックの設計変更を実施する（ステップＳ２１１）。この処理については、設計ツールなど他のプログラムを使用するが、本実施の形態の主旨ではないのでこれ以上説明しない。そして、タイミング検証部５３１は、設計変更後の機能ブロック内部のディレイ計算を実施し、機能ブロックの回路データベース（すなわち、新たな第３回路ＤＢ５１１）として記憶装置５１に格納する（ステップＳ２１３）。そしてステップＳ２０１に戻る。
【００６１】
このような処理を実施することで、機能ブロック境界のタイミング検証において問題のない機能ブロックの回路データを生成することができるようになる。上でも述べたように、第２回路ＤＢ３１３は、第１回路ＤＢ３１１よりもサイズが小さくなっているため、タイミング検証装置５のメモリ５５の容量が少なくても済む。また、第２回路ＤＢ３１３のサイズが小さくなっているため、メモリ５５への読み込み時間も短縮され、着目している回路の数も減っているため、ターンアラウンドタイム（Turn Around Time）の短縮が期待される。また、機能ブロックの設計でチップ設計のクロックスキューを使用することにより、機能ブロックの設計でクロックディレイを正確に評価できるようになる。
【００６２】
［実施の形態２］
第１の実施の形態では、主に、機能ブロックの設計者を中心に機能ブロック境界のタイミング検証で用いるデータを削減するための構成例を示した。本実施の形態では、チップレベルの設計者が、チップ全体で、機能ブロック境界のタイミング検証を行うケースを考える。
【００６３】
基本的なシステム構成は第１の実施の形態と同様である。また、タイミング検証支援装置３の構成も、その具体的な機能は異なるが図２に示したものと同様である。さらに、タイミング検証装置５の構成も、図３に示したものとほぼ同様である。
【００６４】
図２５乃至図２９を用いて、本実施の形態に係るタイミング検証支援装置３の処理内容について説明する。まず、タイミング検証支援部３３３は、チップレベルの回路データベースである第１回路ＤＢ３１１のデータを、メモリ３５に読み込む（ステップＳ３０１）。本実施の形態でも、以下の処理のために、第１回路ＤＢ３１１のデータは、図７Ａ及び図７Ｂに示すようなテーブル構造で展開される。
【００６５】
そして、データパス探索部３３３１は、回路素子についての第２マーク付与処理を実施する（ステップＳ３０３）。回路素子についての第２マーク付与処理については、図２６Ａ乃至図２９を用いて説明する。この処理では、各機能ブロックにおいて、その機能ブロック境界に配置されているＦＦ及び当該ＦＦより外側の他の回路素子にマークを付すものである。
【００６６】
データパス探索部３３３１は、サブチップテーブルリスト（subchip_table_list）において未処理の機能ブロックが存在しているか判断する（ステップＳ３１１）。未処理の機能ブロックが存在していない場合には、呼び出し元の処理に戻る。一方、未処理の機能ブロックが存在している場合には、データパス探索部３３３１は、サブチップテーブルリストから未処理の機能ブロックを１つ特定する（ステップＳ３１３）。そして、データパス探索部３３３１は、特定された機能ブロックの外部にある全てのＦＦのコンポーネントテーブル（component_table）をＦＦコンポーネントテーブルリスト（ff_component_table_list）に登録する（ステップＳ３１５）。図７Ａ及び図７Ｂのデータ構造から、特定された機能ブロック以外の機能ブロックを特定して、それらの機能ブロックの全てのコンポーネントテーブルの種別を確認し、ＦＦであれば当該コンポーネントテーブルをＦＦコンポーネントテーブルリストに登録する。
【００６７】
そして、データパス探索部３３３１は、ＦＦコンポーネントテーブルリストにおいて未処理のコンポーネントテーブルが存在しているか判断する（ステップＳ３１７）。未処理のコンポーネントテーブルが存在していない場合にはステップＳ３１１に戻る。一方、未処理のコンポーネントテーブルが存在している場合には、データパス探索部３３３１は、ＦＦコンポーネントテーブルリストにおける未処理のコンポーネントテーブルを１つ特定する（ステップＳ３１９）。そして、データパス探索部３３３１は、特定されたコンポーネントテーブルからリンクされるピンテーブルリスト（pin_table_list）において未処理のピンが存在するか判断する（ステップＳ３２１）。未処理のピンが存在しない場合には、データパス探索部３３３１は、ピンテーブルリストにおいて未処理のピンを特定する（ステップＳ３２３）。そして処理は図２６Ａの結合子Ｊを介して図２６Ｂの処理に移行する。
【００６８】
図２６Ｂの処理の説明に移行して、データパス探索部３３３１は、特定されたピンのピンテーブルにおける種別が入力ピンを示しているか判断する（ステップＳ３２５）。特定されたピンのピンテーブルにおけるピンの種別が入力ピンであれば、データパス探索部３３３１は、当該ピンについてのバックワードトレースを行い、トレース結果をバックワードトレースのデータ構造として登録する（ステップＳ３２７）。この処理はステップＳ４５と同じであり、詳細な説明は省略する。その後処理はステップＳ３３１に移行する。
【００６９】
一方、特定されたピンのピンテーブルにおけるピンの種別が出力ピンである場合には、データパス探索部３３３１は、当該ピンについてのフォーワードトレースを行い、トレース結果をフォーワードトレースのデータ構造として登録する（ステップＳ３２９）。この処理はステップＳ４７と同じであり、詳細な説明を省略する。その後処理はステップＳ３３１に移行する。
【００７０】
その後、データパス探索部３３３１は、ステップＳ３２７又はＳ３２９で生成されたルートテーブルリスト（route_table_list）において未処理のルートテーブルが存在するか判断する（ステップＳ３３１）。未処理のルートテーブルが存在していない場合には、図２６Ｂの結合子Ｋを介して図２６ＡのステップＳ３２１に戻る。一方、未処理のルートテーブルが存在している場合には、データパス探索部３３３１は、ルートテーブルリストにおいて未処理のルートテーブルを１つ特定する（ステップＳ３３３）。そして図２６Ｂの結合子Ｍを介して図２７の処理に移行する。
【００７１】
図２７の処理に移行して、データパス探索部３３３１は、特定されたルートテーブルからリンクされるピンテーブルリスト（pin_table_list）において未処理のピンが存在するか判断する（ステップＳ３３５）。未処理のピンが存在していない場合には、図２７の結合子Ｌを介して図２６ＢのステップＳ３３１に戻る。一方、未処理のピンが存在する場合には、データパス探索部３３３１は、特定されたルートテーブルからリンクされるピンテーブルリストにおいて未処理のピンを１つ特定する（ステップＳ３３７）。そして、データパス探索部３３３１は、特定されたピンのピンテーブルからリンクしているコンポーネントテーブル等から、特定されたピンを有するコンポーネントが、ステップＳ３１３で特定した注目機能ブロック内に含まれているか判断する（ステップＳ３３９）。特定されたピンを有するコンポーネントが注目機能ブロック内に含まれていない場合には、ここではフラグをセットしないピンであるので、ステップＳ３３５に戻る。
【００７２】
一方、特定されたピンを有するコンポーネントが注目機能ブロック内に含まれている場合には、データパス探索部３３３１は、特定されたピンのピンテーブルにおけるフラグを１にセットする（ステップＳ３４１）。そして、データパス探索部３３３１は、特定されたピンを有する回路素子のコンポーネントテーブルにおける種別がＦＦを示しているか判断する（ステップＳ３４３）。特定されたピンを有する回路素子のコンポーネントテーブルにおける種別がＦＦではない場合には、クロックパス探索の対象ではないのでステップＳ３３５に戻る。一方、特定されたピンを有する回路素子のコンポーネントテーブルにおける種別がＦＦである場合には、データパス探索部３３３１は、当該ピンを有する回路素子のコンポーネントテーブルにおけるフラグを１にセットする（ステップＳ３４５）。これによってクロックパスを探索する対象のＦＦを特定できるようになる。そしてステップＳ３３５に戻る。
【００７３】
以上のような処理を実施することで、各機能ブロックにおいて、機能ブロック境界に配置されているＦＦ及び当該ＦＦより外側の回路素子にマークが付されることになる。図５の例で、図２８に示すように、機能ブロック１１００の内部の一部の回路素子のみにマークが付される。すなわち、機能ブロック１１００の内部には、ＦＦ（Ｌ０３）、ＦＦ（Ｌ０４）、ＦＦ（Ｌ０５）、ゲートＧ０３乃至Ｇ０８及びＧ１０が存在しているが、ここでは、ゲートＧ０５乃至Ｇ０７のピンにはマークは付されない。
【００７４】
図２５の処理の説明に戻って、クロックパス探索部３３３３は、クロックについてのマーク付与処理を実施する（ステップＳ３０５）。この処理はステップＳ７（図１５及び図１９）と同じである。これによって、マークされたＦＦからのクロックパス上の回路素子のピンにマークが付される。
【００７５】
そして、回路ＤＢ生成部３３３５は、回路素子削除処理を実施する（ステップＳ３０７）。回路素子削除処理については、ステップＳ９（図２０及び図２１）と同じである。これによって、機能ブロック境界に配置されているＦＦ間のデータパス上の回路素子と、それらのＦＦからのクロックパス上の回路素子とが残ることになる。模式的に示すと図２９に示すような回路データが残ることになる。すなわち、機能ブロック境界付近に配置されて機能ブロック境界をまたいで接続されており且つ矩形で示されているＦＦと、当該ＦＦについてのクロックパス１７００上の回路素子（丸印）とが残る。図２９では、一部のＦＦにはＦＦ同士の接続しか示していないものもあるが、これらのＦＦにもクロックパス１７００が接続されている。
【００７６】
その後、回路ＤＢ生成部３３３５は、メモリ３５に格納されている、回路素子削除処理後の回路データを、チップレベルの新たな回路データベース、すなわち第２回路ＤＢ３１３（第１の実施の形態における第２回路ＤＢ３１３とは異なる）として、記憶装置３１に格納する（ステップＳ３０９）。回路データベースの構造などについてはよく知られているので生成方法などについては説明を省略する。なお、削除されてしまった回路素子については、ディレイ情報などのタイミング検証で用いられないデータについても削除され、第２回路ＤＢ３１３には含まれない。
【００７７】
チップレベルの設計者は、例えばタイミング検証装置５において、機能ブロック境界のタイミング検証を実施する。但し、第１の実施の形態とは異なり、各機能ブロック内部の回路も一部に限定されており、機能ブロックについての第３回路ＤＢ５１１とマージすることはない。また、検証処理で問題が検出された場合においては、チップレベルの設計者が、問題が検出された機能ブロックの設計者に設計の修正を依頼する。そして、問題が修正されると、再度上で述べた処理を実施して、チップ全体の機能ブロック境界についての第２回路ＤＢ３１３を生成して、タイミング検証処理を実施する。
【００７８】
この場合においても、タイミング検証処理自体は、データ量が削減された第２回路ＤＢ３１３を用いて行うことができるので、メモリ容量が少ないタイミング検証装置５で実施できる。
【００７９】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、処理フローについては、処理結果が変わらない限り、順番を入れ替えたり、ステップを並列実行するようにしても良い。上で述べた機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成と一致しない場合がある。
【００８０】
なお、上で述べたタイミング検証装置５及びタイミング検証支援装置３は、コンピュータ装置であって、図３０に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００８１】
以上述べた本実施の形態をまとめると、以下のようになる。
【００８２】
本実施の形態の第１の態様に係るタイミング検証支援装置は、（Ａ）半導体集積回路全体についての回路データである第１の回路データを格納する記憶装置と、（Ｂ）記憶装置に格納されている第１の回路データにおいて、タイミング検証対象として指定された回路素子である指定回路素子と当該指定回路素子以外の部分との境界におけるタイミング検証を行う際にトレースすべきパスに含まれ且つ指定回路素子を含む複数の回路素子を特定する探索部と、（Ｃ）探索部によって特定された複数の回路素子についての回路データを含む、上記タイミング検証用の第２の回路データを生成し、記憶装置に格納する生成部とを有する。
【００８３】
このような構成を採用することで、第１の回路データのサイズより小さい第２の回路データが生成されるため、当該第２の回路データを用いてメモリ容量の少ない装置でも上記のタイミング検証を実施できるようになる。
【００８４】
また、上で述べた探索部が、指定回路素子に含まれる順序回路からデータパスを順方向及び逆方向に他の順序回路にたどり着くまでトレースすることによって回路素子を特定するデータパス探索部と、データパス探索部によって特定された順序回路のクロックパスに含まれる回路素子を特定するクロックパス探索部とを含むようにしてもよい。このようにデータパスをベースに先に回路素子を特定した上で、特定された回路素子のうち順序回路についてのクロックパスをベースに回路素子を特定すれば、目的の回路素子を効率的に特定できるようになる。
【００８５】
なお、記憶装置から読み出された第１の回路データにおいて、第２の回路データに含めるべき回路素子端子を示すための第１のフラグと、当該第２の回路データに含めるべき回路素子端子に係る回路素子が順序回路であるか否かを示すための第２のフラグとを設けておくようにしてもよい。その際、上で述べたデータパス探索部は、指定回路素子に含まれる順序回路から他の順序回路にたどり着くまでのデータパス上の回路素子端子に係る第１のフラグをオンにセットし、当該第１のフラグをオンにセットした回路素子端子に係る回路素子が順序回路であれば第２のフラグをオンにセットするようにしてもよい。さらに、上で述べたクロックパス探索部は、第２のフラグがオンにセットされた順序回路のクロックパス上の回路素子端子に係る第１のフラグをオンにセットするようにしてもよい。また、上で述べた生成部は、記憶装置から読み出された第１の回路データから、第１のフラグがオフの回路素子端子についてのデータ及び全ての回路素子端子についてのデータが削除された回路素子についてのデータを削除することで第２の回路データを生成するようにしてもよい。このようにすれば、効率的に適切な回路素子に絞り込むことができる。
【００８６】
また、第２の態様の実施の形態に係るタイミング検証支援装置は、（Ａ）半導体集積回路全体についての回路データである第１の回路データを格納する記憶装置と、（Ｂ）記憶装置に格納されている第１の回路データに含まれ且つ半導体集積回路を機能単位で分割した複数の機能ブロックの境界をまたいで繋がれる順序回路間の回路素子群と当該回路素子群にクロックを供給するパスに含まれる回路素子群とを特定する探索部と、（Ｃ）探索部によって特定された回路素子群についての回路データを含む、複数の機能ブロックの境界についてのタイミング検証用の第２の回路データを生成し、記憶装置に格納する生成部とを有する。
【００８７】
このようにすれば、一部の回路素子に着目するのではなく、第１の回路データ全体において複数の機能ブロックの境界についてタイミング検証を行う場合にも、メモリ容量が小さい装置で実施できるようになる。
【００８８】
また、上で述べた探索部が、複数の機能ブロックの各々について、当該機能ブロックである第１の機能ブロック以外の第２の機能ブロックに含まれる順序回路からデータパスを順方向及び逆方向に他の順序回路にたどり着くまでトレースして第１の機能ブロック内部の回路素子を特定するデータパス探索部と、データパス探索部によって特定された順序回路のクロックパスに含まれる回路素子を特定するクロックパス探索部とを含むようにしても良い。このようにすれば、目的の回路素子を効率的に特定できるようになる。
【００８９】
さらに、記憶装置から読み出された第１の回路データにおいて、第２の回路データに含めるべき回路素子端子を示すための第１のフラグと、当該第２の回路データに含めるべき回路素子端子に係る回路素子が順序回路であるか否かを示すための第２のフラグとを設けておくようにしてもよい。上で述べたデータパス探索部は、第２の機能ブロックに含まれる順序回路から他の順序回路にたどり着くまでのデータパス上の回路素子端子のうち第１の機能ブロックに含まれる回路素子端子に係る第１のフラグをオンにセットし、当該第１のフラグをオンにセットした回路素子端子に係る回路素子が順序回路であれば第２のフラグをオンにセットするようにしてもよい。また、上で述べたクロックパス探索部は、第２のフラグがオンにセットされた順序回路のクロックパス上の回路素子端子に係る第１のフラグをオンにセットするようにしてもよい。さらに、上で述べた生成部は、記憶装置から読み出された第１の回路データから、第１のフラグがオフの回路素子端子についてのデータ及び全ての回路素子端子についてのデータが削除された回路素子についてのデータを削除することで第２の回路データを生成するようにしてもよい。このようにすれば、効率的に適切な回路素子に絞り込むことができる。
【００９０】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【００９１】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９２】
（付記１）
半導体集積回路全体についての回路データである第１の回路データを格納する記憶装置と、
前記記憶装置に格納されている前記第１の回路データにおいて、タイミング検証対象として指定された回路素子である指定回路素子と当該指定回路素子以外の部分との境界におけるタイミング検証を行う際にトレースすべきパスに含まれ且つ前記指定回路素子を含む複数の回路素子を特定する探索部と、
前記探索部によって特定された前記複数の回路素子についての回路データを含む、前記タイミング検証用の第２の回路データを生成し、前記記憶装置に格納する生成部と、
を有するタイミング検証支援装置。
【００９３】
（付記２）
前記探索部が、
前記指定回路素子に含まれる順序回路からデータパスを順方向及び逆方向に他の順序回路にたどり着くまでトレースすることによって回路素子を特定するデータパス探索部と、
前記データパス探索部によって特定された順序回路のクロックパスに含まれる回路素子を特定するクロックパス探索部と、
を含む付記１記載のタイミング検証支援装置。
【００９４】
（付記３）
前記記憶装置から読み出された前記第１の回路データにおいて、前記第２の回路データに含めるべき回路素子端子を示すための第１のフラグと、当該第２の回路データに含めるべき回路素子端子に係る回路素子が順序回路であるか否かを示すための第２のフラグとを設けておき、
前記データパス探索部は、
前記指定回路素子に含まれる順序回路から他の順序回路にたどり着くまでのデータパス上の回路素子端子に係る第１のフラグをオンにセットし、当該第１のフラグをオンにセットした回路素子端子に係る回路素子が順序回路であれば第２のフラグをオンにセットし、
前記クロックパス探索部は、
前記第２のフラグがオンにセットされた順序回路のクロックパス上の回路素子端子に係る第１のフラグをオンにセットし、
前記生成部は、
前記記憶装置から読み出された前記第１の回路データから、前記第１のフラグがオフの回路素子端子についてのデータ及び全ての回路素子端子についてのデータが削除された回路素子についてのデータを削除することで前記第２の回路データを生成する
付記２記載のタイミング検証支援装置。
【００９５】
（付記４）
半導体集積回路全体についての回路データである第１の回路データを格納する記憶装置と、
前記記憶装置に格納されている前記第１の回路データに含まれ且つ前記半導体集積回路を機能単位で分割した複数の機能ブロックの境界をまたいで繋がれる順序回路間の回路素子群と当該回路素子群にクロックを供給するパスに含まれる回路素子群とを特定する探索部と、
前記探索部によって特定された回路素子群についての回路データを含む、前記複数の機能ブロックの境界についてのタイミング検証用の第２の回路データを生成し、前記記憶装置に格納する生成部と、
を有するタイミング検証支援装置。
【００９６】
（付記５）
前記探索部が、
前記複数の機能ブロックの各々について、当該機能ブロックである第１の機能ブロック以外の第２の機能ブロックに含まれる順序回路からデータパスを順方向及び逆方向に他の順序回路にたどり着くまでトレースして前記第１の機能ブロック内部の回路素子を特定するデータパス探索部と、
前記データパス探索部によって特定された順序回路のクロックパスに含まれる回路素子を特定するクロックパス探索部と、
を含む付記４記載のタイミング検証支援装置。
【００９７】
（付記６）
前記記憶装置から読み出された前記第１の回路データにおいて、前記第２の回路データに含めるべき回路素子端子を示すための第１のフラグと、当該第２の回路データに含めるべき回路素子端子に係る回路素子が順序回路であるか否かを示すための第２のフラグとを設けておき、
前記データパス探索部は、
前記第２の機能ブロックに含まれる順序回路から他の順序回路にたどり着くまでのデータパス上の回路素子端子のうち前記第１の機能ブロックに含まれる回路素子端子に係る第１のフラグをオンにセットし、当該第１のフラグをオンにセットした回路素子端子に係る回路素子が順序回路であれば第２のフラグをオンにセットし、
前記クロックパス探索部は、
前記第２のフラグがオンにセットされた順序回路のクロックパス上の回路素子端子に係る第１のフラグをオンにセットし、
前記生成部は、
前記記憶装置から読み出された前記第１の回路データから、前記第１のフラグがオフの回路素子端子についてのデータ及び全ての回路素子端子についてのデータが削除された回路素子についてのデータを削除することで前記第２の回路データを生成する
付記５記載のタイミング検証支援装置。
【００９８】
（付記７）
半導体集積回路全体についての回路データである第１の回路データを格納する記憶装置に格納されている前記第１の回路データにおいて、タイミング検証対象として指定された回路素子である指定回路素子と当該指定回路素子以外の部分との境界におけるタイミング検証を行う際にトレースすべきパスに含まれ且つ前記指定回路素子を含む複数の回路素子を特定するステップと、
前記特定ステップにおいて特定された前記複数の回路素子についての回路データを含む、前記タイミング検証用の第２の回路データを生成し、前記記憶装置に格納するステップと、
を、コンピュータに実行させるためのタイミング検証支援プログラム。
【００９９】
（付記８）
半導体集積回路全体についての回路データである第１の回路データを格納する記憶装置に格納されている前記第１の回路データに含まれ且つ前記半導体集積回路を機能単位で分割した複数の機能ブロックの境界をまたいで繋がれる順序回路間の回路素子群と当該回路素子群にクロックを供給するパスに含まれる回路素子群とを特定するステップと、
前記特定ステップにおいて特定された回路素子群についての回路データを含む、前記複数の機能ブロックの境界についてのタイミング検証用の第２の回路データを生成し、前記記憶装置に格納するステップと、
を、コンピュータに実行させるためのタイミング検証支援プログラム。
【符号の説明】
【０１００】
３  タイミング検証支援装置
５  タイミング検証装置
３１  記憶装置
３３  処理部
３５  メモリ
３３３  タイミング検証支援部
３３３０  探索部
３３３１  データパス探索部
３３３３  クロックパス探索部
３３３５  回路ＤＢ生成部
３１１  第１回路ＤＢ
３１３  第２回路ＤＢ
【図１】
0005741077.tif 000002
【図２】
0005741077.tif 000003
【図３】
0005741077.tif 000004
【図４】
0005741077.tif 000005
【図５】
0005741077.tif 000006
【図６】
0005741077.tif 000007
【図７Ａ】
0005741077.tif 000008
【図７Ｂ】
0005741077.tif 000009
【図８】
0005741077.tif 000010
【図９】
0005741077.tif 000011
【図１０】
0005741077.tif 000012
【図１１】
0005741077.tif 000013
【図１２】
0005741077.tif 000014
【図１３】
0005741077.tif 000015
【図１４】
0005741077.tif 000016
【図１５】
0005741077.tif 000017
【図１６】
0005741077.tif 000018
【図１７】
0005741077.tif 000019
【図１８】
0005741077.tif 000020
【図１９】
0005741077.tif 000021
【図２０】
0005741077.tif 000022
【図２１】
0005741077.tif 000023
【図２２】
0005741077.tif 000024
【図２３】
0005741077.tif 000025
【図２４】
0005741077.tif 000026
【図２５】
0005741077.tif 000027
【図２６Ａ】
0005741077.tif 000028
【図２６Ｂ】
0005741077.tif 000029
【図２７】
0005741077.tif 000030
【図２８】
0005741077.tif 000031
【図２９】
0005741077.tif 000032
【図３０】
0005741077.tif 000033