AN 886: インテル® Agilex™ デバイスのデザイン・ガイドライン

ID 683634
日付 1/07/2022
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

5.1.7.1.2. RMII InterfaceおよびRGMII PHY Interface

RMII InterfaceとRGMII PHY Interfaceのどちらを使用するかを決定します。

RMII

RMIIでは、単一の集中システム同期50MHzクロックソース (REF_CLK) をすべてのポートの送信パスと受信パスの両方に対して使用します。これにより、システム・クロッキングが簡素化され、ポート密度の高いシステムでのピン数が少なくなります。これは、デザインでは、ポートごとの TX_CLK/RX_CLK ソース同期クロックペアではなく、シングル・ボード・オシレーターを使用できるからです。

RMIIでは、2ビット幅の送信および受信データパスを使用します。すべてのデータ信号およびコントロール信号は、REF_CLK の立ち上がりエッジに同期しています。RX_ER コントロール信号は使われません。10Mbpsモードでは、すべてのデータ信号およびコントロール信号が、10 REF_CLK クロックサイクルの間、有効に保持されます。

図 2. RMII MAC/PHY Interface

インターフェイス・クロッキング方式

EMACおよびRMII PHYでは、50MHz REF_CLK ソースを提供できます。HPS_OSC_CLK 入力などの既存のクロックリソースを使用して、内部PLLによってシステム・クロッキング・デザインをさらに簡素化し、クロックソースの追加の必要性を排除します。

このセクションでは、HPS EMACソースとPHYソースの両方の REF_CLK に対してシステムデザインを使った場合について説明します。

ガイドライン: REF_CLK ソースの選択について詳しくは、Intel Agilex FPGA Data Sheet を参照してください。

注: 選択したPHYの REF_CLK クロッキング方式が、使用しているアプリケーションでサポートされていることを確認してください。Intel Agilex FPGA Data Sheet で指定されている要件および使用上の考慮事項に注意してください。
次の2つの方法のいずれかを使用して REF_CLK をソーシングします。
  • HPSソースの REF_CLK
  • PHYソースの REF_CLK
図 3. HPSソースのREF_CLKこの方式では、EMACのHPS RMII I/O TX_CLK 出力をHPS RMII I/O RX_CLK とPHY REF_CLK の両方の入力に接続します。
図 4. PHYソースのREF_CLKこの方式では、PHYの REF_CLK 出力は、EMACのHPS RMII I/O RX_CLK 入力に接続します。EMACのHPS RMII I/O TX_CLK 出力は、未接続のままにします。PHYは、REF_CLK のソーシング機能がある場合は、通常、ソーシングできるようにピン・ブートストラップを介してコンフィグレーションされ、REF_CLK を生成するための外部クリスタルまたはクロック入力を必要とします。

RX_CLK の配線が、デイジーチェーン接続で、ソースからMACそしてPHYに、またはソースからPHYになっている場合、フライトタイムの違いを考慮する必要があります。これは、両方の REF_CLK ロードによるクロックの監視が、異なる時間に行われるためです。

ガイドライン: データ信号およびコントロール信号の配線遅延およびスキューを考慮して、HPS SoCデバイスのデータシートおよびPHYデータシートに指定されているとおりに、セットアップおよびホールドを確実に満たすようにします。

信号長の一致は必要ありません。ただし、例外として、信号長が24インチを超える場合は、データ遅延に対するクロック遅延を使用して、基本的なタイミング解析を実行してください。

周期は、50MHzの REF_CLK で20nsです。また、PHYの設定が10Mbpsモードか100Mbpsモードかにかかわらず、この周波数は変更されません。

HPS EMACのすべてのクロッキングのベースとなっているのは、RX_CLK です。そのため、REF_CLKTco および PCB のフライトタイムは、EMACまたはPHYからである場合は無視できます。最大12インチの一般的なボードトレースによって生じるフライトタイムは、わずか2nsです。また、RXD から RX_CLK への Tsu は、最低4nsです。これは、20nsの周期を十分に下回っています。

RXDRX_CLK の2nsのホールド要件は、容易に満たすことができます。これは、TXDTco は、RX_CLK に対して、MACとPHYのいずれの場合でも2nsを上回るからです。 インテル® Agilex™ SoCデバイスの場合は、TXDTco は、RX_CLK に対して2nsから10nsです。

ガイドライン: REF_CLKソースがデューティー・サイクル要件を満たしていることを確認します。

REF_CLK には、ジッター仕様はありませんが、デューティー・サイクル要件は35% から65% です。この要件を満たすのは、 インテル® Agilex™ SoCデバイスのPLL、およびGPIOのクロック出力、または特にHPS IPからの TX_CLK 信号のクロック出力です。

RGMII

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

RGMIIでは、4ビット幅の送信データパスおよび受信データパスを使用し、そのいずれにも独自のソース同期クロックがあります。すべての送信データおよびコントロール信号は、TX_CLK にソース同期です。すべての受信データおよびコントロール信号は、RX_CLK にソース同期です。

すべてのスピードモードで、TX_CLK はMACから供給され、RX_CLK はPHYから供給されます。1000Mbpsモードでは、TX_CLK および RX_CLK は125MHzであり、Dual Data Rate (DDR) シグナリングが使用されます。10Mbpsおよび100Mbpsモードでは、TX_CLK および RX_CLK は、それぞれ2.5MHzおよび25MHzであり、立ち上がりエッジのSingle Data Rate (SDR) シグナリングが使用されます。

図 5. RGMII MAC/PHY Interface

I/Oピンのタイミング

このセクションでは、1000Mbpsモードでの要件を満たすという観点から、RGMIIインターフェイスのタイミングについて説明します。インターフェイスのタイミングマージンは、1000Mbpsモードの場合に最も厳しいので、ここで検討するのは、1000Mbpsの場合のみです。

125MHzでは周期は8nsですが、両方のエッジを使用するため、有効周期はわずか4nsです。TXとRXのバスは分離されており、またソース同期であるため、タイミングが簡素化されます。RGMII仕様では、CLK をレシーバーの DATA からいずれかの方向に最小1.0ns、最大2.6ns遅延させることを要求します。

つまり、TX_CLK は、MAC出力から PHY 入力まで遅延させる必要があります。また、RX_CLK は、PHY 出力から MAC 入力まで遅延させる必要があります。信号は、ソース同期して送信されます。範囲は、各方向に +/- 500ps RGMIIスキュー仕様です。これは、出力ピンでの測定値です。各方向に必要な最小遅延は1nsですが、 インテル® では、1.5nsから2.0nsの遅延をターゲットにして、大幅なタイミングマージンを確保することをお勧めします。

送信パスのセットアップ/ホールド

TX_CLK から TX_CTL および TXD[3:0] のセットアップとホールドのみが、送信に関係します。 インテル® Agilex™ I/Oによって、150ps刻みで最大2.25 nsの追加遅延が、出力に提供されます。具体的な値については、Intel Agilex FPGA Data Sheet を参照してください。この遅延のイネーブルには、 インテル® Quartus® PrimeのAssignment Editor内の出力遅延ロジックオプションを使用します。

ガイドライン: インテル® Agilex™ デバイスからの TX_CLK の場合、1.8ns I/O遅延を導入して、RGMII仕様の1.0ns PHY 最小入力セットアップ/ホールド時間を満たすようにします。

インテル® Agilex™ SoC HPS専用I/OおよびFPGA I/Oでは、150ps刻みで最大2.253 nsの出力遅延の追加をサポートします。具体的な値については、Intel Agilex FPGA Data Sheet を参照してください。HPS専用I/Oの使用時にMACの TX_CLK 出力に追加される遅延のコンフィグレーションは、HPS プラットフォーム・デザイナー IPコンポーネントですることができます。

受信パスのセットアップ/ホールド

受信タイミングの考慮には、RX_CLK から RX_CTL および RXD[3:0] のセットアップとホールドのみが必要です。 インテル® Agilex™ I/Oでは、最大2.25ns3 の追加遅延を入力に提供することができます。具体的な値については、Intel Agilex FPGA Data Sheet を参照してください。 インテル® Agilex™ デバイス入力の場合は、最大2.25ns3 のI/O遅延によって、RX_CLK に対してこのタイミングを達成することができます。このとき、PHY側またはボードトレース遅延側での他の考慮事項はありません。

ガイドライン: PHYでRGMII-IDをサポートしていない場合は、 インテル® Agilex™ SoC HPS専用I/O、またはFPGA I/Oのコンフィグレーション可能な遅延要素を使用して、RX_DATA/CTL データ有効ウィンドウの中央に RX_CLK を配置します。

HPS I/Oを使用している場合は、HPS プラットフォーム・デザイナー IPコンポーネントで RX_CLK の遅延のコンフィグレーションを行います。FPGA I/Oを使用している場合は、プロジェクト設定ファイル (.qsf) の入力遅延設定で RX_CLK 入力に遅延を追加します。

ガイドライン: 1000BASE-X PCSオプションを備えたTSE MAC IPでは、トランシーバーI/Oのオプションは提供されません。そのため、SGMII PHYインターフェイスを実装する際に インテル® Agilex™ HPS EMACインスタンスのFPGAトランシーバーI/Oを使用するには、PCS I/Oオプションに対して 「NONE」 を選択してください。そうするとTBIインターフェイスが提供されます。トランシーバーPHY IPは、個別にインスタンス化して、 インテル® Agilex™ デバイスで接続してください。

3 この値は特性評価待ちです。