之一文搞懂 GMII 與 RGMII)
歡迎關注飛翔硬件雜談如果你在做千兆以太網相關的硬件設計一定繞不開兩個名字GMII和RGMII。它們都是 MAC 與 PHY 之間的接口標準一個引腳多但簡單直白一個引腳少卻暗藏玄機。RGMII 到底省在了哪里又是如何做到少一半引腳同樣的帶寬的本文帶你一次看透。一、先說背景MAC 和 PHY 之間聊什么在以太網硬件架構中MAC媒體訪問控制層負責數據鏈路層的協議處理PHY物理層芯片負責物理信號的編解碼和線路驅動。兩者之間需要一個接口來傳遞數據和控制信號。這個接口需要解決三個問題傳數據TX 方向發出去的數據RX 方向收進來的數據傳時鐘雙方需要一個共同的時鐘節拍來對齊數據傳控制告訴對方數據有效出錯了等狀態信息GMII 和 RGMII 就是兩種不同的接線方案解決的是同一個問題但思路不同。二、GMIIIEEE 標準的正經方案GMIIGigabit Media Independent Interface是 IEEE 802.3 標準中定義的千兆以太網 MAC-PHY 接口。核心參數參數值數據位寬8 bit時鐘頻率125 MHz信號方式SDR單沿采樣僅上升沿帶寬125 MHz × 8 bit 1 Gbps引腳數數據控制約 24 pin速率支持10 / 100 / 1000 Mbps引腳構成以 TX 側為例TXD[7:0] 8 條數據線TX_CLK發送時鐘TX_EN發送使能高電平表示數據有效TX_ER發送錯誤高電平表示數據出錯RX 側對稱RXD[7:0]、RX_CLK、RX_DV數據有效、RX_ER接收錯誤。再加上管理接口 MDC/MDIO總共約 24 個引腳。GMII 的特點優點時序簡單只在時鐘上升沿采樣建立/保持時間窗口充足整個周期 8nsPCB 布線約束寬松。缺點引腳多。TX 側 11 個信號引腳RX 側 11 個加上管理接口一共二十多個。對于引腳緊張的主控芯片來說這是個不小的負擔。三、RGMIIHP 提出的精簡方案RGMIIReduced Gigabit Media Independent Interface由惠普HP提出是目前千兆以太網中最廣泛使用的 MAC-PHY 接口。它不是 IEEE 正式標準而是行業事實標準。核心參數參數值數據位寬4 bit時鐘頻率125 MHz信號方式DDR雙沿采樣上升沿下降沿帶寬125 MHz × 4 bit × 2 1 Gbps引腳數數據控制約 12 pin速率支持10 / 100 / 1000 Mbps引腳構成以 TX 側為例TXD[3:0]4 條數據線TX_CLK發送時鐘TX_CTL發送控制一根線復用 EN 和 ERRX 側對稱RXD[3:0]、RX_CLK、RX_CTL。加上 MDC/MDIO總共約 12 個引腳。引腳數直接砍掉一半。問題是少了一半的引腳帶寬怎么沒變四、核心揭秘RGMII 如何用更少引腳實現相同功能RGMII 省引腳靠的是兩大機制DDR 雙沿采樣 控制信號復用。機制一DDR 雙沿采樣——數據線減半8→4這是省引腳的主要原因TXRX 合計省下8 個引腳。GMII 的做法SDR 單沿時鐘 125 MHz每個周期 8ns。GMII只在時鐘上升沿采樣一次每次采 8 bit。所以一個周期傳 8 bit需要 8 條數據線。TX_CLK: ___| ̄ ̄ ̄ ̄|____| ̄ ̄ ̄ ̄|____| ̄ ̄ ̄ ̄|___ ↑ 采樣 ↑ 采樣 TXD[7:0]: | D0[7:0] | D1[7:0] |RGMII 的做法DDR 雙沿同樣的 125 MHz 時鐘但 RGMII上升沿和下降沿各采樣一次。每次采 4 bit一個周期采 2 次 4 × 2 8 bit。TX_CLK: ___| ̄ ̄ ̄ ̄|____| ̄ ̄ ̄ ̄|____| ̄ ̄ ̄ ̄|___ ↑ ↓ ↑ 上升沿 下降沿 上升沿 TXD[3:0]: |D0[3:0]|D0[7:4]|D1[3:0]|一個 8 bit 字節怎么拆上升沿采樣低 4 位D[3:0]下降沿采樣高 4 位D[7:4]兩半拼起來正好是完整的 8 bit 字節。時鐘頻率沒變數據線少了一半但每個周期傳輸的數據量完全一樣。通俗類比GMII 是一條 8 車道公路每個綠燈放行一次RGMII 是一條 4 車道公路但每個綠燈和紅燈切換時都放行一次。同樣的時間段內通過的車輛數相同。機制二控制信號復用——控制引腳合并2→1這個機制省下2 個引腳TX 側 1 個 RX 側 1 個。GMII 的做法TX_EN發送使能和TX_ER發送錯誤是兩個獨立引腳各自獨占一根線電平始終有效。TX_EN: ─────████████████────── ← 獨占引腳 1 TX_ER: ─────────────────────── ← 獨占引腳 2RGMII 的做法合并為一根TX_CTL線利用 DDR 的思路分時復用上升沿時刻TX_CTL的值 TX_EN下降沿時刻TX_CTL的值 TX_ERTX_CTL: ────████────████────── ← 合為 1 根引腳 ↑EN1 ↓ER0 ↑EN1 上升沿 下降沿 上升沿RX 側同理RX_DVRX_ER→ 合并為RX_CTL一根線。五、引腳賬本到底省了多少下面以 TXRX 合計不含 MDC/MDIO 管理接口做一筆賬信號類別GMIIRGMII節省省引腳機制數據線TXDRXD1688DDR 雙沿采樣控制線EN/ER DV/ER422上升沿/下降沿復用時鐘線TX_CLKRX_CLK220不變合計221210—一個千兆以太網接口從 22 個引腳降到 12 個省了將近一半。對于多網口設備如交換機、路由器這個節省更加可觀。8 口交換機就能省下 80 個引腳直接降低芯片封裝成本和 PCB 層數。六、RGMII 的代價不是免費的午餐RGMII 省了引腳但也帶來了額外約束1. 需要 2ns 時鐘延遲DDR 要求在數據信號的中間采樣因此時鐘需要相對數據延遲約 2ns四分之一周期。這個延遲可以通過兩種方式實現PHY 芯片內部延遲大多數 PHY 芯片支持內部延遲模式設備樹中配置為rgmii-id或rgmii-txid/rgmii-rxid這是最常用的方式PCB 走線延遲繞線約1.5~2 英寸≈3.8~5cm對應延遲約 1.5~2nsFR4 板材信號速度≈15cm/ns物理上實現延遲2. 時序約束更嚴格雙沿采樣意味著建立/保持時間窗口只有半個周期約 4ns對 PCB 布線等長控制和信號完整性要求更高。數據線和時鐘線需要嚴格等長走線長度差通常控制在 ±50mil 以內。3. 不是 IEEE 正式標準RGMII 由 HP 提出最新規范為 RGMII v2.02002屬行業事實標準GMII 定義于 IEEE 802.3z-1998 Clause 35Wikipedia4. 10/100M 模式下的退化在 100 Mbps 和 10 Mbps 模式下RGMII 退化為 SDR 模式只在上升沿采樣數據速率減半以匹配較低帶寬需求時鐘分別降到 25 MHz 和 2.5 MHz。七、實際選型建議場景推薦原因新設計千兆以太網RGMII引腳少主流 PHY 均支持是當前行業標準引腳非常充裕追求最簡時序GMII無需時鐘延遲布線約束最寬松需要兼容老芯片看 MAC 支持部分早期 MAC 只支持 GMII多網口設備交換機等RGMII引腳節省效果成倍放大八、總結RGMII 就是 GMII 的精簡版——用 DDR 雙沿采樣把數據線砍掉一半再通過控制信號分時復用合并掉冗余引腳在引腳數減半的前提下實現了和 GMII 完全相同的千兆帶寬。維度GMIIRGMII數據位寬8 bit4 bit信號方式SDR 單沿DDR 雙沿引腳數~24~12時鐘延遲無需需 2ns時序復雜度簡單較高標準來源IEEE 802.3行業事實標準應用現狀早期芯片主流方案歡迎關注