Versal 介紹
Versal 包含了 Cortex-A72 處理器和 Cortex-R5 處理器,PL 端可編程邏輯部分,PMC 平臺管理控制器,AI Engine 等模塊,與以往的 ZYNQ 7000 和 MPSoC 不同,Versal 內部是通過 NoC 片上網絡進行互聯。
Versal 芯片的總體框圖
Versal 芯片的總體框圖
PS: 處理系統 (Processing System) , 就是與 FPGA 無關的 ARM 的 SoC 的部分。
PL: 可編程邏輯 (Progarmmable Logic), 就是 FPGA 部分。
NoC 架構
Versal 可編程片上網絡(NoC) 是一種 AXI 互連網絡,用于在可編程邏輯 PL,處理器系統 PS 等之間共享數據,而之前的 Versal 系列采用的 AXI 交叉互聯模塊,這是 Versal 的不同之處。
NoC 是為可擴展性而設計的。它由一系列相互連接的水平(HNoC)和垂直(VNoC)路徑,由一組可定制的硬件實現組件支持,這些組件可以以不同的方式進行配置,以滿足設計時序、速度和邏輯利用率要求。以下是 NoC 的結構圖
NoC 的結構圖
從 NoC 的結構圖,可以看到,其主要由 NMU(NoC master units),NSU(NoC slave units),NPI(NoC programming interface),NPS(NoC packet switch)組成。PS 端可以連接到 NMU,再通過 NPS 連接訪問到 DDRMC,同樣 PL 端也可以通過 NMU,NPS 訪問到 DDRMC。通過 NPS 路由的方式,靈活地訪問各模塊。
NMU 結構
NSU 結構
從以上的 NMU, NSU 結構可以看到,對用戶的接口仍然是 AXI 總線,在其內部,將 AXI 數據進行組包或解包,連接到 NoC 網絡。
NPS 結構
而 NMU 和 NSU 都是連接到 NPS 上的,它相當于一個路由器,將數據轉發給目的設備。它是一個全雙工的 4x4 switch,每個端口在每個方向支持 8 個虛擬通道,采用基于信用的流控,類似于 TCP 的滑動窗口。
NoC 是 Versal 開發中非常重要的部件,PS 端訪問 DDR,PL 端訪問 DDR 都是通過 NoC,與 Versal 不同的是,versal 在 PS 端沒有 DDR 控制器,都是通過 NoC 訪問,因此了解 NoC 結構是很有必要的,更多的內容可以參考官方的 pg313 文檔。
PMC 架構
PMC(平臺管理控制器)在啟動,配置,運行時做平臺的管理。從下圖的結構圖中可以看出,PMC 由 ROM Code Unit,Platform Processing Unit,PMC I/O Peripherals 等單元組成,功能豐富。在這里主要介紹一下 PMC 是如何引導程序啟動的。
PMC 結構圖
第一階段:Pre-Boot
2. PMC 讀取啟動模式引腳并存入 boot mode 寄存器
3. PMC 發送復位給 RCU(ROM code unit)
第二階段:Boot Setup
4. RCU 從 RCU ROM 中執行 BootROM
5. BootROM 讀出 boot mode 寄存器,選擇啟動設備
6. BootROM 從啟動設備讀取 PDI(programmable device image) 并校驗
7. BootROM 釋放 PPU 的復位,將 PLM 加載到 PPU RAM 并校驗。校驗后,PPU 喚醒,PLM 軟件開始執行。
8. BootROM 進入睡眠狀態
第三階段:Load Platform
9. PPU 開始從 PPU RAM 中執行 PLM
10. PLM 開始讀取并運行 PDI 模塊
11. PLM 利用 PDI 內容配置 Versal 其他部分
11a: PLM 為以下模塊配置數據:PMC, PS clocks
(MIO ,clocks, resets 等)(CDO 文件)
NoC 初始化和 NPI 模塊(DDR 控制器,NoC,
GT,XPIPE,I/Os,clocking 和其他 NPI 模塊
PLM 加載 APU 和 RPU 的應用程序 ELF 到存儲空間,
如 DDR,OCM,TCM 等
11b: PL 端邏輯配置
PL 端數據(CFI 文件)
AI Engine 配置(AI Engine CDO)
第四階段:Post-Boot
12. PLM 繼續運行,直到下一次 POR 或系統復位。并負責 DFX 重配置,電源管理,子系統重啟,錯誤管理,安全服務。
Versal 芯片開發流程的簡介
由于 Versal 將 CPU 與 FPGA 集成在了一起,開發人員既需要設計 ARM 的操作系統應用程序和設備的驅動程序,又需要設計 FPGA 部分的硬件邏輯設計。開發中既要了解 Linux 操作系統,系統的構架,也需要搭建一個 FPGA 和 ARM 系統之間的硬件設計平臺。所以 Versal 的開發是需要軟件人員和硬件硬件人員協同設計并開發的。這既是 Versal 開發中所謂的 " 軟硬件協同設計”。
Versal 系統的硬件系統和軟件系統的設計和開發需要用到一下的開發環境和調試工具:Xilinx Vivado。Vivado 設計套件實現 FPGA 部分的設計和開發,管腳和時序的約束,編譯和仿真,實現 RTL 到比特流的設計流程。
Xilinx Vitis 是 Xilinx 軟件開發套件 (SDK), 在 Vivado 硬件系統的基礎上,系統會自動配置一些重要參數,其中包括工具和庫路徑、編譯器選項、JTAG 和閃存設置,調試器連接已經裸機板支持包 (BSP)。SDK 也為所有支持的 Xilinx IP 硬核提供了驅動程序。Vitis 支持 IP 硬核(FPGA 上)和處理器軟件協同調試,我們可以使用高級 C 或 C++ 語言來開發和調試 ARM 和 FPGA 系統,測試硬件系統是否工作正常。Vitis 軟件也是 Vivado 軟件自帶的,無需單獨安裝。
Versal 的開發也是先硬件后軟件的方法。具體流程如下:
在 Vivado 上新建工程,增加一個嵌入式的源文件。
在 Vivado 里添加和配置 PS 和 PL 部分基本的外設,或需要添加自定義的外設。
在 Vivado 里生成頂層 HDL 文件,并添加約束文件。再編譯生成比特流文件(*.pdi)。
導出硬件信息到 Vitis 軟件開發環境,在 Vitis 環境里可以編寫一些調試軟件驗證硬件和軟件,結合比特流文件單獨調試 Versal 系統。
在 VMware 虛擬機里生成 u-boot.elf、 bootloader 鏡像。
在 Vitis 里將比特流文件和 u-boot.elf 文件生成一個 BOOT.pdi 文件。
在 VMware 里生成 Ubuntu 的內核鏡像文件 Zimage 和 Ubuntu 的根文件系統。另外還需要要對 FPGA 自定義的 IP 編寫驅動。
把 BOOT、內核、設備樹、根文件系統文件放入到 SD 卡中,啟動開發板電源,Linux 操作系統會從 SD 卡里啟動。
學習 Versal 要具備哪些技能
學習 Versal 比學習 FPGA、MCU、ARM 等傳統工具開發要求更高,想學好 Versal 也不是一蹴而就的事情。
軟件開發人員
計算機組成原理
C、C++ 語言
計算機操作系統
tcl 腳本
良好的英語閱讀基礎
邏輯開發人員
計算機組成原理
C 語言
數字電路基礎
訪問ALINX官網了解 Versal AIEdge 自適應計算加速平臺更多詳情。
如需購買Versal AIEdge 自適應計算加速平臺 SOM 及配套開發板,請登錄天貓或京東:ALINX旗艦店。
ALINX| AUMO 智能車載
芯驛電子科技(上海)有限公司,成立于 2012 年,總部位于上海松江臨港科技城,高新技術企業、上海市專精特新企業,是一家車載智能產品和 FPGA 技術方案公司,擁有 “AUMO” 和 “ALINX” 兩大品牌,先后獲得國家級科技型中小企業認定、上海市創新型中小企業認證、ISO9001 質量體系認證等。
AUMO 品牌專注車載智能產品,提供一站式自動駕駛硬件在環仿真 HIL、電子后視鏡 CMS 產品及方案,與多家車載自動駕駛客戶已開展深度合作;ALINX 品牌專注于 FPGA 產品和方案定制,是全球 FPGA 芯片龍頭企業 AMD/XILINX 官方合作伙伴,國內 FPGA 芯片龍頭企業紫光同創官方合作伙伴,同時作為百度 AI 合作伙伴,為百度定制了國產 AI 飛槳系統的 Edgeboard 系列邊緣設備。經歷十余年發展,公司產品已經遠銷海外 30 多個國家,服務數千家企業客戶。
業務范圍
主要聚焦于 FPGA 行業解決方案,自動駕駛 HIL、FPGA 國產化,FPGA SOM 開發套件。
應用領域
公司涉及的行業解決方案涉及人工智能、自動駕駛、醫療成像、智能制造、數據中心、交通電力、5G 通信、機器視覺、工業互聯、儀器儀表、IC 測試等行業。
審核編輯 黃宇
-
處理器
+關注
關注
68文章
19406瀏覽量
231160 -
FPGA
+關注
關注
1630文章
21796瀏覽量
605970 -
Xilinx
+關注
關注
71文章
2171瀏覽量
122119 -
Versal
+關注
關注
1文章
163瀏覽量
7710
發布評論請先 登錄
相關推薦
評論