這個設計範例的目標是展示限制TSE_RGMII的方法。此設計範例僅在開啟外部實體層TX_CLK和RX_CLK的延遲功能 (90 度移位) 時才適用。它可以以 3 種不同的速度執行,速度為 10 MHz、100 MHz 和 1000 MHz。
假設使用者熟悉三重速度乙太網路智慧財產 (IP) 核心、ALTDDIO、ALTPLL、TimeQuest 和靜態計時分析,以及雙倍資料速率 (DDR) 來源同步的概念。
如何限制
- 選擇介面限制的方法:以系統為中心的方法或Intel® FPGA中心的方法。
- 不同的方法需要不同的公式來計算set_input_delay的延遲值,並set_output_delay指令
- 此設計範例使用以系統為中心的方法
- 決定是開啟還是關閉外部實體層的延遲功能(±90 度移位),因為它將決定頻率與資料之間的對齊類型。
- 90 度移位 ->中心對齊
- 無移位 ->邊緣對齊
- 此設計範例適用于外部實體層的 TX 和 RX 延遲功能開啟(僅 90 度移位)
- 判斷所需的啟動與閂鎖關係。
- 有 4 種類型的啟動和鎖關係。它們是 Rise-Rise (RR)、Rise-Fall (RF)、跌倒式 (FR) 和跌倒 (FF) 關係
- RGMII 規格指出,LSB 的資料 [3:0] 將先在上升的邊緣傳送,而 MSB 的資料 [7:4] 會傳送,接著是邊緣下降
- 採用 RGMII 介面的 TSE 設計會先在上升的邊緣擷取資料,接著接著在邊緣下降。這代表時鐘需要移動 +90 度,而不是 -90 度
- 所需的安裝啟動和閂鎖關係(紅色箭頭):RR 和 FF
- 理想的握住啟動與閂鎖關係(藍色箭頭):FR 與 RF
- 限制 RGMII 介面。Synopsys Design Constraints (SDC) 是以設計與應用程式為基礎。然而,RGMII 介面需要一些主要的 SDC。
TX
- create_clock
- 在傳輸到外部實體層之前鎖定Intel® FPGA內資料的頻率
- create_generated_clock:
- 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:
- 在傳輸至Intel® FPGA之前擷鎖外部實體層內資料的虛擬頻率
- 建立_clock:
- 90 度相移的頻率,鎖定Intel® FPGA內的資料
- 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
如何驗證
有一些報告需要檢查,以確認來源同步限制是否受到適當限制。
- 頻率報告
- 檢查 3 頻率頻率 (125 MHz、25 MHz 和 2.5 MHz) 及其相
- Core TX 頻率(Intel® FPGA):125 MHz、25 MHz 和 2.5 MHz
- RGMII_TX_Clock(外部實體層):125 MHz +90º,25 MHz +90º,2.5 MHz +90º
- RGMII_RX_Clock(Intel® FPGA):125 MHz +90º,25 MHz +90º,2.5 MHz +90º
- RGMII_RX_Virtual_Clock(外部實體層):125 MHz、25 MHz 和 2.5 MHz
- 頻率傳輸報告
- 檢查設定上的所有關系,並持有 RGMII 介面的啟動-閂取關係以進行頻率傳輸
- 所需的設定:RR 和 FF
- 所需的持有:FR 與 RF
- 所有 I/O 計時報告
- 根據所需設定,檢查是否有任何故障路徑與啟動-閂鎖關係,並保持啟動-閂鎖關係
- 註冊安裝和持有的輸入
- 註冊以輸出進行設定並持有
- 根據所需設定,檢查是否有任何故障路徑與啟動-閂鎖關係,並保持啟動-閂鎖關係
筆記:
- TSE_10_1_RGMII_SDC是 Megafunction 所產生的 SDC 檔案。它不涵蓋 RGMII SDC 限制。RGMII SDC 限制包含在 RGMII SDC 中。
- 在 TSE_10_1_RGMII_SDC.sdc 檔案中修改:
- 評論derived_pll_clock(第 246 行),因為這將阻礙您在 RGMII.sdc 中的 pll 使用create_gererated_clock指令
- 根據設計變更第 59 行和第 60 行的FF_TX_CLK和FF_RX_CLK名稱
- 在計時分析期間,可能會出現可忽略的警告。如需詳細資訊,請參閱 TSE_RGMII_With_SDC.qar 中的 readme.txt。
- 下載此範例中使用的檔案:TSE_RGMII_With_SDC.qar
此設計之使用受 Intel® 設計範例授權協定的條款與細則管轄,並受其約束。