このページは、マルチギガビット・トランシーバ(MGT)を紹介する一連のページの 5 ページ目です。数多くのトピックを説明し(そして FPGA 用のプロトコルもいくつか紹介しました)、いよいよ PMA がどのようにデータを電気信号に変換し、またその逆を行うのかを見ていきます。
はじめに
PMA は、MGT の中で物理チャネル(physical channel)に関連する部分から構成されています。特に、シリアライザとデシリアライザは PMA の一部です。言い換えると、物理チャネルのビット列とパラレルワードとの間の変換は、PMA の内部で行われます。
また PMA は、ビットを電気的な電圧に変換する部分でもあります。同様に、相手側の MGT から電気的な電圧を受信してビットに変換するのも、この部分です。
PMA のもう 1 つの重要な役割は、信号が 2 つの MGT の間を伝わる際に生じる電圧信号の歪みを補償することです。
- 送信側は、送信用に生成するアナログ信号を意図的に歪めることがあります。これは、物理チャネルが信号に与える歪みと逆向きの歪みを加えようとする試みです。これは一般にプリエンファシス(pre-emphasis)と呼ばれます。
- 受信側のイコライザ(equalizer)は、物理チャネルによる歪みを軽減するために、到着したアナログ信号を操作します。
このページでは、これらの機能を紹介します。また PMA は、データストリームが停止しているときだけ関連する他のタスクも担当します。これらのトピックは次のページで説明します。
以下に、典型的な MGT のブロック図を示します。全体像の中での PMA の位置を示すために再掲します(この図は前のページと同じものです)。
前のページと同様に、データ送信に使われる MGT 内の部分を指すときは Tx PMA と Tx PCS という表現を使います。同様に、データ受信部分については Rx PMA と Rx PCS と呼びます。
ほとんどの使用シナリオでは、物理チャネルの詳細や、そこで信号がどう歪み、その歪みがどう補正されるかを理解する必要はありません。通常、知っておくべきことは、イコライザを使うのが良い考えだということだけです。
とはいえ、PMA が大部分においてアナログ部品であることに注意することは重要です。MGT は通常、FPGA チップ上に専用の電源ピンを持っています。これらのピンの一部は PMA に電力を供給します。このピンの電圧は、通常よりもクリーンであることが要求されることがしばしばあります。この要求を満たさないと、MGT の性能が著しく低下する可能性があります。
以下の説明では、5 Gb/s の通信リンクを例に取ります。これは SuperSpeed USB Gen 1 や PCIe 2.0 などのプロトコルが使うデータレートです。また、PMA と PCS の間で使われるパラレルワードは 32 ビット幅であると仮定します。まず、物理チャネルについて簡略化した説明から始め、このページの後半で説明する細部は省略します。
データの送信
Tx PMA は、パラレルワードを LSB から順に送り出すことによって、そのパラレルワードを電気信号に変換します。したがって、ビット 0 が '1' であれば、Tx PMA は出力ピンの電圧(D+ と D- の間)が例えば 500 mV になるように調整します。ビット 0 が '0' であれば、この電圧は -500 mV(負)になります。
Tx PMA は 0.2 ns 待ってから、パラレルワードのビット 1 についても同様の処理を行います。すなわち、D+ と D- の間の電圧は、ビット 1 に応じて 500 mV または -500 mV のどちらかになります。こうして、パラレルワードの各ビットは、出力ピン上に 0.2 ns の時間ずつ表現されます。6.4 ns 後には、パラレルワード全体が配線上に送信されたことになります。Tx PMA は Tx PCS から新しいパラレルワードを受け取り、同じように送信を始めます。
Tx PCS から Tx PMA へのパラレルワードの受け渡しは、クロック(しばしば XCLK と呼ばれる)に同期します。この例では、このクロックの周期は 6.4 ns、すなわち周波数は 156.25 MHz です。当然のことながら、156.25 × 32 = 5000 になります。
ここまで説明したのは、SERDES の送信側です。この SERDES の出力の各ビットに割り当てられる時間は 0.2 ns であり、これによりデータレートは 5 Gb/s になります。
この例では、2 つの差動出力ピン間の電圧は 500 mV でした。これは PCIe や SuperSpeed USB の許容範囲内です。プロトコル仕様や MGT のデータシートでは、通常この電圧を差動ピークツーピーク電圧(differential peak-to-peak voltage)として規定していることに注意してください。これは、差動電圧の最低値と最高値の差、すなわちこの例では -500 mV と 500 mV の差です。したがって、この例の差動ピークツーピーク電圧は 1000 mV になります。これが仕様書やデータシートに通常記載されている数値です。
しかし、信号は受信側に到着するまでに変化しています。下の図は、アナログ信号の波形の例を示しています。
送信側の出力(D+ と D- の間の電圧)は赤で示されています。青い波形は、この信号が受信側にどのように到着し得るかの一例です。この例は、帯域幅 2.5 GHz の単純なローパスフィルタのシミュレーションです。
このページ全体を通じて、データレート 5 Gb/s、差動電圧 500 mV というこの例を使います。もちろん、他の数値も可能です。FPGA MGT では、データ伝送レートと出力電圧を制御できます。
アイダイアグラム
上の図の波形からわかるように、受信側に到着する信号は、送信側が生成した信号とは異なります。アイダイアグラム(eye diagram)は、受信側に到着する信号をグラフで表したものです。このグラフは、複数の波形を同じ座標軸上に描くことで作られます。それぞれの波形は、送信されたビットのランダムな組み合わせの結果です。したがって、グラフ上で重なり合う波形は、到着する信号のすべての可能な形状を表しています。
これは、上の図と同じシナリオに対するアイダイアグラムです。
この図は、なぜこれが「アイダイアグラム」と呼ばれるのかを説明しています。中央の緑色の領域は、目の形をしています。
赤い線は、送信されたビットが '0' か '1' かを判定するために電圧を測定する最適なタイミングを示しています。この時点で電圧差が最も大きくなるため、ノイズに対する耐性が最も高いのはここです。選択されているタイミングは、ゼロ交差の少し後であることに注意してください。前の図と比較してください。この瞬間に検出されるビットは、既に 0.2 ns にわたって送信されてきたものであり、しかも検出はさらにわずかに遅れて行われます。
アイダイアグラムは、受信側に到着する信号の品質を評価するためによく使われます。このグラフは、信号を伝送する物理メディアのシミュレーションで生成されることがよくあります。また、オシロスコープやより専門的な測定器を使って実信号を測定し、アイダイアグラムを得ることも可能です。
データの受信
Rx PMA は、電気信号をパラレルワードに変換します。Rx PMA は、2 つの入力ピン(D+ と D-)の間の電圧を、0.2 ns ごとに 1 回測定します。この電圧が正であれば、パラレルワードのビット 0 に '1' が割り当てられます。そうでなければ、このビットは '0' になります。Rx PMA はビット 1 からビット 31 まで、パラレルワードの他のビットにも値を割り当て続けます。パラレルワードが完成すると、Rx PMA はそれを Rx PCS に渡します。つまり、Rx PMA は Tx PMA を鏡に映したようなものです。
しかし、Rx PMA は入力ピンの電圧を測定する正確なタイミングをどうやって知るのでしょうか。この測定は 0.2 ns ごとに 1 回行われるはずですが、その 0.2 ns の中の正確にどの瞬間に測定すべきでしょうか。Rx PMA は、上のアイダイアグラムで赤い線として示した最適なタイミングをどうやって知るのでしょうか。
さらに複雑なことに、Rx PMA は Tx PMA が依存している基準クロック(reference clock)を利用できないことがよくあります。そのため、0.2 ns という時間の長さについての受信側の認識は、送信側の認識と正確には一致しません。また、基準クロックの周波数は、ジッタ(jitter)のために常にランダムに変動します。SSC(Spread Spectrum Clock、スペクトラム拡散クロック)を必要とするプロトコルでは、このクロックの周波数は、あらかじめ定義されたパターンに従って意図的に連続的に変化します。
この問題の解決策が、クロックデータリカバリ(CDR)です。これは Rx PMA 内のメカニズムで、入力ピンの電圧をサンプリング(sampling)するための最適なタイミングを見つけます。CDR は、到着するデータストリームに適応するサンプリングクロックを生成します。このクロックは(この例では)32 分周され、Rx PCS とのインターフェースに使うクロックを生成します。
CDR は、到着するアナログ信号における '0' と '1' の間の遷移に敏感です。より正確には、CDR は 2 つの差動ピン間の電圧が正と負の間で変化する瞬間を検出します。これにより、CDR は生成するサンプリングクロックの周波数を、送信側が使うクロックに適応させることができます。
正しく動作するために、CDR はそれ自身の基準クロックを必要とします。この基準クロックの周波数は、送信側のクロック周波数とほぼ同じでなければなりません。ただし、この基準クロックは、データストリームとの初期同期にのみ使われます。この初期同期の後、CDR は PLL を使って送信側の周波数に追従します。この適応メカニズムは、送信側クロックの複製を作るために、サンプリングクロックの周波数をわずかに連続的に変化させます。さらに、CDR は各 0.2 ns の期間内で、サンプリングのタイミングを最適な点に移動させることも目指します。言い換えると、CDR は、先ほど示したアイダイアグラムの赤い線の位置で信号のサンプリングが行われるように努めます。
信頼性の高い通信リンクを実現する上で、CDR は極めて重要な役割を果たします。例えば、送信側がジッタの大きい低品質な基準クロックを使っている場合、各ビットの時間長にランダム性が加わります。受信側の CDR がこのランダム性に十分な速さで適応できないと、サンプリングが最適でない位置で行われます。その結果、エラーの発生確率が高まります。また、CDR が完全に同期を失い、通信リンクが一時的に切れる可能性もあります。このような状況は、低品質なクロックが原因であるにもかかわらず、データ配線のシグナルインテグリティ(signal integrity)の問題と誤解されることがよくあります。
FPGA MGT では、CDR の動作は設定可能ないくつかのパラメータに依存します。残念ながら、これらのパラメータの意味は複雑で、文書化されていないことがよくあります。FPGA ツールは、MGT の設定に基づいてこれらのパラメータの値を自動的に選択します。これは特にデータレートに依存します。特定のよく知られたプロトコルを選択すると、CDR のパラメータもそれに応じて選ばれます。2 つの MGT 間の接続に低品質のケーブルやコネクタがある場合などには、より安定したリンクを得るために、さまざまな設定を試してみることが有効な場合もあります。
極性の反転
Rx PMA と Tx PMA はどちらも、物理チャネルの極性を反転する機能をサポートしています。これは、'1' の代わりに '0' を送信する、あるいはその逆を行うことを意味します。また、通常なら '0' を受信する状況で '1' を受信する、あるいはその逆を行うことも意味します。
言い換えると、D+ と D- の配線が入れ替わっていても、MGT はそれを補正できます。これは些細な機能ですが、それでいて非常に重要であり、PCB 設計を簡素化できることがよくあります。
信号の歪み
理想的な世界では、送信側 MGT からの電圧信号は何の変化もなく受信側 MGT に届くでしょう。現実には、信号は目的地に到着するまでにいくつかの変化を受けます。最も顕著な問題は、信号経路のフィルタ特性です。Tx PMA が '1' の後に '0' を送信するたびに、正の電圧から負の電圧への急峻な遷移が起こります。もちろん '0' から '1' への遷移ではその逆が起こります。この急峻な電圧変化は、信号を運ぶ物理メディアによって歪められます。ケーブルや PCB の配線パターンは、ローパスフィルタのように振る舞います。
上の図と同じ波形の例ですが、より条件の厳しい物理チャネルのシミュレーションを行ったものを示します。
青い波形は、受信側に到着する電圧が、先に送信された数ビットの値を「覚えている」様子を示しています。先ほど説明したように、受信側は電圧が負か正かによって '0' か '1' かを判定する必要があります。したがって、以前のビットの値が受信側の判定に干渉します。あるビットの値が、別のビットの受信判定に干渉する現象は、符号間干渉(Inter-Symbol Interference、ISI)と呼ばれます。
同じ物理チャネルのシミュレーションに対するアイダイアグラムを次に示します。
このアイダイアグラムから、'0' と '1' の区別はまだ可能ですが、そのマージンはかなり小さくなっていることがわかります。言い換えると、はるかに少ないノイズでエラーが発生するようになります。
上のアイダイアグラムでシミュレートされた効果に加えて、信号は他の方法でも歪みます。
- 信号は受信側に伝わる間にエネルギーを失うため、差動配線間の電圧は送信時よりも低くなります。
- 信号が送信側から受信側へ伝わる間に、反射も信号に加わります。この効果は音響的なエコーに似ており、特に信号がコネクタや、導電性メディアの急激な不連続点を通過するときに発生します。
- さまざまな外部ソースからのノイズも信号に加わります。MGT 間の通信では、通常、歪みの影響の方がはるかに大きいため、ノイズは支配的な要因にはなりません。しかし、長くてシールド(遮蔽)が不十分なケーブルでは、このノイズが無視できなくなることがあります。
ここからは、物理チャネルの信号歪みを軽減する 2 つのメカニズムを見ていきます。受信側の一部であるイコライザと、送信側の一部であるプリエンファシスです。
イコライザ
イコライザは、MGT に到着するアナログ信号を操作します。このユニットの目的は、物理チャネルの信号歪みの影響を軽減することです。それによって、イコライザはチャネルのビット誤り確率を低減し、より高いデータレートを可能にします。イコライザは常に、Rx PMA の処理チェーンの最初の段階にあります。
使われているイコライザには主に 2 種類あります。MGT は両方をサポートすることがあります。
- LPM(Low Power Mode、低電力モード)。このイコライザは通常、アナログ信号スペクトルの高域を減衰させる物理チャネルの傾向を補償するハイパスフィルタで構成されます。一部の MGT は、このフィルタを受信信号に自動的に適応させます。それほど高度でない MGT では、アプリケーションロジックが複数の候補の中から 1 つのフィルタを選択する必要があります。
- DFE(Decision Feedback Equalizer、判定帰還型イコライザ)。これについては以下で詳しく説明します。
先ほどの例を思い出してください。Rx PMA は、2 つの入力ピン(D+ と D-)の間の電圧を、0.2 ns ごとに 1 回測定します。この電圧が負か正かに基づいて、Rx PMA は '0' または '1' を検出します。イコライザを使う場合、Rx PMA はその代わりにイコライザの出力に基づいて判定します。
DFE を使用する場合、送信側が送信するビット同士が統計的に独立であることが前提とされます。物理チャネルが信号を歪ませなければどうなるでしょうか。この場合、Rx PMA が '0' か '1' かの判定に使う電圧も、互いに統計的に独立になります。言い換えると、Rx PMA がアナログ入力信号を調べるたびに、その信号は以前の信号とも将来の信号とも統計的な関係を持たないはずです。
しかし現実には、物理チャネルはデータストリームを伝える信号を歪ませます。そのため、'0' または '1' を表す電圧の間には統計的な関係が生じます。ローパスフィルタ効果が電圧信号をぼやけさせ、反射(「エコー」)も信号品質を低下させます。各ビットの電圧レベルは隣接するビットに漏れ出します。前述のように、この効果は符号間干渉(ISI)と呼ばれます。受信側が ISI の影響を軽減するための対策を何もしなければ、ビット間のこの相互干渉は、チャネルにノイズを加えるのと同じことになります。
DFE はエコーキャンセラと似た働きをします。'0' または '1' を表すサンプル間の相関を取り除くように自動調整されるフィルタで構成されます。より正確には、検出されたビット('0' または '1')と、隣接するビットに属するアナログ信号との間の相関を取り除きます。言い換えると、DFE が目的を達成したなら、あるビットの値を判定するために使われるアナログ信号と、他のビットの値との間には統計的な相関がありません。この場合、ISI はゼロにまで低減され、チャネルのぼやけ効果や反射は伝送品質に影響しなくなります。
注意すべき点として、チャネル上で送信されるビット間に統計的な相関があると、DFE はこの相関を取り除こうとします。その結果、DFE は物理チャネルによるアナログ信号の歪みとは対応しない形でアナログフィルタを調整してしまいます。したがって、DFE は信号を修復するどころか、逆に歪ませてしまいます。これが、DFE を有効にするときは常にスクランブラ(scrambler)が必要な理由です。
送信ビットが互いに無相関であることを保証する方法がない場合には、LPM イコライザが適しているかもしれません。LPM イコライザをスクランブラなしで使えるかどうかは、通常 MGT のデータシートに記載されています。
すべての MGT が DFE を備えているわけではありませんが、ほとんどすべての MGT には何らかの LPM イコライザがあります。MGT がどの種類のイコライザをサポートしているか、またそれらがどのように動作するかについて、データシートの情報は不完全であることがよくあります。データシートにイコライザの種類について何も書かれていない場合、それはおそらく LPM です。
DFE はより高度なタイプのイコライザですが、ビットが互いに無相関であっても、常に LPM より優れているとは限りません。特に、物理チャネルの品質が比較的高い場合、LPM の方が DFE より良い結果を出すことがあります。
プリエンファシス
送信側の出力信号を、受信側に到着する信号が改善されるように操作することが役立つ場合があります。この方法はプリエンファシス(pre-emphasis)と呼ばれ、特に信号の歪みが深刻で、受信側がデータストリームにまったく同期できない場合に有用です。この方法にはいくつかのバリエーションがあり、各 MGT が独自の機能セットを持っています。
ほとんどの状況で、物理チャネルはローパスフィルタとして働きます。送信側は、出力信号を整形することで、チャネルの歪みの一部を先回りして補償できます。最も単純なメカニズムはポストカーソル強調(post-cursor emphasis)です。物理チャネルは送信側の出力の変化に対して緩慢に反応するため、送信側はビットが変化するときに高い電圧を加えることでこれを補償します。より正確には、ビットが変化しないときに電圧を下げるのです。
このメカニズムを説明するため、先ほどの例では送信側の出力が -500 mV または 500 mV(それぞれ '0' または '1')だったことを思い出してください。
ポストカーソル強調では、出力が '0' から '1' に変化する場合、送信側の出力は以前と同じ 500 mV になります。しかし、次のビットも再び '1' の場合、出力電圧は例えば 400 mV と低くなります。'1' から '0' への遷移でも同じことが起こります。この場合、出力電圧は -500 mV です。しかし、次のビットも再び '0' の場合、電圧は -400 mV になります。
この図は、前の波形の図と同じシミュレーションですが、ポストカーソル強調を適用したものです。
赤い波形は、ポストカーソル強調の動作を示しています。出力電圧はビットが変化するたびにわずかに持ち上げられ、それ以外の場合は低い電圧に戻ります。この方法は、ビットが変わらないときに送信側が電圧を下げるため、しばしばディエンファシス(de-emphasis)と呼ばれます。すなわち、繰り返されるビットは「強調が弱められる」ことになります。
青い波形を上の図と比較すると、この電圧の振幅が小さくなっていることがわかります。これは大したことではないように思えるかもしれませんが、アイダイアグラムではその差がより明確に現れます。
これは明らかに改善されていますが、十分ではありません。このようなシナリオでは、依然としてイコライザが必要です。
ポストカーソル強調は、単純な FIR フィルタとして記述できることに注意してください。強調なしの送信側の電圧を x(n) とします(n は送信されるビットの番号)。各 x(n) は -500 mV または 500 mV の値を取ります。ポストカーソル強調を適用した送信側の出力は、次のように書けます。
y(n) = 0.9 x(n) - 0.1 x(n-1)
これは、高周波信号をより強調する単純な FIR フィルタの式です。これは、物理チャネルがローパスフィルタとして働くことに対する補償と見なせます。
「ポストカーソル強調(post-cursor emphasis)」という表現の中の「ポストカーソル(post-cursor)」は、対応する FIR フィルタが次のように書けることと関係しています。
y(n) = (1-a) x(n) - a x(n-1)
この式では、a は通常、正の数に選ばれます。
この FIR フィルタは、基本的に次のことを言っています。y(n) の値は主に x(n) に依存しますが、x(n-1) が同じ値であれば y(n) はゼロに少し近づきます。つまり、y(n) の調整は直前のビットに依存します。
したがって、「カーソル(cursor)」という言葉は現在送信中のビットを指します。また「ポスト(post)」は、このフィルタが直前に送信されたビット、すなわち「カーソル」の後のビットに依存することを意味します。
高周波信号をより強調する FIR フィルタの考え方は、一般化することができます。特に、MGT では次の形の FIR フィルタがよく実装されています。
y(n) = apre x(n+1) + a0 x(n) - apost x(n-1)
この式において、apost は、先ほど説明したポストカーソル強調に関係します。apre は「カーソル」の前のビットへの依存を表し、これはプリカーソル強調(pre-cursor emphasis)と呼ばれ、プレシュート(preshoot)と呼ばれることもあります。これは、FIR フィルタで表現できる送信側出力信号の操作全般を指すプリエンファシス(pre-emphasis)という用語と混同しないようにしてください。
送信信号を整形するための選択肢は MGT ごとに異なります。ポストカーソル強調は、いくつかのプロトコルで要求されているため、通常利用できます。他のバリエーションについては、MGT によって異なります。
プリエンファシスの明らかな欠点は、送信側の調整の結果が見えるのは受信側だけだということです。イコライザは、最適な受信状態を得るために継続的に自己調整できることを思い出してください。しかし、プリエンファシスの仕組みは、一般に、相手側で信号がどれだけ良好に受信されているかを知ることができません。これはプロトコルによって解決できます。例えば、DisplayPort プロトコルは、受信側が送信側へ要求を送ることを可能にするメカニズムを規定しています。こうして、受信側は送信側の電圧レベルとポストカーソル強調のレベルを制御します。
プリエンファシスは、物理チャネルがあらかじめ分かっている場合にも有用です。例えば、2 つの FPGA が PCB 上で直接接続されている場合です。しかし、チャネルのパラメータが不明な場合でも、特に高いデータレート(8 Gb/s 以上)では、プリエンファシスを使うのが良い考えであることがあります。
プリエンファシスのメカニズムとイコライザは、どちらも信号品質を改善してエラーを減らすフィルタですが、互いに代用できるものではないことに注意してください。この 2 つのうちでは、通常イコライザの方が強力なツールです。プリエンファシスの役割は、イコライザを支援すること、あるいは受信側が送信側に同期できるほど信号品質を良好に保つことであるべきです。
プリエンファシスは、多くのアプリケーションではまったく使われません。このツールは、2 つの MGT 間の距離が長い場合、特に信号が PCB 上を伝わる場合に有用です。距離が十分に短く、受信側に優れたイコライザが備わっていれば、通常、送信側の出力信号を操作する理由はありません。
統計的アイスキャン
すべてのデータがエラーなしで到着している場合でも、チャネルの品質を評価したいと望まれることはよくあります。特に、チャネルがエラーを出し始めるまでにどの程度の余裕があるかは興味深いところです。チャネルは頑健なのでしょうか。それとも、物理メディアにわずかな変化があればエラーが出始めるのでしょうか。
また、前のページで述べたように、チャネルを実データの送信に使っている間は、同時に BER テストを行うことはできません。したがって、チャネルを使用しながらその品質を評価するのは困難です(すべてのエラーを報告するプロトコル、例えば xillyp2p を除く)。
リンクの品質を評価する一般的な方法は、受信側でアイダイアグラムを測定することです。信号がケーブルとコネクタを通って到着する場合は、これを行うことができます。この目的のための測定器があります(かなり高価ですが)。しかし、信号が PCB 上を伝わってチップ(特に FPGA)に到着する場合、信号を取り出す場所が通常ありません。プローブを PCB 上の配線に接触させると、信号の波形が劇的に変化してしまうため、測定は無意味になります。
この問題に対するエレガントな解決策が、統計的アイスキャン(statistical eye scan)です。これは、Rx PMA 自身が信号のアイダイアグラムを測定するというものです。この方法には、いくつかの利点があります。
- 信号は、Rx PMA が '0' か '1' かを判定するまさにその地点で測定されます。
- 測定によって信号が変わることはありません。
- 測定にはイコライザの補正も含まれます。したがって、どのイコライザを使うかの選択や、そのパラメータの微調整に役立ちます。
- CDR が送信側クロックのジッタに対処できない場合、それがこの測定に現れます。
- 測定は Rx PMA の通常動作を妨げません。したがって、チャネルが実際のデータを運んでいる最中にテストすることが可能です。
この方法の欠点は 1 つだけです。その結果は実際にはアイダイアグラムではないということです。しかし、結果の有用性はほぼ同じです。
前述のように、Rx PMA は、到着した信号の差動電圧が負か正かに基づいて、受信信号が '0' か '1' かを判定します。CDR は、この判定を最適なタイミングで行う役割を担っています。
統計的アイスキャンのために、'0' か '1' かの判定を行う追加のユニットがあります。ただし、この 2 番目のユニットは、最初のユニットよりわずかに早いか、わずかに遅いタイミングで判定を行います。この時間オフセットは、MGT のレジスタを設定することで制御されます(これは MGT が動作している間に行うことができます)。
2 つのユニットのもう 1 つの違いは、信号が '0' か '1' かを判定する方法です。既に述べたように、最初のユニットは信号の電圧をゼロと比較します。2 番目のユニットは、代わりにさまざまな電圧しきい値と比較できます。例えば、電圧しきい値を 100 mV に選んだ場合、2 番目のユニットは受信信号が 100 mV を超えていれば '1' と判定します。それ以外の場合は '0' と判定します。
つまり、2 番目のユニットは最初のユニットとまったく同じことを行いますが、時間と電圧の両方にオフセットがあるだけです。MGT 内部のロジックは、指定された数の判定を自動的に比較し、判定が異なった回数を数えます。言い換えると、タイミングとしきい値電圧を動かした場合に、Rx PMA のビット判定が何回異なっていたかを、このロジックは数えるのです。
2 つのユニットの判定にまったく差がない場合、それは 2 番目のユニットの位置(時間と電圧で表される)が、上のアイダイアグラムで緑色で示された領域の内側にあることを意味します。この状況は、十分な測定時間の後にカウント結果がゼロになることで認識されます。2 番目のユニットの位置が緑色の領域の端に近づくにつれて、カウンタの結果はますます大きくなります。
統計的アイスキャンは、さまざまな時間オフセットと電圧しきい値の組み合わせについて、2 つのユニット間の比較を繰り返すことで得られます。これは、アプリケーションロジックが行うか、JTAG を通じて MGT のレジスタを設定することによって行われます。この処理は、しきい値電圧の範囲に対する for ループの中で、時間オフセットの範囲に対する for ループを実行するコンピュータプログラムに似ています。この操作の完了に要する時間は、測定の精度に依存します。
以下は、統計的アイスキャンの例です(別のページから引用)。Artix-7 FPGA で取得したものです。中央の緑色の領域は、上のアイダイアグラムの緑色の領域に対応します。上の例では 1 種類の信号歪みしかシミュレートしていないため、測定結果は上に示したすべての画像と定量的に異なります。
このような画像を得るには約 1 分かかります。しかし、1 秒未満で取得できる粗い画像に基づいても、チャネルの品質を十分に評価することが可能です。
統計的アイスキャンを取得するために、通常、何かを設計する必要はありません。特に、この処理は JTAG 接続の助けを借りて Vivado で実行できます。残念ながら、すべての MGT が統計的アイスキャンの機能に対応しているわけではありません。
以上で、MGT に関するこの一連のページの 5 ページ目を終わります。次のページでは、通常のデータストリームが停止しているときの PMA とその機能についての説明を続けます。







