Xilinx社のFPGAにJESD204Bを迅速に実装する

はじめに

JESD204は、データ・コンバータ(A/DコンバータとD/Aコンバータ)をロジック・デバイスに接続するための高速シリアル・インターフェースです。この規格のリビジョンB(JESD204B)は、シリアルで最大12.5Gbpsに達するデータ・レートをサポートします。また、JESD204に対応するリンク上では確定的遅延(Deterministic Latency)が保証されます。ADC/DACの速度と分解能は向上し続けています。この傾向に対応するために、アナログ・デバイセズ(ADI)の高速ADC/DACやRFトランシーバICでも、JESD204Bに準拠するインターフェースを一般的に採用しています。また、FPGAやASICでは、ADC/DACとのインターフェースとして従来から使われているLVDS(低電圧差動伝送:Low Voltage Differential Signaling)やCMOSといったパラレル・インターフェースを置き換えるものとして、柔軟性の高いSERDES(se-rializer/deserializer)が使われるようになりました。その設計では、JESD204で定められた物理(PHY)層の実装が利用されています。本稿では、Xilinx社のFPGAを使用してJESD204Bに対応するインターフェースを迅速に実装するにはどうすればよいのか解説します。そのうえで、FPGA設計者に対して、アプリケーションとデバッグに関するいくつかの提案を行います。

JESD204Bのプロトコルと実装

JESD204Bでは、データ・ストリームに関する実装において鍵になる4つの層(レイヤー)をプロトコルとして規定しています(図1)。各層の概要は以下のようになっています。

・トランスポート層:サンプル・データと、フレーム化された非スクランブリング・オクテットの間の変換におけるマッピングを行う

・スクランブリング層(オプション):オクテットをスクランブリング/デスクランブリングし、周波数軸におけるピークを拡散することによってEMI(電磁干渉)を低減する

・データ・リンク層:リンクにおける同期、セットアップ、維持を担う。また、10ビット・キャラクタ向けのオプションとして、スクランブリングされたオクテットをエンコード/デコードする

・物理層:指定されたビットレートでキャラクタを送信/受信する.

Figure 1
図1. JESD204Bにおいて鍵になる層

JESD204BのIP(Intellectual Property)を提供するベンダーらは、それぞれ異なる手法で各層の実装を行う可能性があります。図2と図3に、JESD204Bの送受信プロトコルの実装例としてADIが採用している方法を示しました。

Figure 2
図2. JESD204Bに対応するトランスミッタの実装例
 Figure 3
図3. JESD204Bに対応するレシーバの実装例

トランスポート層の実装は、対象とするADC/DACの構成(コンフィギュレーション)と、サンプル‐フレーム間のマッピング方法に強く依存するため、ほとんどのFPGAベンダーはJESD204用のIPにこの部分は含めていません。FPGAには、コンフィギュレーションの高度な変更が可能で、高い密度で集積されたSERDESトランシーバが組み込まれます。これは、PCI Express、SATA(Serial ATA)、Serial RapidIO、CPRI(Common Public Radio Interface)、JESD204Bを含むあらゆるシリアル・プロトコルに対応するために使用できます。リンク層を実装したロジック・コアは、コンフィギュレーションの変更が可能で物理層の実現に使用されるSERDESと組み合わせられることにより、JESD204リンクの基盤を形成することになります。図4と図5は、Xilinx社のFPGA上に実装したJESD204Bトランスミッタ/レシーバのブロック図です。送信レーンと受信レーンにはスクランブリング層とリンク層が実装されているほか、 8B/10B 用のエンコーダ/デコーダと物理層は、 GTP/GTX/GTH トランシーバに実装されています。

Figure 4
図4. Xilinx社のFPGAに実装したJESD204Bトランスミッタ
Figure 5
図5. Xilinx社のFPGAに実装したJESD204Bレシーバ

Xilinx社のFPGAを使用したJESD204Bの設計例

Xilinx社の最新の JESD204 IP コアは、「 Vivado® Design Suite 」により暗号化/ブラック・ボックス化して提供されています。また同社は、AXI(Advanced Extensible Interface)を使用するVerilog設計のサンプルも提供しています。ただし、そのサンプル・プロジェクトは、多くのアプリケーションにとっては過剰なレベルの設計になっています。通常、ユーザーは独自のインターフェースを構築しており、JESD204Bのロジック部にAXIを組み込む必要はありません。図6に示したのは、JESD204Bの簡略化された設計例です。これは、FPGAのユーザーがJESD204の構造を理解し、FPGAをベースとするJESD204のプロジェクトを迅速にスタートするうえで役に立つでしょう。

Figure 6
図6. JESD204Bの簡略化された設計例l

暗号化されたRTL(Register-transfer Language)ブロックは、Vivado Design Suiteによって生成されるJESD204対応のロジックIPコアです。これは、図4と図5に示したトランスミッタ/レシーバ・モジュールと同等の機能を実現します。インターフェースの定義は暗号化され、Xilinx社の設計サンプル・ファイルに含まれています。暗号化されたRTLブロックは、JESDユーザー・トップでラップされています。暗号化されたRTLブロックに含まれる制御、コンフィギュレーション、ステータス(状態)、JESD204のデータ用インターフェースの機能は、ラッパーを介してユーザー・ロジックとGTX/GTHトランシーバのデータに接続されます。GTX/GTHに対するシンボルのアライメント用コンフィギュレーションは、トランシーバがより堅牢に動作するよう最適化/アップデートされます。

SERDESトランシーバに供給するGTX/GTHリファレンス・クロックには専用パッドを使用する必要があります。FPGA上のロジックに対するグローバル・クロックの設計では、内部PLL、パラレル・インターフェース、JESD204ロジック・コア、ユーザーが定義する処理用ロジックのそれぞれに対するクロックを含めて十分な注意を払う必要があります。また、JESD204Bロジック・コア(サブクラス1)に対するSYSREF(Master System Reference)入力は、JESD204リンクの確定的遅延を保証するために正確に取り込めるようにしなければなりません。

GTX/GTHトランシーバとJESD204コアのリセット・シーケンスは、JESDリンクを高い信頼性で初期化するための鍵になる要素です。JESD204コアは、GTX/GTHトランシーバの内部PLLがロックされてGTX/GTHのリセットが完了するまで、リセット状態になっていなければなりません。

F2S(Frame-to-samples)モジュールは、JESD204のトランスポート層を実装するために必要な要素です。このモジュールは、JESD204Bのコンフィギュレーション設定に応じ、サンプルからフレーム、あるいはフレームからサンプルへのマッピングを行います。サンプルはアプリケーション専用のロジックで処理されます。システムのデバッグを実施する際には、追加のモジュールによってJESD204ロジックと物理層のステータスを監視します。

SERDESトランシーバにおけるシンボルのアライメント

SERDESレシーバにおいて、シリアル・データは、パラレル・データとして使用できるようにするために、シンボルの境界にアライメントされていなければなりません。このアライメントを実現するために、トランスミッタは識別用のシーケンスを送信します。通常、このシーケンスはカンマと呼ばれます。レシーバは、入力データ・ストリームの中からカンマを検索し、見つかり次第それをシンボルの境界に移動させます。これにより、受信したパラレル・ワードと送信するパラレル・ワードとのマッチングが可能になります。通常、カンマとしてはKキャラクタが使用されますが、これは8b/10bテーブルにおいて制御シンボルとして使用される特別なキャラクタです。JESD204Bのアプリケーションにおいて、トランスミッタはCGS(Code Group Synchronization)のためのKキャラクタとしてK28.5シンボルのストリームを送信します。そのため、FPGAはシンボルの境界をアライメントするためのカンマとしてK28.5を使うことができます。またユーザーは、カンマ・マッチングをカンマ・プラス(ランニング・ディスパリティがプラス)にするか、カンマ・マイナス(ランニング・ディスパリティがマイナス)にするか、それとも両方にするかという設定を行えます。JESD204Bにおいて、カンマ検出に関するGTX/GTHのデフォルトの設定では、カンマ・プラスあるいはカンマ・マイナスのいずれかによってカンマをアライメントすることを許容しています。

アプリケーションによっては、カンマに関するデフォルトの設定が、シンボルの再アライメント、あるいは誤ったシンボル境界へのアライメントになっていることがあります。これによって、8b/10bデコーディングの乱れによるエラーやJESD204Bリンクの断絶が引き起こされることがあります。カンマ・プラスとカンマ・マイナスを組み合わせると、堅牢生が向上します。その場合、カンマ・アライメント用のブロックが、連続する2つのカンマを探し出します。そして、受信したデータに、1個のカンマ・プラスまたはカンマ・マイナスに続いて余分なビットが存在することなく、1個のカンマ・プラスまたはカンマ・マイナスが存在する場合だけカンマが検出されたことになります。これにより、ライン・レートが高くなった場合やシステムに過剰なノイズが存在する場合でも、シンボルの境界とリンクの安定性を維持することが可能になります。

FPGAにJESD204を実装するための検討

SYNCは、JESD204に対応するレシーバからトランスミッタに送られる同期信号です。これはアクティブ・ローの信号であり、同期の状態を表します。正常に動作している際にリンクの初期化を再度行うと、サンプル・データに乱れが生じるため、リンクの状態はリアルタイムで監視しておく必要があります。特に、SYNCが継続してローである場合には、レシーバが受信データ・ストリームにおいて少なくとも4回連続して生じるK28.5シンボルを認識できないということを意味します。この状況が発生したら、トランスミッタ/レシーバにおけるSERDESのコンフィギュレーションをチェックするとともに、トランスミッタがK28.5を送信していることを確認しましょう。SYNCが継続してハイである場合には、リンクが確立され、安定性が維持されているということになります。SYNCがハイからローになり、またハイに戻る場合には、ローであった期間をカウントする必要があります。その期間が5フレーム+9オクテットより長い場合、レシーバは大きなエラーを検出したことになり、JESD204リンクを再度初期化するようリクエストを送信します。一方、その期間が2フレーム・クロックに等しい場合には、レシーバが小さなエラーを検出したということになります。この場合、リンクを再度初期化するためのトリガーが生じることはありません。この機能を使えば、システムのデバッグやその後のリンクの監視が非常に容易になることから、ユーザーはこの機能を設計に含めておくべきです。

8b/10bデコーディングにおいてエラーが生じると、JESD204Bリンクが再度初期化されることがあります。ただし、そうしたエラーは単一の原因によって起きるわけではありません。したがって、ユーザーの設計には、リンクの再同期を必要とするエラーが起きた原因を特定するために、各レーンにおけるデコーディング・エラーをカウントする機能を含める必要があります。また、SERDESリンクの品質は、8b/10bデコーディングにおけるエラーの状態を基にリアルタイムに決定することが可能です。

高速リンクにおける信号品質やジッタ耐性を測定する際には、PRBS(擬似ランダム・ビット・シーケンス)を使用する方法が有効です。ほとんどのFPGAでは、SERDESトランシーバにPRBSジェネレータ/チェッカーが用意されているため、PRBSはFPGAのリソースを余分に消費することなく使用できます。このメリットを生かすために、この機能は必ずインスタンス化しておいてください。PRBSはBER(ビットエラー率)やアイ・ダイアグラムの評価に有用です。

SERDESトランシーバでは、内部のクロック・ドメインを変更するために、常にバッファが使用されます。トランスミッタ/レシーバ用のクロックの設計が不適切であった場合、あるいはCDR(Clock and Data Recovery)の設定が誤っている場合には、バッファにオーバーフロー/アンダーフローが生じます。これが原因となってリンクにエラーが発生することもあるので、バッファの状態を監視することには大きな意味があります。システムのデバッグを行う際には、バッファにオーバーフロー/アンダーフローが生じたときの割り込みの記録が役に立ちます。ユーザー・ロジック内にオーバーフロー/アンダーフローを許容できないバッファがあれば、それらも監視するべきです。

まとめ

本稿では、Xilinx社のFPGAにJESD204に対応する回路を迅速に実装する方法を示しました。これはほかのFPGAにも同様に適用できる手法です。まずは、FPGAベンダーが提供するJESD204対応のロジック・コアとトランシーバの機能/インターフェースを理解してください。そして、それらのインスタンスを生成し、自社で開発したロジックでラップしましょう。また、プロジェクト全体を視野に入れつつ、FPGAにおけるクロック系統とリセット・シーケンスを包括的に設計してください。続いて、JESD204ロジック・コア、ユーザー・ロジック、トランシーバとのインターフェースを注意深く定義します。最後に、デバッグに必要なリソースを追加してください。こうしたステップを踏むことで、JESD204インターフェースの設計を迅速かつ成功裏に進めることが可能になるでしょう。

参考資料

JESD204B サバイバル・ガイド

データ・コンバータのシリアル・インターフェース標準規格JESD204

高速A/Dコンバータ

D/Aコンバータ (DA変換器)

集積化トランシーバ、トランスミッタ、レシーバ

FPGAに関するアライアンス、リファレンス設計

Demystifying the JESD204B High-Speed Data Converter-to-FPGA Interface

Beavers, Ian「Demystifying Deterministic Latency Within JESD204B ConvertersElectronic Design, 2/25/2014

Beavers, Ian「Prototyping Systems: JESD204B Converters and FPGAsElectronic Design, 1/23/2014

Beavers, Ian and Jeffrey Ugalde「Designing JESD204B Converter Systems for Low BER, Part 1EDN, 10/22/2014

Beavers, Ian and Jeffrey Ugalde「Designing JESD204B Converter Systems for Low BER, Part 2EDN, 10/28/2014

Harris, Jonathan「Understanding Layers in the JESD204B Specification: A High-Speed ADC Perspective, Part 1EDN, 9/24/2014

Harris, Jonathan「Understanding Layers in the JESD204B Specification: A High-Speed ADC Perspective, Part 2EDN, 10/2/2014

Jones, Del「JESD204B Subclasses (Part 1): Intro and Deterministic LatencyEDN, 6/18/2014

Jones, Del「JESD204B Subclasses (Part 2): Subclass 1 vs. 2, System ConsiderationsEDN, 6/25/2014

著者

Haijiao Fan

Haijiao Fan

Haijiao Fanは、ADIの中国 北京支社に所属するアプリケーション・エンジニアです。主に、JESD204プロトコルの評価、RFトランシーバICを使用するアプリケーション開発、サポートを担当しています。中国の北西工芸大学において、2003年に学士号、2006年に修士号を取得しています。2012年7月にADIに入社する前は、6年以上にわたりFPGAエンジニア/システム・エンジニアとして活動していました。