MAC知識點007:IEEE802.3 MAC_PCS速率控制方法

MAC知識點007:IEEE802.3 MAC_PCS速率控制方法

  1. 常見的MAC_PCS速率實現方式?

在IEEE802.3協議中,規定了MAC層、RS層和PCS層的結構,說明了mii接口的位寬和時鐘頻率,但是實際verilog實現中,MAC/PCS的時鐘常常與協議不一致。本節將講解常見的MAC/PCS的速率控制。

如下圖所示,以發送方向爲例,數據經過MAC_TX、PCS_TX、通過serdes傳輸到對端。

常見速率設計方法是:mac tx的極限速率>=pcs tx的極限速率>serdes的速率。

此結構爲漏斗型,數據上游的帶寬大,數據下游的帶寬小,,採用ram和afifo實現數據的轉換,逐級反壓流控,由下游帶寬決定實際速率。

  1. MAC_PCS速率實現方式案例分析

 

如圖所示,圖中以實現4lane serdes實現公共200G速率,每lane serdes在528FEC/NOFEC模式下的極限速率是51.5625G,serdes數據位寬爲80bit,serdes恢復時鐘serdes_twclk爲644.53125MHz

Mac tx模塊生成4路mii接口,pcs_tx模塊包含pcs層和fec的處理,輸出80bit的串行數據送到serdes。

Serdes的速率控制實在gearbox模塊實現的,gearbox模塊主體存儲結構是位寬爲80的afifo,讀側採用serdes恢復時鐘serdes_twclk,每個時鐘週期讀取一個數據,實際速率爲80*644.53125=51.5625G,由於pcs tx的極限速率大於51.5625,所以gearbox模塊的內部afifo一直不會空,當afifo內部數據超過閾值時會向上遊起反壓流控,暫停數據下發,防止afifo溢出,閾值設置要合理,因此要防止下游斷流。

Gearbox模塊寫側時鐘爲pcs_clk,pcs_clk需要大於serdes_twclk才能保證afifo一直有數據。

Mac_tx模塊的極限帶寬計算爲4*64*mac_clk,要大於200G,因此mac_clk不能低於781.25Mhz,保證mac tx的極限速率>=pcs tx的極限速率>serdes的速率,因此mac_clk可以選擇在800MHz~900Mhz,pcs_clk可以選擇在mac_clk~700Mhz之間,pcs_clk也可以選擇與mac_clk同一個時鐘,這樣可以減少跨時鐘設計。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章