JESD204C入門――この新規格によって何が変わるのか?【Part 2】

Part 1では、JESD204規格の新バージョンであるJESD204Cはなぜ必要になったのか、また、それによってどのような課題が解決されるのか説明しました。また、新しい用語と機能を紹介し、層ごとの相違点について概説することにより、JESD204のバージョンBとバージョンCの違いを明らかにしました。Part 2では、JESD204Cの新機能のうち、特に重要なものを取り上げて詳しく解説します。

64b/66bと64b/80bのリンク層

64b/66bのリンク層において、66ビットのデータのブロックは、2ビットの同期ヘッダに8オクテットのサンプル・データが続くという形式で構成されます。これは、IEEE 802.3の第49項で定義されているブロックのフォーマットを基にしています。ただ、それとは異なり、符号化は実施されません。ペイロード・データは、トランスポート層でデータ・フレームにパッケージングされたコンバータ(A/Dコンバータ)のサンプル・データそのものです。IEEE 802.3の符号化は、DCバランスを維持することを目的とし、一定数のデータの遷移を保証するために実施されますが、JESD204Cではそれが行われないということです。したがって、サンプル・データに対してはスクランブルが必要になります。スクランブル済みのオクテットに2ビットの同期ヘッダが付加され、それらが直接リンク層に配置されます。

64b/66bのブロックのフォーマットを図1に示しました。ご覧のように、1レーンのデータが複数のフレームから構成されています。1つのフレームには、1つのコンバータからの1つのサンプル・データが含まれています。ブロックのマッピング規則は、JESD204Bのフレーム・マッピング規則に非常によく似ています。64ビットのブロックにマッピングする処理は、フレームの最初のオクテットがD0となるよう、そのままの順序で行われます。例えば、F = 8の場合、D0がJESD204Cに対応するフレームの最初のオクテット、D7が同フレームの最後のオクテットになります。フレームの最初のオクテットにおいて、MSBはコンバータ0のサンプル0のMSBとなります(JESD204Bと同じ)。例えば、F = 2の場合、D0とD1が最初のフレームになり、D2とD3が2番目のフレームになります。

JESD204Bとの一貫性を維持するために、マルチブロックに含まれるオクテットは、MSBからLSBの順でスクランブラ/デスクランブラに送られます。

E = 1の場合、すべてのマルチブロックはフレームの境界から始まります。E > 1の場合、拡張マルチブロックはフレームの境界から始まります(そうでなければなりません)。これについては、「マルチブロックと拡張マルチブロック」のセクションで詳しく説明します。

図1. 64b/66bにおけるブロックのフォーマットの例(LMFS = 1.1.2.1、N = N' = 16の場合)
図1. 64b/66bにおけるブロックのフォーマットの例(LMFS = 1.1.2.1、N = N' = 16の場合)

同期ヘッダは、スクランブルされていない2ビットの値で、各ブロックの先頭に配置されます。その内容を解釈することにより、1つの同期遷移ビットを復号化します。2つのビットは、ロジック・レベルの1を表す01か、同0を表す10のうちいずれかとなります。表1に、同期ヘッダと同期遷移ビットの関係を示しました。

表1. 同期ヘッダの値
同期ヘッダ(0.1) 同期遷移ビット
00 無効
01 1
10 0
11 無効

64b/80bのブロックのフォーマットを図2に示しました。8オクテットのサンプル・データと2ビットの同期ヘッダに加えて、各オクテットの間に2個のフィル・ビットが配置されています。フィル・ビットの値は、17ビットのPRBS(疑似ランダム信号)シーケンスによって決まります。これにより、スプリアスを低減し、DCバランスを維持するための適切な数のデータ遷移を保証します。サンプル・データにスクランブルをかけた後、スクランブルをかけていないフィル・ビットがブロックに挿入されます。

図2. 64b/80bにおけるブロックのフォーマットの例(LMFS = 1.1.2.1、N = N' = 16の場合)
図2. 64b/80bにおけるブロックのフォーマットの例(LMFS = 1.1.2.1、N = N' = 16の場合)

64b/80bというオプションは、8b/10bと同じクロック比を維持するために提供されています。それにより、フェーズ・ロック・ループ(PLL)の設計を簡素化できます。加えて、スプリアスを最小化することが可能になります。前方誤り訂正(FEC:Forward Error Correction)を適用したり、同期ワード(詳細は後述)によって提供される他の機能を利用したりするアプリケーションでは、8b/10bよりも有効な手段となります。

マルチブロックと拡張マルチブロック

JESD204Cのマルチブロック(MB:Multiblock)は、32のブロックで構成されます。各MBの32個の同期遷移ビットによって、32ビットの同期ワードが構成されます。拡張マルチブロック(EMB:Extended Multiblock)は、E個のMBで構成され、必ず整数個のフレームを含みます。MBに整数個のフレームが含まれていない場合は、E > 1でなければなりません。MBとEMBのフォーマットを図3に示しました。

図3. JESD204CにおけるMBとEMBのフォーマット
図3. JESD204CにおけるMBとEMBのフォーマット

MBのビット数は、64ビットの符号化方式として、64b/66bと64b/80bのうちどちらを使用しているのかによって異なります。つまり、2112(32×66)ビットまたは2560(32×80)ビットのうちいずれかです。ほとんどの実装/構成において、EMB内のMBは1つだけになります。JESD204Cでは、EMB内のMBの数を指定するEというパラメータが導入されました。Eのデフォルトの値は1です。フレーム内のオクテットの数であるFが2のべき乗ではない場合、E > 1でなければなりません。Eの値は、E = LCM(F, 256)/256で求められます。12ビットのサンプル・データを送信する際、リンクの帯域幅の効率を最大化するためにN'を12に設定するとします。その場合、一般的にはE > 1の構成が望ましくなります。この要件は、EMBの境界とフレームの境界を必ず一致させるためのものです。

図4と図5は、E > 1の場合におけるJESD204C対応データの構成例です。LMFS = 2.8.6.1、N' = 12、E = 3の場合の構成を示しています。図4は、トランスポート層のマッピングを表したものです。この例では、1レーンにつき12ビットのサンプル・データが4個含まれており、それらが6オクテットのデータに変換されます。MBの各ブロックには8オクテットが必要なので、ブロックには、後続のフレームからの2オクテット(1.33個分のサンプル)のデータが追加されます。

図4. トランスポート層のマッピング(LMFS = 2.8.6.1、N' = 12、E = 3の場合)
図4. トランスポート層のマッピング(LMFS = 2.8.6.1、N' = 12、E = 3の場合)

図5は、トランスポート層からのデータ・フレームによって、ブロックとMBを構成する方法を表しています。3つのブロックごとに、ブロックの境界とフレームの境界が一致することがわかります。MBは32ブロックで構成されるので、3番目のMBまでブロックの境界とフレームの境界は一致しません。この例ではE = 3となります。

図5. シリアライザの出力。LMFS = 2.8.6.1、N' = 12、E = 3の場合にMBとフレームのアライメントを行った結果です。
図5. シリアライザの出力。LMFS = 2.8.6.1、N' = 12、E = 3の場合にMBとフレームのアライメントを行った結果です。

LEMCは拡張マルチブロック・カウンタであり、8b/10bのリンク層のLMFCとほぼ等価になります。SYSREFによって、システム内のすべてのLEMCのアライメントが行われます。LEMCの境界は、同期とレーンのアライメントの判定に用いられます。

同期ワード

MBは、ビット0から順に送信されます。32ビットの同期ワードは、MBに含まれる32ブロックの各サンプル・ヘッダで構成されます。その用途は、レーンの同期と確定的な遅延を実現することです。また、CRC(Cyclic Redundancy Check)による誤り検出やFEC、トランスミッタがレシーバーと通信するためのコマンド・チャンネルの提供に利用することも可能です。

同期ワードのフォーマットには、3つのオプションがあります。いずれのフォーマットでも、MBの終端シーケンスが必要になります。それにより、MBの同期とレーンのアライメントが行われるからです。表2と表3に、よく使用される2種類のビット・フィールドの構成を示しました。

表2. CRC-12の同期ワード
同期ワードのビット フィールド名 内容
0 CRC11 12ビットのCRCの値におけるビット11~9。1つ前のMBに適用されます。
1 CRC10
2 CRC9
3 1 必ず1
4 CRC8 12ビットのCRCの値におけるビット8~6。1つ前のMBに適用されます。
5 CRC7
6 CRC6
7 1 必ず1
8 CRC5 12ビットのCRCの値におけるビット5~3。1つ前のMBに適用されます。
9 CRC4
10 CRC3
11 1 必ず1
12 CRC2 12ビットのCRCの値におけるビット2~0。1つ前のMBに適用されます。
13 CRC1
14 CRC0
15 1 必ず1
16 Cmd6 7 ビットのコマンド・チャンネルのビット 6~4
17 Cmd5
18 Cmd4
19 1 必ず1
20 Cmd3 7 ビットのコマンド・チャンネルのビット 3
21 1 必ず1
22 EoEMB EMBの終端ビット 
23 1 必ず1
24 Cmd2 7 ビットのコマンド・チャンネルのビット 2~0
25 Cmd1
26 Cmd0
27 0 MBの終端のパイロット信号
28 0
29 0
30 0
31 1
表3. FECの同期ワード
同期ワードのビット フィールド名 内容
0 FEC[25] 26ビットのFECワードのビット25~4。1つ前のMBに適用されます。
1 FEC[24]
2 FEC[23]
3 FEC[22]
4 FEC[21]
5 FEC[20]
6 FEC[19]
7 FEC[18]
8 FEC[17]
9 FEC[16]
10 FEC[15]
11 FEC[14]
12 FEC[13]
13 FEC[12]
14 FEC[11]
15 FEC[10]
16 FEC[9]
17 FEC[8]
18 FEC[7]
19 FEC[6]
20 FEC[5]
21 FEC[4]
22 EoEMB EMBの終端ビット
23 FEC[3] 26ビットのFECワードのビット3~0。1つ前のMBに適用されます。
24 FEC[2]
25 FEC[1]
26 FEC[0]
27 0 MBの終端のパイロット信号
28 0
29 0
30 0
31 1

64b/66bのリンクの動作

64b/66bのリンク層を使用する場合、リンクを確立するプロセスは、同期ヘッダのアライメント、EMBの同期、EMBのアライメントの順で行われます。

同期ヘッダのアライメント

同期ヘッダの同期遷移ビットにより、ブロックの境界ごと(66ビット)のデータの遷移が保証されます。JESD204Cに対応するレシーバーのステート・マシンは、データの遷移を検出したら、66ビット後の次のデータの遷移を探索します。ステート・マシンが、連続する64個のブロックにおいて66ビット間隔でビットの遷移を検出した場合に、同期ヘッダのロック(SH_lock)が達成されます。連続する64個のブロックで遷移が検出されない場合には、ステート・マシンは再起動されます。

EMBの同期

同期ヘッダのアライメントが達成されると、レシーバーは遷移ビット内のEMBの終端(EoEMB:End of EMB)シーケンス(100001)を探索します。同期ワードの構造により、このシーケンスはEoEMBでしか発生しないことが保証されています。EoEMBが検出されると、ステート・マシンは32番目ごとの同期ワードを調べて、MB終端のパイロット信号(00001)が存在することを確認します。E = 1の場合、EoEMBビットもこのパイロット信号に存在します。E > 1の場合には、EoEMBビットはE×32個の遷移ビットごとにパイロット信号に含まれます。4つの連続する有効なシーケンスが検出されると、EMBの終端ロック(EMB_LOCK)が達成されます。その後も、E×32個の遷移ビットごとの監視は継続されます。有効なシーケンスが検出されなかった場合には、EMB_LOCKが失われ、アライメントのプロセスがリセットされます。

EMB(レーン)のアライメント

64b/66bのリンク層を使用する場合、レーンのアライメントは8b/10bのリンク層を使用する場合とよく似たものになります。各レーンのJESD204C対応レシーバーには、入力データを格納するためのエラスティック・バッファが設けられます。これはEMBアライメントと呼ばれており、バッファはEoEMBの境界でデータの格納を開始します(8b/10bのリンク層を使用する場合、ILAS[初期レーン・アライメント・シーケンス]の中の/K/と/R/の境界で開始されます)。図6はレーンのアライメントの達成方法を示したものです。各レーンの受信バッファは、EoEMBの最終ビットを受信したときにデータのバッファリングを開始します。ただ、最後に到着するレーンだけは例外となります。そのレーンのEoEMBを受信したときにトリガがかかり、すべてのレーンの受信バッファが解放されます。このようにして、すべてのレーンがアライメントされた状態になります。

図6. JESD204CにおけるEMB(レーン)のアライメント
図6. JESD204CにおけるEMB(レーン)のアライメント

誤りの監視とFEC

JESD204Cでは、同期ワードを使用してデータの伝送時に生じる誤りを監視/訂正する方法がオプションとして提供されています。CRC-12の同期ワードを用いた誤り監視であれば、1×10-15未満のBER(符号誤り率)を達成できます。そのため、多くのアプリケーションにおいて有用な手法となります。ただし、誤り訂正を行うと、システムの遅延が増加します。

JESD204C対応のトランスミッタが備えるCRC-12エンコーダは、各MBのスクランブル済みデータ・ビットから12個のパリティ・ビットを計算します。それらのパリティ・ビットは、後続のMBによってレシーバーに送信されます。レシーバーは、受信した各MBのデータから、同じように12個のパリティ・ビットを算出し、同期ワードで受信した結果と比較します。パリティ・ビットに不一致が存在する場合には、受信したデータに1個以上の誤りが存在することになります。その場合、エラー・フラグを立てることができます。

テスト/計測装置などは、誤りに敏感であるものの、遅延はさほど大きな問題にはならないアプリケーションだと言えます。そうしたアプリケーションでは、FECを使用するとよいでしょう。それにより、10×10-24未満のBERを得ることができます。JESD204C対応のトランスミッタが備えるFEC回路は、MBに含まれるスクランブル済みデータ・ビットのFECパリティ・ビットを計算します。そして、次のMBの同期ヘッダ・ストリームにおいてそれらのパリティ・ビットを符号化します。レシーバーは受信ビットのシンドロームを計算します。シンドロームとは、局所的に生成されたパリティと受信したパリティの差のことです。シンドロームが0であれば、受信したデータ・ビットは正しいと見なされます。シンドロームが0以外であった場合、その結果を、最も可能性の高い誤りの判定に使用することができます。

FECパリティ・ビットは、CRCの場合と同じようにして計算されます。FEC用のエンコーダは、MBからの2048ビットのスクランブル済みデータに26個のパリティ・ビットを追加して短縮バイナリ巡回符号を構成します。それに使用する生成多項式は、以下のようなものです。

数式 1

この多項式によって、MB当たり最大9ビットのバースト・エラーを訂正できます。

まとめ

今後、データ集約型のアプリケーションでは、更に高速なデータ処理への対応が求められるようになるでしょう。JESD204Cは、そうしたニーズに応えるために策定されました。データ・コンバータとロジック・デバイスとの間に必要な通信チャンネルとして、マルチギガビットのレベルのインターフェースが定義されています。速度が最大32GSPSのレーンと64b/66bの符号化方式により、オーバーヘッドを最小限に抑えて高いシステム効率を達成する超広帯域幅のアプリケーションを実現できます。同規格により、5G、レーダー、電子戦(EW:Electronic Warfare)など、あらゆるアプリケーションに恩恵がもたらされます。また、誤り訂正機能を追加すれば、最先端の計測アプリケーションなどを、長い年月にわたって誤りなく動作させることが可能になります。

JESD204と、アナログ・デバイセズの製品におけるその実装については、「JESD204とは――データ・コンバータのシリアル・インターフェース標準規格JESD204」のページを参照してください。アナログ・デバイセズの高速コンバータ製品については、「RFコンバータ: マルチギガ・ヘルツ処理のイノベーション」のページや、28nmのRFコンバータを紹介する動画を参照してください。アナログ・デバイセズのトランシーバー製品については、RadioVerseTMのページをご覧ください。

著者

Del Jones

Del Jones

Del Jonesは、アナログ・デバイセズの高速コンバータ・チーム(ノースカロライナ州グリーンズボロ)に所属するアプリケーション・エンジニアです。2000年に入社し、ADC、DAC、シリアル・インターフェースを担当してきました。その前は、プリント回路基板やFPGAの設計技術者として通信業界で業務に携わっていました。テキサス大学で電気工学の学士号を取得しています。