本篇博文將為您詳解如下所述設計創建步驟:
在 Vivado 中構建基于 Versal 的 IP 集成器 (IP integrator) 設計
創建器件鏡像
在 Vitis 中構建平臺和系統工程
在 VCK190 評估板上運行和調試應用
Versal上的PS-GEM
千兆以太網 MAC (GEM) 可提供符合 IEEE 802.3-2016 標準的硬核 10/100/1000 Mbps 接口。
在 PS 低功耗域 (LPD) 中有 2 個 GEM 控制器。
每個控制器均獨立運行,且各含 1 個管理數據輸入/輸出 (MDIO) 接口以供其外部 PHY 配合 RGMII 接口使用。
GEM 包含下列組件:
1 個 MAC 用于控制傳輸、接收、地址檢查和環回
配置寄存器,可提供控制和狀態寄存器、統計數據寄存器和同步邏輯
1 個直接內存訪問 (Direct Memory Access) 模塊,用于控制 DMA 傳輸和 DMA 接收
1 個時間戳單元 (TSU),用于計算 IEEE 1588 定時器值,其中包含實時時鐘
在無需 DMA 操作的系統應用中,可使用配置選項移除 DMA 模塊,并且可使用外部 FIFO 接口將 GEM 集成到 SoC 環境中。
GEM 塊包含以下信號接口:
連接到外部 PHY 的 GMII 和 RGMII
1 個用于外部 PHY 管理的 MDIO 接口
1 個 APB 從接口,用于訪問 GEM 寄存器
1 個用于內存訪問的 AXI4 DMA 主接口
無需 DMA 功能的應用內包含 1 個可選 FIFO 接口
1 個可選時間戳接口
I/O 選項包括:
布線到 LPD MIO 管腳的 RGMII (v2.0),用于連接到外部 PHY
GMII 和 MII 布線到 PL,以便映射到 GT 或(可選)可借助 PL 邏輯來轉換為其它協議
每個控制器內的診斷內部環回
注:Versal 中不支持內部 SERDES 接口 (SGMII)。在 MPSoC 器件中支持此類接口。
在 VCK190 器件上,GEM0 和 GEM1 均硬連線到板上的 2 個外部 RGMII PHY。
有 2 個 RJ45 端口,分別用于 GEM0 和 GEM1。如要測試 GEM1 RGMII 端口,請確保 GEM0 RGMII 端口同樣通過電纜連接,因為此端口使用共享 MDIO 線(使用 GEM0 MDIO 作為主接口)。
請參閱以下 VCK190 截屏。在右上角有 2 個 RJ45 端口用于 Versal 以太網。
在 Vivado 中創建 IP integrator 設計
請下載隨附的 Tcl 文件并遵循以下步驟進行操作。
1. 在 Vivado 2019.2 中基于 VCK190 評估板創建工程。
2. 創建塊設計。
3. 找到 vck190_1g.tcl。以下是 IP integrator 畫布中的原理圖。
4. 生成 HDL 封裝文件。
5. 單擊“運行實現 (Run Implementation)”和“生成器件鏡像 (Generate Device Image)”。
6. 導出包含器件鏡像的硬件設計。
注:單獨使用“運行塊自動化設置功能 (run block automation)”時,CIP 與 NoC 之間部分連接缺失。隨附的 Tcl 文件可用于確保 CIP 和 NoC 中配置設置正確。
在 Vitis 中構建并運行 LwIP 應用
我們已構建了 IP integrator 設計并已導出了含器件鏡像的硬件設計。現在,我們將在 Vitis 中創建 lwIP 示例,并在 VCK190 評估板上運行。
1. 啟動 Vitis。
2. 使用來自以上設計的 XSA 文件創建應用工程。
3. 從 SDK 中選擇“lwIP 響應服務器 (lwIP Echo Server)”。
4. 在 SDK 中構建平臺和系統工程。選中 lwIP 響應服務器應用時,會自動設置 lwIP 庫的 BSP 設置。用戶還可以選擇僅創建并構建平臺工程,但這樣需手動設置 BSP 設置。
5. 在 VCK190 開發板上運行 lwIP 示例。以下即 UART 控制臺輸出:
6. 以下是 ping 測試輸出:
要切換到 GEM1 RJ45 以便進行測試,用戶應使用 XPAR_XEMACPS_1_BASEADDR 修改 platform_config.h。
可在 BSP 的 xparameters.h 中找到以太網定義。請參閱以下示例
在 platform_config.h 中,更改以下定義:
將此定義更新為:
#define PLATFORM_EMAC_BASEADDRXPAR_XEMACPS_1_BASEADDR
現在,您可重新構建應用并重新運行測試。
LwIP性能
以下是 lwIP 響應服務器應用的 BSP 設置。
PARAMETER dhcp_does_arp_check = true
PARAMETER lwip_dhcp = true
PARAMETER pbuf_pool_size = 2048
對于 lwIP TCP/UDP 性能服務器,默認將設置下列參數。
PARAMETER mem_size = 524288
PARAMETER memp_n_pbuf = 1024
PARAMETER n_tx_descriptors = 512
PARAMETER pbuf_pool_size = 16384
這些 lwIP 參數對于性能調優至關重要。
用戶應參閱 lwIP 文檔中的“配置內存選項”、“配置封裝緩存 (Pbuf) 內存選項”和“TEMAC 適配器選項”部分,以了解有關各參數的更多信息。
https://china.xilinx.com/support/documentation/user_guides/ug1137-zynq-ultrascale-mpsoc-swdev.pdf
這些參數可控制所分配和使用的內存量以及 Pbuf 和描述符數量。
如果系統受到限制,無法處理這些包,則 BD 和 Pbuf 將被快速用盡,且無法根據要求快速清空以供使用。由此導致性能受到影響。
但我們還應平衡可使用的內存量,以便在用于性能基準測試的評估板上將這些參數調整為適合 1Gbps 的最優值。您可以此為參考,根據自己的要求來對這些參數進行調優。
責任編輯:pj
-
控制器
+關注
關注
112文章
16397瀏覽量
178517 -
以太網
+關注
關注
40文章
5440瀏覽量
171995 -
電纜
+關注
關注
18文章
2730瀏覽量
54884
發布評論請先 登錄
相關推薦
評論