PHY層設計
完整PHY層模塊框圖如下:
PHY層需要三個模塊:xcvr_native_10g_phy\atx_reset_controller\atx_pll
-
xcvr_native_10g_phy
-
框圖
-
xcvr_native_10g_phy包括了PMA\Ehanced PCS,需要注意
- Parallel Clock是根據數據位寬來確定,比如數據位寬為40bit,那這里的Parallel Clock頻率就需要是10.3125G/40=257.8125Mhz,如果位寬為66bit(64+2),則為10.3125G/66=156.25Mhz
- Serial Clock的頻率需要是5156.25 MHz (數據速率/2=10.3125/2=5156.25Mhz)
-
參數設置
- 在Platform designer里輸入native phy,找到Transeiver Native PHY Intel Arria 10 FPGA IP,雙擊
- 在彈出窗口設置該IP名稱,我這里設置的是xcvr_native_10g_phy
- 在參數設置窗口設置參數,在Transeiver configuration rules里選擇協議類型10GBASE-R,PMA configuration rules里選擇basic, Transeiver mode選擇TX/RX Duplex即:包含收和發;data channels數量設置為1,Arria 10 GX可以用的17.4 Gbps channel總共是96個(看器件手冊),這里只需要一個;Data rate(數據速率)設置為10312.5;
備注:注意圖片紅色框里這句話:The external TX PLL IP must be configured with an output clock frequency of 5156.25Mhz;這個很重要對ATX_PLL串行時鍾輸出頻率的一個硬性要求
- 接着設置TX PMA相關參數
- 設置RX PMA參數
- 設置Enhanced PCS參數
-
仿真
- 在platform designer 里點擊generate testbench system
- 仿真不需要自己創建modelsim 工程,只需打開modelsim切換到生成testbench目錄下的mentor目錄
- 輸入指令source .tcl
- 輸入指令ld_debug
-
問題解決
- Modelsim fails (vlog-2726) failed to access library..!
該問題需要Quartus重新re-generated IP並編譯一下當前工程,即可解決
-
- atx_reset_controller
- A10 Transceiver PHY Reset Controller系統與xcvr_native_10g_phy之間鏈接框圖
- 注意
- 這里的pll_tx_cal_busy為 tx_cal_busy | pll_cal_busy
- rx_is_lockedtoref和rx_is_locedtodata這兩個信號根據自己的需求可以不要
- 仿真
- 方法同xcvr_native_10g_phy仿真方法
- atx_pll
- 框圖
- atx_pll模塊需要注意
- 主要是用來產生Transceiver TX serial clock,頻率根據xcvr_native_10g_phy的要求進行設置
- 這里設置為5156.25Mhz
- 仿真
- 方法同xcvr_native_10g_phy仿真方法
-
整個PHY模塊鏈接框圖
-
仿真
- 仿真結果如下
-