外部 PHY 遅延機能を備えたトリプル・スピード・イーサネットの RGMII インターフェイスへの制約

author-image

投稿者:

このデザイン例の目的は、TSE_RGMII に制約を課す方法を紹介することです。このデザイン例は、外部 PHY の TX_CLK と RX_CLK の遅延機能 (90 度シフト) がオンになっている場合にのみ適用されます。これは、10MHz、100MHz、1000MHz の 3 つの異なる速度で動作します。

トリプル・スピード・イーサネットの知的財産 (IP) コア、ALTDDIO、ALTPLL、TimeQuest と静的タイミング分析、およびダブル・データ・レート (DDR) のソース・シンクロナス・コンセプトについて理解していることが前提です。

制約方法

  1. インターフェイス制約の方式として、システム・セントリック方式またはインテル® FPGA セントリック方式を選択します。
    • set_input_delay および set_output_delay コマンドの遅延値の計算には、方式ごとに異なる計算式が必要です。
    • このデザイン例では、システム・セントリック方式を使用しています。
  2. 外部 PHY の遅延機能 (±90 度シフト) をオンにするかオフにするかで、クロックとデータ間のアライメントのタイプが決まります。
    • 90 度シフト -> 中央揃え
    • シフトなし -> エッジ揃え
    • このデザイン例は、外部 PHY の TX と RX の遅延機能がオン (90 度シフト) になっている場合にのみ適用されます。
  3. 望ましいローンチとラッチのリレーションシップを決めます。
    • ローンチとラッチのリレーションシップには 4 タイプあります。それは、Rise-Rise (RR)、Rise-Fall (RF)、Fall-Rise (FR)、Fall-Fall (FF) のリレーションシップです。
    • RGMII の仕様では、データ [3:0] の LSB が立ち上がりエッジで最初に送出され、データ [7:4] の MSB が立ち下がりエッジで続いて送出されます。
    • RGMII インターフェースを持つ TSE のデザインでは、まず立ち上がりエッジでデータをキャプチャーし、次に立ち下がりエッジでデータをキャプチャーします。これは、クロックを -90 度ではなく、+90 度シフトさせる必要があることを意味します。
    • 望ましいセットアップ・ローンチとラッチのリレーションシップ (赤色の矢印): RR と FF
    • 望ましいホールドローンチとラッチのリレーションシップ (青色の矢印): FR と RF
  4. RGMIIインターフェイスを制約シノプシスの設計制約(SDC)は 設計とアプリケーションに基づいていますしかし RGMIIインターフェイスに必要な主なSDCがいくつかあります

図 2.ローンチクロックとラッチクロックのリレーションシップ

TX

  • create_clock
    • 外部 PHY への送信前に、インテル® FPGA 内でデータをラッチするクロック
  • create_generated_clock:
    • 外部 PHY でデータをラッチする、フェーズが 90 度シフトしたクロック
  • set_false_path:
    • これは、タイミング解析では解析されない不要なリレーションシップです。このデザイン例では、セットアップに不要なリレーションシップは RF と FR、ホールドに不要なリレーションシップは RR と FF です。

set_false_path -fall_from [data_clock] -rise_to [output_clock] -setup
set_false_path -rise_from [data_clock] -fall_to [output_clock] -setup
set_false_path -rise_from [data_clock] -rise_to [output_clock] -hold
set_false_path -fall_from [data_clock] -fall_to [output_clock] -hold

  • set_output_delay

set_output_delay -clock output_clock\
-max [expr $data_delay_max + $tsu - $clk_delay_min] \
[get_ports data_out] \
-add_delay

set_output_delay -clock output_clock\
-max [expr $data_delay_max + $tsu - $clk_delay_min] \
[get_ports data_out] \
-clock_fall \
-add_delay

set_output_delay -clock output_clock \
-min [expr $data_delay_min - $th - $clk_delay_max] \
[get_ports data_out ] \
-add_delay

set_output_delay -clock output_clock \
-min [expr $data_delay_min - $th - $clk_delay_max] \
[get_ports data_out ] \
-clock_fall \
-add_delay

TSE_RGMII RX

  • create_clock:
    • インテル® FPGA に送信する前に外部 PHY 内のデータをラッチするバーチャルクロック
  • create _clock:
    • インテル® FPGA 内のデータをラッチする、フェーズが 90 度シフトしたクロック。
  • set_false_path:
    • これは、タイミング解析では解析されない不要なリレーションシップです。このデザイン例では、セットアップに不要なリレーションシップは RF と FR、ホールドに不要なリレーションシップは RR と FF です。

set_false_path -fall_from [data_clock] -rise_to [output_clock] -setup
set_false_path -rise_from [data_clock] -fall_to [output_clock] -setup
set_false_path -rise_from [data_clock] -rise_to [output_clock] -hold
set_false_path -fall_from [data_clock] -fall_to [output_clock] -hold

確認方法

ソースのシンクロナス制約が適切かどうかを確認するために チェックすべきレポートがいくつかあります

  1. クロックレポート
    • 3 つのクロック周波数 (125MHz、25MHz、2.5MHz) とそのフェーズのチェック
    • コア TX クロック (インテル® FPGA): 125MHz、25MHz、2.5MHz
    • RGMII_TX_Clock (外部 PHY): 125MHz +90º、25MHz +90º、2.5MHz +90º
    • RGMII_RX_Clock (インテル® FPGA): 125MHz +90º、25MHz +90º、2.5MHz +90º
    • RGMII_RX_Virtual_Clock (外部 PHY) : 125MHz、25MHz、2.5MHz
  2. クロック・トランスファー・レポート
    • クロック・トランスファー向けの RGMII インターフェイスのセットアップおよびホールドのローンチラッチ・リレーションシップをすべてチェックします
    • 望ましいセットアップ: RR と FF
    • 望ましいホールド: FR と RF
  3. すべての I/O タイミングレポート
    • 望ましいセットアップとホールドのローンチラッチ・リレーションシップに応じて、失敗するパスとローンチラッチ・リレーションシップが存在するかどうかをチェックします
      • セットアップとホールド用レジスターへの入力
      • セットアップとホールド用出力へのレジスター

注:

  1. TSE_10_1_RGMII_SDC は、メガファンクションにより生成される SDC ファイルです。これは RGMII SDC 制約を対象とするものではありません。RGMII SDC 制約は、RGMII SDC に含まれています。
  2. TSE_10_1_RGMII_SDC.sdc ファイルの修正:
    • コメント: derived_pll_clock (246 行目) により、RGMII.sdc 内の pll に対する create_gererated_clock コマンドの使用が妨げられます
    • 59 行目および 60 行目の FF_TX_CLK および FF_RX_CLK の名前をデザインに合わせて変更します
  3. タイミング解析の際に、無視できる警告があります。詳細は、TSE_RGMII_With_SDC.qar にある readme.txt をご覧ください。
  4. この例で使用したファイルのダウンロード: TSE_RGMII_With_SDC.qar

このデザインの使用には、インテル® デザイン例ライセンス契約の条件が適用されます。