Jigyasa Panchal 和 Vatsal Tripathi
在本博客中,我們將介紹使用 Aurora 6466b 協議實現 AMD UltraScale+ FPGA 與 AMD Versal 自適應 SoC 的對接。我們還將涵蓋有關 IP 配置、FPGA 之間的連接、時鐘設置以及復位拓撲結構的詳細信息。
Aurora 64B/66B 是一項用于多千兆位鏈路的輕量級串行通信協議。它使用一個或多個 GTX、GTH、GTY 或 GTM 收發器在器件之間進行數據傳輸。可以采用全雙工(雙向數據)連接,也可以采用單工(任一方向的數據)連接。本博客重點關注兩種器件雙工配置下的互聯操作: UltraScale+ FPGA 使用 GTY連接 Versal 自適應 SoC 的 GTM。

本博客涵蓋以下內容:
1. VCU118 和 VMK180 的示例設計
2. IP 配置
3. 綜合、實現與比特流生成
4. 復位序列
5. FPGA 之間的連接
這里使用的兩個 FPGA 分別是 AMD Virtex UltraScale+(VCU118 評估板)和 Versal Prime(VMK180 評估板)。此測試中使用的是 AMD Vivado 2024.2。在“相關”部分中包含了測試使用的比特流。
在 Aurora 6466b IP 自定義 GUI 中,有兩個選項卡:“Core Options”(核選項)和“Shared Logic”(共享邏輯)。在“Core Options”選項卡中,您可以選擇下列配置的相關選項:通道寬度、線速率、GT 參考時鐘、INIT 時鐘與 DRP 時鐘頻率、數據流為雙工/僅發送/僅接收、接口為成幀或串流以及調試選項。
在“Shared Logic”選項中,您需要在“Include Shared Logic in core”(在核中包含共享邏輯)或“Include Shared Logic in example design”(在示例設計中包含共享邏輯)兩者之間進行選擇。
對于上述示例設計,建議兩個器件的線速率和 GT REFCLK 保持一致,以確保兩端的連接穩定,這也是一項良好的實踐。
1.VCU118 和 VMK180 的示例設計
VCU118 的單通道示例設計
自定義 Aurora 核。
請按照以下步驟為單通道自定義并生成 Aurora 64b66b 核:
啟動 Vivado Design Suite。
選擇“Create New Project”(創建新工程)并單擊“Next”(下一步)。
選擇工程名稱和路徑,然后單擊“Next”。
選擇 RTL 工程以允許運行示例設計,并勾選“Do not specify sources at this time”(此時不指定源文件)。單擊“Next”。
單擊 xcvu9p-flga2104-2L-e,或選擇“Boards”(開發板)選項,然后單擊“Virtex UltraScale+ VCU118 Evaluation Platform(xcvu9p-flga2104-2L-e)”
單擊“Next”,然后單擊“Finish”(完成)。
在 Flow Navigator 面板的“Project Manager”(工程管理器)下,選擇 IP 目錄并搜索
Aurora 64b66b。在“Communication & Networking > Serial Interfaces”(通信與聯網 > 串行接口)下可以找到 Aurora 核。
在為 VMK180 創建 2 通道示例設計時也應遵循相同的步驟。
VMK180 的單通道示例設計
自定義 Aurora 核。
請按照以下步驟為單通道示例自定義并生成 Aurora 64b66b 核:
啟動 Vivado Design Suite。
選擇“Create New Project”(創建新工程)并單擊“Next”(下一步)。
選擇工程名稱和路徑,然后單擊“Next”。
選擇 RTL 工程以允許運行示例設計,并勾選“Do not specify sources at this time”(此時不指定源文件)。單擊“Next”。
單擊 xcvp1802-lsvc4072-2MP-e-S,或選擇“Boards”選項,然后單擊“Versal VMK180 ES1 Evaluation Platform”(Versal VMK180 ES1 評估平臺)。
單擊“Next”,然后單擊“Finish”(完成)。
在 Flow Navigator 面板的“Project Manager”(工程管理器)下,選擇 IP 目錄并搜索 Aurora 64b66b。在“Communication & Networking > Serial Interfaces”(通信與聯網 > 串行接口)下可以找到 Aurora 核。

圖 1:Vivado IP 目錄中的 Aurora 64B66B
VCU118 和 VMK180 的示例設計共享以下軟件需求:
VCU118- vivado design suite 2025.1
VMK180- vivado design suite 2025.1
2.IP 配置
對于 VCU118。
右鍵單擊 Aurora 64B66B 并選擇“Customize IP”(自定義 IP)。
在“Customize IP”窗口的“Core Options”(核選項)選項卡中,將“GT Refclk (MHz)”設置為 156.25,將“INIT clk (MHz)”設置為 100。見圖 2。
注釋:為 VCU118 自定義 IP 時,您還可以選擇 Vivado Lab Edition。這將允許您在頂層文件中添加內建 ILA 和 VIO。

圖 2:Aurora 64B66B 核選項設置
對于 VMK180。
右鍵單擊 Aurora 64B66B 并選擇“Customize IP”(自定義 IP)。
在“Customize IP”窗口的“Core Options”選項卡中,將“GT Refclk (MHz)”設置為 156.25。
將“INIT clk (MHz)”設置為 100。見圖 3。

圖 3:為 VMK180 自定義 Aurora 64B66B 核。
注釋:建議在實踐中,兩項設計的線速率和 GT REFCLK 保持一致。INIT CLK 根據開發板上的系統時鐘進行配置。
綜合、實現與比特流生成
在 Vivado IDE 的“Project Manager”部分,右鍵單擊核名稱并選擇“Open IP Example Design”(打開 IP 示例設計)(見圖 4)。
單擊“OK”覆蓋現有示例設計。
生成示例設計后,運行綜合。
在 I/O 管腳分配中為 Aurora 核端口分配管腳位置(見圖 5)。
完成管腳分配后,保存并更新 XDC 文件,然后運行實現。
下一步是生成比特流。
注釋:VCU118 的 I/O 端口是基于 bank 231 的原理圖進行分配的(見圖 6)。

圖 4:打開 IP 示例設計

圖 5:VCU118 的 I/O 端口

圖 6:VCU118 的 I/O 管腳分配所使用的 bank 231 的原理圖
對于 VMK180。
在 Vivado IDE 的“Project Manager”部分,右鍵單擊核名稱并選擇“Open IP Example Design”。(見圖 6)
單擊“OK”覆蓋現有示例設計。
生成示例設計后,運行綜合。
在 I/O 管腳分配中為 Aurora 核端口分配管腳位置(見圖 7)。
完成管腳分配后,保存并更新 XDC 文件,然后運行實現。
下一步是生成比特流。

圖 7:在生成示例設計后為 VMK180 生成的塊設計

圖 8:VMK180 的 I/O 端口

圖 9:VMK180 的 I/O 管腳分配所使用的 bank 105 的原理圖
注釋:VMK180 的 I/O 端口是基于 bank 105 的原理圖進行分配的(見圖 8)。
4.上電與復位序列
以下是在可用數據流配置的示例設計層面針對 Aurora 64B/66B 核推薦的 Aurora 雙工復位序列。有關復位序列請見圖 10。
在開發板上電序列期間,pma_init 和 reset_pb 信號應處于高電平狀態。為確保 Aurora 64B/66B 核正常工作,INIT_CLK 與 GT_REFCLK 在上電期間應保持穩定。當兩個時鐘穩定后,將 pma_init 斷言無效,然后再將 reset_pb 斷言無效。

圖 10:Aurora 64B/66B 雙工上電復位序列
以下是在數據傳輸之前連接兩個器件的步驟。

圖 11:復位時序
5.FPGA 之間的連接
此示例展示了兩個平臺之間的單通道 Aurora 64B66B 連接。此平臺由 VCU118 和 VMK180 評估套件板組成,如圖 12 所示。隨后對兩個器件進行燒錄,將燒錄文件設置為比特流文件名 (aurora_64b66b_0_exdes.bit),將探針文件設置為探針文件名 (aurora_64b66b_0_exdes.ltx)。

圖 12:Aurora 64B/66B 單通道設置
注釋:如果在 AMD 評估板上進行測試,請確保已啟用 QSFP/SFP 端口。請根據相應的開發板原理圖啟用這些端口。
要執行該設計,需遵循以下必要步驟:
在“Hardware”(硬件)列表中右鍵單擊器件并選擇“Run Trigger”(運行觸發器)。在出現的波形窗口中,觀察到 lane_up 和 channel_up 信號處于高電平狀態。
在 hw_vios 下的“Debug Probes”(調試探針)列表中選中以下所有信號,將探針添加到 VIO 窗口中:channel_up、lane_up、RESET、gt_reset_i_temp。
按照復位序列切換復位信號,具體操作是:先對器件 A 斷言 pma_init 有效,再對器件 B 斷言該信號有效;隨后先對器件 A 斷言 RESET_PB 有效,再對器件 B 斷言該信號有效,如圖 9 所示。
channel_up 和 lane_up 信號必須變為低電平狀態。
隨后再次依次切換器件 A 與器件 B 的復位信號。每次復位信號切換后,channel_up 和 lane_up 都會返回高電平狀態。
以下步驟表明,當 reset_pb 和 pma_init 斷言有效時,核(或收發器)處于復位狀態,channel_up 和 lane_up 均變為低電平狀態。然而,當這兩個復位信號均為低電平狀態時,核會發生解復位,channel_up 和 lane_up 均為高電平狀態。

圖 13:VCU118 的 Aurora 64B/66B HW-ILA 波形

圖 14:VCU118 的 Aurora 64B/66B VIO 探針窗口

圖 15:VMK180 的 Aurora 64B/66B HW-ILA 波形

圖 16:VMK180 的 Aurora 64B/66B VIO 探針窗口
-
FPGA
+關注
關注
1660文章
22408瀏覽量
636248 -
收發器
+關注
關注
10文章
3819瀏覽量
111193 -
amd
+關注
關注
25文章
5683瀏覽量
139941 -
Versal
+關注
關注
1文章
173瀏覽量
8470
原文標題:開發者分享 | 使用 Aurora 6466b 實現 AMD UltraScale+? FPGA 與 AMD Versal? 自適應 SoC 之間的互聯
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
【ALINX 技術分享】AMD Versal AI Edge 自適應計算加速平臺之 Versal 介紹(2)
AMD Versal自適應SoC內置自校準的工作原理
AMD率先推出符合DisplayPort? 2.1 8K視頻標準的FPGA和自適應SoC
AMD推出全新Spartan UltraScale+ FPGA系列
AMD 擴展市場領先的 FPGA 產品組合,推出專為成本敏感型邊緣應用打造的AMD Spartan UltraScale+ 系列
AMD推出Spartan UltraScale+ FPGA系列產品
AMD 擴展市場領先的 FPGA 產品組合,推出專為成本敏感型邊緣應用打造的AMD Spartan UltraScale+ 系列
AMD推出全新Spartan UltraScale+ FPGA系列
AMD Versal自適應SoC CPM5 QDMA的Tandem PCIe啟動流程介紹
AMD Versal自適應SoC器件Advanced Flow概覽(上)
AMD Versal自適應SoC器件Advanced Flow概覽(下)
利用AMD VERSAL自適應SoC的設計基線策略
AMD Spartan UltraScale+ FPGA 開始量產出貨
使用Aurora 6466b協議實現AMD UltraScale+ FPGA與AMD Versal自適應SoC的對接
評論