(57)【要約】【課題】クロックドメインが動的に切り替わる集積回路での疑似エラーの発生を抑制できる検証装置及び検証方法を提供する。【解決手段】検証装置１は、検証対象回路のシミュレーションを実行するシミュレーション実行部１２を備える。シミュレーション実行部１２は、受信側クロック信号のセットアップ時間又はホールド時間において、クロックエッジ近傍に規定された除外期間を除いた残余の期間に転送信号の論理値が変化する場合には、受信側クロックドメインが転送信号を正しく取り込めない現象であるメタステーブルを意図的に発生させるミスサンプルをテストベクタに挿入してシミュレーションを実行し、除外期間に転送信号の論理値が変化する場合には、ミスサンプルをテストベクタに挿入せずにシミュレーションを実行する。【選択図】図１
2020129170.tif 000002
【特許請求の範囲】
【請求項１】
送信側クロック信号により駆動される送信側クロックドメインから受信側クロック信号により駆動される受信側クロックドメインへの転送信号の非同期転送と同期転送が動的に切り替わるデータ転送箇所を含む検証対象回路について論理動作を検証する検証装置であって、
前記検証装置が、前記検証対象回路のシミュレーションを実行するシミュレーション実行部を備え、
前記シミュレーション実行部が、
前記受信側クロック信号のセットアップ時間又はホールド時間において、クロックエッジ近傍に規定された除外期間を除いた残余の期間に前記転送信号の論理値が変化する場合には、前記受信側クロックドメインが前記転送信号を正しく取り込めない現象であるメタステーブルを意図的に発生させるミスサンプルをテストベクタに挿入してシミュレーションを実行し、
前記除外期間に前記転送信号の論理値が変化する場合には、前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行する
ことを特徴とする検証装置。
【請求項２】
前記検証対象回路の回路データを解析する回路解析部を更に備え、
前記回路解析部が、前記データ転送箇所のクロック信号を切り替える構成を検出しなかった場合に、前記シミュレーション実行部が、
前記残余の期間に前記転送信号の論理値が変化する場合には、前記ミスサンプルを前記テストベクタに挿入してシミュレーションを実行し、
前記除外期間に前記転送信号の論理値が変化する場合には、前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行する
ことを特徴とする請求項１に記載の検証装置。
【請求項３】
前記回路解析部が、前記データ転送箇所のクロック信号を切り替える構成を検出した場合に、
前記回路解析部が、前記転送信号が同期転送される同期転送条件をデータベース化し、
前記シミュレーション実行部が、前記同期転送条件が成立する場合には前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行する
ことを特徴とする請求項２に記載の検証装置。
【請求項４】
前記回路解析部が、前記データ転送箇所のクロック信号を切り替える構成を検出した場合に、前記シミュレーション実行部が、前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行することを特徴とする請求項２に記載の検証装置。
【請求項５】
非同期転送された前記転送信号の論理値が前記除外期間に変化しないように、前記送信側クロック信号と前記受信側クロック信号のスキューが設定されていることを特徴とする請求項１乃至４のいずれか１項に記載の検証装置。
【請求項６】
非同期転送された前記転送信号の論理値が前記除外期間に変化しないように、前記除外期間の長さが規定されていることを特徴とする請求項１乃至５のいずれか１項に記載の検証装置。
【請求項７】
送信側クロック信号により駆動される送信側クロックドメインから受信側クロック信号により駆動される受信側クロックドメインへの転送信号の非同期転送と同期転送が動的に切り替わるデータ転送箇所を含む検証対象回路について論理動作を検証する検証方法であって、
前記受信側クロック信号のクロックエッジ近傍に除外期間を規定し、
前記受信側クロック信号のセットアップ時間又はホールド時間において前記除外期間を除いた残余の期間に前記転送信号の論理値が変化する場合には、前記受信側クロックドメインが前記転送信号を正しく取り込めない現象であるメタステーブルを意図的に発生させるミスサンプルをテストベクタに挿入してシミュレーションを実行し、
前記除外期間に前記転送信号の論理値が変化する場合には、前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行する
ことを特徴とする検証方法。
【請求項８】
前記検証対象回路の回路データを解析して前記データ転送箇所のクロック信号を切り替える構成の有無を検出し、
前記データ転送箇所のクロック信号を切り替える構成を検出しなかった場合に、
前記残余の期間に前記転送信号の論理値が変化する場合には、前記ミスサンプルを前記テストベクタに挿入してシミュレーションを実行し、
前記除外期間に前記転送信号の論理値が変化する場合には、前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行する
ことを特徴とする請求項７に記載の検証方法。
【請求項９】
前記データ転送箇所のクロック信号を切り替える構成が検出された場合に、前記転送信号が同期転送される同期転送条件をデータベース化し、前記同期転送条件が成立する場合には前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行することを特徴とする請求項８に記載の検証方法。
【請求項１０】
前記データ転送箇所のクロック信号を切り替える構成を検出した場合に、前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行することを特徴とする請求項８に記載の検証方法。
【請求項１１】
非同期転送された前記転送信号の論理値が前記除外期間に変化しないように、前記送信側クロック信号と前記受信側クロック信号のスキューを設定することを特徴とする請求項７乃至１０のいずれか１項に記載の検証方法。
【請求項１２】
非同期転送された前記転送信号の論理値が前記除外期間に変化しないように、前記除外期間の長さを規定することを特徴とする請求項７乃至１１のいずれか１項に記載の検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、集積回路の検証装置及び検証方法に関する。
【背景技術】
【０００２】
１つの集積回路において周期が異なる複数のクロック信号が用いられる場合がある。同一のクロック信号で駆動される回路ブロックを、以下において「クロックドメイン」という。クロックドメインが動的に切り替わる集積回路におけるクロックドメイン間での信号の受け渡し動作の検証ために、動的クロックドメインクロッシング検証（以下、「動的ＣＤＣ検証」という。）が実施されている。
【０００３】
動的ＣＤＣ検証では、非同期のクロックドメインの間でデータの受け渡しを行うデータ転送箇所において受信側クロックドメインが正しくデータを取り込めない現象（以下において「メタステーブル」という。）をシミュレーションにおいて意図的に発生させる。以下において、非同期のクロックドメインの間でのデータの受け渡しを「非同期転送」という。また、同期しているクロックドメインの間でのデータの受け渡しを「同期転送」という。
【０００４】
上記の動的ＣＤＣ検証では、非同期転送において意図的にメタステーブルを発生させても集積回路が正しく動作するか否かを検証する。しかし、データ転送箇所での信号の転送が非同期転送から同期転送に切り替わった場合、同期転送に切り替わったことを認識できないために、同期転送の状態でメタステーブルを発生させる場合があった。その結果、集積回路には問題が無くてもエラー（以下、「疑似エラー」という。）が発生する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５７３３１０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、クロックドメインが動的に切り替わる集積回路での疑似エラーの発生を抑制できる検証装置及び検証方法を提供することである。
【課題を解決するための手段】
【０００７】
実施形態に係る検証装置は、検証対象回路のシミュレーションを実行するシミュレーション実行部を備える。シミュレーション実行部は、受信側クロック信号のセットアップ時間又はホールド時間において、クロックエッジ近傍に規定された除外期間を除いた残余の期間に転送信号の論理値が変化する場合には、受信側クロックドメインが転送信号を正しく取り込めない現象であるメタステーブルを意図的に発生させるミスサンプルをテストベクタに挿入してシミュレーションを実行し、除外期間に転送信号の論理値が変化する場合には、ミスサンプルをテストベクタに挿入せずにシミュレーションを実行する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る検証装置の構成例を示すブロック図である。
【図２】データ転送箇所の例を示す回路図である。
【図３】図２に示した回路図のタイミングチャートの例である。
【図４】データ転送箇所の他の例を示す回路図である。
【図５】タイミングエラーを説明するためのタイミングチャートである。
【図６】正常動作しているタイミングチャートの例である。
【図７】疑似エラーが発生しているタイミングチャートの例である。
【図８】実施形態に係る除外期間を説明するためのタイミングチャートである。
【図９】実施形態に係る検証装置による検証方法のフローチャートである。
【図１０】実施形態に係る検証装置によってミスサンプルをテストベクタに挿入する方法のフローチャートである。
【発明を実施するための形態】
【０００９】
以下に、図面を参照して実施形態を説明する。図面の記載において同一部分には同一符号を付して説明を省略する。
【００１０】
実施形態に係る検証装置１は、送信側クロック信号により駆動される送信側クロックドメインから受信側クロック信号により駆動される受信側クロックドメインへの転送信号の非同期転送と同期転送が動的に切り替わるデータ転送箇所を含む検証対象回路について論理動作を検証する。検証装置１は、図１に示すように、回路解析部１１及びシミュレーション実行部１２を有するＣＰＵ（中央演算処理装置）１０と、記憶装置２０を備える。記憶装置２０は、回路データ記憶領域２１、テストベクタ記憶領域２２、同期転送条件記憶領域２３及びシミュレーション結果記憶領域２４を有する。入力装置３０を介して入力される検証対象回路の回路データとテストベクタが、回路データ記憶領域２１とテストベクタ記憶領域２２にそれぞれ記憶される。同期転送条件記憶領域２３には、後述する同期転送条件が記憶される。シミュレーション結果記憶領域２４には、シミュレーション実行部１２により実行されたシミュレーションの結果が記憶される。
【００１１】
回路解析部１１は、後述するように、検証対象回路の回路データを解析してデータ転送箇所のクロック信号を切り替える構成の有無を検出する。シミュレーション実行部１２は、テストベクタを用いて検証対象回路のシミュレーションを実行し、検証対象回路の論理動作を検証する。検証結果は、出力装置４０から出力される。例えば、シミュレーションにより得られた出力信号と出力信号の期待値との異なる部分が明示された検証結果が得られる。
【００１２】
まず、検証装置１により行われる動的ＣＤＣ検証について説明する。
【００１３】
送信側クロックドメインから受信側クロックドメインに信号が転送されるデータ転送箇所においてタイミング違反が生じると、転送される信号（以下、「転送信号」という。）が不安定になる。ここで、タイミング違反は、クロック信号のセットアップ時間又はホールド時間における転送信号の論理値の変化である。このタイミング違反により、受信側クロックドメインが転送信号を正しく取り込めないメタステーブルが発生する場合がある。
【００１４】
検証装置１は、検証対象回路の実際の動作においてメタステーブルが発生する可能性のあるタイミングで、メタステーブルを意図的に発生させるミスサンプルをテストベクタに挿入してシミュレーションを実行する。ミスサンプルでは、例えば、受信側クロックドメインを伝搬する信号の正常動作での論理値を、メタステーブルが発生した場合の論理値に入れ替える。そして、非同期転送において意図的にメタステーブルを発生させても集積回路が正しく動作するか否かを検証する。以下において、ミスサンプルをテストベクタに挿入する条件を「メタステーブル発生条件」という。
【００１５】
以下に、図２に示した回路を参照して、検証装置１による動的ＣＤＣ検証の例を説明する。図２は、送信側クロックドメイン１０１と受信側クロックドメイン１０２の間で転送信号Ｓ１の転送が行われるデータ転送箇所を示している。図２に示した回路は、送信側クロック信号ＣＬＫ１によって駆動される第１フリップフロップＦＦ１が送信側クロックドメイン１０１である。そして、受信側クロック信号ＣＬＫ２によって駆動される第２フリップフロップＦＦ２及び第３フリップフロップＦＦ３により受信側クロックドメイン１０２が構成されている。
【００１６】
入力信号ＤＩＮが入力する第１フリップフロップＦＦ１から出力された転送信号Ｓ１が、第２フリップフロップＦＦ２に入力する。第２フリップフロップＦＦ２から出力された伝搬信号Ｄ１は、第３フリップフロップＦＦ３に入力する。第３フリップフロップＦＦ３から、出力信号Ｄ２が出力される。
【００１７】
図３に、図２に示した回路の動的ＣＤＣ検証におけるタイミングチャートを示す。図３において、正常動作における伝搬信号Ｄ１を信号パターンＤ１＿１で示し、メタステーブルを意図的に発生させるミスサンプルを信号パターンＤ１＿２で示した。
【００１８】
図３の時刻Ｔ１で、転送信号Ｓ１の論理値が「０」から「１」に変化している。この転送信号Ｓ１の論理値の変化がタイミング違反であるとする。このため、信号パターンＤ１＿２では、矢印で信号パターンＤ１＿１との相違を示したように、時刻Ｔ２において論理値が「１」に変化せず、「０」のままである。つまり、信号パターンＤ１＿２として示したミスサンプルは、時刻Ｔ２において受信側クロックドメイン１０２が転送信号Ｓ１を正常に取り込めないメタステーブルを発生させたものである。
【００１９】
上記のように、動的ＣＤＣ検証では、正常動作での信号パターンに代えてミスサンプルをテストベクタに挿入する。これにより、データ転送箇所でのメタステーブルを意図的に発生させる。このようにして、検証装置１は、非同期転送が行われるデータ転送箇所においてメタステーブルが発生しても回路が正しく論理動作するか否かを検証する。
【００２０】
次に、図４に示した回路を参照して、データ転送箇所が非同期転送から同期転送に切り替わる場合について説明する。図４に示した回路の送信側クロックドメイン１０１と受信側クロックドメイン１０２の構成は、図２に示した回路と同様である。
【００２１】
図４に示した回路では、第１入力信号ＩＮＩＴ＿ＤＡＴＡと第２入力信号ＤＹＮ＿ＤＡＴＡのいずれかが、データセレクタ回路２０１によって選択され、入力信号ＤＩＮとして送信側クロックドメイン１０１に入力される。また、第１クロック信号ＩＮＩＴ＿ＣＬＫと第２クロック信号ＯＰ＿ＣＬＫ信号のいずれかが、クロックセレクタ回路２０２によって選択され、送信側クロック信号ＭＲＧ＿ＣＬＫとして送信側クロックドメイン１０１の第１フリップフロップＦＦ１を駆動する。受信側クロックドメイン１０２の第２フリップフロップＦＦ２及び第３フリップフロップＦＦ３は、第２クロック信号ＯＰ＿ＣＬＫにより駆動される。クロックセレクタ回路２０２によって第２クロック信号ＯＰ＿ＣＬＫ信号が選択された場合に、送信側クロックドメイン１０１と受信側クロックドメイン１０２間で転送信号Ｓ１が同期転送される。
【００２２】
データセレクタ回路２０１及びクロックセレクタ回路２０２は、セレクト信号ＳＥＬによって制御される。つまり、セレクト信号ＳＥＬの制御によって、送信側クロックドメイン１０１と受信側クロックドメイン１０２間での転送信号Ｓ１の非同期転送と同期転送が動的に切り替わる。このように、図４に示した回路には、第１フリップフロップＦＦ１を駆動する送信側クロック信号の切り替え回路が存在する。
【００２３】
図４に示した回路の非同期転送と同期転送におけるタイミング違反の例を図５に示す。同期転送では、図５の信号パターンＰ１に示すように、送信側クロック信号ＭＲＧ＿ＣＬＫのセットアップ時間Ｗｓとホールド時間Ｗｈの境界であるクロックエッジ近傍で転送信号Ｓ１の論理値が変化する。一方、非同期転送では、図５の信号パターンＰ２に示すように、クロックエッジから離れた時刻で転送信号Ｓ１の論理値が変化する。
【００２４】
図５に示す信号パターンＰ１及び信号パターンＰ２のいずれにおいても、送信側クロック信号ＭＲＧ＿ＣＬＫのセットアップ時間Ｗｓとホールド時間Ｗｈの期間に転送信号Ｓ１の論理値が変化するタイミング違反が発生している。以下において、セットアップ時間Ｗｓとホールド時間Ｗｈを合わせて「監視ウィンドウ」という。検証装置１は、監視ウィンドウにおいて転送信号の論理値が変化することをタイミング違反として検出する。
【００２５】
従来の動的ＣＤＣ検証においては、監視ウィンドウにおいて転送信号Ｓ１の論理値が変化する場合に、メタステーブルを発生させるミスサンプルをテストベクタに挿入する。つまり、図５に示す信号パターンＰ１及び信号パターンＰ２のいずれの場合も、ミスサンプルがテストベクタに挿入される。
【００２６】
しかし、データ転送箇所が同期転送である場合にミスサンプルをテストベクタに挿入すると、疑似エラーが発生する。
【００２７】
図４に示した回路で疑似エラーが発生する例を、図６と図７のタイミングチャートを比較して説明する。図６は正常動作しているタイミングチャートを示し、図７は疑似エラーが発生しているタイミングチャートを示す。なお、図６及び図７において、非同期転送から同期転送に切り替わった後の信号の一部にデータｄ１〜ｄ８を付した。データｄ１〜ｄ８は、８ビットのデータが転送される場合を想定したものである。第２入力信号ＤＹＮ＿ＤＡＴＡのデータｄ１〜ｄ８が、転送信号Ｓ１、伝搬信号Ｄ１、出力信号Ｄ２に伝搬する。
【００２８】
図６及び図７に示したタイミングチャートでは、時刻Ｔｃにおいてセレクト信号ＳＥＬの制御により、データ転送箇所が非同期転送から同期転送に切り替わる。そして、時刻Ｔｃの後に、データｄ１〜ｄ８が送信側クロックドメイン１０１から受信側クロックドメイン１０２に転送される。
【００２９】
このとき、正常動作では、図６に示すようにデータｄ１〜ｄ７が受信側クロックドメイン１０２に正しく読み取られている。しかし、図７に示したタイミングチャートでは、タイミング違反が検出されて、データｄ１に本来の論理値である「１」の代わりにミスサンプルとして「０」が挿入されている。また、データｄ５に本来の論理値である「１」の代わりにミスサンプルとして「０」が挿入されている。その結果、出力信号Ｄ２に疑似エラーが発生している。
【００３０】
上記のように、同期転送している場合にミスサンプルをテストベクタに挿入することにより、動的ＣＤＣ検証において疑似エラーが発生する。このため、同期転送の場合にはミスサンプルをテストベクタに挿入しないようにする必要がある。ただし、セレクト信号ＳＥＬの状態をみて同期転送と非同期転送を判別することは、一般的に検証対象回路に含まれるデータ転送箇所の個数が多いため、困難である。
【００３１】
このため、検証装置１では、疑似エラーの発生を抑制するために、データ転送箇所のクロック信号を切り替える構成を、検証対象回路の回路データを解析して検出する。これにより、クロック信号を切り替えることによりデータ転送箇所での信号の転送が非同期転送から同期転送に切り替わることを検出できる。例えば、検証装置１は、送信側クロックドメインを駆動する送信側クロック信号を受信側クロック信号と同期するクロック信号に切り替える構成を、検証対象回路の回路データから検出する。
【００３２】
例えば、回路解析部１１が、図４に示した回路について、送信側クロックドメイン１０１を駆動する送信側クロック信号ＭＲＧ＿ＣＬＫと、受信側クロックドメイン１０２を駆動する第２クロック信号ＯＰ＿ＣＬＫの接続関係を分析する。そして、データ転送箇所のクロック信号を切り替える構成が検出された場合に、回路解析部１１は、送信側クロック信号ＭＲＧ＿ＣＬＫと第２クロック信号ＯＰ＿ＣＬＫが同じになる条件、即ち転送信号Ｓ１の転送が同期転送になる条件（以下において、「同期転送条件」という。）を検出する。
【００３３】
例えば、検証対象回路の回路データに「assign MRG_CLK=SEL?OP_CLK:INIT_CLK」のような記述が含まれていれば、送信側クロック信号ＭＲＧ＿ＣＬＫと第２クロック信号ＯＰ＿ＣＬＫに接続関係に有り、同期転送条件が成立すると判定される。このようにして、検証装置１は、データ転送箇所で転送信号が非同期転送されている状態と同期転送されている状態とを判別する。回路解析部１１は、検出された同期転送条件を同期転送条件記憶領域２３に記憶し、同期転送条件をデータベース化する。
【００３４】
そして、検証装置１は、同期転送条件記憶領域２３に記憶された同期転送条件を参照しながら、検証対象回路の動的ＣＤＣ検証を実行する。つまり、シミュレーション実行部１２は、メタステーブル発生条件になったとき、同期転送条件に合致しないと判定した場合にはミスサンプルをテストベクタに挿入する。これにより、データ転送箇所でデータが非同期転送されている状態においてメタステーブルを意図的に発生させて、動的ＣＤＣ検証が行われる。一方、メタステーブル発生条件になったときでも、同期転送条件に合致すると判定した場合には、シミュレーション実行部１２はミスサンプルをテストベクタに挿入しない。これにより、データ転送箇所でデータが同期転送されている状態においてはメタステーブルが発生せず、疑似エラーの発生を抑制できる。
【００３５】
なお、データ転送箇所のクロック信号を切り替える構成を検出した場合に、同期転送条件を検出できない場合もある。このため、データ転送箇所のクロック信号を切り替える構成を検証対象回路において検出した場合には、ミスサンプルをテストベクタに挿入せずにシミュレーションを実行するようにしてもよい。
【００３６】
また、検証対象回路の回路構成が複雑な場合などに、データ転送箇所のクロック信号を切り替える構成や同期転送条件を検出することが困難な場合がある。そのような場合であっても、データ転送箇所が同期転送の状態になる場合があり得る。このため、データ転送箇所のクロック信号を切り替える構成を検出できなかった場合に、検証装置１は、以下のように動的ＣＤＣ検証を実行する。
【００３７】
即ち、検証装置１は、受信側クロック信号のクロックエッジ近傍を、監視ウィンドウの対象から除外する。つまり、受信側クロック信号のクロックエッジ近傍での転送信号の論理値の変化に対しては、検証装置１はミスサンプルをテストベクタに挿入しない。
【００３８】
同期転送では、図８の信号パターンＰ１に示すように、受信側クロック信号のクロックエッジ近傍において、送信側クロックドメインから受信側クロックドメインに転送される転送信号Ｓ１の論理値が変化する。このため、図８にハッチングで示した第２クロック信号ＯＰ＿ＣＬＫのクロックエッジ近傍の一定の期間を除外期間Ｗｅとして規定する。そして、検証装置１は、除外期間Ｗｅで転送信号Ｓ１の論理値が変化してもミスサンプルをテストベクタに挿入しない。このようにして、転送信号の論理値の変化が受信側クロック信号のクロックエッジ近傍である場合にはミスサンプルをテストベクタに挿入しないことにより、疑似エラーの発生が抑制される。
【００３９】
一方、非同期転送においては、受信側クロック信号のクロックエッジ近傍以外で転送信号の論理値が変化する。即ち、図８の信号パターンＰ２に示すように、除外期間Ｗｅとした第２クロック信号ＯＰ＿ＣＬＫのクロックエッジ近傍以外で、転送信号Ｓ１の論理値が変化する。このため、検証装置１がミスサンプルをテストベクタに挿入しても疑似エラーは発生しない。
【００４０】
以上のように、受信側クロック信号のクロックエッジ近傍を監視ウィンドウの対象から除外することにより、非同期転送においてメタステーブルを発生させ、且つ、同期転送における疑似エラーの発生を抑制することができる。
【００４１】
なお、非同期転送された転送信号の論理値が除外期間Ｗｅに変化しないように、送信側クロック信号と受信側クロック信号の間に適切なクロックスキューを設定することが好ましい。これにより、非同期転送での転送信号が同期転送での転送信号として扱われないようにすることができる。
【００４２】
これに対し、クロックスキューが長すぎる場合には、非同期転送での転送信号が同期転送での転送信号と誤認されるおそれが生じる。一方、クロックスキューが短すぎる場合には、同期転送での転送信号が非同期転送での転送信号と誤認されるおそれが生じる。
【００４３】
上記のように、送信側クロック信号と受信側クロック信号の間に適切なクロックスキューを設定することにより、監視ウィンドウの対象から除外された除外期間Ｗｅにおいて非同期転送された転送信号の論理値が変化することを防止できる。これにより、非同期転送された転送信号が同期転送された転送信号と誤認されることが抑制され、ミスサンプルがテストベクタに挿入される。
【００４４】
監視ウィンドウの対象から除外する除外期間Ｗｅは、クロック信号の周期などに応じて規定される。なお、除外期間Ｗｅを長めに規定することにより、同期転送において転送信号が多少の遅延で受信側クロックドメインに入力しても、ミスサンプルがテストベクタに挿入されない。このため、疑似エラーの発生が抑制される。一方、除外期間Ｗｅを長くしすぎると、非同期転送された転送信号の論理値が除外期間Ｗｅに変化するおそれがある。除外期間Ｗｅは、例えば受信側クロック信号の周期の１００分の１〜５０分の１程度に規定される。
【００４５】
本発明者らは、除外期間Ｗｅを受信側クロック信号の周期の５０分の１に規定して８００項目の論理動作について検証を行った結果、疑似エラーの発生を従来の１５０項目から１０項目程度に減少させることができた。
【００４６】
上記では受信側クロック信号の立ち上がりでのクロックエッジ近傍を監視ウィンドウの対象から除外する場合を説明したが、更に、受信側クロック信号の立ち下がりでのクロックエッジ近傍を監視ウィンドウの対象から除外してもよい。これにより、同期転送の状態で、受信側クロック信号の立ち下がりのクロックエッジ近傍で転送信号の論理値が変化する場合についても、ミスサンプルがテストベクタに挿入されることが抑制される。その結果、疑似エラーの発生をより減少させることができる。
【００４７】
図９に、実施形態に係る検証装置１による検証方法の例を示す。
【００４８】
ステップＳ１において、受信側クロック信号のクロックエッジ近傍に除外期間を規定する。
【００４９】
ステップＳ２において、回路解析部１１が、検証対象回路の回路データを解析する。そして、ステップＳ３において、検証対象回路についてデータ転送箇所のクロック信号を切り替える構成の有無を検出する。クロック信号を切り替える構成を検出した場合には、処理はステップＳ４に進む。クロック信号を切り替える構成を検出しなかった場合には、処理はステップＳ６に進み、シミュレーション実行部１２が検証対象回路のシミュレーションを実行する。
【００５０】
ステップＳ４において、回路解析部１１が同期転送条件を検出する。同期転送条件が検出された場合には、処理はステップＳ５に進む。同期転送条件が検出されなかった場合には、処理はステップＳ６に進み、シミュレーションが実行される。
【００５１】
ステップＳ５において、回路解析部１１が、検出された同期転送条件を同期転送条件記憶領域２３に記憶し、同期転送条件をデータベース化する。その後、処理はステップＳ６に進み、シミュレーションが実行される。
【００５２】
上記のように、受信側クロック信号のクロックエッジ近傍に除外期間が規定され、同期転送条件がデータベース化された状態で、シミュレーション実行部１２が検証対象回路のシミュレーションを実行する。シミュレーション実行部１２は、監視ウィンドウの除外期間を除いた残余の期間において転送信号の論理値が変化する場合に、メタステーブルを発生させるミスサンプルをテストベクタに挿入してシミュレーションを実行する。一方、除外期間に転送信号の論理値が変化する場合には、シミュレーション実行部１２は、ミスサンプルをテストベクタに挿入せずにシミュレーションを実行する。
【００５３】
図１０に、検証装置１によりミスサンプルをテストベクタに挿入する方法のフローチャートを示す。以下に、図１０のフローチャートについて説明する。
【００５４】
シミュレーションの実行中に、ステップＳ１１において、シミュレーション実行部１２が、監視ウィンドウにおける転送信号の論理値の変化を検出した場合に、処理はステップＳ１２に進む。
【００５５】
ステップＳ１２において、シミュレーション実行部１２が、同期転送条件が検出されているか否かを判定する。データベース化された同期転送条件がなければ、処理はステップＳ１３に進む。一方、データベース化された同期転送条件があれば、処理はステップＳ１４に進む。
【００５６】
ステップＳ１３において、シミュレーション実行部１２が、受信側クロック信号のクロックエッジ近傍での転送信号の論理値の変化であるか否かを判定する。即ち、除外期間における転送信号の論理値の変化であるか否かが判定される。除外期間を除いた残余の期間で転送信号の論理値が変化する場合には、ステップＳ１５に処理が進み、シミュレーション実行部１２がミスサンプルをテストベクタに挿入する。一方、除外期間において転送信号の論理値が変化する場合には、ステップＳ１６に処理が進み、ミスサンプルをテストベクタに挿入せずに処理を終了する。
【００５７】
ステップＳ１２で同期転送条件が検出されている場合には、ステップＳ１４において、同期転送条件に合致するか否かを判定する。同期転送条件に合致しない場合には、ステップＳ１５に処理が進み、ミスサンプルがテストベクタに挿入される。一方、同期転送条件に合致する場合には、ステップＳ１６に処理が進み、ミスサンプルをテストベクタに挿入せずに処理を終了する。
【００５８】
以上に説明したように、実施形態に係る検証装置１では、データ転送箇所のクロック信号を切り替える構成の検出の有無に応じて、ミスサンプルをテストベクタに挿入するか否かの判定の方式を変更する。即ち、クロック信号を切り替える構成を検出しなかった場合であって、監視ウィンドウの除外期間において転送信号の論理値が変化する場合にはミスサンプルをテストベクタに挿入しない。一方、クロック信号を切り替える構成を検出した場合であって、同期転送条件が成立する場合にはミスサンプルをテストベクタに挿入しない。このようにミスサンプルをテストベクタに挿入することを抑止する方式を使い分けることによって、クロック信号を切り替える構成や同期転送条件を検出できない場合でも、同期転送での意図しないミスサンプルのテストベクタへの挿入が防止される。その結果、疑似エラーの発生を抑制できる。
【００５９】
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない、これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、書き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００６０】
１…検証装置
１０…ＣＰＵ
１１…回路解析部
１２…シミュレーション実行部
２０…記憶装置
２１…回路データ記憶領域
２２…テストベクタ記憶領域
２３…同期転送条件記憶領域
２４…シミュレーション結果記憶領域
【図１】
2020129170.tif 000003
【図２】
2020129170.tif 000004
【図３】
2020129170.tif 000005
【図４】
2020129170.tif 000006
【図５】
2020129170.tif 000007
【図６】
2020129170.tif 000008
【図７】
2020129170.tif 000009
【図８】
2020129170.tif 000010
【図９】
2020129170.tif 000011
【図１０】
2020129170.tif 000012