AN 763: インテル® Arria® 10 SoCデバイスのデザイン・ガイドライン

ID 683192
日付 8/14/2020
Public
ドキュメント目次

4.5.1.1.2. RGMII

RGMIIは、PHY層で10Mbps、100Mbps、および1000Mbpsの接続速度をサポートするため、最も一般的なインターフェイスです。

RGMIIは、4ビット幅の送信データパスおよび受信データパスを使用しており、それぞれが独自のソース・シンクロナスのクロックを備えています。送信におけるデータおよび制御信号はすべてTX_CLKにソース・シンクロナスで、受信におけるデータおよび制御信号はすべてRX_CLKにソース・シンクロナスです。

すべての速度モードにおいて、TX_CLKはMACがソースであり、RX_CLKはPHYがソースになります。1000Mbpsモードでは、TX_CLKおよびRX_CLKは125MHzであり、デュアル・データ・レート (DDR) 信号が使用されます。10Mbpsおよび100Mbpsのモードではそれぞれ、TX_CLKRX_CLKは2.5MHzおよび25MHzであり、立ち上がりエッジのシングル・データ・レート (SDR) 信号が使用されます。

図 12. RGMII MAC/PHYインターフェイス

I/Oピンのタイミング

この章では、1000Mbpsモードの要件を満たすという観点からRGMIIインターフェイスのタイミングについて説明します。インターフェイスのタイミングマージンは、1000Mbpsモードにおいて最も厳しいため、これがここで考慮する唯一のシナリオになります。

125MHzでの周期は8nsですが、両方のエッジが使用されるため、有効な期間はわずか4nsになります。TXバスおよびRXバスは完全に独立しておりソース・シンクロナスであるため、タイミングは簡潔になります。RGMIIの仕様では、CLKがレシーバー側でDATAから一方の方向に最小1.0ns、最大2.6ns遅延するように求めています。

すなわち、TX_CLKはMAC出力からPHY入力に、RX_CLKPHY出力からMAC入力に遅延する必要があります。信号は、出力ピンでの測定において、各方向+/- 500psのRGMIIスキュー仕様内でソース・シンクロナスに送信されます。それぞれの方向に必要な最小遅延は1nsですが、 インテル® では、1.5nsから2.0nsの遅延をターゲットとし、大幅なタイミングマージンを確保することを推奨しています。

送信パスのセットアップおよびホールド

TX_CLKTX_CTLおよびTXD[3:0] 間のセットアップおよびホールドのみが送信では重要です。 インテル® Arria® 10のI/Oでは、出力で最大800psの追加遅延を提供することができます。この遅延は、 インテル® Quartus® PrimeのAssignment Editorの出力遅延ロジックオプションを使用して有効にします。

ガイドライン: Arria 10からのTX_CLKには、800psのI/O遅延のほかに少なくとも200psの遅延を導入し、RGMIIの仕様にある1.0nsのPHY最小入力セットアップ時間を満たす必要があります。

この時間を合計で1.5nsから2.0nsの推奨遅延まで増やすことが強く推奨されます。これは、HPSから提供される800psのI/O遅延に700psから1200psの別の遅延を加えることで実現します。多くのPHYはプログラミング可能なスキューを提供します。一部はRGMII 2.0をサポートしており、デフォルトで送信データパスと受信データパスの両方のスキューが有効になります。

ガイドライン: PHYの遅延機能とFPGA I/Oの遅延機能の間において、CTLおよびD[3:0] に対するCLKの2nsの遅延、もしくは、ほとんどのPHYで広く使われている1.2nsの一般的な最小セットアップ・スキューを確保する必要があります。

詳細は、PHYベンダーより提供されているデータシートを確認してください。

ガイドライン: 要求されている遅延に必要な インテル® 設定がデザインに含まれていることを確認し、HPS EMAC出力をコンフィグレーションします。

インテル® Arria® 10 SoC開発キットおよび関連する インテル® Arria® 10ゴールデン・ハードウェア・リファレンス・デザイン (GHRDはGSRDのハードウェア・コンポーネントです) では、PHYのスキューとFPGAのスキューの組み合わせは、Micrel PHYで実装されます。ゴールデン・システム・リファレンス・デザイン (GSRD) の インテル® Quartus® Primeの設定とPHYドライバーコードを参照してください。

受信パスのセットアップおよびホールド

受信のタイミングでは、RX_CLKRX_CTLおよびRXD[3:0] 間のセットアップおよびホールドのみを考慮する必要があります。 インテル® Arria® 10のI/Oでは、最大3200psの遅延を入力に追加することができます。 インテル® Arria® 10の入力では、この3.2nsのI/O遅延により、PHY側もしくはボードトレースの遅延側でほかの内容を考慮することなく、RX_CLKのこのタイミングを達成することができます。

ガイドライン: ハードウェア開発者は、必要なFPGAスキューを指定し、ソフトウェア開発者がデバイス・ドライバー・コードにスキューを追加できるようにする必要があります。

このコード例は、 インテル® Arria® 10 GSRDのLinuxデバイスドライバーより入手することができます。