今日の FPGA デザインにおいて、異なるクロック・ドメイン間における信号の接続 ( CDC ( Clock Domain Crossing ))によるメタステーブルが問題になっています。従来の構造による検証だけでは、CDC 信号の検証に有効ではありません。このコラムでは CDC の問題とその検証方法について4回に分けてご説明します。

 

 

第4回:メタステーブルの検証方法

前回のコラムでメタステーブルの検証は非常に困難なことを説明しました。
今回は そのメタステーブルを検証するためにお勧めするツールをご紹介します。

 

4-1 メンターグラフィックス社のQuesta®CDC

Questa CDC は、CDC の検証に求められる3つの基本的な要素、構造解析、プロトコル検証、リコンバージェンス検証 をすべてサポートするツールです。論理合成前に RTL が完成した段階で解析ができます。

 

4-2 Questa CDC の特徴

 1.論理合成前の RTL で全 CDC を解析できます。

 2.CDC の構造解析結果は 対策を考慮したカテゴリでレポートします。

 3.RTL から該当する CDC 箇所を回路図で表示できます。

 4.構造解析結果からプロトコル検証すべき箇所にアサーションを自動生成できます。

 5.メタステーブル状態を作り出す回路を自動生成してリコンバージェンス検証ができます。

 6.行った CDC 対策が有効かどうかを検証できます。

 7.Questa 等のランダム・テストベンチ生成機能を併用すればテストベンチ作成は不要です。

 8.FPGA 検証を支援するキットが付属されています

 9.操作方法がシンプルで使いやすいツールです。

4-3 Questa CDC の機能

Questa CDC の機能を紹介します。

 

(1)構造解析

RTL から構造を解析して CDC 箇所をレポートします。


CDC 箇所があっても影響がなければ RTL を修正する必要はありません。ところが、構造解析によるエラー箇所は数千箇所にも及ぶことがありますので 対策を意識した分析しやすいレポートであることが重要です。

Questa CDC により構造解析は、CDC のテクノロジ別(FIFO/D-MUX/多段FF/HandShakeなど)、バス/シングル別、検証が不要な箇所かどうか等をレポートしますので CDC 対策に精通していなくても 次に何をしたら良いのか分かります。回路や仕様によって CDC 対策は様々ですので、このレポートは設計者にとって非常に役立ちます。

 

レポートを見るだけで下記のことが分かります。
・シンクロナイザが入っていない箇所
・シンクロナイザが正しく入っていない箇所
・シンクロナイザは入っているが、プロトコル検証が必要な箇所
・シンクロナイザは入っているが、プロトコル検証が不要な箇所
・ユーザ側で検証対象から外した箇所
・コンフィギュレーション回路などで CDC 検証が不要な箇所

 

 

CDC Summary
=============================================================
Violations (8)
-------------------------------------------------------------
Single-bit signal does not have proper synchronizer. (3)
Combinational logic before synchronizer. (2)
Multiple-bit signal across clock domain boundary. (1)
Single Source Reconvergence of synchronizers (2)
Cautions (6)
-------------------------------------------------------------
DMUX synchronization. (2)
Reconvergence of synchronizers. (4)
Evaluations (8)
-------------------------------------------------------------
Single-bit signal synchronized by DFF synchronizer. (2)
Multiple-bit signal synchronized by DFF synchronizer. (4)
FIFO synchronization. (2)
Waived (0)
-------------------------------------------------------------
<None>
Proven (4)
-------------------------------------------------------------
Single-bit signal synchronized by DFF synchronizer. (3)
Pulse Synchronization. (1)
Filtered (0)
-------------------------------------------------------------

 

図4-1. CDC のレポート例

 

RTL から CDC 箇所を自動で回路図表示する機能があるので、レポート内容から解析する際に便利です。

 

 

図4-2. 自動生成された回路図例

 

(2) CDC プロトコル検証

構造を確認しただけでは CDC 対策が必要かどうかの判断が難しいプロトコル検証については、論理シミュレーションを行って検証します。

Questa CDC はプロトコル検証用のチェッカー(アサーション記述)を自動で生成しますので、ModelSim® DE や Questa などのアサーションをサポートした論理シミュレーションを使うと、送信側、受信側のクロック比率から確実にデータを転送できる期間 CDC 信号が安定しているかどうかを検証できます。

アサーションについてはコチラを参照

 

 

・ツールが各シンクロナイザに対応したチェッカー(アサーション記述)を自動生成します。

・Quest のランダム・テストベンチ生成機能を用いると、プロトコル・エラーが発生するかどうかを全自動で検証できます。

・チェッカーにはカバレッジ情報も含まれるので、使用したテストベンチの妥当性やランダム・シミュレーション使用時の検証の進捗を管理できます。

 

図4-3. プロトコル・エラー

 

(3) CDC リコンバージェンス検証

検証が困難なのが リコンバージェンスです。通常の論理シミュレーションや実機でも検証できません。

Questa CDC は、メタステーブルが起きそうなクロックタイミング(ニアミス)時にわざとメタステーブルが起きたように論理を反転させて CDC のリコンバージェンスの影響を検証できます。

 

図4-4. リコンバージェンス検証の仕組み

 

上図のように、CDC の構造解析結果からメタスタビリティ・インジェクタと呼ばれる回路を自動生成&挿入しますので、Questa のランダム・テストと組み合わせる事で、メタステーブルの耐性検証を全自動で行えます。

ModelSim ではファンクション検証用のテストベンチを使ってリコンバージェンスの影響が出力ピンに出るかどうかを CDC 対策前後の波形比較で検証できます。

 

このように、メンター・グラフィックス社の Questa CDC は、従来の検証手法では検証が困難な非同期転送(CDC)検証ソリューションに求められる3つの基本的な要素、すなわち構造的または静的 CDC 解析、CDC プロトコル検証、CDC リコンバージェンス検証をすべてサポートするツールです。

 Questa CDC の詳細はコチラ