(57)【特許請求の範囲】
【請求項１】
論理式で表現した回路データである検証対象から非同期パスの構造タイプを抽出する抽出部と、
前記抽出部が抽出した非同期パスの構造タイプに基づいて、前記検証対象に対する第１および第２の測定箇所を含む複数の測定箇所を特定する特定部と、
前記特定部が特定した前記第１および第２の測定箇所間の信号伝播所要サイクル数を前記検証対象から検出する検出部と、
前記検出部が検出した信号伝播所要サイクル数に基づくタイミングで、前記特定部が特定した前記複数の測定箇所の活性化回数を測定する、アサーションを生成するアサーション生成部と、
非同期パス遅延およびクロックジッターを付与した条件下で実行される前記検証対象のシミュレーションの実行中、前記アサーション生成部が生成したアサーションを用いて、前記特定部が特定した前記複数の測定箇所の活性化回数を測定する測定部と、
前記測定部による測定結果を期待値と比較する比較部と、
を有することを特徴とする検証装置。
【請求項２】
前記アサーション生成部は、測定箇所別に用意されたアサーション生成用のテンプレートに、前記特定部が特定した前記複数の測定箇所および前記検出部が検出した信号伝播所要サイクル数を埋め込むことで、前記特定部が特定した前記複数の測定箇所の活性化回数を前記タイミングで測定するアサーションを生成する、
ことを特徴とする請求項１記載の検証装置。
【請求項３】
前記比較部は、前記測定部による測定結果を、統計処理を用いて期待値と比較する、
ことを特徴とする請求項１または２記載の検証装置。
【請求項４】
前記比較部は、前記測定部による測定結果を複数のグループに分類し、各グループの測定結果の平均値を、期待値と比較する、
ことを特徴とする請求項１〜３のいずれか１項に記載の検証装置。
【請求項５】
前記比較部は、前記特定部が特定した前記複数の測定箇所のそれぞれに対して、前記複数のグループのうち少なくとも１つのグループの測定結果の平均値が、期待値以上であるかどうかを判定する、
ことを特徴とする請求項４記載の検証装置。
【請求項６】
コンピュータに、
論理式で表現した回路データである検証対象から非同期パスの構造タイプを抽出し、
抽出した非同期パスの構造タイプに基づいて、前記検証対象に対する第１および第２の測定箇所を含む複数の測定箇所を特定し、
特定した前記第１および第２の測定箇所間の信号伝播所要サイクル数を前記検証対象から検出し、
検出した信号伝播所要サイクル数に基づくタイミングで、特定した前記複数の測定箇所の活性化回数を測定する、アサーションを生成し、
非同期パス遅延およびクロックジッターを付与した条件下で実行される前記検証対象のシミュレーションの実行中、生成したアサーションを用いて、特定した前記複数の測定箇所の活性化回数を測定し、
測定結果を期待値と比較する、
処理を実行させることを特徴とする検証プログラム。
【請求項７】
コンピュータが、
論理式で表現した回路データである検証対象から非同期パスの構造タイプを抽出し、
抽出した非同期パスの構造タイプに基づいて、前記検証対象に対する第１および第２の測定箇所を含む複数の測定箇所を特定し、
特定した前記第１および第２の測定箇所間の信号伝播所要サイクル数を前記検証対象から検出し、
検出した信号伝播所要サイクル数に基づくタイミングで、特定した前記複数の測定箇所の活性化回数を測定する、アサーションを生成し、
非同期パス遅延およびクロックジッターを付与した条件下で実行される前記検証対象のシミュレーションの実行中、生成したアサーションを用いて、特定した前記複数の測定箇所の活性化回数を測定し、
測定結果を期待値と比較する、
ことを特徴とする検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、検証対象を検証する検証装置、検証プログラム、および、検証方法に関する。
【背景技術】
【０００２】
非同期パスを含む回路の検証方法として、非同期パス遅延およびクロックジッターを付与した条件下で、検証対象のシミュレーション（非同期シミュレーションとも称す）を行う方法がある。この方法では、検証のもれを抑制するため、非同期シミュレーション実行時に非同期回路（非同期パスおよび非同期パスの影響を受ける回路）が活性化されていることを確認する必要がある。
【０００３】
これを確認する方法としては、非同期シミュレーションを実行する前に、非同期パス遅延およびクロックジッターを含まない条件下で、検証対象のシミュレーションを行い、非同期回路の活性化回数を測定する方法がある。しかし、この方法では、非同期シミュレーションにおいて、非同期パス遅延およびクロックジッターの影響により、非同期回路の活性化回数が、事前に測定した回数から変化してしまう可能性がある。
【０００４】
これに対して、非同期シミュレーション実行時の非同期回路の活性化回数を直接測定するため、非同期シミュレーション実行中に、シミュレータのコードカバレッジ機能を用いて、非同期回路の活性化回数を測定する方法がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１８２５５号公報
【特許文献２】特開平５−１５１２９５号公報
【特許文献３】特許第４２７１０６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非同期シミュレーション実行中に、シミュレータのコードカバレッジ機能を用いて、非同期回路の活性化回数を測定する方法では、非同期回路だけではなく、回路中の全てのブロックを測定対象としているため、データ量が膨大となり、非同期シミュレーションに係る時間が大幅に増大してしまう可能性がある。
【課題を解決するための手段】
【０００７】
発明の一観点によれば、以下のような検証装置が提供される。
この検証装置は、論理式で表現した回路データである検証対象から非同期パスの構造タイプを抽出する抽出部と、抽出部が抽出した非同期パスの構造タイプに基づいて、検証対象に対する第１および第２の測定箇所を含む複数の測定箇所を特定する特定部と、特定部が特定した第１および第２の測定箇所間の信号伝播所要サイクル数を検証対象から検出する検出部と、検出部が検出した信号伝播所要サイクル数に基づくタイミングで、特定部が特定した複数の測定箇所の活性化回数を測定する、アサーションを生成するアサーション生成部と、非同期パス遅延およびクロックジッターを付与した条件下で実行される検証対象のシミュレーションの実行中、アサーション生成部が生成したアサーションを用いて、特定部が特定した複数の測定箇所の活性化回数を測定する測定部と、測定部による測定結果を期待値と比較する比較部と、を有する。
【発明の効果】
【０００８】
開示の検証装置によれば、非同期回路の活性化回数を選択的に測定することができ、検証時間を短縮することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施の形態に係る検証装置の一例を示す図である。
【図２】第２の実施の形態に係る検証装置のハードウェアの一例を示す図である。
【図３】第２の実施の形態に係る検証装置の機能の一例を示す図である。
【図４】第２の実施の形態に係る非同期リストの一例を示す図である。
【図５】第２の実施の形態に係るアサーション生成用リストの一例を示す図である。
【図６】第２の実施の形態に係るアサーション生成用のテンプレートの一例を示す図である。
【図７】第２の実施の形態に係るアサーションの一例を示す図である。
【図８】第２の実施の形態に係る判定結果リストの一例を示す図である。
【図９】第２の実施の形態に係る検証手順の一例を示すフローチャートである。
【図１０】第２の実施の形態に係るアサーション生成手順の一例を示すフローチャートである。
【図１１】第２の実施の形態に係るアサーション生成手順の一例を示すフローチャートである。
【図１２】第２の実施の形態に係る出力信号抽出処理の一例を示すフローチャートである。
【図１３】第２の実施の形態に係るＦＳＭ有無の判定処理の一例を示すフローチャートである。
【図１４】第２の実施の形態に係る測定箇所の抽出処理の一例を示すフローチャートである。
【図１５】第２の実施の形態に係るリコンバージェンスレジスタ判定処理の一例を示すフローチャートである。
【図１６】第２の実施の形態に係る判定の手順の一例を示すフローチャートである。
【図１７】第２の実施の形態に係る具体例１の回路ブロックを示す図である。
【図１８】第２の実施の形態に係る具体例２の回路ブロックを示す図である。
【図１９】第２の実施の形態に係る具体例３の回路ブロックを示す図である。
【図２０】第２の実施の形態に係る具体例４の回路ブロックを示す図である。
【図２１】第２の実施の形態に係る具体例５の回路ブロックを示す図である。
【図２２】第３の実施の形態に係る検証装置の機能の一例を示す図である。
【図２３】第３の実施の形態に係る網羅性判定結果リストの一例を示す図である。
【図２４】第３の実施の形態に係る判定手順の一例を示すフローチャートである。
【図２５】第３の実施の形態に係る判定手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態に係る検証装置の一例を示す図である。
【００１１】
検証装置１は、検証対象２を検証する装置であり、抽出部１ａと、特定部１ｂと、検出部１ｃと、アサーション生成部１ｄと、測定部１ｅと、比較部１ｆとを有している。
なお、検証対象２は、例えば、ＬＳＩ（Large Scale Integration）などの集積回路を、レジスタ・トランスファ・レベル（ＲＴＬ：Resistor Transfer Level）と呼ばれる論理式で表現した回路データである。検証対象２は、複数のクロックドメイン間をまたぐ非同期パスを含んでいる。
【００１２】
抽出部１ａは、検証対象２から非同期パスの構造タイプを抽出する。例えば、非同期パスの構造タイプとしては、２ＤＦＦ，１ＤＦＦ、コンビネーション（Combination）、リコンバージェンス、ＤＭＵＸがある。特定部１ｂは、抽出部１ａが抽出した非同期パスの構造タイプに基づいて、検証対象２に対する測定箇所を特定する。
【００１３】
検出部１ｃは、特定部１ｂが特定した測定箇所間の信号伝播所要サイクル数を検証対象２から検出する。アサーション生成部１ｄは、検出部１ｃが検出した信号伝播所要サイクル数を用いて、特定部１ｂが特定した測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成する。
【００１４】
測定部１ｅは、非同期パス遅延およびクロックジッターを付与した条件下で実行される検証対象２のシミュレーション（非同期シミュレーションとも称す）の実行中、アサーション生成部１ｄが生成したアサーションを用いて、特定部１ｂが特定した測定箇所の活性化回数を測定する。比較部１ｆは、測定部１ｅによる測定結果を期待値と比較する。
【００１５】
次に、検証装置１による検証手順について説明する。
まず、抽出部１ａが、検証対象２から、非同期パスの構造タイプを抽出する。
次に、特定部１ｂが、抽出部１ａが抽出した非同期パスの構造タイプに基づいて、検証対象２に対する測定箇所を特定する。
【００１６】
次に、検出部１ｃが、特定部１ｂが特定した測定箇所間の信号伝播所要サイクル数を検出する。
次に、アサーション生成部１ｄが、検出部１ｃが検出した信号伝播所要サイクル数を用いて、特定部１ｂが特定した測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成する。
【００１７】
そして、検証対象２の非同期シミュレーションが実行されると、測定部１ｅが、非同期シミュレーションの実行中、アサーション生成部１ｄが生成したアサーションを用いて、特定部１ｂが特定した測定箇所の活性化回数を測定する。
【００１８】
次に、比較部１ｆが、測定部１ｅによる測定結果を期待値と比較する。このようにして、検証対象２の検証が行われる。
このように、検証装置１は、非同期パスの構造タイプに基づいて検証対象２に対する測定箇所を特定し、特定した測定箇所間の信号伝播所要サイクル数を検出し、さらに、検出した信号伝播所要サイクル数を用いて、特定した測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成する。さらに、検証装置１は、非同期シミュレーションの実行中、生成したアサーションを用いて、特定した測定箇所の活性化回数を測定する。
【００１９】
これによれば、非同期回路（非同期パスおよび非同期パスの影響を受ける回路）の活性化回数を選択的に測定することができ、検証時間を短縮することが可能となる。
［第２の実施の形態］
次に、第１の実施の形態の検証装置１をより具体的にした実施の形態を、第２の実施の形態として説明する。
【００２０】
図２は、第２の実施の形態に係る検証装置のハードウェアの一例を示す図である。
検証装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
【００２１】
ＲＡＭ１０２は、検証装置１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００２２】
バス１０８に接続されている周辺機器としては、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、および通信インタフェース１０７がある。
【００２３】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、コンピュータ１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００２４】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。モニタ１１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００２５】
入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００２６】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１４に記録されたデータの読み取りを行う。光ディスク１４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００２７】
通信インタフェース１０７は、ネットワーク１０に接続されている。通信インタフェース１０７は、ネットワーク１０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００２８】
以上のようなハードウェアによって、第２の実施の形態の処理機能を実現することができる。なお、検証装置１００の処理機能を、複数の検証装置によって実現するようにしてもよい。
【００２９】
次に、検証装置１００の機能について説明する。
図３は、第２の実施の形態に係る検証装置の機能の一例を示す図である。
検証装置１００は、検証対象格納部１１１と、非同期パス抽出部１１２と、非同期リスト格納部１１３と、アサーション抽出生成部１１４と、アサーション生成用リスト格納部１１４ａと、テンプレート格納部１１４ｂと、アサーション格納部１１５とを有している。
【００３０】
さらに、検証装置１００は、シナリオ調整用シミュレーション実行部１１６と、固定シナリオ格納部１１７と、回数基準値格納部１１８と、非同期シミュレーション実行部１１９と、回数測定結果格納部１２０と、判定部１２１と、判定結果リスト格納部１２２とを有している。
【００３１】
検証対象格納部１１１には、ＬＳＩなどの集積回路を、レジスタ・トランスファ・レベルと呼ばれる論理式で表現した回路データが、検証対象として格納されている。検証対象には、非同期パスが含まれている。ここで、検証対象は、ＤＵＴ（Design Under Test）とも称される。
【００３２】
非同期パス抽出部１１２は、検証対象格納部１１１に格納された検証対象から、非同期パスの信号および非同期パスの構造タイプを抽出して、非同期リストに格納する。非同期リスト格納部１１３は、非同期リストを格納する。
【００３３】
アサーション抽出生成部１１４は、非同期パスの構造タイプに基づいて、検証対象に対する測定箇所を特定する。さらに、アサーション抽出生成部１１４は、特定した測定箇所間の信号伝播所要サイクル数を検証対象から検出する。
【００３４】
そして、アサーション抽出生成部１１４は、特定した測定箇所および検出した信号伝播所要サイクル数をアサーション生成用リストに格納する。ここで、アサーション生成用リストは、アサーション生成用リスト格納部１１４ａに格納される。
【００３５】
さらに、アサーション抽出生成部１１４は、アサーション生成用リストに格納された測定箇所および信号伝播所要サイクル数を、アサーション生成用のテンプレートに埋め込むことで、特定した測定箇所の活性化回数（信号変化回数）を所定のタイミングで測定するアサーションを生成する。そして、アサーション抽出生成部１１４は、生成したアサーションを、アサーション格納部１１５に格納する。
【００３６】
なお、アサーションの記述には、例えば、ＳＶＡ（System Verilog Assertion）、ＰＳＬ（Property Specification Language）などのアサーション記述言語、または、System Verilog, System C, Verilogなどのテストベンチ記述言語が用いられる。
【００３７】
ここで、アサーション生成用のテンプレートは、測定箇所別に用意されている。また、非同期パスの後段がＦＳＭ（Finite State Machine）またはカウンタである場合と、そうではない場合とで、それぞれ別に用意されている。アサーション生成用のテンプレートは、テンプレート格納部１１４ｂに格納されている。
【００３８】
シナリオ調整用シミュレーション実行部１１６は、非同期リスト、および、調整用シナリオを用いて、非同期パス遅延およびクロックジッターを付与しない条件下で、検証対象のシミュレーションを実行する。そして、シナリオ調整用シミュレーション実行部１１６は、シミュレーション結果に基づいて、調整用シナリオを調整してより精度の高い検証が可能な固定シナリオを生成し、生成した固定シナリオを固定シナリオ格納部１１７に格納する。
【００３９】
また、シナリオ調整用シミュレーション実行部１１６は、シミュレーション実行中、アサーション格納部１１５に格納されたアサーションを用いて、アサーション抽出生成部１１４が特定した測定箇所の活性化回数を測定する。そして、シナリオ調整用シミュレーション実行部１１６は、測定結果を回数基準値として回数基準値格納部１１８に格納する。
【００４０】
非同期シミュレーション実行部１１９は、非同期リスト、および、固定シナリオ格納部１１７に格納された固定シナリオを用いて、非同期パス遅延およびクロックジッターをランダムに付与した条件下で、検証対象のシミュレーション（非同期シミュレーションとも称す）を所定回数（例えば、１０００回）実行する。
【００４１】
また、非同期シミュレーション実行部１１９は、非同期シミュレーション実行中、アサーション格納部１１５に格納されたアサーションを用いて、アサーション抽出生成部１１４が特定した測定箇所の活性化回数を測定する。そして、非同期シミュレーション実行部１１９は、測定結果を回数測定結果として回数測定結果格納部１２０に格納する。測定結果は、１回の非同期シミュレーションの実行につき、１つ得られるものである。
【００４２】
判定部１２１は、回数測定結果格納部１２０に格納された回数測定結果と、回数基準値格納部１１８に格納された回数基準値とを比較する。そして、判定部１２１は、有意な差がある測定箇所がない場合には、回数測定結果を「ＯＫ」と判定し、有意な差がある測定箇所がある場合には、回数測定結果を「ＥＲＲＯＲ」と判定する。そして、判定部１２１は、判定結果を判定結果リストにリストアップする。判定結果リスト格納部１２２は、判定結果リストを格納する。
【００４３】
次に、非同期リスト格納部１１３に格納される非同期リストのデータ構造について説明する。
図４は、第２の実施の形態に係る非同期リストの一例を示す図である。
【００４４】
非同期リスト１３０には、非同期パス毎に、送信側フリップフロップ（ＦＦ：Flip Flop）回路の出力信号１３１と、送信側フリップフロップ回路のクロック１３２と、受信側フリップフロップ回路の出力信号１３３と、受信側フリップフロップ回路のクロック１３４と、リコンバージェンス（Reconvergence）信号１３５と、非同期パスの構造タイプ１３６とが格納されている。
【００４５】
非同期パスの構造タイプとしては、２ＤＦＦ，１ＤＦＦ、コンビネーション、リコンバージェンス、ＤＭＵＸがある。ここで、コンビネーションとは、非同期パスの送信側フリップフロップ回路と受信側フリップフロップ回路との間に、組合せ論理回路が接続されている構造である。
【００４６】
リコンバージェンスとは、複数の非同期パスの出力先が、１つのフリップフロップ回路に収斂している構造である。ＤＭＵＸは、多ビット信号の非同期パス（データパスとも称す）と、シングルビット信号の非同期パス（制御パスとも称す）の組合せであり、制御パスの受信側フリップフロップ回路が、データパスの受信側フリップフロップ回路の入力の制御に用いられている構造である。
【００４７】
次に、アサーション生成用リスト格納部１１４ａに格納されるアサーション生成用リストのデータ構造について説明する。
図５は、第２の実施の形態に係るアサーション生成用リストの一例を示す図である。
【００４８】
アサーション生成用リスト１４０には、非同期パス毎に、測定箇所「Ａ」、「Ｂ」、「Ｄ」、「Ｅ」、「Ｈ」を示す信号１４１〜１４５と、測定箇所「Ａ」、「Ｂ」のクロック１４６，１４７と、測定箇所「Ｂ−Ｄ」間（「Ｄ−Ｅ」間）の信号伝播所要サイクル数１４８と、非同期パスの後段がＦＳＭまたはカウンタであることを示すフラグ１４９とが格納されている。
【００４９】
次に、テンプレート格納部１１４ｂに格納されるアサーション生成用のテンプレートについて説明する。
図６は、第２の実施の形態に係るアサーション生成用のテンプレートの一例を示す図である。
【００５０】
テンプレート１５０は、測定箇所「Ａ」および「Ｄ」に対応したものである。テンプレート１５０中の下線部分は、情報の埋め込み欄である。例えば、テンプレート１５０には、測定箇所が埋め込まれる埋め込み欄１５１〜１５３と、信号伝播所要サイクル数が埋め込まれる埋め込み欄１５４とが含まれている。
【００５１】
次に、アサーション格納部１１５に格納されるアサーションについて説明する。
図７は、第２の実施の形態に係るアサーションの一例を示す図である。
アサーション１６０は、図６に示したテンプレート１５０に対応したものである。
【００５２】
次に、判定結果リスト格納部１２２に格納される判定結果リストについて説明する。
図８は、第２の実施の形態に係る判定結果リストの一例を示す図である。
判定結果リスト１７０には、実施されたシミュレーション毎に、「ＯＫ」または「ＥＲＲＯＲ」の判定結果１７１が格納されている。
【００５３】
次に、検証装置１００による検証手順について説明する。
図９は、第２の実施の形態に係る検証手順の一例を示すフローチャートである。
［ステップＳ１１］非同期パス抽出部１１２が、検証対象格納部１１１に格納された検証対象から、非同期パスの信号および非同期パスの構造タイプを抽出して、非同期リストに格納する。
【００５４】
［ステップＳ１２］アサーション抽出生成部１１４が、検証対象に対する測定箇所を特定し、特定した測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成し、生成したアサーションをアサーション格納部１１５に格納する。
【００５５】
［ステップＳ１３］シナリオ調整用シミュレーション実行部１１６が、非同期リスト、および、調整用シナリオを用いて、非同期パス遅延およびクロックジッターを付与しない条件下で、検証対象のシミュレーションを実行する。
【００５６】
そして、シナリオ調整用シミュレーション実行部１１６は、シミュレーション結果に基づいて、固定シナリオを生成し、生成した固定シナリオを固定シナリオ格納部１１７に格納する。
【００５７】
また、シナリオ調整用シミュレーション実行部１１６は、シミュレーション実行中、アサーション格納部１１５に格納されたアサーションを用いて、アサーション抽出生成部１１４が特定した測定箇所の活性化回数を測定する。そして、シナリオ調整用シミュレーション実行部１１６は、測定結果を回数基準値として回数基準値格納部１１８に格納する。
【００５８】
［ステップＳ１４］非同期シミュレーション実行部１１９が、非同期リスト、および、固定シナリオ格納部１１７に格納された固定シナリオを用いて、非同期シミュレーションを所定回数実行する。
【００５９】
また、非同期シミュレーション実行部１１９は、非同期シミュレーション実行中、アサーション格納部１１５に格納されたアサーションを用いて、アサーション抽出生成部１１４が特定した測定箇所の活性化回数を測定する。そして、非同期シミュレーション実行部１１９は、測定結果を回数測定結果として回数測定結果格納部１２０に格納する。
【００６０】
［ステップＳ１５］判定部１２１が、回数測定結果格納部１２０に格納された回数測定結果と、回数基準値格納部１１８に格納された回数基準値とを比較する。そして、判定部１２１は、判定結果を判定結果リストに格納して処理を終了する。
【００６１】
次に、図９のステップＳ１２のアサーション生成手順について詳細に説明する。
図１０、図１１は、第２の実施の形態に係るアサーション生成手順の一例を示すフローチャートである。まず、図１０を用いて説明する。
【００６２】
［ステップＳ２１］アサーション抽出生成部１１４が、非同期リスト格納部１１３の非同期リストから非同期パスを１つ選択する。
［ステップＳ２２］アサーション抽出生成部１１４が、選択した非同期パスに対応する送信側フリップフロップ回路の出力信号を非同期リストから抽出し、測定箇所「Ａ」としてアサーション生成用リストに格納する。
【００６３】
［ステップＳ２３］アサーション抽出生成部１１４が、選択した非同期パスに対応する受信側フリップフロップ回路の出力信号を非同期リストから抽出し、測定箇所「Ｂ」としてアサーション生成用リストに格納する。
【００６４】
［ステップＳ２４］アサーション抽出生成部１１４が、測定箇所「Ｂ」を起点として、出力先信号抽出処理を実行し、終点および起点−終点信号伝播所要サイクル数を検出する。
【００６５】
［ステップＳ２５］アサーション抽出生成部１１４が、出力先信号抽出処理により検出した終点を、測定箇所「Ｄ」としてアサーション生成用リストに格納する。
［ステップＳ２６］アサーション抽出生成部１１４が、出力先信号抽出処理により検出した起点−終点信号伝播所要サイクル数を、測定箇所「Ｂ−Ｄ」間の信号伝播所要サイクル数としてアサーション生成用リストに格納する。
【００６６】
［ステップＳ２７］アサーション抽出生成部１１４が、測定箇所「Ｄ」に対して、ＦＳＭ有無の判定処理を実行する。
［ステップＳ２８］アサーション抽出生成部１１４が、選択した非同期パスの構造タイプを非同期リストから抽出し、抽出した構造タイプがコンビネーションであるかどうかを判定する。コンビネーションである場合、アサーション抽出生成部１１４は、処理をステップＳ２９に進める。コンビネーションではない場合、アサーション抽出生成部１１４は、処理をステップＳ３０に進める。
【００６７】
［ステップＳ２９］アサーション抽出生成部１１４が、測定箇所「Ｈ」の抽出処理を実行する。
［ステップＳ３０］アサーション抽出生成部１１４が、測定箇所「Ｄ」に対して、リコンバージェンスレジスタ判定処理を実行する。
【００６８】
ここからは、図１１を用いて説明を行う。
［ステップＳ４１］アサーション抽出生成部１１４が、リコンバージェンスレジスタ判定処理の結果、リコンバージェンスレジスタと判定されたかどうかを判定する。リコンバージェンスレジスタと判定された場合、アサーション抽出生成部１１４は、処理をステップＳ４２に進める。リコンバージェンスレジスタと判定されなかった場合、アサーション抽出生成部１１４は、処理をステップＳ４６に進める。
【００６９】
［ステップＳ４２］アサーション抽出生成部１１４が、測定箇所「Ｄ」を起点として、出力先信号抽出処理を実行し、終点および起点−終点信号伝播所要サイクル数を検出する。
【００７０】
［ステップＳ４３］アサーション抽出生成部１１４が、出力先信号抽出処理により検出した終点を、測定箇所「Ｅ」としてアサーション生成用リストに格納する。
［ステップＳ４４］アサーション抽出生成部１１４が、出力先信号抽出処理により検出した起点−終点信号伝播所要サイクル数を、測定箇所「Ｄ−Ｅ」間の信号伝播所要サイクル数としてアサーション生成用リストに格納する。
【００７１】
［ステップＳ４５］アサーション抽出生成部１１４が、測定箇所「Ｅ」に対して、ＦＳＭ有無の判定処理を実行する。
［ステップＳ４６］アサーション抽出生成部１１４が、非同期リストから非同期パスを全て選択したかどうかを判定する。全て選択した場合、アサーション抽出生成部１１４は、処理をステップＳ４７に進める。全て選択していない場合、アサーション抽出生成部１１４は、処理をステップＳ２１に戻す。
【００７２】
［ステップＳ４７］アサーション抽出生成部１１４が、アサーション生成用リストに格納された測定箇所および信号伝播所要サイクル数を、テンプレート格納部１１４ｂに格納されたアサーション生成用のテンプレートに埋め込むことで、アサーションを生成し、生成したアサーションをアサーション格納部１１５に格納する。
【００７３】
［ステップＳ４８］アサーション抽出生成部１１４が、アサーション生成用リストに情報が格納された非同期パスの全てについて、アサーションを生成したかどうかを判定する。非同期パスの全てについてアサーションを生成した場合、アサーション抽出生成部１１４は、処理を終了する。アサーションを生成していない非同期パスがある場合、アサーション抽出生成部１１４は、処理をステップＳ４７に戻す。
【００７４】
次に、図１０のステップＳ２４および図１１のステップＳ４２の出力先信号抽出処理について詳細に説明する。
図１２は、第２の実施の形態に係る出力信号抽出処理の一例を示すフローチャートである。
【００７５】
［ステップＳ５１］アサーション抽出生成部１１４が、検証対象を解析し、起点の次段に接続されているフリップフロップ回路および出力端子の出力信号を、終点として検出する。
【００７６】
［ステップＳ５２］アサーション抽出生成部１１４が、検出した終点の１つを選択する。
［ステップＳ５３］アサーション抽出生成部１１４が、選択した終点が出力端子の出力信号かどうかを判定する。出力端子の出力信号である場合、アサーション抽出生成部１１４は、処理をステップＳ５７に進める。出力端子の出力信号ではない場合、アサーション抽出生成部１１４は、処理をステップＳ５４に進める。
【００７７】
［ステップＳ５４］アサーション抽出生成部１１４が、検証対象を解析し、起点から選択した終点に至る信号経路に接続されている組合せ論理回路を抽出する。
［ステップＳ５５］アサーション抽出生成部１１４が、起点から選択した終点に至る信号経路に組合せ論理回路が抽出されたかどうかを判定する。組合せ論理回路が抽出された場合、アサーション抽出生成部１１４は、処理をステップＳ５７に進める。組合せ論理回路が抽出されなかった場合、アサーション抽出生成部１１４は、処理をステップＳ５６に進める。
【００７８】
［ステップＳ５６］アサーション抽出生成部１１４が、選択した終点を起点にして、検証対象を解析し、起点の次段に接続されているフリップフロップ回路および出力端子の出力信号を、終点として検出し、処理をステップＳ５２に戻す。
【００７９】
［ステップＳ５７］アサーション抽出生成部１１４が、検証対象を解析し、起点から選択した終点に至る信号経路に接続されているフリップフロップ回路の数をカウントし、カウント結果を、起点−終点信号伝播所要サイクル数として検出する。
【００８０】
［ステップＳ５８］アサーション抽出生成部１１４が、検出した全ての終点を選択したかどうかを判定する。全ての終点を選択した場合、アサーション抽出生成部１１４は、処理を終了する。選択していない終点がある場合、アサーション抽出生成部１１４は、処理をステップＳ５２に戻す。
【００８１】
次に、図１０のステップＳ２７および図１１のステップＳ４５のＦＳＭ有無の判定処理について詳細に説明する。
測定箇所Ｄ，Ｅについては、対応するフリップフロップ回路が、ＦＳＭまたはカウンタであるかどうかを判定する必要がある。測定箇所Ｄ，Ｅに対応するフリップフロップ回路がＦＳＭまたはカウンタの場合、非同期パスから出力された信号に起因して、どのステートからどのステートに変化したかが重要である。
【００８２】
それは、どのステートをとるかによって、後段の動作する回路が異なってくるため、ただ「何らかの変化をした」という見方ではなく、「○○ステートから△△ステートへ変化した」という見方をしないと、意図した動作が発生したのか把握できないためである。なお、カウンタはＦＳＭの一種として扱うことができる。
【００８３】
図１３は、第２の実施の形態に係るＦＳＭ有無の判定処理の一例を示すフローチャートである。
［ステップＳ６１］アサーション抽出生成部１１４が、測定箇所の１つを選択する。
【００８４】
［ステップＳ６２］アサーション抽出生成部１１４が、選択した測定箇所の信号ビット幅を、検証対象から抽出する。
［ステップＳ６３］アサーション抽出生成部１１４が、抽出した信号ビット幅が２以上であるかどうかを判定する。信号ビット幅が２以上である場合、アサーション抽出生成部１１４は、処理をステップＳ６４に進める。信号ビット幅が２以上ではない場合、アサーション抽出生成部１１４は、処理をステップＳ６８に進める。
【００８５】
［ステップＳ６４］アサーション抽出生成部１１４が、検証対象を解析し、選択した測定箇所の次段に接続されているフリップフロップ回路の出力信号を抽出する。
［ステップＳ６５］アサーション抽出生成部１１４が、抽出した出力信号に、選択した測定箇所が含まれているかどうかを判定する。選択した測定箇所が含まれている場合、アサーション抽出生成部１１４は、処理をステップＳ６６に進める。選択した測定箇所が含まれていない場合、アサーション抽出生成部１１４は、処理をステップＳ６８に進める。
【００８６】
［ステップＳ６６］アサーション抽出生成部１１４が、選択した測定箇所に対応するフリップフロップ回路は、ＦＳＭであると判定する。
［ステップＳ６７］アサーション抽出生成部１１４が、アサーション生成用リストに、非同期パスの後段がＦＳＭまたはカウンタであることを示すフラグとして「True」を格納する。
【００８７】
［ステップＳ６８］アサーション抽出生成部１１４が、選択した測定箇所に対応するフリップフロップ回路は、ＦＳＭではないと判定する。
［ステップＳ６９］アサーション抽出生成部１１４が、アサーション生成用リストに、非同期パスの後段がＦＳＭまたはカウンタではないことを示すフラグとして「False」を格納する。
【００８８】
［ステップＳ７０］アサーション抽出生成部１１４が、全ての測定箇所を選択したかどうかを判定する。全ての測定箇所を選択した場合、アサーション抽出生成部１１４は、処理を終了する。選択していない測定箇所がある場合、アサーション抽出生成部１１４は、処理をステップＳ６１に戻す。
【００８９】
次に、図１０のステップＳ２９の測定箇所「Ｈ」の抽出処理について詳細に説明する。
図１４は、第２の実施の形態に係る測定箇所の抽出処理の一例を示すフローチャートである。
【００９０】
［ステップＳ８１］アサーション抽出生成部１１４が、検証対象を解析し、測定箇所「Ａ」と測定箇所「Ｂ」との間に接続されている組合せ論理回路の入力信号を抽出する。
［ステップＳ８２］アサーション抽出生成部１１４が、抽出した入力信号の１つを選択する。
【００９１】
［ステップＳ８３］アサーション抽出生成部１１４が、選択した入力信号が測定箇所「Ａ」であるかどうかを判定する。測定箇所「Ａ」である場合、アサーション抽出生成部１１４は、処理をステップＳ８８に進める。測定箇所「Ａ」ではない場合、アサーション抽出生成部１１４は、処理をステップＳ８４に進める。
【００９２】
［ステップＳ８４］アサーション抽出生成部１１４が、選択した入力信号が、フリップフロップ回路または入力端子の出力信号であるかどうかを判定する。フリップフロップ回路または入力端子の出力信号である場合、アサーション抽出生成部１１４は、処理をステップＳ８５に進める。フリップフロップ回路または入力端子の出力信号ではない場合、アサーション抽出生成部１１４は、処理をステップＳ８６に進める。
【００９３】
［ステップＳ８５］アサーション抽出生成部１１４が、選択した入力信号を、測定箇所「Ｈ」として、アサーション生成用リストに格納する。
［ステップＳ８６］アサーション抽出生成部１１４が、検証対象を解析し、選択した入力信号の前段に接続されているフリップフロップ回路および入力端子の出力信号を抽出する。
【００９４】
［ステップＳ８７］アサーション抽出生成部１１４が、抽出したフリップフロップ回路および入力端子の出力信号を測定箇所「Ｈ」として、アサーション生成用リストに格納する。
【００９５】
［ステップＳ８８］アサーション抽出生成部１１４が、全ての入力信号を選択したかどうかを判定する。全ての入力信号を選択した場合、アサーション抽出生成部１１４は、処理を終了する。選択していない入力信号がある場合、アサーション抽出生成部１１４は、処理をステップＳ８２に戻す。
【００９６】
次に、図１０のステップＳ３０のリコンバージェンスレジスタ判定処理について詳細に説明する。
図１５は、第２の実施の形態に係るリコンバージェンスレジスタ判定処理の一例を示すフローチャートである。
【００９７】
［ステップＳ９１］アサーション抽出生成部１１４が、測定箇所「Ｄ」の１つを選択する。
［ステップＳ９２］アサーション抽出生成部１１４が、検証対象を解析し、測定箇所「Ｄ」に対応するフリップフロップ回路の前段に接続されているフリップフロップ回路および入力端子の出力信号を抽出する。
【００９８】
［ステップＳ９３］アサーション抽出生成部１１４が、抽出した出力信号と一致する受信側フリップフロップ回路の出力信号があるかどうか、非同期リストを検索する。
［ステップＳ９４］非同期リストを検索した結果、一致する受信側フリップフロップ回路の出力信号が存在した場合、アサーション抽出生成部１１４は、処理をステップＳ９５に進める。一致するリコンバージェンス信号が存在しなかった場合、アサーション抽出生成部１１４は、処理をステップＳ９６に進める。
【００９９】
［ステップＳ９５］アサーション抽出生成部１１４が、選択した測定箇所「Ｄ」に対応するフリップフロップ回路を、リコンバージェンスレジスタと判定する。
［ステップＳ９６］アサーション抽出生成部１１４が、全ての測定箇所「Ｄ」を選択したかどうかを判定する。全ての測定箇所「Ｄ」を選択した場合、アサーション抽出生成部１１４は、処理を終了する。選択していない測定箇所「Ｄ」がある場合、アサーション抽出生成部１１４は、処理をステップＳ９１に戻す。
【０１００】
次に、図９のステップＳ１５の判定の手順について詳細に説明する。
図１６は、第２の実施の形態に係る判定の手順の一例を示すフローチャートである。
［ステップＳ１０１］判定部１２１が、回数測定結果格納部１２０に格納された回数測定結果の１つを選択する。
【０１０１】
［ステップＳ１０２］判定部１２１が、選択した回数測定結果を、回数基準値格納部１１８に格納された回数基準値と、「ｔ」検定などの統計処理を用いて比較する。
［ステップＳ１０３］判定部１２１が、回数測定結果を回数基準値と比較した結果、有意な差を含む測定箇所があるかどうかを判定する。有意な差を含む測定箇所がある場合、判定部１２１は、処理をステップＳ１０５に進める。有意な差を含む測定箇所が全くない場合、判定部１２１は、処理をステップＳ１０４に進める。
【０１０２】
［ステップＳ１０４］判定部１２１が、判定結果リストに、判定結果として「ＯＫ」を格納する。
［ステップＳ１０５］判定部１２１が、判定結果リストに、判定結果として「ＥＲＲＯＲ」を格納する。
【０１０３】
［ステップＳ１０６］判定部１２１が、回数測定結果格納部１２０に格納された全ての回数測定結果を選択したかどうかを判定する。全ての回数測定結果を選択した場合、判定部１２１は、処理を終了する。選択していない回数測定結果がある場合、判定部１２１は、処理をステップＳ１０１に戻す。
【０１０４】
次に、アサーション抽出生成部１１４が特定する検証対象に対する測定箇所について、具体例１〜５を用いて説明する。
図１７は、第２の実施の形態に係る具体例１の回路ブロックを示す図である。
【０１０５】
回路ブロック２１０は、２ＤＦＦまたは１ＤＦＦの構造タイプを備える非同期パスを含む回路ブロックである。回路ブロック２１０は、異なるクロックドメインに属する、送信側フリップフロップ回路（sig0＿s）と、受信側フリップフロップ回路（sig0＿d）とを有している。
【０１０６】
受信側フリップフロップ回路（sig0＿d）の後段には、組合せ論理回路２１１を介してフリップフロップ回路（sig0＿d＿1）が接続されている。さらに、受信側フリップフロップ回路（sig0＿d）の後段には、組合せ論理回路２１２を介してフリップフロップ回路（sig0＿d＿2）が接続されている。
【０１０７】
さらに、受信側フリップフロップ回路（sig0＿d）の後段には、組合せ論理回路を介さずにフリップフロップ回路（sig0＿d＿3）が接続されている。フリップフロップ回路（sig0＿d＿3）の後段には、組合せ論理回路２１３を介してフリップフロップ回路（sig0＿d＿4）が接続されている。
【０１０８】
回路ブロック２１０では、送信側フリップフロップ回路（sig0＿s）の出力信号２１４が測定箇所「Ａ」とされ、受信側フリップフロップ回路（sig0＿d）の出力信号２１５が測定箇所「Ｂ」とされる。さらに、回路ブロック２１０では、フリップフロップ回路（sig0＿d＿1）、（sig0＿d＿2）、（sig0＿d＿4）の出力信号２１６〜２１８が測定箇所「Ｄ」とされる。
【０１０９】
また、出力信号２１６における測定箇所「Ｂ−Ｄ」間の信号伝播所要サイクル数は、「１」であり、出力信号２１７における測定箇所「Ｂ−Ｄ」間の信号伝播所要サイクル数は、「１」であり、出力信号２１８における測定箇所「Ｂ−Ｄ」間の信号伝播所要サイクル数は、「２」である。
【０１１０】
なお、回路ブロック２１０は、ＤＭＵＸを構成しないマルチビット信号も含む。この場合、測定箇所「Ａ」は、ビット毎に分割して定義される。
図１８は、第２の実施の形態に係る具体例２の回路ブロックを示す図である。
【０１１１】
回路ブロック２２０は、コンビネーションの構造タイプを備える非同期パスを含む回路ブロックである。回路ブロック２２０は、異なるクロックドメインに属する、送信側フリップフロップ回路（sig1＿s）と、受信側フリップフロップ回路（sig1＿d）とを有している。
【０１１２】
送信側フリップフロップ回路（sig1＿s）と受信側フリップフロップ回路（sig1＿d）との間には、組合せ論理回路２２１が接続されている。組合せ論理回路２２１の前段には、送信側フリップフロップ回路（sig1＿s）とは異なるクロックドメインに属するフリップフロップ回路（comb1）、（comb2）が接続されている。
【０１１３】
受信側フリップフロップ回路（sig1＿d）の後段には、組合せ論理回路２２２を介してフリップフロップ回路（sig1＿d＿1）が接続されている。さらに、受信側フリップフロップ回路（sig1＿d）の後段には、組合せ論理回路２２３を介してフリップフロップ回路（sig1＿d＿2）が接続されている。
【０１１４】
さらに、受信側フリップフロップ回路（sig1＿d）の後段には、組合せ論理回路を介さずにフリップフロップ回路（sig1＿d＿3）が接続されている。フリップフロップ回路（sig1＿d＿3）の後段には、組合せ論理回路２２４を介してフリップフロップ回路（sig1＿d＿4）が接続されている。
【０１１５】
回路ブロック２２０では、送信側フリップフロップ回路（sig1＿s）の出力信号２２５が測定箇所「Ａ」とされ、受信側フリップフロップ回路（sig1＿d）の出力信号２２６が測定箇所「Ｂ」とされる。さらに、フリップフロップ回路（sig1＿d＿1）、（sig1＿d＿2）、（sig1＿d＿4）の出力信号２２７〜２２９が測定箇所「Ｄ」とされる。さらに、フリップフロップ回路（comb1）、（comb2）の出力信号２３０，２３１が測定箇所「Ｈ」とされる。
【０１１６】
また、出力信号２２７における測定箇所「Ｂ−Ｄ」間の信号伝播所要サイクル数は、「１」であり、出力信号２２８における測定箇所「Ｂ−Ｄ」間の信号伝播所要サイクル数は、「１」であり、出力信号２２９における測定箇所「Ｂ−Ｄ」間の信号伝播所要サイクル数は、「２」である。
【０１１７】
なお、回路ブロック２２０では、アサーションの生成において、測定箇所「Ｈ」の変化も含めてカバーアサーションを生成する。
図１９は、第２の実施の形態に係る具体例３の回路ブロックを示す図である。
【０１１８】
回路ブロック２４０は、リコンバージェンスの構造タイプを備える非同期パスを含む回路ブロックである。回路ブロック２４０は、異なるクロックドメインに属する、送信側フリップフロップ回路（sig2＿s）と、受信側フリップフロップ回路（sig2＿d）とを有している。
【０１１９】
さらに、受信側フリップフロップ回路（sig2＿d）の後段には、組合せ論理回路２４１を介してフリップフロップ回路（sig4）が接続されている。組合せ論理回路２４１の前段には、他の非同期パスの受信側フリップフロップ回路（sig3＿d）および送信側フリップフロップ回路（sig3＿s）が接続されている。
【０１２０】
さらに、フリップフロップ回路（sig4）の後段には、組合せ論理回路２４２を介してフリップフロップ回路（sig4＿d＿1）が接続されている。さらに、フリップフロップ回路（sig4）の後段には、組合せ論理回路２４３を介してフリップフロップ回路（sig4＿d＿2）が接続されている。
【０１２１】
さらに、フリップフロップ回路（sig4）の後段には、組合せ論理回路を介さずにフリップフロップ回路（sig4＿d＿3）が接続されている。フリップフロップ回路（sig4＿d＿3）の後段には、組合せ論理回路２４４を介してフリップフロップ回路（sig4＿d＿4）が接続されている。
【０１２２】
回路ブロック２４０では、フリップフロップ回路（sig4）が、リコンバージェンスレジスタとされる。さらに、回路ブロック２４０では、送信側フリップフロップ回路（sig2＿s）、（sig3＿s）の出力信号２４５，２４６が測定箇所「Ａ」とされ、受信側フリップフロップ回路（sig2＿d）,（sig3＿d）の出力信号２４７，２４８が測定箇所「Ｂ」とされる。
【０１２３】
さらに、フリップフロップ回路（sig4）の出力信号２４９が測定箇所「Ｄ」とされる。さらに、フリップフロップ回路（sig4＿d＿1）、（sig4＿d＿2）、（sig4＿d＿4）の出力信号２５０〜２５２が測定箇所「Ｅ」とされる。
【０１２４】
また、出力信号２５０における測定箇所「Ｄ−Ｅ」間の信号伝播所要サイクル数は、「１」であり、出力信号２５１における測定箇所「Ｄ−Ｅ」間の信号伝播所要サイクル数は、「１」であり、出力信号２５２における測定箇所「Ｄ−Ｅ」間の信号伝播所要サイクル数は、「２」である。
【０１２５】
図２０は、第２の実施の形態に係る具体例４の回路ブロックを示す図である。
回路ブロック２６０は、ＤＭＵＸの構造タイプを備える非同期パスを含む回路ブロックである。回路ブロック２６０は、多ビット信号の非同期パスに含まれる、異なるクロックドメインに属する、送信側フリップフロップ回路（data＿s）と、受信側フリップフロップ回路（data＿d）とを有している。
【０１２６】
さらに、回路ブロック２６０は、シングルビット信号の非同期パスに含まれる、異なるクロックドメインに属する、送信側フリップフロップ回路（ctrl＿s）と、受信側フリップフロップ回路（ctrl＿d）とを有している。受信側フリップフロップ回路（ctrl＿d）は、受信側フリップフロップ回路（data＿d）の入力の制御に用いられている。
【０１２７】
受信側フリップフロップ回路（data＿d）の後段には、組合せ論理回路２６１を介してフリップフロップ回路（data＿d＿1）が接続されている。受信側フリップフロップ回路（ctrl＿d）の後段には、フリップフロップ回路（ctrl＿d＿1）が接続されている。さらに、フリップフロップ回路（ctrl＿d＿1）の後段には、組合せ論理回路２６２を介してフリップフロップ回路（ctrl＿d＿2）が接続されている。
【０１２８】
回路ブロック２６０では、送信側フリップフロップ回路（data＿s）、（ctrl＿s）の出力信号２６３，２６４が測定箇所「Ａ」とされる。さらに、受信側フリップフロップ回路（data＿d）、（ctrl＿d）の出力信号２６５，２６６が測定箇所「Ｂ」とされる。また、出力信号２６５は、測定箇所「Ｄ」ともされる。さらに、フリップフロップ回路（data＿d＿1）、（ctrl＿d＿2）の出力信号２６７，２６８が測定箇所「Ｄ」とされる。
【０１２９】
また、出力信号２６５における測定箇所「Ｂ−Ｄ」間の信号伝播所要サイクル数は、「１」であり、出力信号２６７における測定箇所「Ｂ−Ｄ」間の信号伝播所要サイクル数は、「１」であり、出力信号２６８における測定箇所「Ｂ−Ｄ」間の信号伝播所要サイクル数は、「２」である。
【０１３０】
図２１は、第２の実施の形態に係る具体例５の回路ブロックを示す図である。
回路ブロック２７０は、異なるクロックドメインに属する、送信側フリップフロップ回路（sig5＿s）と、受信側フリップフロップ回路（sig5＿d）とを有している。さらに、受信側フリップフロップ回路（sig5＿d）の後段には、組合せ論理回路２７１を介してフリップフロップ回路（sig5＿d＿1）が接続されている。フリップフロップ回路（sig5＿d＿1）の出力信号２７４は多ビット信号であり、組合せ論理回路２７１を経由して、フリップフロップ回路（sig5＿d＿1）に再び入力されている。
【０１３１】
回路ブロック２７０では、送信側フリップフロップ回路（sig5＿s）の出力信号２７２が測定箇所「Ａ」とされ、受信側フリップフロップ回路（sig5＿d）の出力信号２７３が測定箇所「Ｂ」とされる。さらに、回路ブロック２７０では、フリップフロップ回路（sig5＿d＿1）の出力信号２７４が測定箇所「Ｄ」とされる。また、測定箇所「Ｄ」は、ＦＳＭであるとされる。
【０１３２】
以上説明してきたように、検証装置１００は、非同期パスの構造タイプに基づいて検証対象に対する測定箇所を特定し、特定した測定箇所間の信号伝播所要サイクル数を検出する。さらに、検出した信号伝播所要サイクル数を用いて、特定した測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成する。検証装置１００は、非同期シミュレーションの実行中、生成したアサーションを用いて、特定した測定箇所の活性化回数を測定する。
【０１３３】
これによれば、非同期回路の活性化回数を選択的に測定することができ、検証時間を短縮することが可能となる。
さらに、検証装置１００は、測定箇所別に用意されたアサーション生成用のテンプレートに、特定した測定箇所および検出した信号伝播所要サイクル数を埋め込むことで、測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成する。
【０１３４】
これによれば、測定箇所に応じたテンプレートを選択することでアサーションを生成することができるため、複雑な処理を施すことなくアサーションを生成することが可能となる。
【０１３５】
さらに、検証装置１００は、回数測定結果を、統計処理を用いて回数基準値と比較する。これによれば、判定の精度を向上させることが可能となる。
すなわち、非同期シミュレーション中、非同期パス遅延およびクロックジッターの影響で、パスの変化回数が多少変化する（ゆらぐ）ことがあるが、シナリオの意図から外れた動作になっていない場合もある。ここで、シナリオの意図から外れるとは、シミュレーションで動かすつもりであった機能が、動かなかったことを指す。
【０１３６】
回数測定結果を回数基準値と単純に一致比較する方法では、このようなシナリオの意図から外れた動作になっていない場合であっても、パスの変化回数が多少変化していれば、「ＥＲＲＯＲ」と判定されてしまう。しかしながら、検証装置１００では、回数測定結果を統計処理を用いて回数基準値と比較するので、パスの変化回数が多少変化していても、シナリオの意図から外れた動作になっていない場合には、「ＯＫ」と判定することが可能となる。
【０１３７】
［第３の実施の形態］
次に、第１の実施の形態の検証装置１をより具体的にした他の実施の形態を、第３の実施の形態として説明する。
【０１３８】
図２２は、第３の実施の形態に係る検証装置の機能の一例を示す図である。
検証装置１００ａは、第１の実施の形態の検証装置１００に対して、シナリオ調整用シミュレーション実行部１１６、固定シナリオ格納部１１７、回数基準値格納部１１８、判定部１２１、判定結果リスト格納部１２２を削除し、回数目標値設定部１８０、ランダムシナリオ格納部１８１、回数目標値格納部１８２、シナリオ網羅性チェック部１８３、グループ平均値格納部１８４、網羅性判定結果リスト格納部１８５を追加したものに相当する。
【０１３９】
回数目標値設定部１８０は、アサーション抽出生成部１１４が特定した測定箇所に対して、回数目標値を設定し、回数目標値格納部１８２に格納する。回数目標値は、非同期シミュレーションにおいて期待する最低限の変化回数である。回数目標値は、例えば、「１回」と設定される。また、回数目標値は、外部から設定することもできる。
【０１４０】
ランダムシナリオ１８１には、ランダムシナリオが格納されている。非同期シミュレーション実行部１１９は、このランダムシナリオを用いて、検証対象の非同期シミュレーションを実行する。
【０１４１】
シナリオ網羅性チェック部１８３は、回数測定結果格納部１２０に格納された回数測定結果を、活性化回数に基づいて複数のグループに分類し、各グループの回数測定結果の平均値を、回数目標値１８２に格納された回数目標値と比較する。各グループの回数測定結果の平均値は、グループ平均値格納部１８４に格納される。
【０１４２】
そして、シナリオ網羅性チェック部１８３は、測定箇所のそれぞれについて、複数のグループのうち少なくとも１つのグループの回数測定結果の平均値が、回数目標値を満たしているかどうかを判定する。さらに、シナリオ網羅性チェック部１８３は、判定結果を網羅性判定結果リストに格納する。網羅性判定結果リストは、網羅性判定結果リスト格納部１８５に格納される。
【０１４３】
なお、検証装置１００ａの処理機能は、図２に示したハードウェアにより実現することができる。
次に、網羅性判定結果リストのデータ構造について説明する。
【０１４４】
図２３は、第３の実施の形態に係る網羅性判定結果リストの一例を示す図である。
網羅性判定結果リスト２８０には、非同期パス毎に、測定箇所「Ｂ」、「Ｄ」、「Ｅ」を示す信号２８１〜２８３と、測定箇所「Ｂ」のクロック２８４と、非同期パスの後段がＦＳＭまたはカウンタであることを示すフラグ２８５と、ＦＳＭまたはカウンタの遷移状態２８６とが格納されている。
【０１４５】
さらに、網羅性判定結果リスト２８０には、各測定箇所に対して、回数目標値２８７と、各グループの回数測定結果の平均値２８８，２８９と、各グループの判定結果２９０，２９１と、全グループの判定結果をマージした判定結果２９２とが格納されている。なお、図中の「ＥＲＲ」は、「ＥＲＲＯＲ」を意図する。
【０１４６】
次に、シナリオ網羅性チェック部１８３による判定手順について説明する。
図２４、図２５は、第３の実施の形態に係る判定手順の一例を示すフローチャートである。まず、図２４を用いて説明を行う。
【０１４７】
［ステップＳ１１１］シナリオ網羅性チェック部１８３が、回数測定結果格納部１２０から、回数測定結果の１つを選択する。
［ステップＳ１１２］シナリオ網羅性チェック部１８３が、Ｎ（作成済みグループ数）が、「０」であるかどうかを判定する。「０」である場合、シナリオ網羅性チェック部１８３は、処理をステップＳ１１３に進める。「０」ではない場合、シナリオ網羅性チェック部１８３は、処理をステップＳ１１４に進める。
【０１４８】
［ステップＳ１１３］シナリオ網羅性チェック部１８３が、選択した回数測定結果を、グループ「１」の平均値とする。
［ステップＳ１１４］シナリオ網羅性チェック部１８３が、ｎ（グループ番号）を「１」とする。
【０１４９】
［ステップＳ１１５］シナリオ網羅性チェック部１８３が、選択した回数測定結果を、測定箇所毎に、グループｎの平均値と比較する。比較には、例えば、ｔ検討などの統計処理が用いられる。
【０１５０】
［ステップＳ１１６］選択した回数測定結果をグループｎの平均値と比較した結果、有意な差がある測定箇所がある場合、シナリオ網羅性チェック部１８３は、処理をステップＳ１１８に進める。有意な差がある測定箇所が全くない場合、シナリオ網羅性チェック部１８３は、処理をステップＳ１１７に進める。
【０１５１】
［ステップＳ１１７］シナリオ網羅性チェック部１８３が、選択した回数測定結果をグループｎの回数測定結果に加えた上で、グループｎの回数測定結果の平均値を算出し、算出した平均値を、グループｎの平均値とする。
【０１５２】
［ステップＳ１１８］シナリオ網羅性チェック部１８３が、ｎがＮであるかどうかを判定する。Ｎである場合、シナリオ網羅性チェック部１８３は、処理をステップＳ１２０に進める。Ｎではない場合、シナリオ網羅性チェック部１８３は、処理をステップＳ１１９に進める。
【０１５３】
［ステップＳ１１９］シナリオ網羅性チェック部１８３が、ｎを「ｎ＋１」として、処理をステップＳ１１５に戻す。
［ステップＳ１２０］シナリオ網羅性チェック部１８３が、選択した回数測定結果を、グループ「Ｎ＋１」の平均値とする。
【０１５４】
［ステップＳ１２１］シナリオ網羅性チェック部１８３が、回数測定結果を全て選択したかどうかを判定する。全て選択した場合、シナリオ網羅性チェック部１８３は、処理をステップＳ１３１に進める。選択していない回数測定結果がある場合、シナリオ網羅性チェック部１８３は、処理をステップＳ１１１に戻す。
【０１５５】
ここからは、図２５を用いて説明を進める。
［ステップＳ１３１］シナリオ網羅性チェック部１８３が、ｎを「１」とする。
［ステップＳ１３２］シナリオ網羅性チェック部１８３が、グループｎの回数測定結果の平均値を、測定箇所毎に、回数目標値以上であるかを比較する。
【０１５６】
［ステップＳ１３３］シナリオ網羅性チェック部１８３が、ｎがＮであるかどうかを判定する。Ｎである場合、シナリオ網羅性チェック部１８３は、処理をステップＳ１３５に進める。Ｎではない場合、シナリオ網羅性チェック部１８３は、処理をステップＳ１３４に進める。
【０１５７】
［ステップＳ１３４］シナリオ網羅性チェック部１８３が、ｎを「ｎ＋１」として、処理をステップＳ１３２に戻す。
［ステップＳ１３５］シナリオ網羅性チェック部１８３が、測定箇所のそれぞれについて、複数のグループのうち少なくとも１つのグループの回数測定結果の平均値が、回数目標値以上であるかどうかを判定して処理を終了する。
【０１５８】
以上説明してきたように、検証装置１００ａでは、回数測定結果を複数のグループに分類し、測定箇所のそれぞれに対して、複数のグループのうち少なくとも１つのグループの回数測定結果の平均値が、回数目標値以上であるかどうかを判定する。これによれば、測定箇所が活性されたかどうかを網羅的にチェックすることが可能となる。
【０１５９】
また、検証装置１００ａは、第２の実施の形態の検証装置１００と同様に、非同期回路の活性化回数を選択的に測定することができ、検証時間を短縮することが可能となる。また、検証装置１００ａは、測定箇所に応じたテンプレートを選択することでアサーションを生成することができるため、複雑な処理を施すことなくアサーションを生成することが可能となる。
【０１６０】
なお、第１〜第３の実施の形態の上記の処理機能は、コンピュータによって実現することができる。その場合、検証装置１，１００，１００ａが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１６１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１６２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１６３】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０１６４】
以上説明した第１〜第３の実施の形態を含む実施の形態に関し、さらに以下の付記を開示する。
（付記１）  検証対象から非同期パスの構造タイプを抽出する抽出部と、
前記抽出部が抽出した非同期パスの構造タイプに基づいて、前記検証対象に対する第１および第２の測定箇所を含む複数の測定箇所を特定する特定部と、
前記特定部が特定した前記第１および第２の測定箇所間の信号伝播所要サイクル数を前記検証対象から検出する検出部と、
前記検出部が検出した信号伝播所要サイクル数を用いて、前記特定部が特定した前記複数の測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成するアサーション生成部と、
非同期パス遅延およびクロックジッターを付与した条件下で実行される前記検証対象のシミュレーションの実行中、前記アサーション生成部が生成したアサーションを用いて、前記特定部が特定した前記複数の測定箇所の活性化回数を測定する測定部と、
前記測定部による測定結果を期待値と比較する比較部と、
を有することを特徴とする検証装置。
【０１６５】
（付記２）  前記アサーション生成部は、測定箇所別に用意されたアサーション生成用のテンプレートに、前記特定部が特定した前記複数の測定箇所および前記検出部が検出した信号伝播所要サイクル数を埋め込むことで、前記特定部が特定した前記複数の測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成する、
ことを特徴とする付記１記載の検証装置。
【０１６６】
（付記３）  前記比較部は、前記測定部による測定結果を、統計処理を用いて期待値と比較する、
ことを特徴とする付記１または２記載の検証装置。
【０１６７】
（付記４）  前記比較部は、前記測定部による測定結果を複数のグループに分類し、各グループの測定結果の平均値を、期待値と比較する、
ことを特徴とする付記１〜３のいずれか１つに記載の検証装置。
【０１６８】
（付記５）  前記比較部は、前記特定部が特定した前記複数の測定箇所のそれぞれに対して、前記複数のグループのうち少なくとも１つのグループの測定結果の平均値が、期待値以上であるかどうかを判定する、
ことを特徴とする付記４記載の検証装置。
【０１６９】
（付記６）  前記特定部が特定した前記第１の測定箇所は、前記抽出部が構造タイプを抽出した非同期パスの受信側フリップフロップ回路の出力信号であり、
前記特定部が特定した前記第２の測定箇所は、前記抽出部が構造タイプを抽出した非同期パスの送信側フリップフロップ回路の次段に組合せ論理回路を介して接続されたフリップフロップ回路の出力信号であり、
さらに、前記特定部は、前記抽出部が構造タイプを抽出した非同期パスの送信側フリップフロップ回路の出力信号を、第３の測定箇所に特定する、
ことを特徴とする付記１〜５のいずれか１つに記載の検証装置。
【０１７０】
（付記７）  前記特定部は、
前記抽出部が抽出した非同期パスの構造タイプがコンビネーションの場合、
前記抽出部が構造タイプを抽出した非同期パスの送信側フリップフロップ回路と受信側フリップフロップ回路との間に接続されている組合せ論理回路の入力信号のうち、前記第１の測定箇所に特定している信号を除いた信号を、第４の測定箇所に特定する、
ことを特徴とする付記６記載の検証装置。
【０１７１】
（付記８）  前記特定部は、
前記抽出部が抽出した非同期パスの構造タイプがリコンバージェンスの場合、
特定した前記第２の測定箇所の次段に組合せ論理回路を介して接続されたフリップフロップ回路の出力信号を、第５の測定箇所に特定する、
ことを特徴とする付記６または７記載の検証装置。
【０１７２】
（付記９）  コンピュータに、
検証対象から非同期パスの構造タイプを抽出し、
抽出した非同期パスの構造タイプに基づいて、前記検証対象に対する第１および第２の測定箇所を含む複数の測定箇所を特定し、
特定した前記第１および第２の測定箇所間の信号伝播所要サイクル数を前記検証対象から検出し、
検出した信号伝播所要サイクル数を用いて、特定した前記複数の測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成し、
非同期パス遅延およびクロックジッターを付与した条件下で実行される前記検証対象のシミュレーションの実行中、生成したアサーションを用いて、特定した前記複数の測定箇所の活性化回数を測定し、
測定結果を期待値と比較する、
処理を実行させることを特徴とする検証プログラム。
【０１７３】
（付記１０）  コンピュータが、
検証対象から非同期パスの構造タイプを抽出し、
抽出した非同期パスの構造タイプに基づいて、前記検証対象に対する第１および第２の測定箇所を含む複数の測定箇所を特定し、
特定した前記第１および第２の測定箇所間の信号伝播所要サイクル数を前記検証対象から検出し、
検出した信号伝播所要サイクル数を用いて、特定した前記複数の測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成し、
非同期パス遅延およびクロックジッターを付与した条件下で実行される前記検証対象のシミュレーションの実行中、生成したアサーションを用いて、特定した前記複数の測定箇所の活性化回数を測定し、
測定結果を期待値と比較する、
ことを特徴とする検証方法。
【符号の説明】
【０１７４】
１，１００，１００ａ  検証装置
１ａ  抽出部
１ｂ  特定部
１ｃ  検出部
１ｄ  アサーション生成部
１ｅ  測定部
１ｆ  比較部
２  検証対象
１１１  検証対象格納部
１１２  非同期パス抽出部
１１３  非同期リスト格納部
１１４  アサーション抽出生成部
１１４ａ  アサーション生成用リスト格納部
１１４ｂ  テンプレート格納部
１１５  アサーション格納部
１１６  シナリオ調整用シミュレーション実行部
１１７  固定シナリオ格納部
１１８  回数基準値格納部
１１９  非同期シミュレーション実行部
１２０  回数測定結果格納部
１２１  判定部
１２２  判定結果リスト格納部
１８０  回数目標値設定部
１８１  ランダムシナリオ格納部
１８２  回数目標値格納部
１８３  シナリオ網羅性チェック部
１８４  グループ平均値格納部
１８５  網羅性判定結果リスト格納部
【図１】
0005691890.tif 000002
【図２】
0005691890.tif 000003
【図３】
0005691890.tif 000004
【図４】
0005691890.tif 000005
【図５】
0005691890.tif 000006
【図６】
0005691890.tif 000007
【図７】
0005691890.tif 000008
【図８】
0005691890.tif 000009
【図９】
0005691890.tif 000010
【図１０】
0005691890.tif 000011
【図１１】
0005691890.tif 000012
【図１２】
0005691890.tif 000013
【図１３】
0005691890.tif 000014
【図１４】
0005691890.tif 000015
【図１５】
0005691890.tif 000016
【図１６】
0005691890.tif 000017
【図１７】
0005691890.tif 000018
【図１８】
0005691890.tif 000019
【図１９】
0005691890.tif 000020
【図２０】
0005691890.tif 000021
【図２１】
0005691890.tif 000022
【図２２】
0005691890.tif 000023
【図２３】
0005691890.tif 000024
【図２４】
0005691890.tif 000025
【図２５】
0005691890.tif 000026