在本文中,我們將講解如何在 Vivado Design Suite 中完成平臺(tái)準(zhǔn)備工作,以便將其用作為 Vitis 中的加速平臺(tái)。 您既可以采用已確認(rèn)的成熟設(shè)計(jì)作為平臺(tái),這樣只需稍作增強(qiáng)便可靈活運(yùn)用于加速軟件功能,或者也可以采用僅含加速所需拓?fù)浣Y(jié)構(gòu)的簡(jiǎn)單基礎(chǔ)平臺(tái)。重點(diǎn)在于,此平臺(tái)并沒(méi)有必要采用一次性設(shè)計(jì),而應(yīng)采用可有機(jī)變化的設(shè)計(jì),這樣即可隨您的設(shè)計(jì)需求而變。
01 引言
加速軟件組件就意味著將其從 CPU 卸載至可編程邏輯中的加速 IP。Vitis 工具將負(fù)責(zé)處理在加速 IP 與 CPU 之間添加數(shù)據(jù)移動(dòng)程序的操作。 但它確實(shí)需要用戶提供輸入信息。它需要了解從 SoC 和加速 IP 連接到哪個(gè)接口。它還需要了解有哪些時(shí)鐘/復(fù)位可供使用。
并且由于我們?cè)?CPU 與加速 IP 之間發(fā)送數(shù)據(jù)塊,因此需要中斷信號(hào)。基本上就這些……好吧,其實(shí)還要向 Vitis 工具提供一些其它信息,這個(gè)我們稍后再聊。
先繼續(xù)往下看。啟動(dòng) Vivado 并創(chuàng)建工程。我使用的是 ZCU104 評(píng)估板。但以下步驟對(duì)于所有 Zynq UltraScale 開(kāi)發(fā)板都是通用的,無(wú)論是開(kāi)發(fā)板還是定制板都一樣。
02 創(chuàng)建硬件設(shè)計(jì)
創(chuàng)建塊設(shè)計(jì) (BD)。此處名稱與用于命名平臺(tái)的名稱相同。
從 IP 目錄添加 Zynq UltraScale 處理器子系統(tǒng) IP 塊。如果使用的是開(kāi)發(fā)板,那么應(yīng)啟用“塊自動(dòng)化設(shè)置 (Block Automation)”功能。
我把默認(rèn)接口更改為僅包含 LPD:
在我們的簡(jiǎn)單平臺(tái)中,可以只創(chuàng)建 2 個(gè)時(shí)鐘。這些時(shí)鐘將在 Vitis 中使用。 我們可從 IP 目錄添加 Clocking Wizard:
默認(rèn)情況下,復(fù)位處于高電平有效狀態(tài),而復(fù)位源(位于 Zynq UltraScale 器件上)則處于低電平有效狀態(tài)。因此,在進(jìn)行時(shí)鐘設(shè)置配置時(shí)需牢記此信息。 我添加了 3 個(gè)輸出時(shí)鐘:100Mhz、150Mhz 和 300Mhz:
并將復(fù)位極性設(shè)置為低電平有效(Active Low):
針對(duì)每個(gè)時(shí)鐘都需要提供同步復(fù)位。我們有 3 個(gè)時(shí)鐘,因此需要從 IP 目錄添加 3 個(gè) Processor System Reset IP 核:
下一步,需要添加中斷信號(hào)。這里我們從 IP 目錄添加 AXI Interrupt Controller。用戶可以使用 IP integrator 中的“運(yùn)行自動(dòng)連接(Run Connection Automation)”功能來(lái)處理 AXI 連接。
使用 100Mhz 時(shí)鐘
在 AXI Interrupt Controller 中,將“中斷輸出連接(Interrupt Output Connection)”設(shè)置為“單連接 (Single)”,并將其連接到 Zynq UltraScale IP 上的 pl_ps_irq:
對(duì)于基本硬件平臺(tái),這樣設(shè)置就可以了。 現(xiàn)在,我們只需設(shè)置元數(shù)據(jù),以便通過(guò) Platform (PFM) 屬性將硬件信息告知 Vitis 即可。
03 添加 PFM 屬性
PFM 屬性是將元數(shù)據(jù)傳遞給 Vitis 所必需的。 Vitis 會(huì)提取這些數(shù)據(jù)以判定哪些接口、時(shí)鐘和中斷信號(hào)可用于在現(xiàn)有平臺(tái)中添加加速部分。
平臺(tái)名稱
首先,對(duì)平臺(tái)命名:
完成命名后,您將看到一個(gè)新的“平臺(tái) (Platform)”選項(xiàng)卡。其中將顯示整個(gè)設(shè)計(jì)中的所有時(shí)鐘、接口和中斷信號(hào)。 我們需要篩選可用于 Vitis 的資源。
啟用時(shí)鐘
右鍵單擊時(shí)鐘,然后單擊“啟用 (Enable)”:
針對(duì) clk_out3 重復(fù)此操作。
時(shí)鐘屬性
選中“選項(xiàng) (Options)”選項(xiàng)卡:
注:時(shí)鐘 ID 必須以 0 開(kāi)頭并遞增,因此,請(qǐng)更改此處設(shè)置。我們還必須指定默認(rèn)值。 此處默認(rèn)值即 Vitis 中使用的默認(rèn)時(shí)鐘:
設(shè)置 clk_out3 的索引:
啟用接口
可采用塊設(shè)計(jì)中可用的任意接口,例如,Zynq UltraScale 器件上的接口或 AXI Interconnect 上的接口。 在此例中,我只添加 Zynq UltraScale 器件上的接口。
啟用中斷
04 工程屬性
Vitis IDE 是支持眾多不同流程(例如,數(shù)據(jù)中心、加速或嵌入式流程等)的統(tǒng)一工具。我們需要將此用途傳遞給 Vitis 工具。 如果要?jiǎng)?chuàng)建嵌入式設(shè)計(jì),就需要指定該用途。在此示例中,我們將把 Vitis 用于加速。此用途必須明確指定,因?yàn)?Vitis 需要告知下游工具如何處理該平臺(tái)。 此處可看到下列屬性:
05 創(chuàng)建 XSA
完成以下任務(wù)以創(chuàng)建 XSA
?生成塊設(shè)計(jì) ?創(chuàng)建 HDL 封裝 ?生成比特流 ?依次單擊“File -> Export -> Export Hardware” o 依次單擊“Expandable -> Pre Synthesis”,然后選中“Bitstream”
用戶可在此處輸入詳細(xì)信息:
至此大功告成。
-
cpu
+關(guān)注
關(guān)注
68文章
10901瀏覽量
212802 -
可編程邏輯
+關(guān)注
關(guān)注
7文章
517瀏覽量
44154 -
Vivado
+關(guān)注
關(guān)注
19文章
815瀏覽量
66835
原文標(biāo)題:如何在 Vivado 中為加速平臺(tái)創(chuàng)建硬件工程
文章出處:【微信號(hào):FPGA-EETrend,微信公眾號(hào):FPGA開(kāi)發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論