JP2020129170A - 検証装置及び検証方法 - Google Patents
検証装置及び検証方法 Download PDFInfo
- Publication number
- JP2020129170A JP2020129170A JP2019020388A JP2019020388A JP2020129170A JP 2020129170 A JP2020129170 A JP 2020129170A JP 2019020388 A JP2019020388 A JP 2019020388A JP 2019020388 A JP2019020388 A JP 2019020388A JP 2020129170 A JP2020129170 A JP 2020129170A
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- signal
- simulation
- clock signal
- logical value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Quality & Reliability (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
【課題】クロックドメインが動的に切り替わる集積回路での疑似エラーの発生を抑制できる検証装置及び検証方法を提供する。【解決手段】検証装置1は、検証対象回路のシミュレーションを実行するシミュレーション実行部12を備える。シミュレーション実行部12は、受信側クロック信号のセットアップ時間又はホールド時間において、クロックエッジ近傍に規定された除外期間を除いた残余の期間に転送信号の論理値が変化する場合には、受信側クロックドメインが転送信号を正しく取り込めない現象であるメタステーブルを意図的に発生させるミスサンプルをテストベクタに挿入してシミュレーションを実行し、除外期間に転送信号の論理値が変化する場合には、ミスサンプルをテストベクタに挿入せずにシミュレーションを実行する。【選択図】図1
Description
本発明の実施形態は、集積回路の検証装置及び検証方法に関する。
1つの集積回路において周期が異なる複数のクロック信号が用いられる場合がある。同一のクロック信号で駆動される回路ブロックを、以下において「クロックドメイン」という。クロックドメインが動的に切り替わる集積回路におけるクロックドメイン間での信号の受け渡し動作の検証ために、動的クロックドメインクロッシング検証(以下、「動的CDC検証」という。)が実施されている。
動的CDC検証では、非同期のクロックドメインの間でデータの受け渡しを行うデータ転送箇所において受信側クロックドメインが正しくデータを取り込めない現象(以下において「メタステーブル」という。)をシミュレーションにおいて意図的に発生させる。以下において、非同期のクロックドメインの間でのデータの受け渡しを「非同期転送」という。また、同期しているクロックドメインの間でのデータの受け渡しを「同期転送」という。
上記の動的CDC検証では、非同期転送において意図的にメタステーブルを発生させても集積回路が正しく動作するか否かを検証する。しかし、データ転送箇所での信号の転送が非同期転送から同期転送に切り替わった場合、同期転送に切り替わったことを認識できないために、同期転送の状態でメタステーブルを発生させる場合があった。その結果、集積回路には問題が無くてもエラー(以下、「疑似エラー」という。)が発生する。
本発明が解決しようとする課題は、クロックドメインが動的に切り替わる集積回路での疑似エラーの発生を抑制できる検証装置及び検証方法を提供することである。
実施形態に係る検証装置は、検証対象回路のシミュレーションを実行するシミュレーション実行部を備える。シミュレーション実行部は、受信側クロック信号のセットアップ時間又はホールド時間において、クロックエッジ近傍に規定された除外期間を除いた残余の期間に転送信号の論理値が変化する場合には、受信側クロックドメインが転送信号を正しく取り込めない現象であるメタステーブルを意図的に発生させるミスサンプルをテストベクタに挿入してシミュレーションを実行し、除外期間に転送信号の論理値が変化する場合には、ミスサンプルをテストベクタに挿入せずにシミュレーションを実行する。
以下に、図面を参照して実施形態を説明する。図面の記載において同一部分には同一符号を付して説明を省略する。
実施形態に係る検証装置1は、送信側クロック信号により駆動される送信側クロックドメインから受信側クロック信号により駆動される受信側クロックドメインへの転送信号の非同期転送と同期転送が動的に切り替わるデータ転送箇所を含む検証対象回路について論理動作を検証する。検証装置1は、図1に示すように、回路解析部11及びシミュレーション実行部12を有するCPU(中央演算処理装置)10と、記憶装置20を備える。記憶装置20は、回路データ記憶領域21、テストベクタ記憶領域22、同期転送条件記憶領域23及びシミュレーション結果記憶領域24を有する。入力装置30を介して入力される検証対象回路の回路データとテストベクタが、回路データ記憶領域21とテストベクタ記憶領域22にそれぞれ記憶される。同期転送条件記憶領域23には、後述する同期転送条件が記憶される。シミュレーション結果記憶領域24には、シミュレーション実行部12により実行されたシミュレーションの結果が記憶される。
回路解析部11は、後述するように、検証対象回路の回路データを解析してデータ転送箇所のクロック信号を切り替える構成の有無を検出する。シミュレーション実行部12は、テストベクタを用いて検証対象回路のシミュレーションを実行し、検証対象回路の論理動作を検証する。検証結果は、出力装置40から出力される。例えば、シミュレーションにより得られた出力信号と出力信号の期待値との異なる部分が明示された検証結果が得られる。
まず、検証装置1により行われる動的CDC検証について説明する。
送信側クロックドメインから受信側クロックドメインに信号が転送されるデータ転送箇所においてタイミング違反が生じると、転送される信号(以下、「転送信号」という。)が不安定になる。ここで、タイミング違反は、クロック信号のセットアップ時間又はホールド時間における転送信号の論理値の変化である。このタイミング違反により、受信側クロックドメインが転送信号を正しく取り込めないメタステーブルが発生する場合がある。
検証装置1は、検証対象回路の実際の動作においてメタステーブルが発生する可能性のあるタイミングで、メタステーブルを意図的に発生させるミスサンプルをテストベクタに挿入してシミュレーションを実行する。ミスサンプルでは、例えば、受信側クロックドメインを伝搬する信号の正常動作での論理値を、メタステーブルが発生した場合の論理値に入れ替える。そして、非同期転送において意図的にメタステーブルを発生させても集積回路が正しく動作するか否かを検証する。以下において、ミスサンプルをテストベクタに挿入する条件を「メタステーブル発生条件」という。
以下に、図2に示した回路を参照して、検証装置1による動的CDC検証の例を説明する。図2は、送信側クロックドメイン101と受信側クロックドメイン102の間で転送信号S1の転送が行われるデータ転送箇所を示している。図2に示した回路は、送信側クロック信号CLK1によって駆動される第1フリップフロップFF1が送信側クロックドメイン101である。そして、受信側クロック信号CLK2によって駆動される第2フリップフロップFF2及び第3フリップフロップFF3により受信側クロックドメイン102が構成されている。
入力信号DINが入力する第1フリップフロップFF1から出力された転送信号S1が、第2フリップフロップFF2に入力する。第2フリップフロップFF2から出力された伝搬信号D1は、第3フリップフロップFF3に入力する。第3フリップフロップFF3から、出力信号D2が出力される。
図3に、図2に示した回路の動的CDC検証におけるタイミングチャートを示す。図3において、正常動作における伝搬信号D1を信号パターンD1_1で示し、メタステーブルを意図的に発生させるミスサンプルを信号パターンD1_2で示した。
図3の時刻T1で、転送信号S1の論理値が「0」から「1」に変化している。この転送信号S1の論理値の変化がタイミング違反であるとする。このため、信号パターンD1_2では、矢印で信号パターンD1_1との相違を示したように、時刻T2において論理値が「1」に変化せず、「0」のままである。つまり、信号パターンD1_2として示したミスサンプルは、時刻T2において受信側クロックドメイン102が転送信号S1を正常に取り込めないメタステーブルを発生させたものである。
上記のように、動的CDC検証では、正常動作での信号パターンに代えてミスサンプルをテストベクタに挿入する。これにより、データ転送箇所でのメタステーブルを意図的に発生させる。このようにして、検証装置1は、非同期転送が行われるデータ転送箇所においてメタステーブルが発生しても回路が正しく論理動作するか否かを検証する。
次に、図4に示した回路を参照して、データ転送箇所が非同期転送から同期転送に切り替わる場合について説明する。図4に示した回路の送信側クロックドメイン101と受信側クロックドメイン102の構成は、図2に示した回路と同様である。
図4に示した回路では、第1入力信号INIT_DATAと第2入力信号DYN_DATAのいずれかが、データセレクタ回路201によって選択され、入力信号DINとして送信側クロックドメイン101に入力される。また、第1クロック信号INIT_CLKと第2クロック信号OP_CLK信号のいずれかが、クロックセレクタ回路202によって選択され、送信側クロック信号MRG_CLKとして送信側クロックドメイン101の第1フリップフロップFF1を駆動する。受信側クロックドメイン102の第2フリップフロップFF2及び第3フリップフロップFF3は、第2クロック信号OP_CLKにより駆動される。クロックセレクタ回路202によって第2クロック信号OP_CLK信号が選択された場合に、送信側クロックドメイン101と受信側クロックドメイン102間で転送信号S1が同期転送される。
データセレクタ回路201及びクロックセレクタ回路202は、セレクト信号SELによって制御される。つまり、セレクト信号SELの制御によって、送信側クロックドメイン101と受信側クロックドメイン102間での転送信号S1の非同期転送と同期転送が動的に切り替わる。このように、図4に示した回路には、第1フリップフロップFF1を駆動する送信側クロック信号の切り替え回路が存在する。
図4に示した回路の非同期転送と同期転送におけるタイミング違反の例を図5に示す。同期転送では、図5の信号パターンP1に示すように、送信側クロック信号MRG_CLKのセットアップ時間Wsとホールド時間Whの境界であるクロックエッジ近傍で転送信号S1の論理値が変化する。一方、非同期転送では、図5の信号パターンP2に示すように、クロックエッジから離れた時刻で転送信号S1の論理値が変化する。
図5に示す信号パターンP1及び信号パターンP2のいずれにおいても、送信側クロック信号MRG_CLKのセットアップ時間Wsとホールド時間Whの期間に転送信号S1の論理値が変化するタイミング違反が発生している。以下において、セットアップ時間Wsとホールド時間Whを合わせて「監視ウィンドウ」という。検証装置1は、監視ウィンドウにおいて転送信号の論理値が変化することをタイミング違反として検出する。
従来の動的CDC検証においては、監視ウィンドウにおいて転送信号S1の論理値が変化する場合に、メタステーブルを発生させるミスサンプルをテストベクタに挿入する。つまり、図5に示す信号パターンP1及び信号パターンP2のいずれの場合も、ミスサンプルがテストベクタに挿入される。
しかし、データ転送箇所が同期転送である場合にミスサンプルをテストベクタに挿入すると、疑似エラーが発生する。
図4に示した回路で疑似エラーが発生する例を、図6と図7のタイミングチャートを比較して説明する。図6は正常動作しているタイミングチャートを示し、図7は疑似エラーが発生しているタイミングチャートを示す。なお、図6及び図7において、非同期転送から同期転送に切り替わった後の信号の一部にデータd1〜d8を付した。データd1〜d8は、8ビットのデータが転送される場合を想定したものである。第2入力信号DYN_DATAのデータd1〜d8が、転送信号S1、伝搬信号D1、出力信号D2に伝搬する。
図6及び図7に示したタイミングチャートでは、時刻Tcにおいてセレクト信号SELの制御により、データ転送箇所が非同期転送から同期転送に切り替わる。そして、時刻Tcの後に、データd1〜d8が送信側クロックドメイン101から受信側クロックドメイン102に転送される。
このとき、正常動作では、図6に示すようにデータd1〜d7が受信側クロックドメイン102に正しく読み取られている。しかし、図7に示したタイミングチャートでは、タイミング違反が検出されて、データd1に本来の論理値である「1」の代わりにミスサンプルとして「0」が挿入されている。また、データd5に本来の論理値である「1」の代わりにミスサンプルとして「0」が挿入されている。その結果、出力信号D2に疑似エラーが発生している。
上記のように、同期転送している場合にミスサンプルをテストベクタに挿入することにより、動的CDC検証において疑似エラーが発生する。このため、同期転送の場合にはミスサンプルをテストベクタに挿入しないようにする必要がある。ただし、セレクト信号SELの状態をみて同期転送と非同期転送を判別することは、一般的に検証対象回路に含まれるデータ転送箇所の個数が多いため、困難である。
このため、検証装置1では、疑似エラーの発生を抑制するために、データ転送箇所のクロック信号を切り替える構成を、検証対象回路の回路データを解析して検出する。これにより、クロック信号を切り替えることによりデータ転送箇所での信号の転送が非同期転送から同期転送に切り替わることを検出できる。例えば、検証装置1は、送信側クロックドメインを駆動する送信側クロック信号を受信側クロック信号と同期するクロック信号に切り替える構成を、検証対象回路の回路データから検出する。
例えば、回路解析部11が、図4に示した回路について、送信側クロックドメイン101を駆動する送信側クロック信号MRG_CLKと、受信側クロックドメイン102を駆動する第2クロック信号OP_CLKの接続関係を分析する。そして、データ転送箇所のクロック信号を切り替える構成が検出された場合に、回路解析部11は、送信側クロック信号MRG_CLKと第2クロック信号OP_CLKが同じになる条件、即ち転送信号S1の転送が同期転送になる条件(以下において、「同期転送条件」という。)を検出する。
例えば、検証対象回路の回路データに「assign MRG_CLK=SEL?OP_CLK:INIT_CLK」のような記述が含まれていれば、送信側クロック信号MRG_CLKと第2クロック信号OP_CLKに接続関係に有り、同期転送条件が成立すると判定される。このようにして、検証装置1は、データ転送箇所で転送信号が非同期転送されている状態と同期転送されている状態とを判別する。回路解析部11は、検出された同期転送条件を同期転送条件記憶領域23に記憶し、同期転送条件をデータベース化する。
そして、検証装置1は、同期転送条件記憶領域23に記憶された同期転送条件を参照しながら、検証対象回路の動的CDC検証を実行する。つまり、シミュレーション実行部12は、メタステーブル発生条件になったとき、同期転送条件に合致しないと判定した場合にはミスサンプルをテストベクタに挿入する。これにより、データ転送箇所でデータが非同期転送されている状態においてメタステーブルを意図的に発生させて、動的CDC検証が行われる。一方、メタステーブル発生条件になったときでも、同期転送条件に合致すると判定した場合には、シミュレーション実行部12はミスサンプルをテストベクタに挿入しない。これにより、データ転送箇所でデータが同期転送されている状態においてはメタステーブルが発生せず、疑似エラーの発生を抑制できる。
なお、データ転送箇所のクロック信号を切り替える構成を検出した場合に、同期転送条件を検出できない場合もある。このため、データ転送箇所のクロック信号を切り替える構成を検証対象回路において検出した場合には、ミスサンプルをテストベクタに挿入せずにシミュレーションを実行するようにしてもよい。
また、検証対象回路の回路構成が複雑な場合などに、データ転送箇所のクロック信号を切り替える構成や同期転送条件を検出することが困難な場合がある。そのような場合であっても、データ転送箇所が同期転送の状態になる場合があり得る。このため、データ転送箇所のクロック信号を切り替える構成を検出できなかった場合に、検証装置1は、以下のように動的CDC検証を実行する。
即ち、検証装置1は、受信側クロック信号のクロックエッジ近傍を、監視ウィンドウの対象から除外する。つまり、受信側クロック信号のクロックエッジ近傍での転送信号の論理値の変化に対しては、検証装置1はミスサンプルをテストベクタに挿入しない。
同期転送では、図8の信号パターンP1に示すように、受信側クロック信号のクロックエッジ近傍において、送信側クロックドメインから受信側クロックドメインに転送される転送信号S1の論理値が変化する。このため、図8にハッチングで示した第2クロック信号OP_CLKのクロックエッジ近傍の一定の期間を除外期間Weとして規定する。そして、検証装置1は、除外期間Weで転送信号S1の論理値が変化してもミスサンプルをテストベクタに挿入しない。このようにして、転送信号の論理値の変化が受信側クロック信号のクロックエッジ近傍である場合にはミスサンプルをテストベクタに挿入しないことにより、疑似エラーの発生が抑制される。
一方、非同期転送においては、受信側クロック信号のクロックエッジ近傍以外で転送信号の論理値が変化する。即ち、図8の信号パターンP2に示すように、除外期間Weとした第2クロック信号OP_CLKのクロックエッジ近傍以外で、転送信号S1の論理値が変化する。このため、検証装置1がミスサンプルをテストベクタに挿入しても疑似エラーは発生しない。
以上のように、受信側クロック信号のクロックエッジ近傍を監視ウィンドウの対象から除外することにより、非同期転送においてメタステーブルを発生させ、且つ、同期転送における疑似エラーの発生を抑制することができる。
なお、非同期転送された転送信号の論理値が除外期間Weに変化しないように、送信側クロック信号と受信側クロック信号の間に適切なクロックスキューを設定することが好ましい。これにより、非同期転送での転送信号が同期転送での転送信号として扱われないようにすることができる。
これに対し、クロックスキューが長すぎる場合には、非同期転送での転送信号が同期転送での転送信号と誤認されるおそれが生じる。一方、クロックスキューが短すぎる場合には、同期転送での転送信号が非同期転送での転送信号と誤認されるおそれが生じる。
上記のように、送信側クロック信号と受信側クロック信号の間に適切なクロックスキューを設定することにより、監視ウィンドウの対象から除外された除外期間Weにおいて非同期転送された転送信号の論理値が変化することを防止できる。これにより、非同期転送された転送信号が同期転送された転送信号と誤認されることが抑制され、ミスサンプルがテストベクタに挿入される。
監視ウィンドウの対象から除外する除外期間Weは、クロック信号の周期などに応じて規定される。なお、除外期間Weを長めに規定することにより、同期転送において転送信号が多少の遅延で受信側クロックドメインに入力しても、ミスサンプルがテストベクタに挿入されない。このため、疑似エラーの発生が抑制される。一方、除外期間Weを長くしすぎると、非同期転送された転送信号の論理値が除外期間Weに変化するおそれがある。除外期間Weは、例えば受信側クロック信号の周期の100分の1〜50分の1程度に規定される。
本発明者らは、除外期間Weを受信側クロック信号の周期の50分の1に規定して800項目の論理動作について検証を行った結果、疑似エラーの発生を従来の150項目から10項目程度に減少させることができた。
上記では受信側クロック信号の立ち上がりでのクロックエッジ近傍を監視ウィンドウの対象から除外する場合を説明したが、更に、受信側クロック信号の立ち下がりでのクロックエッジ近傍を監視ウィンドウの対象から除外してもよい。これにより、同期転送の状態で、受信側クロック信号の立ち下がりのクロックエッジ近傍で転送信号の論理値が変化する場合についても、ミスサンプルがテストベクタに挿入されることが抑制される。その結果、疑似エラーの発生をより減少させることができる。
図9に、実施形態に係る検証装置1による検証方法の例を示す。
ステップS1において、受信側クロック信号のクロックエッジ近傍に除外期間を規定する。
ステップS2において、回路解析部11が、検証対象回路の回路データを解析する。そして、ステップS3において、検証対象回路についてデータ転送箇所のクロック信号を切り替える構成の有無を検出する。クロック信号を切り替える構成を検出した場合には、処理はステップS4に進む。クロック信号を切り替える構成を検出しなかった場合には、処理はステップS6に進み、シミュレーション実行部12が検証対象回路のシミュレーションを実行する。
ステップS4において、回路解析部11が同期転送条件を検出する。同期転送条件が検出された場合には、処理はステップS5に進む。同期転送条件が検出されなかった場合には、処理はステップS6に進み、シミュレーションが実行される。
ステップS5において、回路解析部11が、検出された同期転送条件を同期転送条件記憶領域23に記憶し、同期転送条件をデータベース化する。その後、処理はステップS6に進み、シミュレーションが実行される。
上記のように、受信側クロック信号のクロックエッジ近傍に除外期間が規定され、同期転送条件がデータベース化された状態で、シミュレーション実行部12が検証対象回路のシミュレーションを実行する。シミュレーション実行部12は、監視ウィンドウの除外期間を除いた残余の期間において転送信号の論理値が変化する場合に、メタステーブルを発生させるミスサンプルをテストベクタに挿入してシミュレーションを実行する。一方、除外期間に転送信号の論理値が変化する場合には、シミュレーション実行部12は、ミスサンプルをテストベクタに挿入せずにシミュレーションを実行する。
図10に、検証装置1によりミスサンプルをテストベクタに挿入する方法のフローチャートを示す。以下に、図10のフローチャートについて説明する。
シミュレーションの実行中に、ステップS11において、シミュレーション実行部12が、監視ウィンドウにおける転送信号の論理値の変化を検出した場合に、処理はステップS12に進む。
ステップS12において、シミュレーション実行部12が、同期転送条件が検出されているか否かを判定する。データベース化された同期転送条件がなければ、処理はステップS13に進む。一方、データベース化された同期転送条件があれば、処理はステップS14に進む。
ステップS13において、シミュレーション実行部12が、受信側クロック信号のクロックエッジ近傍での転送信号の論理値の変化であるか否かを判定する。即ち、除外期間における転送信号の論理値の変化であるか否かが判定される。除外期間を除いた残余の期間で転送信号の論理値が変化する場合には、ステップS15に処理が進み、シミュレーション実行部12がミスサンプルをテストベクタに挿入する。一方、除外期間において転送信号の論理値が変化する場合には、ステップS16に処理が進み、ミスサンプルをテストベクタに挿入せずに処理を終了する。
ステップS12で同期転送条件が検出されている場合には、ステップS14において、同期転送条件に合致するか否かを判定する。同期転送条件に合致しない場合には、ステップS15に処理が進み、ミスサンプルがテストベクタに挿入される。一方、同期転送条件に合致する場合には、ステップS16に処理が進み、ミスサンプルをテストベクタに挿入せずに処理を終了する。
以上に説明したように、実施形態に係る検証装置1では、データ転送箇所のクロック信号を切り替える構成の検出の有無に応じて、ミスサンプルをテストベクタに挿入するか否かの判定の方式を変更する。即ち、クロック信号を切り替える構成を検出しなかった場合であって、監視ウィンドウの除外期間において転送信号の論理値が変化する場合にはミスサンプルをテストベクタに挿入しない。一方、クロック信号を切り替える構成を検出した場合であって、同期転送条件が成立する場合にはミスサンプルをテストベクタに挿入しない。このようにミスサンプルをテストベクタに挿入することを抑止する方式を使い分けることによって、クロック信号を切り替える構成や同期転送条件を検出できない場合でも、同期転送での意図しないミスサンプルのテストベクタへの挿入が防止される。その結果、疑似エラーの発生を抑制できる。
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない、これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、書き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…検証装置
10…CPU
11…回路解析部
12…シミュレーション実行部
20…記憶装置
21…回路データ記憶領域
22…テストベクタ記憶領域
23…同期転送条件記憶領域
24…シミュレーション結果記憶領域
10…CPU
11…回路解析部
12…シミュレーション実行部
20…記憶装置
21…回路データ記憶領域
22…テストベクタ記憶領域
23…同期転送条件記憶領域
24…シミュレーション結果記憶領域
Claims (12)
- 送信側クロック信号により駆動される送信側クロックドメインから受信側クロック信号により駆動される受信側クロックドメインへの転送信号の非同期転送と同期転送が動的に切り替わるデータ転送箇所を含む検証対象回路について論理動作を検証する検証装置であって、
前記検証装置が、前記検証対象回路のシミュレーションを実行するシミュレーション実行部を備え、
前記シミュレーション実行部が、
前記受信側クロック信号のセットアップ時間又はホールド時間において、クロックエッジ近傍に規定された除外期間を除いた残余の期間に前記転送信号の論理値が変化する場合には、前記受信側クロックドメインが前記転送信号を正しく取り込めない現象であるメタステーブルを意図的に発生させるミスサンプルをテストベクタに挿入してシミュレーションを実行し、
前記除外期間に前記転送信号の論理値が変化する場合には、前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行する
ことを特徴とする検証装置。 - 前記検証対象回路の回路データを解析する回路解析部を更に備え、
前記回路解析部が、前記データ転送箇所のクロック信号を切り替える構成を検出しなかった場合に、前記シミュレーション実行部が、
前記残余の期間に前記転送信号の論理値が変化する場合には、前記ミスサンプルを前記テストベクタに挿入してシミュレーションを実行し、
前記除外期間に前記転送信号の論理値が変化する場合には、前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行する
ことを特徴とする請求項1に記載の検証装置。 - 前記回路解析部が、前記データ転送箇所のクロック信号を切り替える構成を検出した場合に、
前記回路解析部が、前記転送信号が同期転送される同期転送条件をデータベース化し、
前記シミュレーション実行部が、前記同期転送条件が成立する場合には前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行する
ことを特徴とする請求項2に記載の検証装置。 - 前記回路解析部が、前記データ転送箇所のクロック信号を切り替える構成を検出した場合に、前記シミュレーション実行部が、前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行することを特徴とする請求項2に記載の検証装置。
- 非同期転送された前記転送信号の論理値が前記除外期間に変化しないように、前記送信側クロック信号と前記受信側クロック信号のスキューが設定されていることを特徴とする請求項1乃至4のいずれか1項に記載の検証装置。
- 非同期転送された前記転送信号の論理値が前記除外期間に変化しないように、前記除外期間の長さが規定されていることを特徴とする請求項1乃至5のいずれか1項に記載の検証装置。
- 送信側クロック信号により駆動される送信側クロックドメインから受信側クロック信号により駆動される受信側クロックドメインへの転送信号の非同期転送と同期転送が動的に切り替わるデータ転送箇所を含む検証対象回路について論理動作を検証する検証方法であって、
前記受信側クロック信号のクロックエッジ近傍に除外期間を規定し、
前記受信側クロック信号のセットアップ時間又はホールド時間において前記除外期間を除いた残余の期間に前記転送信号の論理値が変化する場合には、前記受信側クロックドメインが前記転送信号を正しく取り込めない現象であるメタステーブルを意図的に発生させるミスサンプルをテストベクタに挿入してシミュレーションを実行し、
前記除外期間に前記転送信号の論理値が変化する場合には、前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行する
ことを特徴とする検証方法。 - 前記検証対象回路の回路データを解析して前記データ転送箇所のクロック信号を切り替える構成の有無を検出し、
前記データ転送箇所のクロック信号を切り替える構成を検出しなかった場合に、
前記残余の期間に前記転送信号の論理値が変化する場合には、前記ミスサンプルを前記テストベクタに挿入してシミュレーションを実行し、
前記除外期間に前記転送信号の論理値が変化する場合には、前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行する
ことを特徴とする請求項7に記載の検証方法。 - 前記データ転送箇所のクロック信号を切り替える構成が検出された場合に、前記転送信号が同期転送される同期転送条件をデータベース化し、前記同期転送条件が成立する場合には前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行することを特徴とする請求項8に記載の検証方法。
- 前記データ転送箇所のクロック信号を切り替える構成を検出した場合に、前記ミスサンプルを前記テストベクタに挿入せずにシミュレーションを実行することを特徴とする請求項8に記載の検証方法。
- 非同期転送された前記転送信号の論理値が前記除外期間に変化しないように、前記送信側クロック信号と前記受信側クロック信号のスキューを設定することを特徴とする請求項7乃至10のいずれか1項に記載の検証方法。
- 非同期転送された前記転送信号の論理値が前記除外期間に変化しないように、前記除外期間の長さを規定することを特徴とする請求項7乃至11のいずれか1項に記載の検証方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019020388A JP2020129170A (ja) | 2019-02-07 | 2019-02-07 | 検証装置及び検証方法 |
US16/558,374 US10896275B2 (en) | 2019-02-07 | 2019-09-03 | Verification apparatus and method for verifying operation of integrated circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019020388A JP2020129170A (ja) | 2019-02-07 | 2019-02-07 | 検証装置及び検証方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020129170A true JP2020129170A (ja) | 2020-08-27 |
Family
ID=71946124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019020388A Pending JP2020129170A (ja) | 2019-02-07 | 2019-02-07 | 検証装置及び検証方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10896275B2 (ja) |
JP (1) | JP2020129170A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112417795B (zh) * | 2020-11-19 | 2023-07-07 | 海光信息技术股份有限公司 | 一种电路验证方法、装置、电子设备及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4271067B2 (ja) * | 2004-03-29 | 2009-06-03 | 富士通マイクロエレクトロニクス株式会社 | 非同期回路検証方法および非同期回路検証プログラム |
US7356789B2 (en) * | 2004-06-01 | 2008-04-08 | Tai An Ly | Metastability effects simulation for a circuit description |
DE102005024917A1 (de) * | 2005-05-31 | 2006-12-07 | Advanced Micro Devices, Inc., Sunnyvale | Dynamische Synchronisierersimulation |
JP4585559B2 (ja) * | 2007-08-30 | 2010-11-24 | 株式会社東芝 | 半導体集積回路の検証装置 |
JP5471432B2 (ja) | 2009-12-25 | 2014-04-16 | 富士通株式会社 | 検証支援プログラム、および検証支援装置 |
JP5672038B2 (ja) | 2011-02-10 | 2015-02-18 | 富士通株式会社 | 検証支援装置、検証支援プログラム、および検証支援方法 |
JP5733109B2 (ja) | 2011-08-29 | 2015-06-10 | 富士通株式会社 | 検証支援プログラム、検証支援方法、および検証支援装置 |
JP5900053B2 (ja) | 2012-03-15 | 2016-04-06 | 株式会社ソシオネクスト | クロック切替回路 |
US9952650B2 (en) | 2014-10-16 | 2018-04-24 | Futurewei Technologies, Inc. | Hardware apparatus and method for multiple processors dynamic asymmetric and symmetric mode switching |
-
2019
- 2019-02-07 JP JP2019020388A patent/JP2020129170A/ja active Pending
- 2019-09-03 US US16/558,374 patent/US10896275B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10896275B2 (en) | 2021-01-19 |
US20200257332A1 (en) | 2020-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101312978B1 (ko) | 성능 모니터링을 위한 임계―경로 회로 | |
US8042010B2 (en) | Two-phase clock-stalling technique for error detection and error correction | |
US7787577B2 (en) | Asynchronous interface methods and apparatus | |
US20070089076A1 (en) | Application of consistent cycle context for related setup and hold tests for static timing analysis | |
JP2007518988A (ja) | 複数のクロックドメインを備える回路のテスティング | |
US5771375A (en) | Automatic delay adjustment for static timing analysis using clock edge identification and half cycle paths | |
Karimi et al. | Detection, diagnosis, and recovery from clock-domain crossing failures in multiclock SoCs | |
US7216273B2 (en) | Method for testing non-deterministic device data | |
JP2020129170A (ja) | 検証装置及び検証方法 | |
JP5024185B2 (ja) | 回路動作検証方法及び装置 | |
US7237208B1 (en) | Managing formal verification complexity of designs with datapaths | |
US7930609B2 (en) | Apparatus and method for verifying target circuit | |
US8330471B2 (en) | Signal generation and detection apparatus and tester | |
US8055467B2 (en) | Method of generating a restricted inline resistive fault pattern and a test pattern generator | |
JP2017059185A (ja) | スキャンテスト回路及びスキャンテスト装置 | |
US7418684B1 (en) | Systems, methods, and apparatus to perform static timing analysis and optimization for multi-mode clock circuit networks | |
US8255752B2 (en) | Clock domain check method, clock domain check program, and recording medium | |
JP5691890B2 (ja) | 検証装置、検証プログラム、および、検証方法 | |
JP2002259488A (ja) | クロックスキュー検証方法 | |
JP2021092889A (ja) | 検証支援装置、検証支援方法および検証支援プログラム | |
JP3573692B2 (ja) | スキャンパス回路、スキャンパス回路の生成方法、および、そのプログラムを記録した記録媒体 | |
JP2010002345A (ja) | Acテスト容易化回路およびacテスト方法 | |
Yorav et al. | Reproducing synchronization bugs with model checking | |
US8782579B2 (en) | Connection verification method, recording medium thereof, and connection verification apparatus | |
JP2004185311A (ja) | 非同期回路検証支援装置 |