今日の 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 |
図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 リコンバージェンス検証をすべてサポートするツールです。