FPGA控制RGMII接口PHY芯片基礎

1、前言html

  網絡通訊中的PHY芯片接口種類有不少,以前接觸過GMII接口的PHY芯片RTL8211EG。但GMII接口數量較多,本文使用RGMII接口的88E1512搭建網絡通訊系統。這類接口總線位寬小,能夠下降電路成本,在實際項目中應用更普遍。網絡

2、從GMII過分到RGMIIide

  先看看GMII和RGMII主要的接口。工具

GMII:測試

發送 gmii_tx_clk gmii_tx_d[7:0] gmii_tx_en gmii_tx_er優化

接收 gmii_rx_clk gmii_rx_d[7:0] gmii_rx_dv gmii_rx_erui

RGMII:spa

發送 tx_clk tx_d[3:0] tx_ctrl.net

接收 rx_clk rx_d[3:0] rx_ctrl設計

  爲何接口變少了?首先數據總線從時鐘單邊沿採樣8bit轉變爲了雙邊沿採樣4bit,從88E1512 Datasheet中時序圖能夠直觀看出這一點。

   RGMII中上升沿發送一字節數據的低四位,降低沿發送剩餘的高四位數據。接收端時鐘雙邊沿採樣,所以125MHZ*8bit = 125MHZ*4bit*2 = 1000Mbit/s。至於GMII中的數據有效和數據錯誤指示信號被ctrl信號複用:tx_ctrl在時鐘tx_clk上升沿發送是tx_en,在降低沿發送是tx_en ^ tx_er。rx_ctrl在時鐘rx_clk上升沿接收是rx_dv,在降低沿接收是rx_en ^ rx_er。綜上,RGMII接口引腳數從25個下降到14個。

3、add clock skew

  從上邊的時序圖分析,數據在時鐘的邊沿變化。所以若是不作額外處理,接收端沒法穩定採樣。爲了解決這一問題,常見的作法是爲時鐘信號添加延時,使其邊沿對準數據總線的穩定區間。能夠在控制器端、PCB走線以及PHY芯片內部添加時鐘偏移,本文使用最後一種方式實現。

   在第三階段中添加延遲。數據發送方向,FPGA側的TX_CLK信號不須要額外處理,也就是說FPGA發送與數據邊沿對齊的時鐘信號。TXD和TX_CLK信號波形如圖。

  PHY內部會調整TX_CLK,使之可以穩定採樣TXD。數據接收方向,因爲RX_CLK由PHY提供,PHY芯片直接產生與數據中心對齊的時鐘信號。RXD和RX_CLK信號波形如圖。

  可見,使PHY芯片工做在延遲模式下時,FPGA單不須要添加額外的邏輯來保證穩定採樣。發送方向直接將數據驅動時鐘做爲TX_CLK信號發送,接收方向直接利用RX_CLK對RXD信號採樣。

4、系統設計方案

  本文使用ZYNQ內部的MAC控制器實現數據鏈路層功能。但因爲其接口爲GMII,須要用到GMII_to_RGMII IP Core轉換接口邏輯。上層網絡協議則經過LWIP開源協議棧完成。首先配置ZYNQ IP,使能ENET1並以EMIO方式引出。

 

  系統硬件結構如圖:

5、I/O 時序約束

  在較高速設計場合下,輸入輸出接口部分很容易出現數據採樣不穩定的現象。這時候就要經過Input delay,output delay約束以及STA來分析設計是否知足穩定採樣需求。input/output delay是指數據相對於時鐘的延遲,只有設置好上述兩個數值,綜合工具纔會往正確的方向優化並給出合理的時序報告。

   FPGA與RGMII接口的PHY芯片之間的時序關係按照數據接口同步和數據採樣方式屬於源同步DDR採樣。input delay約束對應接收方向,時序關係是中心對齊。output delay約束對應發送方向,時序關係是邊沿對齊。前者因爲不少時候不知道上游器件Tcko信息,會使用示波器測量有效數據窗口來計算。然後者由於是邊沿對齊,經過示波器測量抖動窗口並使用skew based method計算。這部分筆者尚未親身實踐過,如有誤歡迎指出。

參考文獻

1 千兆以太網芯片88E1111 RGMII模式的驅動 - 我心狂野 - 博客園 http://www.cnblogs.com/shengansong/archive/2012/01/04/2311894.html

2  RGMII佈線指導 RGMII Layout Guide | 無線時代 http://www.witimes.com/rgmii-layout-guide/

3 RGMII_PHY測試筆記1 基於開發板MiS603-X25-whilebreak-電子技術應用-AET-北大中文核心期刊-最豐富的電子設計資源平臺 http://blog.chinaaet.com/whilebreak/p/46639

4  千兆以太網芯片88E1111 RGMII模式的驅動 - 百度文庫 https://wenku.baidu.com/view/d2cc412fff00bed5b9f31d49.html

5 RGMII Interface Timing Considerations | Ethernet FMC http://ethernetfmc.com/rgmii-interface-timing-considerations/

6 ALTERA AN 477: Designing RGMII Interfaces with FPGAs and HardCopy ASICs

7 米聯客 ESFP1512 以太網 SFP 光電卡教程

Vivado使用誤區與進階——XDC約束技巧之I/O篇 (上) - neufeifatonju的博客 - CSDN博客 https://blog.csdn.net/neufeifatonju/article/details/80653172

Vivado使用誤區與進階——XDC約束技巧之I/O篇 (下) - neufeifatonju的博客 - CSDN博客 https://blog.csdn.net/neufeifatonju/article/details/80450975

原文出處:https://www.cnblogs.com/moluoqishi/p/10846302.html

相關文章
相關標籤/搜索