作者:AMD 工程師 Simreet Behera & Abhinav Dubey
本文主要介紹了 AMD Vivado IP integrator (IPI) 的諸多功能特性。我們將講解 Vivado IP integrator 的各項(xiàng)基本功能,欲知詳情,請(qǐng)參閱以下 GitHub 倉(cāng)庫(kù)中所含教程:
https://github.com/Xilinx/Vivado-Design-Tutorials/tree/2022.1/Design_Flow_Tutorials/IP_Integrator
我們還將帶您了解在 AMD Zynq UltraScale+ MPSoC 開(kāi)發(fā)板與 AMD Versal 自適應(yīng) SoC 開(kāi)發(fā)板上使用 IP integrator 時(shí),兩種設(shè)計(jì)流程之間存在的差異。
除此之外,我們將介紹塊設(shè)計(jì)容器 (BDC),最后是介紹“Module Referencing”(模塊引用)功能,該功能可用于將 AMD IP (XCI)、RTL 設(shè)計(jì)或塊設(shè)計(jì) (BD) 例化到另一個(gè) BD 中。
IPI 的基本功能特性
我們將在基于微處理器的設(shè)計(jì)中使用 AMD Zynq UltraScale+ MPSoC 開(kāi)發(fā)板來(lái)介紹 Vivado IPI 的基本功能特性,如從 IP 目錄添加 IP、運(yùn)行連接自動(dòng)化、塊自動(dòng)化設(shè)置、創(chuàng)建層級(jí)和使用地址編輯器。
在 IPI 中,基于微處理器的設(shè)計(jì)流程如下:
1. 從 Vivado IP 目錄添加 IP
微處理器 IP
根據(jù)您的設(shè)計(jì)規(guī)范,將相關(guān) IP 添加到新的塊設(shè)計(jì) (BD) 中,如 MicroBlaze 處理器 IP、Zynq 處理器系統(tǒng) IP 等
互連 IP
AXI Interconnect、AXI Smart Connect 等
存儲(chǔ)器接口 IP
PS DDR4 Controller、AXI Block RAM (BRAM) Controller 等
接口 IP
AXI General Purpose Input/Output (GPIO)、AXI UART_lite 等
2. 使用設(shè)計(jì)輔助功能
IP integrator 提供了一項(xiàng)名為“Designer Assistance”(設(shè)計(jì)輔助)的功能,其中包含“Connection Automation”(自動(dòng)連接)、“Block Automation”(塊自動(dòng)化設(shè)置)和“Board Automation”(板自動(dòng)化設(shè)置)。它能幫助您在不同塊之間建立內(nèi)部連接以及建立從各塊到外部接口的連接,從而組建一個(gè)基本 IP 子系統(tǒng)。在設(shè)計(jì)中使用 AMD MicroBlaze 處理器或 Zynq UltraScale+ MPSoC (Zynq_ultra_ps_e_0) 等嵌入式處理器時(shí),就會(huì)提供“Block Automation”功能。
如果使用開(kāi)發(fā)板(如 ZCU102 評(píng)估板)來(lái)創(chuàng)建工程,則“Board Automation”功能可協(xié)助將 IP 接口連接到外部開(kāi)發(fā)板。由于所選開(kāi)發(fā)板的所有 I/O 管腳分配和屬性都已固定,因此該功能還會(huì)處理這些分配和屬性。
例如,在 MicroBlaze 設(shè)計(jì)中,“Connection Automation”功能將幫助您完成 UART 和 GPIO 接口的連接以及 AXI BRAM Controller 到 Block Memory Generator 的連接。
3. 創(chuàng)建層級(jí)
您可運(yùn)用多種不同方法來(lái)更改畫布上的視圖,以便對(duì)各塊進(jìn)行更妥善的組織。其中有一項(xiàng)功能是創(chuàng)建層次結(jié)構(gòu),用于對(duì)一個(gè)或多個(gè)塊進(jìn)行分組。層次結(jié)構(gòu)不僅有助于對(duì)畫布上的塊進(jìn)行組織,還能對(duì)塊設(shè)計(jì)的不同部分進(jìn)行復(fù)制。例如,您可以按住 Ctrl 鍵并逐一點(diǎn)擊 microblaze_0、microblaze_0_local_memory 和 mdm_1 塊來(lái)創(chuàng)建一個(gè)層次結(jié)構(gòu)。
4. 在 IPI 中標(biāo)記信號(hào)以供調(diào)試
IP integrator 中的 System ILA 調(diào)試核支持您對(duì)塊設(shè)計(jì)執(zhí)行系統(tǒng)內(nèi)調(diào)試。需要監(jiān)控設(shè)計(jì)內(nèi)的接口和信號(hào)時(shí),即可使用此功能。
如下圖所示,您只需右鍵單擊信號(hào)線并從上下文菜單中選擇“Debug”(調(diào)試),即可標(biāo)記 AXI SmartConnect 與 AXI GPIO IP 之間的接口。
5. 創(chuàng)建和實(shí)現(xiàn)頂層設(shè)計(jì)
完成 IP 子系統(tǒng)設(shè)計(jì)后,您可將其作為模塊或塊包含在頂層設(shè)計(jì)內(nèi),也可以將其用作為頂層設(shè)計(jì)本身。但無(wú)論如何,您都需要為子系統(tǒng)設(shè)計(jì)生成 HDL 文件。這是通過(guò)生成輸出文件完成的,隨后會(huì)為設(shè)計(jì)啟動(dòng)中的每個(gè) IP 運(yùn)行非關(guān)聯(lián) (OOC) 流程。然后,您將創(chuàng)建 HDL 封裝文件,并為設(shè)計(jì)生成比特流。該步驟包括了綜合與實(shí)現(xiàn)。
如需了解更多信息,請(qǐng)參閱《Vivado Design Suite 用戶指南:采用 IP integrator 設(shè)計(jì) IP 子系統(tǒng)》(UG994):
https://docs.amd.com/r/en-US/ug994-vivado-ip-subsystems
使用 IP integrator 完成基本 Versal 設(shè)計(jì)
AMD Versal 自適應(yīng) SoC 計(jì)算加速平臺(tái)包含多個(gè)處理器,每個(gè)處理器都具有不同的計(jì)算功能用以滿足各種應(yīng)用需求。所有器件都包括處理器系統(tǒng) (PS) 和平臺(tái)管理控制器 (PMC)。此外還包括片上網(wǎng)絡(luò) (NoC) 互連,用于支持所有處理器接入 DDR 存儲(chǔ)器控制器以及器件內(nèi)的其他資源。
Versal 自適應(yīng) SoC 支持 2 種設(shè)計(jì)流程:傳統(tǒng)設(shè)計(jì)流程和基于平臺(tái)的設(shè)計(jì)流程。
本文我們將重點(diǎn)介紹傳統(tǒng)設(shè)計(jì)流程,因?yàn)檫@種設(shè)計(jì)僅由 RTL 和 IP 組成。
一個(gè)基本的 Versal 設(shè)計(jì)涉及通過(guò)配置 Control, Interface, and Processing System (CIPS) IP 核來(lái)選擇合適的啟動(dòng)器件和外設(shè)。這對(duì)于 Versal 設(shè)計(jì)至關(guān)重要,因?yàn)槠脚_(tái)管理控制器 (PMC) 整合在 CIPS IP 中,必須配置 PMC 才能讓 Versal 器件正確啟動(dòng)。此外,硬化的 DDR 存儲(chǔ)器控制器 (DDRMC) 只能通過(guò) NoC IP 來(lái)訪問(wèn)。要使用硬化的 DDR 存儲(chǔ)器控制器,您的設(shè)計(jì)應(yīng)包含 NoC IP。
您可根據(jù)自己的需要通過(guò) CIPS 自定義 GUI 來(lái)自定義 CIPS。例如,您可以更改 QSPI 模式、啟動(dòng)模式,設(shè)置適當(dāng)?shù)?I/O 管腳等。
以下是包含 AXI NoC IP 的基本 Versal 設(shè)計(jì)的截圖:
您可以對(duì)這個(gè)設(shè)計(jì)執(zhí)行“Save”(保存)、“Validate”(確認(rèn))和“Implement”(實(shí)現(xiàn)),最后生成比特流(PDI 文件),用于燒錄 Versal 開(kāi)發(fā)板。
如需了解有關(guān) Versal 設(shè)計(jì)流程的更多信息,請(qǐng)參閱《Versal 自適應(yīng) SoC 設(shè)計(jì)指南》(UG1273):
https://docs.amd.com/r/zh-CN/ug1273-versal-acap-design/%E6%A6%82%E8%BF%B0
基本 Zynq UltraScale+ MPSoC 設(shè)計(jì)與 Versal 設(shè)計(jì)之間的差異
使用 Zynq UltraScale+ MPSoC 開(kāi)發(fā)板進(jìn)行設(shè)計(jì)與 Versal 開(kāi)發(fā)板進(jìn)行設(shè)計(jì)相比,有些設(shè)計(jì)注意事項(xiàng)需要考量。下表提到了這兩種架構(gòu)在設(shè)計(jì)上的一些差異。
如需了解有關(guān)這兩種架構(gòu)的更多信息,請(qǐng)參閱《Versal 自適應(yīng) SoC 技術(shù)參考手冊(cè)》 (AM011):
https://docs.amd.com/r/en-US/am011-versal-acap-trm
和《Zynq UltraScale+ 器件 TRM》(UG1085):
https://docs.amd.com/v/u/en-US/ug1085-zynq-ultrascale-trm
塊設(shè)計(jì)容器簡(jiǎn)介
塊設(shè)計(jì)容器 (BDC) 擴(kuò)展了 Vivado IP integrator 的分層塊功能。如果塊設(shè)計(jì) (BD) 可包含用戶選定的 IP 塊且數(shù)量不限,那么分層塊能用于在該設(shè)計(jì)層級(jí)內(nèi)創(chuàng)建新的層次。塊設(shè)計(jì)容器 (BDC) 功能特性會(huì)將分層塊及其中所含內(nèi)容轉(zhuǎn)變?yōu)閱为?dú)的塊設(shè)計(jì) (BD) 本身。生成的塊設(shè)計(jì)定義為 BD 設(shè)計(jì)源文件,并且也可在其他塊設(shè)計(jì)工程內(nèi)使用。使用 BDC 的好處在于,父 BD 與子 BD 之間的邊界是透明的。例如,參數(shù)傳輸和地址分配都可以通過(guò)這個(gè)層級(jí)來(lái)完成。
BDC 同時(shí)支持自上而下的設(shè)計(jì)流程和自下而上的設(shè)計(jì)流程。
自上而下流程
在自上而下流程中,首先會(huì)創(chuàng)建頂層塊設(shè)計(jì)的流程圖,然后按適當(dāng)?shù)膶蛹?jí)將一組 IP 塊作為子塊推送到 BDC 內(nèi)。借助外部接口和特定功能塊的詳細(xì)信息,即可構(gòu)建和驗(yàn)證頂層 BD。隨后,設(shè)計(jì)團(tuán)隊(duì)可以復(fù)用該頂層 BD 來(lái)開(kāi)發(fā)其 BDC 部分。在為所有團(tuán)隊(duì)成員復(fù)制單個(gè)工程或者處理以相同器件為目標(biāo)的多個(gè)工程的過(guò)程中即可完成此操作。
自下而上流程
在自下而上設(shè)計(jì)流程中,子塊設(shè)計(jì)是單獨(dú)創(chuàng)建的,您需要在頂層塊設(shè)計(jì)中將這些子塊作為 BDC 來(lái)加以例化。團(tuán)隊(duì)成員可以集中精力為所分配的設(shè)計(jì)分區(qū)開(kāi)發(fā) BD,以便在頂層 BD 中將該 BD 作為 BDC 來(lái)加以復(fù)用,或后續(xù)在另一個(gè)工程中一起復(fù)用。
IPI 中的模塊引用
IP integrator 的模塊引用 (ModuleRef) 功能特性支持您快速將來(lái)自 Verilog 或 VHDL 源文件的模塊或?qū)嶓w定義直接添加到自己的塊設(shè)計(jì)中。此方法支持快速添加 RTL 模塊,無(wú)需將 RTL 封裝為 IP 再通過(guò) Vivado IP 目錄來(lái)添加。
模塊引用流程很快,但不具備下列使用 IP 目錄來(lái)處理時(shí)所具備的優(yōu)勢(shì),如:
1. 提供精確定義的 IP,可通過(guò) IP 目錄來(lái)管理
2. 能夠在多個(gè)設(shè)計(jì)中使用這些 IP
3. 能夠在有新版本 IP 可用時(shí)進(jìn)行升級(jí)
您可為塊設(shè)計(jì)、XCI 文件和 RTL 模塊創(chuàng)建模塊引用。
要在不同 BD 中使用 IP 或 BD 模塊引用功能,您必須首先創(chuàng)建 AI 引擎接口拼塊 RTL 文件。AI 引擎接口拼塊文件只是 RTL 模塊/封裝文件,必須將其作為工程源文件添加到設(shè)計(jì)中,此文件充當(dāng)“掛鉤”用于連接工程要引用的其他 IP 或 BD 源文件。您可以從 IP 或 BD 例化模板或者從生成的 BD 封裝文件中創(chuàng)建一個(gè)新的 AI 引擎接口拼塊 RTL 文件(例如:包含“shim”模塊的 shim.v)。
例如,將 MicroBlaze 處理器 IP 例化到另一個(gè) BD 內(nèi)時(shí),所用的 shim.v 文件如下所示:
限制
1. ModuleRef 不得包含 CIPS 或 NoC IP。
2. ModuleRef 無(wú)法例化一個(gè)或多個(gè) DCP 模塊。
3. ModuleRef 無(wú)法例化一個(gè)或多個(gè) ModuleRef(即“嵌套 ModuleRef”)。
4. ModuleRef 無(wú)法使用塊設(shè)計(jì)容器 (BDC) 技術(shù)來(lái)例化 BD。
結(jié)論
在本篇博文中,我們了解了如何利用 IP integrator 的眾多功能特性來(lái)創(chuàng)建基本的 MicroBlaze 設(shè)計(jì)和 Versal 設(shè)計(jì),并觀察了這兩種設(shè)計(jì)流程之間的差異。
我們還談及如何通過(guò) 2 種受支持的塊設(shè)計(jì)容器流程(自上而下流程和自下而上流程)來(lái)擴(kuò)展 IPI 的分層功能。
最后,我們講解了全新的模塊引用功能特性,它支持您快速將來(lái)自 Verilog 或 VHDL 源文件的模塊或?qū)嶓w定義直接添加到自己的塊設(shè)計(jì)中。
-
amd
+關(guān)注
關(guān)注
25文章
5626瀏覽量
138602 -
微處理器
+關(guān)注
關(guān)注
11文章
2408瀏覽量
85055 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
6019瀏覽量
110448 -
Zynq
+關(guān)注
關(guān)注
10文章
624瀏覽量
48987 -
Vivado
+關(guān)注
關(guān)注
19文章
844瀏覽量
70222
原文標(biāo)題:開(kāi)發(fā)者分享|AMD Zynq? UltraScale+? MPSoC 和 Versal? 的 IPI 基本功能特性
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開(kāi)發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
熟悉Vivado HLS基本功能要多少時(shí)間?
reertos基本功能包括什么
Vivado環(huán)境下如何在IP Integrator中正確使用HLS IP

評(píng)論