(57)【要約】【課題】短い検証時間でメタスタビリティを考慮した回路検証を行う。【解決手段】ＣＤＣ部検出部１０２は検証対象の回路から、互いに異なるクロック信号により動作する回路部同士が接続されたＣＤＣ部を検出し、遅延発生器組み込み部１０４は検出したＣＤＣ部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込み、シミュレーション実行部１０７は信号遅延を非発生とした遅延発生器組み込み後の回路に対して、所定のシナリオを用いてシミュレーションを実行し、遅延発生パターン生成部１０９は実行されたシミュレーション結果と遅延発生器組み込み後の回路とを入力して、回路の出力信号に影響を与える信号遅延の遅延発生パターンを生成し、検証部１１１は生成された遅延発生パターンに応じて遅延発生器による信号遅延の発生または非発生を選択して回路の動作を検証する。【選択図】図１
2008204199.tif 000002
【特許請求の範囲】
【請求項１】
異なる複数のクロック信号を用いた回路を検証する検証装置において、
前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたクロック載せ替え部を検出するクロック載せ替え部検出部と、
前記クロック載せ替え部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込む遅延発生器組み込み部と、
前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するシミュレーション実行部と、
実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成する遅延発生パターン生成部と、
生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証する検証部と、
を有することを特徴とする検証装置。
【請求項２】
前記シミュレーションパターンによる前記シミュレーション結果を基に、メタスタビリティが発生する可能性のある前記クロック載せ替え部とタイミングとを抽出するメタスタビリティ発生可能クロック載せ替え部抽出部を有し、
前記遅延発生パターン生成部は、抽出された前記クロック載せ替え部と、前記タイミングとを入力して前記遅延発生パターンを生成することを特徴とする請求項１記載の検証装置。
【請求項３】
複数の前記シミュレーションパターンのうち、前記遅延発生パターン生成部により前記遅延発生パターンが生成できた前記シミュレーションパターンのみを格納するシミュレーションパターン格納部を、更に有することを特徴とする請求項１記載の検証装置。
【請求項４】
前記シミュレーション実行部は、前記シミュレーションパターン格納部に格納された前記シミュレーションパターンを用いて前記シミュレーションを実行することを特徴とする請求項３記載の検証装置。
【請求項５】
前記遅延発生パターンが生成できた前記クロック載せ替え部を記録して、前記遅延発生パターンが生成できたシミュレーションパターン集合と、前記遅延発生パターンが生成されなかった前記クロック載せ替え部とを共に表示する検証条件表示部を更に有することを特徴とする請求項３乃至４記載の検証装置。
【請求項６】
異なる複数のクロック信号を用いた回路を検証する検証方法において、
クロック載せ替え部検出部が、前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたクロック載せ替え部を検出するステップと、
遅延発生器組み込み部が、前記クロック載せ替え部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込むステップと、
シミュレーション実行部が、前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するステップと、
遅延発生パターン生成部が、実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成するステップと、
検証部が、生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証するステップと、
を有することを特徴とする検証方法。
【請求項７】
メタスタビリティ発生可能クロック載せ替え部抽出部が、前記シミュレーションパターンによる前記シミュレーション結果を基に、メタスタビリティが発生する可能性のある前記クロック載せ替え部とタイミングとを抽出するステップを更に有し、
前記遅延発生パターン生成部が、抽出された前記クロック載せ替え部と、前記タイミングとを入力して前記遅延発生パターンを生成することを特徴とする請求項６記載の検証方法。
【請求項８】
シミュレーションパターン格納部が、複数の前記シミュレーションパターンのうち、前記遅延発生パターンが生成できた前記シミュレーションパターンのみを格納するステップを更に有することを特徴とする請求項６記載の検証方法。
【請求項９】
前記シミュレーション実行部が、前記シミュレーションパターン格納部に格納された前記シミュレーションパターンを用いて前記シミュレーションを実行することを特徴とする請求項８記載の検証方法。
【請求項１０】
異なる複数のクロック信号を用いた回路を検証する処理をコンピュータに機能させるプログラムにおいて、
コンピュータを、
前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたクロック載せ替え部を検出するクロック載せ替え部検出手段、
前記クロック載せ替え部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込む遅延発生器組み込み手段、
前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するシミュレーション実行手段、
実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成する遅延発生パターン生成手段、
生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証する検証手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は検証装置、検証方法及びプログラムに関し、特に、異なる複数のクロック信号を用いた回路を検証する検証装置、検証方法及びプログラムに関する。
【背景技術】
【０００２】
半導体集積回路の高機能化、高集積化に伴い、シミュレーションにより半導体集積回路の動作検証を精度よく、短時間で行うことが必要となっている。
さらに、通信系の回路などでは、送信側のクロック信号と受信側のクロック信号が異なる場合があり、通常の論理検証に加えて、互いに異なるクロック信号により動作する回路部同士が接続されたクロック載せ替え部（以下、ＣＤＣ（Clock Domain Crossing）部という。）におけるメタスタビリティの影響を検証することが重要になっている。
【０００３】
図１２は、メタスタビリティの例を示す図である。
ここでは、フリップフロップ回路（以下ＦＦと略す。）５００に入力されるクロック信号ＣＫ及び入力信号Ｄと、出力信号Ｑの関係を図示している。タイミングチャートにおけるＣ１，Ｃ２，Ｃ３，Ｃ４は、クロック信号ＣＫの１クロック期間を示している。
【０００４】
例えば、期間Ｃ２のクロック信号ＣＫの立ち上がりの直前に入力信号Ｄが変化した場合、正常であれば期間Ｃ２に出力信号Ｑが立ち上がるが、１クロック期間遅れて期間Ｃ３で立ち上がる場合が発生する。つまり、データ伝搬の遅延が発生する。このように、ＦＦ５００の入力信号Ｄが、クロック信号ＣＫの立ち上がりの直前や直後に変化した場合に、出力信号Ｑが不安定な状態になることをメタスタビリティという。
【０００５】
ＣＤＣ部においては、例えば、２つの異なるクロック信号の立ち上がりが近づいているタイミングで、入力信号が変化すると、メタスタビリティが発生しやすくなる。
図１３、図１４は、ＣＤＣ部におけるメタスタビリティによる障害発生の例を説明する図である。
【０００６】
ここでは、２種類のクロック信号ｃｌｋ１，ｃｌｋ２で動作する論理回路を示している。
入力信号Ｄ１は、ＡＮＤ回路５０１の一方の入力端子及びＦＦ５０２に入力される。そして、ＦＦ５０２の出力信号がＦＦ５０３に入力され、ＦＦ５０３の出力信号（Ｄ１ｔ）がＦＦ５０４に入力されるように、ＦＦ５０２，５０３，５０４が直列に接続されている。
【０００７】
一方、入力信号Ｄ２は、ＡＮＤ回路５０１の他方の入力端子に入力される。ＡＮＤ回路５０１の出力信号はＦＦ５０５に入力される。そしてＦＦ５０５の出力信号がＦＦ５０６に入力され、ＦＦ５０６の出力信号（Ｄ２ｔ）がＦＦ５０７に入力されるように、ＦＦ５０５，５０６，５０７が直列に接続されている。
【０００８】
ＦＦ５０４，５０７の出力信号は、それぞれＡＮＤ回路５０８に入力される。ＡＮＤ回路５０８の出力信号はＦＦ５０９に入力される。そしてＦＦ５０９の出力が、この論理回路の出力信号ＯＵＴとなっている。
【０００９】
この論理回路で、ＦＦ５０２，５０５がクロック信号ｃｌｋ１で動作し、ＦＦ５０３，５０４，５０６，５０７，５０９がクロック信号ｃｌｋ２で動作する。互いに異なるクロック信号ｃｌｋ１，ｃｌｋ２により動作するＦＦ５０２とＦＦ５０３、及びＦＦ５０５とＦＦ５０６とが接続された部分がＣＤＣ部５１０，５１１であり、メタスタビリティが発生する可能性がある。
【００１０】
図１４のように、例えば、期間Ｃ１１でのクロック信号ｃｌｋ１の立ち上がりで入力信号Ｄ１が変化して、その変化はクロック信号ｃｌｋ１の次の立ち上がりに同期してＦＦ５０２，５０５に取り込まれる。ＦＦ５０３，５０６は、期間Ｃ２１のクロック信号ｃｌｋ２の立ち上がりに同期して、ＦＦ５０２，５０５の出力信号が入力されるが、ＦＦ５０２，５０５の出力信号の変化は、クロック信号ｃｌｋ２の立ち上がりの直前となるため、メタスタビリティが発生する可能性がある。
【００１１】
例えば、図１４のように、ＦＦ５０３の出力である信号Ｄ１ｔが１クロックサイクル分遅延して期間Ｃ２２のクロック信号ｃｌｋ２の立ち上がりに同期して変化する場合が発生する。これによって、例えば、ＣＤＣ部５１１のＦＦ５０６の出力である信号Ｄ２ｔは正常に期間Ｃ２１のクロック信号ｃｌｋ２の立ち上がりに同期して変化した場合、期間Ｃ２３でアサートされる出力信号ＯＵＴがアサートされないという障害が発生する場合があった。
【００１２】
このようなメタスタビリティの影響を検証するために、従来、ＣＤＣ部で強制的に信号遅延を発生させて、検証対象となる回路が、メタスタビリティに耐性があるか否かを検証する手法があった（例えば、特許文献１、２参照。）。
【００１３】
図１５は、従来の検証装置の概略の構成を示す図である。
従来の検証装置６００において、検証対象の回路の情報を格納する回路ＤＢ（データベース）６０１と、検証対象の回路からＣＤＣ部を検出するＣＤＣ部検出部６０２と、検出されたＣＤＣ部の情報を格納するＣＤＣ部ＤＢ６０３と、ＣＤＣ部にメタスタビリティ発生時に生じる信号遅延を強制的に発生させる遅延発生器をＣＤＣ部に組み込んだ回路を生成する遅延発生器組み込み部６０４と、遅延発生器付回路を格納する遅延発生器付回路ＤＢ６０５と、遅延発生器付回路に所定のシミュレーションパターン（以下シナリオと呼ぶ場合もある。）を入力して検証を行う検証部６０６と、複数のシナリオを格納するシナリオＤＢ６０７と、を有している。
【００１４】
図１６は、従来の検証方法を示すフローチャートである。
ＣＤＣ部検出部６０２は、回路ＤＢ６０１から検出対象の回路に含まれるＣＤＣ部を検出する（ステップＳ９０）。次に、遅延発生器組み込み部６０４は、検出されたＣＤＣ部に遅延発生器を組み込んだ回路を生成する（ステップＳ９１）。そして検証部６０６は、シナリオＤＢ６０７に格納された複数のシナリオを全て検証し終えたか否かを判定し（ステップＳ９２）、検証し終えた場合には処理を終了する。未検証のシナリオがある場合にはシナリオＤＢ６０７に格納された複数のシナリオから、特定のシナリオを選択する（ステップＳ９３）。
【００１５】
検証部６０６は、シナリオを選択すると、回路に含まれるＣＤＣ部をランダムに選択し、そこに組み込まれた遅延発生器で、メタスタビリティ発生時に生じる遅延を強制的に発生させてシミュレーションを行う（ステップＳ９４）。検証部６０６は、シミュレーションの結果、障害が発生したか否かを判定し（ステップＳ９５）、障害が発生した場合には、例えばユーザによる回路修正（ステップＳ９６）を経た後、再びステップＳ９０からの処理を繰り返す。障害が発生しない場合には、所定回数のシミュレーションが終了したか否かを判定し（ステップＳ９７）、終了した場合には、再びステップＳ９２の処理に戻り、別のシナリオでシミュレーションを行う。終了していない場合には、ステップＳ９４の処理に戻り、別のＣＤＣ部をランダムに選択して、遅延を発生させてシミュレーションを行う。
【００１６】
従来は、以上のような処理を行うことで、メタスタビリティの影響を考慮した検証を行っていた。
また、特許文献３には、メタスタビリティの発生する可能性のある順序回路を指定して、指定された順序回路に対してメタスタビリティ時の遅延値を用い、指定されなかった順序回路に対して非メタスタビリティ時の遅延値を用いて、遅延解析を行うことが開示されている。
【特許文献１】特開２００５−２８４４２６号公報
【特許文献２】特開２００１−２２９２１１号公報
【特許文献３】特開２００５−３１８９０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかし、メタスタビリティの影響は、回路内部で解決する場合も多く、回路の出力信号（外部ピン）に影響を与えない場合もあった。
図１７は、回路の出力信号に影響を与えない遅延発生の例を示す図である。
【００１８】
ここでは、図１３で示した回路において、所定のシナリオでシミュレーションを行った場合の例を示すタイミングチャートである。
例えば、入力信号Ｄ１がＬ（Low）レベルで固定されている場合、図１３のＡＮＤ回路５０８の一方の入力端子はＬレベルで固定されている。そのため、メタスタビリティが発生して、図１７のように、出力信号Ｄ２ｔが１クロックサイクル分遅延してＡＮＤ回路５０８の他方の入力端子の信号が変化しても、出力信号ＯＵＴはＬレベルのままである。つまり、このようなシナリオの場合、回路はメタスタビリティの影響を受けない。すなわち、このようなシナリオに対してメタスタビリティを考慮した検証を行うことは無駄である。
【００１９】
しかし、従来の検証手法では、上記のようなメタスタビリティの影響が出力信号に現われないシナリオに対しても検証を行っていたので、検証時間が長くなってしまう問題があった。
【００２０】
本発明はこのような点に鑑みてなされたものであり、短い検証時間でメタスタビリティを考慮した回路検証が可能な検証装置を提供することを目的とする。
また、本発明の他の目的は、短い検証時間でメタスタビリティを考慮した回路検証が可能な検証方法を提供することである。
【００２１】
また、本発明の他の目的は、短い検証時間でメタスタビリティを考慮した回路検証が可能なプログラムを提供することである。
【課題を解決するための手段】
【００２２】
本発明では上記問題を解決するために、異なる複数のクロック信号を用いた回路を検証する検証装置において、図１に示すように、回路から、互いに異なるクロック信号により動作する回路部同士が接続されたＣＤＣ部を検出するＣＤＣ部検出部１０２と、ＣＤＣ部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込む遅延発生器組み込み部１０４と、信号遅延を非発生とした遅延発生器組み込み後の回路に対して、所定のシナリオを用いてシミュレーションを実行するシミュレーション実行部１０７と、実行されたシミュレーション結果と遅延発生器組み込み後の回路とを入力して、回路の出力信号に影響を与える信号遅延の遅延発生パターンを生成する遅延発生パターン生成部１０９と、生成された遅延発生パターンに応じて遅延発生器による信号遅延の発生または非発生を選択して回路の動作を検証する検証部１１１と、を有することを特徴とする検証装置１００が提供される。
【００２３】
上記の構成によれば、ＣＤＣ部検出部１０２は回路から、互いに異なるクロック信号により動作する回路部同士が接続されたＣＤＣ部を検出し、遅延発生器組み込み部１０４は検出したＣＤＣ部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込み、シミュレーション実行部１０７は信号遅延を非発生とした遅延発生器組み込み後の回路に対して、所定のシナリオを用いてシミュレーションを実行し、遅延発生パターン生成部１０９は実行されたシミュレーション結果と遅延発生器組み込み後の回路とを入力して、回路の出力信号に影響を与える信号遅延の遅延発生パターンを生成し、検証部１１１は生成された遅延発生パターンに応じて遅延発生器による信号遅延の発生または非発生を選択して回路の動作を検証する。
【００２４】
また、異なる複数のクロック信号を用いた回路を検証する検証方法において、ＣＤＣ部検出部が、前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたＣＤＣ部を検出するステップと、遅延発生器組み込み部が、前記ＣＤＣ部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込むステップと、シミュレーション実行部が、前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するステップと、遅延発生パターン生成部が、実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成するステップと、検証部が、生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証するステップと、を有することを特徴とする検証方法が提供される。
【００２５】
上記の方法によれば、ＣＤＣ部検出部は、回路から、互いに異なるクロック信号により動作する回路部同士が接続されたＣＤＣ部を検出し、遅延発生器組み込み部は、ＣＤＣ部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込み、シミュレーション実行部は、信号遅延を非発生とした遅延発生器組み込み後の回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行し、遅延発生パターン生成部は、実行されたシミュレーション結果と遅延発生器組み込み後の回路とを入力して、回路の出力信号に影響を与える信号遅延の遅延発生パターンを生成し、検証部は、生成された遅延発生パターンに応じて遅延発生器による信号遅延の発生または非発生を選択して回路の動作を検証する。
【００２６】
また、異なる複数のクロック信号を用いた回路を検証する処理をコンピュータに機能させるプログラムにおいて、コンピュータを、前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたＣＤＣ部を検出するＣＤＣ部検出手段、前記ＣＤＣ部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込む遅延発生器組み込み手段、前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するシミュレーション実行手段、実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成する遅延発生パターン生成手段、生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証する検証手段、として機能させることを特徴とするプログラムが提供される。
【００２７】
上記の構成によれば、ＣＤＣ部検出手段は回路から、互いに異なるクロック信号により動作する回路部同士が接続されたＣＤＣ部を検出し、遅延発生器組み込み手段はクロック載せ替え部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込み、シミュレーション実行手段は信号遅延を非発生とした遅延発生器組み込み後の回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行し、遅延発生パターン生成手段は実行されたシミュレーション結果と遅延発生器組み込み後の回路とを入力して、回路の出力信号に影響を与える信号遅延の遅延発生パターンを生成し、検証手段は生成された遅延発生パターンに応じて遅延発生器による信号遅延の発生または非発生を選択して回路の動作を検証する。
【発明の効果】
【００２８】
本発明は、回路から検出されたＣＤＣ部において、回路の出力信号に影響のある遅延発生パターンを生成して、メタスタビリティに対する回路の耐性を検証することができるので、回路内部で解決してしまうようなメタスタビリティに関する検証を行わずにすみ、検証時間を大幅に短縮することができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図１は、第１の実施の形態の検証装置の構成を示す機能ブロック図である。
第１の形態の検証装置１００は、回路設計によって生成された回路データに対して検証を行うものであり、検証対象の回路を格納する回路ＤＢ１０１と、検証対象の回路からＣＤＣ部を検出するＣＤＣ部検出部１０２と、検出されたＣＤＣ部を格納するＣＤＣ部ＤＢ１０３を有する。また、メタスタビリティ発生時に生じる信号遅延を強制的に発生させたり、非発生とすることを選択可能な遅延発生器をＣＤＣ部に組み込む、遅延発生器組み込み部１０４と、ＣＤＣ部に遅延発生器を組み込んだ検証対象の回路（遅延発生器付回路）を格納する遅延発生器付回路ＤＢ１０５と、複数のシナリオを格納するシナリオＤＢ１０６を有する。
【００３０】
さらに、第１の実施の形態の検証装置１００では、シミュレーション実行部１０７、メタスタビリティ発生可能ＣＤＣ部抽出部１０８、遅延発生パターン生成部１０９、遅延発生パターンＤＢ１１０、及び検証部１１１を有している。
【００３１】
シミュレーション実行部１０７は、シナリオＤＢ１０６に格納されたシナリオを用いて、遅延発生器付回路のシミュレーションを行う。
メタスタビリティ発生可能ＣＤＣ部抽出部１０８は、シミュレーション実行部１０７でのシミュレーション結果を基に、遅延発生器付回路の複数のＣＤＣ部の中からメタスタビリティが発生する可能性のあるものと、そのタイミングを抽出する。例えば、あるＣＤＣ部において、クロック信号の変化と、ＦＦの入力値の変化が近づいているタイミングがある場合には、そこでメタスタビリティが発生する可能性があるため、そのＣＤＣ部とタイミングを抽出して、例えばリストにする。
【００３２】
遅延発生パターン生成部１０９は、実行されたシミュレーション結果と遅延発生器付回路を入力して、遅延発生器付回路の出力信号に影響を与える信号遅延の遅延発生パターンを生成する。なお、第１の実施の形態の検証装置１００では、メタスタビリティ発生可能ＣＤＣ部抽出部１０８で抽出された、メタスタビリティが発生する可能性のある複数のＣＤＣ部と、タイミングの中から、出力信号に影響を与えるような遅延発生パターンを生成する。
【００３３】
遅延発生パターンＤＢ１１０は、遅延発生パターン生成部１０９で生成された遅延発生パターンを格納する。
検証部１１１は、シナリオを読み込んで、遅延発生パターンに応じて遅延発生器付回路の遅延発生器で遅延を発生させて、メタスタビリティによって回路に障害が発生しないかを検証する。
【００３４】
以下、第１の実施の形態の検証装置１００の動作を説明する。
ＣＤＣ部検出部１０２は、回路ＤＢ１０１に格納されている検証対象の回路からＣＤＣ部を検出し、検出したＣＤＣ部をＣＤＣ部ＤＢ１０３に格納する。遅延発生器組み込み部１０４は、ＣＤＣ部ＤＢ１０３に格納されたＣＤＣ部を読み出して、ＣＤＣ部に遅延発生器を組み込んだ回路を生成する。
【００３５】
図２は、検出されるＣＤＣ部と遅延発生器の例を示す回路図である。
ＣＤＣ部２００は、図２のように、互いに異なるクロック信号ｃｌｋ１，ｃｌｋ２によって動作するＦＦ２０１，２０２が接続される回路部である。遅延発生器組み込み部１０４は、検出したＣＤＣ部２００に、遅延発生選択信号によって信号遅延の発生または非発生を選択可能な遅延発生器２１０を組み込む。
【００３６】
遅延発生器２１０は、例えば、ＦＦ２１１、位相判定器２１２、比較器２１３、ＡＮＤ回路２１４、セレクタ２１５を有している。
ＦＦ２１１は、ＦＦ２０１の出力端子を自身の入力端子に接続しており、ＦＦ２０１と同様にクロック信号ｃｌｋ１によって動作する。これによって、ＦＦ２０１の出力信号を次のクロック信号の立ち上がりで取り込んで出力する。すなわち、ＦＦ２１１は１クロックサイクル前のＦＦ２０１の出力信号を出力する。
【００３７】
位相判定器２１２は、２つのクロック信号ｃｌｋ１，ｃｌｋ２を入力して位相を判定し、クロック信号ｃｌｋ１，ｃｌｋ２の変化のタイミング（例えば、立ち上がりタイミング）が近づいている場合には、“１”を出力する。近づいていない場合には“０”を出力する。
【００３８】
比較器２１３は、ＦＦ２０１の出力信号とＦＦ２１１の出力信号とを比較して、これらが異なる値の場合には“１”を出力する。同じ値である場合には“０”を出力する。
ＡＮＤ回路２１４は、位相判定器２１２及び比較器２１３の出力信号と、遅延発生選択信号を入力して、これらが全て“１”である場合には、“１”を出力し、何れか１つでも“０”の場合には“０”を出力する。
【００３９】
セレクタ２１５は、ＦＦ２０１の出力信号とＦＦ２１１の出力信号とを入力し、ＡＮＤ回路２１４の出力信号が“０”の場合にはＦＦ２０１の出力信号を出力し、“１”の場合にはＦＦ２１１の出力信号、すなわち、ＦＦ２０１の出力信号を１クロックサイクル遅延させた出力信号を出力する。
【００４０】
このような遅延発生器２１０を組み込むことによって、遅延発生選択信号が“１”の場合、２つのクロック信号ｃｌｋ１，ｃｌｋ２の変化のタイミングが近づいていて、ＣＤＣ部２００への入力値が変化したタイミングで１クロックサイクル分の遅延を発生させることができる。
【００４１】
上記のような遅延発生器２１０を組み込んだ回路は、遅延発生器付回路ＤＢ１０５に格納される。
シミュレーション実行部１０７は、遅延発生器付回路ＤＢ１０５に格納された遅延発生器付回路を入力して、シナリオＤＢ１０６に格納されたシナリオを選択してシミュレーションを実行する。メタスタビリティ発生可能ＣＤＣ部抽出部１０８は、シミュレーション結果から、複数の異なるクロック信号の変化のタイミングが近づいている部分でＣＤＣ部への入力値が変化している部分など、メタスタビリティの発生の可能性があるＣＤＣ部とタイミングとを抽出する。
【００４２】
遅延発生パターン生成部１０９では、シミュレーション結果と遅延発生器付回路を入力して、図２で示したような遅延発生選択信号を“１”または“０”に変更して、複数のＣＤＣ部に対して、メタスタビリティが発生したときと同様の状況を作り出すための遅延を発生させる。そして、遅延発生器付回路の出力信号に影響のある遅延発生パターンを生成する（詳細は後述する）。このような、遅延発生パターン生成部１０９の機能は、公知のモデル検査法（モデル検査器）を用いて行うことができる。
【００４３】
なお、このとき遅延発生パターン生成部１０９では、全てのＣＤＣ部とタイミングとを参照して、出力信号に影響のある遅延発生パターンを生成するのではなく、メタスタビリティ発生可能ＣＤＣ部抽出部１０８で抽出されたＣＤＣ部及びタイミングのみを参照して生成する。
【００４４】
生成された遅延発生パターンは遅延発生パターンＤＢ１１０に格納される。
検証部１１１は、シミュレーション実行部１０７で実行したシナリオを選択して、そのシナリオに対して、遅延発生パターン生成部１０９にて生成した遅延発生パターンで遅延を発生させることで、遅延発生器付回路の出力信号に影響を与えるメタスタビリティへの耐性を検証する。
【００４５】
図３は、第１の実施の形態の検証装置の効果を模式的に示した図である。
図３（Ａ）は、入力ピン“ＩＮ”から入力されたデータにおいて、メタスタビリティが発生する可能性のあるタイミングｔ１，ｔ２，ｔ３，ｔ４の全ての組み合わせで、斜線で示したように遅延を発生させて検証する検証方法を示している。この場合、２通りの遅延発生パターン（メタスタビリティの発生タイミング）の場合のみに、影響を受ける外部ピン“ＯＵＴ”（斜線で示している）が存在するとしても、最悪１５通りの検証を行わなければならない。
【００４６】
これに対し、第１の実施の形態の検証装置１００では、外部ピン“ＯＵＴ”に影響がある遅延発生パターンのみを用いて検証を行うので、図３（Ｂ）のように２通りの検証を行えばよいことになる。
【００４７】
以上のように、第１の実施の形態の検証装置１００では、検証対象の回路の出力信号に影響のある遅延発生パターンを生成して、メタスタビリティに対する回路の耐性を検証することができるので、回路内部で解決してしまうようなメタスタビリティに関する検証を行わずにすみ、意味のあるメタスタビリティの影響を考慮した検証が可能になる。これによって、検証時間を大幅に短縮することができる。
【００４８】
また、遅延発生パターンの生成の際に、全てのＣＤＣ部とタイミングとを参照して遅延発生パターンを生成するのではなく、メタスタビリティが発生する可能性があるＣＤＣ部とタイミングのみを参照して生成するので、検証時間を更に短縮することができる。
【００４９】
以下、第１の実施の形態の検証装置１００を詳細に説明する。
図４は、第１の実施の形態の検証装置の具体的なハードウェア構成例である。
検証装置１００は、例えば、コンピュータ３００であり、ＣＰＵ（Central Processing Unit）３０１、ＲＯＭ（Read Only Memory）３０２、ＲＡＭ（Random Access Memory）３０３、ＨＤＤ（Hard Disk Drive）３０４、グラフィック処理部３０５、入力Ｉ／Ｆ（Interface）３０６、通信Ｉ／Ｆ３０７などによって構成され、これらはバス３０８を介して相互に接続されている。
【００５０】
ここで、ＣＰＵ３０１は、ＲＯＭ３０２や、ＨＤＤ３０４に格納されているプログラムや、各種データに応じて各部を制御し、図１に示したＣＤＣ部検出部１０２、遅延発生器組み込み部１０４、シミュレーション実行部１０７、メタスタビリティ発生可能ＣＤＣ部抽出部１０８、遅延発生パターン生成部１０９、検証部１１１などの機能を行う。
【００５１】
ＲＯＭ３０２は、ＣＰＵ３０１が実行する基本的なプログラムやデータを格納している。
ＲＡＭ３０３は、ＣＰＵ３０１が実行途中のプログラムや、演算途中のデータを格納している。
【００５２】
ＨＤＤ３０４は、例えば、ＣＰＵ３０１が実行するＯＳ（Operating System）や、回路データやシナリオなどを格納する。
グラフィック処理部３０５には、表示装置として、例えば、ディスプレイ３０５ａが接続されており、ＣＰＵ３０１からの描画命令に従って、ディスプレイ３０５ａ上に、検査対象の回路図や、シミュレーション結果、検証結果などを表示する。
【００５３】
入力Ｉ／Ｆ３０６には、マウス３０６ａやキーボード３０６ｂなどの入力装置が接続されており、マウス３０６ａやキーボード３０６ｂを通じてユーザにより入力された情報を受信し、バス３０８を介してＣＰＵ３０１に伝送する。
【００５４】
通信Ｉ／Ｆ３０７は、例えば、企業内のＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）や、インターネットなどのネットワークと接続して通信を行う。これによって、例えば、図１の回路ＤＢ１０１などの各種ＤＢを、ネットワークを通じて共有するようにしてもよい。
【００５５】
次に、上記のようなハードウェア構成を有した第１の実施の形態の検証装置１００の動作を具体的に説明する。
図５は、第１の実施の形態の検証装置を用いた検証方法を示すフローチャートである。
【００５６】
まず、ＣＰＵ３０１は、例えば、ＨＤＤ３０４から検出対象の回路を読み込み、その回路に含まれるＣＤＣ部を検出し、検出したＣＤＣ部を、例えば、ＨＤＤ３０４に格納する（ステップＳ１）。
【００５７】
次に、ＣＰＵ３０１は、シナリオＤＢ１０６の全シナリオのシミュレーションが終了しているか否かを判定して（ステップＳ３）、未実行のシナリオがある場合にはシナリオを選択し（ステップＳ４）、シミュレーションを実行する（ステップＳ５）。
【００５８】
シミュレーションを実行すると、選択したシナリオに応じたシミュレーション結果が得られる。次にＣＰＵ３０１は、シミュレーション結果から、複数の異なるクロック信号の変化のタイミングが近づいている部分でＣＤＣ部への入力値が変化している部分など、メタスタビリティの発生の可能性があるＣＤＣ部とタイミングとを抽出する（ステップＳ６）。次に、ＣＰＵ３０１は、抽出したＣＤＣ部が全て検証されたか否かを判定し（ステップＳ７）、全て検証が終わっていればステップＳ３の処理に戻る。未検証のＣＤＣ部が残っている場合には、検証するＣＤＣ部を指定する（ステップＳ８）。なお、ここでは未検証のＣＤＣ部を全て指定するようにしてもよい。
【００５９】
そして、シミュレーション結果と、指定したＣＤＣ部と抽出したタイミングを用いて、遅延発生器付回路の出力信号に影響のある遅延発生パターンを生成する（ステップＳ９）。ＣＰＵ３０１は、出力信号に影響のある遅延発生パターンが生成できたか否かを判定し（ステップＳ１０）、生成できなかった場合にはステップＳ７の処理に戻る。遅延発生パターンが生成できた場合には、シミュレーションを実行したシナリオを選択して、そのシナリオに対して、生成した遅延発生パターンで遅延を発生させることで、遅延発生器付回路のメタスタビリティに対する耐性を検証する（ステップＳ１１）。ＣＰＵ３０１は、検証の結果、障害が発生するか否かを判定し（ステップＳ１２）、障害が発生しないことがわかった場合には指定したＣＤＣ部をマークして（ステップＳ１３）、ステップＳ７の処理に戻る。検証の結果、障害が発生することがわかった場合には、例えば、ＣＰＵ３０１の制御のもとディスプレイ３０５ａに障害が発生する旨の警告を表示する。ユーザはこれを受けて回路を修正し、例えば、ＨＤＤ３０４に格納する（ステップＳ１４）。その後、ステップＳ１からの処理を繰り返す。
【００６０】
ステップＳ３の処理で、シナリオが全て選択されたと判定された場合には、例えば、ディスプレイ３０５ａにシナリオを追加するか否かをユーザに選択させる表示を行い（ステップＳ１５）、シナリオを追加する旨の入力があれば、シナリオを新たに追加した後に、ステップＳ３からの処理を繰り返す（ステップＳ１６）。シナリオを追加しない場合には検証処理を終了する。
【００６１】
以下、ステップＳ９の処理である遅延発生パターンの生成処理について具体的に説明する。
出力信号に影響のある遅延発生パターンは、遅延発生器付回路と、回路の入力制約及び出力制約を基にして、モデル検査法により生成される。
【００６２】
図６は、遅延発生器付回路の例である。
ここでは、図１３で示した回路を検査対象の回路として用いている。
ＣＤＣ部５１０，５１１には、それぞれ図２で示したような遅延発生器４０１，４０２が組み込まれている。“ｍｅｔａ＿ｏｎ１”，“ｍｅｔａ＿ｏｎ２”は、図２で示した遅延発生選択信号である。
【００６３】
このような回路に対して所定のシナリオでシミュレーションを行った結果、以下のようなシミュレーション結果が得られたとする。
図７は、シミュレーション結果の一例を示すタイミングチャートである。
【００６４】
このようなシミュレーション結果のうち、例としてクロック信号ｃｌｋ１，ｃｌｋ２と、入力信号Ｄ１，Ｄ２による入力信号値系列を、モデル検査法を行う際の回路の入力制約とし、出力信号ＯＵＴによる出力信号値系列を出力制約とする。さらに、図６で示した遅延発生器付回路を入力する。そして、メタスタビリティが発生する可能性のあるタイミングで、遅延発生器付回路の遅延発生選択信号ｍｅｔａ＿ｏｎ１，ｍｅｔａ＿ｏｎ２には制約を与えず任意に可変する状態にする。モデル検査法では、このとき、どのようにｍｅｔａ＿ｏｎ１，ｍｅｔａ＿ｏｎ２が変化しても回路が出力制約を満たすか否かを検査し、もし出力制約を満たさないｍｅｔａ＿ｏｎ１，ｍｅｔａ＿ｏｎ２の変化パターンが存在する場合は、そのパターンを反例パターンとして生成する。本実施の形態では、出力制約を満たさなかった、つまり、メタスタビリティの発生により出力信号のパターンが変化するような遅延発生選択信号ｍｅｔａ＿ｏｎ１，ｍｅｔａ＿ｏｎ２のパターンを検出する。
【００６５】
例えば、図７のような出力制約の出力信号ＯＵＴに対して、遅延発生選択信号ｍｅｔａ＿ｏｎ１，ｍｅｔａ＿ｏｎ２を可変させたとき出力される出力信号が異なっている場合には、出力制約を満たさない。しかし、そのときの遅延発生選択信号ｍｅｔａ＿ｏｎ１，ｍｅｔａ＿ｏｎ２のタイミングが、出力信号ＯＵＴに影響を与える遅延発生パターンを示していることになる。
【００６６】
図８は、遅延発生器付回路の出力信号ＯＵＴに影響を与える遅延発生パターンの例である。
ここで、Ｃ１１，Ｃ１２，Ｃ１３，Ｃ１４，Ｃ１５は、クロック信号ｃｌｋ１の１クロックサイクル分の期間であり、Ｃ２１，Ｃ２２，Ｃ２３は、クロック信号ｃｌｋ２の１クロックサイクル分の期間を示している。その他の信号は図６の各部の信号と対応している。但し、“ｐａｓｅ＿ｃｈｋ”は、図６の遅延発生器４０１，４０２内の位相判定器（図２参照）の出力であり、２つのクロック信号ｃｌｋ１，ｃｌｋ２の立ち上がりが近づいている場合に“１”となる。信号Ｄ１＿１ｄｅｌａｙや信号Ｄ２＿１ｄｅｌａｙは、信号Ｄ１＿１や信号Ｄ２＿１を１クロックサイクル分遅延させた信号であり、遅延発生器４０１，４０２内で生成される信号である（図２参照）。
【００６７】
図８では、期間Ｃ１２のクロック信号ｃｌｋ１の立ち上がりタイミングでは、入力信号Ｄ１が変化しており、更に“ｐａｓｅ＿ｃｈｋ”が“１”となり、遅延発生選択信号ｍｅｔａ＿ｏｎ１が“１”となっている。これにより、遅延発生器４０１からは信号Ｄ１＿１を１クロックサイクル分遅延させた信号（図示せず）が出力され、クロック信号ｃｌｋ２の期間Ｃ２２の立ち上がりタイミングでＦＦ５０３に取り込まれ、信号Ｄ１ｔが“１”となる。このような場合、出力信号ＯＵＴｘは、回路の出力制約の出力信号ＯＵＴと異なる。つまり、図８のような遅延発生選択信号ｍｅｔａ＿ｏｎ１，ｍｅｔａ＿ｏｎ２による遅延発生パターンが、出力信号ＯＵＴに影響を与えるものとして検出される。
【００６８】
以上のように、第１の実施の形態の検証装置１００によれば、検証対象の回路の出力信号（外部ピン）に影響を与えるメタスタビリティについて検証することができ、無駄な検証を行うことが無くなる。これによって、検証時間を短縮することができる。
【００６９】
また、遅延発生パターンの生成の際に、全てのＣＤＣ部とタイミングとを参照して遅延発生パターンを生成するのではなく、メタスタビリティが発生する可能性があるＣＤＣ部とタイミングのみを参照して生成するので、検証時間を更に短縮することができる。
【００７０】
次に第２の実施の形態の検証装置を説明する。
図９は、第２の実施の形態の検証装置の構成を示す機能ブロック図である。
図１で示した第１の実施の形態の検証装置と同一の構成要素については同一符号とし、説明を省略する。
【００７１】
第２の実施の形態の検証装置１００ａは、第１の実施の形態の検証装置１００と異なり、シナリオＤＢ１０６に格納されているシナリオのうち、回路の出力信号に影響のある遅延発生パターンを生成できたシナリオを登録するための、リストを生成するシナリオリスト生成部４１０と、生成したシナリオリストを格納するシナリオリストＤＢ４１１を有している。
【００７２】
また、検証部１１１ａも、シナリオリストのシナリオを用いて検証を行う。
以下、第２の実施の形態の検証装置１００ａの動作を説明する。
まず、シナリオリスト作成処理の際の検証装置１００ａの動作を説明する。
【００７３】
第１の実施の形態の検証装置１００と同様の動作により、遅延発生器付回路を生成した後、シミュレーション実行部１０７ａは、遅延発生器付回路ＤＢ１０５に格納された遅延発生器付回路を入力して、シナリオＤＢ１０６に格納されたシナリオを選択してシミュレーションを実行する。
【００７４】
遅延発生パターン生成部１０９では、シミュレーション結果と遅延発生器付回路とを入力して、遅延発生器付回路の出力信号（外部ピン）に影響のある遅延発生パターンを生成する。ここで、遅延発生パターン生成部１０９が出力信号に影響のある遅延発生パターンを生成した場合には、シナリオリスト生成部４１０は、シミュレーションを実行したシナリオをシナリオリストに追加する。
【００７５】
シナリオＤＢ１０６に格納された全てのシナリオについて同様の処理を行うことで、出力信号に影響のある遅延発生パターンを生成できたシナリオのみからなるシナリオリストを作成することができる。作成されたシナリオリストはシナリオリストＤＢ４１１に格納される。
【００７６】
次に、第２の実施の形態の検証装置１００ａによる検証動作を説明する。
シナリオリストが完成すると、検証部１１１ａは、遅延発生パターンＤＢ１１０から得られた遅延発生パターンと、シナリオリストＤＢ４１１から選択されたシナリオを基に、回路がメタスタビリティに耐性があるか否かを検証する。
【００７７】
以下、第２の実施の形態の検証装置１００ａを詳細に説明する。
具体的なハードウェア構成については、第１の実施の形態の検証装置１００と同様に、例えば、図４で示したコンピュータ３００で実現できる。
【００７８】
以下に、具体的な処理フローを説明する。まず、シナリオリストの作成処理を説明する。
図１０は、シナリオリスト作成処理の流れを示すフローチャートである。
【００７９】
ＣＰＵ３０１は、検証対象の回路からＣＤＣ部を検出する（ステップＳ２１）、検出したＣＤＣ部に遅延発生器を組み込んだ遅延発生器付回路を生成する（ステップＳ２２）。次に、ＣＰＵ３０１は、全てのＣＤＣ部を用いてシミュレーションを実行したか否かを判定して（ステップＳ２３）、選択していない場合には、シミュレーションに用いるＣＤＣ部を選択する（ステップＳ２４）。さらに、ＣＰＵ３０１は、全てのシナリオを用いてシミュレーションを行ったか否かを判定し（ステップＳ２５）、全てのシナリオが終了していれば、ステップＳ２３の処理に戻る。
【００８０】
未実行のシナリオがある場合には、シナリオを選択して（ステップＳ２６）、シミュレーションを実行する（ステップＳ２７）。そして、ＣＰＵ３０１は、シミュレーション結果と、遅延発生器付回路を入力して、図６乃至図８で示したような手法により、回路の出力信号に影響を与える遅延発生パターンを生成する（ステップＳ２８）。ＣＰＵ３０１は、このとき選択したＣＤＣ部とシナリオとの組み合わせで、遅延発生パターンが生成できたか否かを判定し（ステップＳ２９）、生成できなかった場合には、ステップＳ２５からの処理を繰り返す。遅延発生パターンが生成できた場合には、シミュレーションで用いたシナリオをシナリオリストに追加する（ステップＳ３０）。その後、ステップＳ２５の処理に戻る。
【００８１】
ステップＳ２３の処理で、全てのＣＤＣ部の選択が終了したと判定された場合には、ＣＰＵ３０１は、生成したシナリオリストを出力して、例えば、ＨＤＤ３０４に格納する（ステップＳ３１）。
【００８２】
なお、ステップＳ３０の処理で、遅延発生パターンが生成できたＣＤＣ部をマークしてシナリオとともに、例えば、ＨＤＤ３０４に記録し、ステップＳ３１の処理でシナリオリストを出力する際に、マークされていないＣＤＣ部や、マークされたＣＤＣ部と関連付けられているシナリオリストを、ディスプレイ３０５ａに表示するようにしてもよい。これによって、生成されたシナリオリストが、検証対象のＣＤＣ部をどれだけ検証し得るのかを、前もってユーザに提示することができる。
【００８３】
次に、上記のような処理により生成したシナリオリストを用いた検証処理を説明する。
図１１は、シナリオリストを用いた検証処理の流れを示すフローチャートである。
ステップＳ４１、Ｓ４２の処理は、図１０のステップＳ２１、Ｓ２２の処理と同様である。
【００８４】
ＣＰＵ３０１は、全てのＣＤＣ部を選択してシミュレーションしたか否かを判定して（ステップＳ４３）、選択した場合には処理を終了し、選択していない場合には、シミュレーションに用いるＣＤＣ部を選択する（ステップＳ４４）。さらに、ＣＰＵ３０１は、全てのシナリオを用いて検証を行ったか否かを判定し（ステップＳ４５）、全てのシナリオが終了していれば、ステップＳ４３の処理に戻る。
【００８５】
未実行のシナリオがある場合には、例えば、ＨＤＤ３０４に格納されているシナリオリストの中からシナリオを選択して（ステップＳ４６）、遅延発生パターンＤＢ１１０から、選択されたシナリオに適当な遅延発生パターンを選択する（ステップＳ４７）。
【００８６】
ＣＰＵ３０１は、シミュレーションを実行したシナリオ（シナリオリストからのシナリオ）を選択して、そのシナリオに対して、遅延発生パターンＤＢ１１０から選択した遅延発生パターンで遅延を発生させることで、遅延発生器付回路のメタスタビリティに対する耐性を検証する（ステップＳ４８）。ＣＰＵ３０１は、検証の結果、障害が発生するか否かを判定し（ステップＳ４９）、障害が発生しない場合には、ステップＳ４５の処理に戻る。検証の結果、障害が発生することがわかった場合には、例えば、ディスプレイ３０５ａに障害が発生する旨の警告を表示する。ユーザはこれを受けて回路を修正し、例えば、ＨＤＤ３０４に記憶する（ステップＳ５０）。その後、ステップＳ４１からの処理を繰り返す。
【００８７】
以上のような第２の実施の形態の検証装置１００ａによれば、第１の実施の形態の検証装置１００と同様に、出力信号に影響のある遅延発生パターンを生成して、メタスタビリティに対する回路の耐性を検証することができるので、回路内部で解決してしまうようなメタスタビリティに関する検証を行わずにすみ、意味のあるメタスタビリティの影響を考慮した検証が可能になる。これによって、検証時間を大幅に短縮することができる。
【００８８】
さらに、回路の出力信号に影響のある遅延発生パターンを生成できたシナリオのみを検証に用いることができるので、大量のシナリオを検証する必要がなくなり、検証時間をさらに短縮することができる。
【００８９】
なお、前述したように、第１または第２の実施の形態の検証装置１００，１００ａの各機能ブロックや前述の処理フローは、図４に示すようなコンピュータ３００によって実現可能である。その場合、検証装置１００，１００ａが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ＨＤＤ、ＦＤ（フレキシブルディスク）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【００９０】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００９１】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００９２】
なお、第１または第２の実施の形態の検証装置１００，１００ａの各機能ブロックの何れか、またはすべてを、例えば、ＬＳＩ（Large Scale Integrated circuit）などのハードウェアで実現するようにしてもよい。
【００９３】
また、上記では２つのクロック信号を用いた回路について説明したが、３つ以上のクロック信号を用いた回路に対しても同様に検証できる。
以上、本発明を実施例に基づいて説明したが、本発明は上記に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００９４】
（付記１）  異なる複数のクロック信号を用いた回路を検証する検証装置において、
前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたクロック載せ替え部を検出するクロック載せ替え部検出部と、
前記クロック載せ替え部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込む遅延発生器組み込み部と、
前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するシミュレーション実行部と、
実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成する遅延発生パターン生成部と、
生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証する検証部と、
を有することを特徴とする検証装置。
【００９５】
（付記２）  前記シミュレーションパターンによる前記シミュレーション結果を基に、メタスタビリティが発生する可能性のある前記クロック載せ替え部とタイミングとを抽出するメタスタビリティ発生可能クロック載せ替え部抽出部を有し、
前記遅延発生パターン生成部は、抽出された前記クロック載せ替え部と、前記タイミングとを入力して前記遅延発生パターンを生成することを特徴とする付記１記載の検証装置。
【００９６】
（付記３）  複数の前記シミュレーションパターンのうち、前記遅延発生パターン生成部により前記遅延発生パターンが生成できた前記シミュレーションパターンのみを格納するシミュレーションパターン格納部を、更に有することを特徴とする付記１記載の検証装置。
【００９７】
（付記４）  前記シミュレーション実行部は、前記シミュレーションパターン格納部に格納された前記シミュレーションパターンを用いて前記シミュレーションを実行することを特徴とする付記３記載の検証装置。
【００９８】
（付記５）  前記遅延発生パターンが生成できた前記クロック載せ替え部を記録して、前記遅延発生パターンが生成できたシミュレーションパターン集合と、前記遅延発生パターンが生成されなかった前記クロック載せ替え部とを共に表示する検証条件表示部を更に有することを特徴とする付記３乃至４記載の検証装置。
【００９９】
（付記６）  異なる複数のクロック信号を用いた回路を検証する検証方法において、
クロック載せ替え部検出部が、前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたクロック載せ替え部を検出するステップと、
遅延発生器組み込み部が、前記クロック載せ替え部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込むステップと、
シミュレーション実行部が、前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するステップと、
遅延発生パターン生成部が、実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成するステップと、
検証部が、生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証するステップと、
を有することを特徴とする検証方法。
【０１００】
（付記７）  メタスタビリティ発生可能クロック載せ替え部抽出部が、前記シミュレーションパターンによる前記シミュレーション結果を基に、メタスタビリティが発生する可能性のある前記クロック載せ替え部とタイミングとを抽出するステップを更に有し、
前記遅延発生パターン生成部が、抽出された前記クロック載せ替え部と、前記タイミングとを入力して前記遅延発生パターンを生成することを特徴とする付記６記載の検証方法。
【０１０１】
（付記８）  シミュレーションパターン格納部が、複数の前記シミュレーションパターンのうち、前記遅延発生パターンが生成できた前記シミュレーションパターンのみを格納するステップを更に有することを特徴とする付記６記載の検証方法。
【０１０２】
（付記９）  前記シミュレーション実行部が、前記シミュレーションパターン格納部に格納された前記シミュレーションパターンを用いて前記シミュレーションを実行することを特徴とする付記８記載の検証方法。
【０１０３】
（付記１０）  前記シミュレーションパターン格納部が、前記遅延発生パターンが生成できた前記クロック載せ替え部を記録して、
表示部が、前記遅延発生パターンが生成できた前記クロック載せ替え部及びシミュレーションパターン集合を、前記遅延発生パターンが生成されなかった前記クロック載せ替え部と共に表示することを特徴とする付記８乃至９記載の検証方法。
【０１０４】
（付記１１）  異なる複数のクロック信号を用いた回路を検証する処理をコンピュータに機能させるプログラムにおいて、
コンピュータを、
前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたクロック載せ替え部を検出するクロック載せ替え部検出手段、
前記クロック載せ替え部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込む遅延発生器組み込み手段、
前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するシミュレーション実行手段、
実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成する遅延発生パターン生成手段、
生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証する検証手段、
として機能させることを特徴とするプログラム。
【図面の簡単な説明】
【０１０５】
【図１】第１の実施の形態の検証装置の構成を示す機能ブロック図である。
【図２】検出されるＣＤＣ部と遅延発生器の例を示す回路図である。
【図３】第１の実施の形態の検証装置の効果を模式的に示した図である。
【図４】第１の実施の形態の検証装置の具体的なハードウェア構成例である。
【図５】第１の実施の形態の検証装置を用いた検証方法を示すフローチャートである。
【図６】遅延発生器付回路の例である。
【図７】シミュレーション結果の一例を示すタイミングチャートである。
【図８】遅延発生器付回路の出力信号ＯＵＴに影響を与える遅延発生パターンの例である。
【図９】第２の実施の形態の検証装置の構成を示す機能ブロック図である。
【図１０】シナリオリスト作成処理の流れを示すフローチャートである。
【図１１】シナリオリストを用いた検証処理の流れを示すフローチャートである。
【図１２】メタスタビリティの例を示す図である。
【図１３】ＣＤＣ部におけるメタスタビリティによる障害発生の例を説明する図である。（その１）
【図１４】ＣＤＣ部におけるメタスタビリティによる障害発生の例を説明する図である。（その２）
【図１５】従来の検証装置の概略の構成を示す図である。
【図１６】従来の検証方法を示すフローチャートである。
【図１７】回路の出力信号に影響を与えない遅延発生の例を示す図である。
【符号の説明】
【０１０６】
１００  検証装置
１０１  回路ＤＢ
１０２  ＣＤＣ部検出部
１０３  ＣＤＣ部ＤＢ
１０４  遅延発生器組み込み部
１０５  遅延発生器付回路ＤＢ
１０６  シナリオＤＢ
１０７  シミュレーション実行部
１０８  メタスタビリティ発生可能ＣＤＣ部抽出部
１０９  遅延発生パターン生成部
１１０  遅延発生パターンＤＢ
１１１  検証部
【図１】
2008204199.tif 000003
【図２】
2008204199.tif 000004
【図３】
2008204199.tif 000005
【図４】
2008204199.tif 000006
【図５】
2008204199.tif 000007
【図６】
2008204199.tif 000008
【図７】
2008204199.tif 000009
【図８】
2008204199.tif 000010
【図９】
2008204199.tif 000011
【図１０】
2008204199.tif 000012
【図１１】
2008204199.tif 000013
【図１２】
2008204199.tif 000014
【図１３】
2008204199.tif 000015
【図１４】
2008204199.tif 000016
【図１５】
2008204199.tif 000017
【図１６】
2008204199.tif 000018
【図１７】
2008204199.tif 000019