0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何導(dǎo)出IP以供在Vivado Design Suite中使用?

YCqV_FPGA_EETre ? 來源:XILINX ? 作者:Aoife Marsh ? 2021-04-26 17:32 ? 次閱讀

在 AXI 基礎(chǔ)第 6 講 - Vitis HLS 中的 AXI4-Lite 簡介中,使用 C 語言在 HLS 中創(chuàng)建包含 AXI4-Lite 接口的 IP。

在本篇博文中,我們將學(xué)習(xí)如何導(dǎo)出 IP 以供在 Vivado Design Suite 中使用、如何將其連接到其它 IP 核與處理器以及如何在板上運(yùn)行工程。

本篇博文將分為 3 個(gè)部分:

1. 從 Vitis HLS 導(dǎo)出 IP。

2. 使用Vivado Design Suite創(chuàng)建硬件。

3. 在Vitis 統(tǒng)一軟件平臺(tái)中編寫軟件并在板上運(yùn)行。

01

導(dǎo)出 IP

在AXI 基礎(chǔ)第 6 講 - Vitis HLS 中的 AXI4-Lite 簡介中,我們創(chuàng)建了 1 個(gè)包含 AXI4-Lite 接口的 IP。如果要把新 IP 連接到任何其它 IP 或者連接到 PS,則首先需要將軟件代碼綜合成 RTL(即,將其轉(zhuǎn)換為硬件)。隨后,我們就可以將 RTL IP 導(dǎo)出到 Vivado Design Suite,以便在其中將其連接到其它 IP 核或者連接到 PS。

1.1. 按如下所示編輯代碼,然后保存。

int example(char *a, char *b, char *c)

{

#pragma HLS INTERFACE s_axilite port=a bundle=BUS_A

#pragma HLS INTERFACE s_axilite port=b bundle=BUS_A

#pragma HLS INTERFACE s_axilite port=c bundle=BUS_A

#pragma HLS INTERFACE s_axilite port=return bundle=BUS_A

*c += *a + *b;

int result = 0;

result = *c;

return result;

}

1.2. 鑒于我們將在板上運(yùn)行此代碼,因此需要將綜合設(shè)置更改為對(duì)應(yīng)于可用的開發(fā)板的設(shè)置。

我這里選擇的是 Zynq UltraScale+ ZCU106 評(píng)估板。要更改所使用的開發(fā)板,請(qǐng)轉(zhuǎn)至“解決方案 (Solution) -》 解決方案設(shè)置 (Solution Settings) -》 綜合設(shè)置 (Synthesis Settings)”,然后選擇如下所示高亮的“。..”即可選擇可用的開發(fā)板。

1.3. 選擇屏幕頂部的綠色運(yùn)行按鈕 即可運(yùn)行 C 語言綜合。這樣即可將代碼轉(zhuǎn)換為 RTL:

1.4. 完成綜合后,您可選擇“導(dǎo)出 RTL (ExportRTL)”工具欄按鈕,或者也可以單擊“解決方案 (Solution) -》 導(dǎo)出 RTL (Export RTL)”以打開“Export RTL”對(duì)話框。

1.5. 打開的對(duì)話框應(yīng)如下截屏所示。

本文包含有關(guān)所有可用選項(xiàng)的詳細(xì)解釋。

選擇“配置 (configuration)”選項(xiàng),為新 RTL IP 添加詳細(xì)信息。將顯示名稱更改為“Example”,然后選擇“確定 (OK)”。當(dāng)您在 Vivado Design Suite 中打開自己的 IP 時(shí),將顯示此名稱。

選擇“瀏覽 (Browse)”按鈕以選擇 Vivado IP (.zip) 文件的輸出位置及其名稱。輸出的 ZIP 文件將包含您的 RTL IP,您可將其導(dǎo)入 Vivado Design Suite。

1.6. 等待工具完成導(dǎo)出,然后打開 Vivado Design Suite。選擇“創(chuàng)建新工程”選項(xiàng):

1.7. 對(duì)于后續(xù)所有其它步驟,請(qǐng)選擇“下一步 (Next)”。選擇器件時(shí),請(qǐng)務(wù)必選擇您在創(chuàng)建工程時(shí)所選的器件。如果您不確定,可在 Vitis HLS 中的“解決方案設(shè)置 (solution settings) -》 綜合設(shè)置 (synthesis settings)”下找到該器件。如果您選擇其它器件,那么將您的 IP 導(dǎo)入 Vivado Design Suite 時(shí)可能會(huì)出現(xiàn)問題。

最后,選擇“完成 (Finish)”以打開空工程。

1.8. 要使用 Vivado 工程中生成的 IP,首先必須將新 IP 存儲(chǔ)庫添加到 Vivado 工程中。此處所示文件夾包含從 Vitis HLS 導(dǎo)出的 .zip 文件。要添加存儲(chǔ)庫,請(qǐng)選擇“設(shè)置 (Settings) -》 IP -》 存儲(chǔ)庫 (Repository)”。選擇 + 按鈕并在 Vitis HLS 中選擇 IP 導(dǎo)出的位置(即,以上第 6 步)。

選擇位于對(duì)話框底部的“應(yīng)用 (Apply)”按鈕,然后選擇“確定 (OK)”。

1.9. 選擇 IP 目錄 (Select IP Catalog)?,F(xiàn)在,您的新存儲(chǔ)庫應(yīng)已顯示在目錄中。

如已成功導(dǎo)入 IP,那么詳細(xì)信息窗口中所列出的 IP 數(shù)量應(yīng)為“1”。

注:如果列出的 IP 數(shù)量為 0,那么您可右鍵單擊自己的新存儲(chǔ)庫并選擇“將 IP 添加到存儲(chǔ)庫中 (Add IP to Repository)”。選擇您從 Vitis HLS 導(dǎo)出的 ZIP 文件。隨后,存儲(chǔ)庫中的 IP 數(shù)量應(yīng)已顯示為“1”。如果未顯示正確數(shù)量,請(qǐng)檢查您在 Vitis HLS 中所選的板/器件與您在 Vivado 中所使用的是否相同,否則,則表示您的 IP 可能不兼容。

1.10. 在 Flow Navigator 中,選擇“創(chuàng)建模塊設(shè)計(jì) (Create Block Design)”。

在顯示的選項(xiàng)卡中,選擇 + 按鈕并搜索您在第 6 步中在 Vitis HLS 中指定的 IP 名稱(即,Example)。

祝賀您!您已成功創(chuàng)建了 IP、將其從 Vitis HLS 導(dǎo)出并已添加到 Vivado Design Suite 中的模塊設(shè)計(jì)中。

單擊 s_axi_BUS_A 旁的 + 按鈕即可展開端口。如需獲取更多相關(guān)信息,請(qǐng)參閱 (PG155 )中的 “端口描述”。

02

創(chuàng)建硬件

您可能會(huì)想要連接到 PS 以便充分利用其功能。添加 PS IP(如 ZCU106 評(píng)估板上提供的 Zynq UltraScale+ MPSoC IP)即可支持您執(zhí)行此操作。

2.1. 將 Zynq UltraScale+ MPSoC IP 添加到模塊框圖中。添加完成后,將在屏幕頂部出現(xiàn)一條提示信息。選擇“運(yùn)行自動(dòng)連接功能 (Run Connection Automation)”。

2.2. 這樣即可得到如下圖示。或者,您可為此 IP 手動(dòng)添加所有器件,并如該圖所示連接這些器件。這樣即可得到如下圖示:

efa3f348-a4b2-11eb-aece-12bb97331649.png

2.3. 右鍵單擊“源 (Source)”選項(xiàng)卡下的《design_name》.bd 以創(chuàng)建 HDL 封裝器 (wrapper)。運(yùn)行綜合、運(yùn)行實(shí)現(xiàn),然后生成比特流。下一步,選擇“文件 (File) -》 導(dǎo)出 (Export) -》 導(dǎo)出硬件 (Export Hardware)”。請(qǐng)務(wù)必選中包含比特流的選項(xiàng),并記下所選導(dǎo)出位置。這樣即可創(chuàng)建包含所有硬件信息的 XSA 文件?,F(xiàn)在,您可以關(guān)閉 Vivado。

03

編寫軟件

鑒于您的硬件已完成創(chuàng)建并導(dǎo)出,我們需要編寫軟件以向硬件提供操作指示。我們將在Vitis中編寫軟件。

3.1. 打開 Vitis。在打開的菜單中,選擇“創(chuàng)建平臺(tái)工程 (Create Platform Project)”。這將生成工程基本信息,我們將在其中添加硬件信息(XSA 文件)并編寫一些軟件定義。出現(xiàn)提示時(shí),請(qǐng)選中“從 XSA 文件創(chuàng)建 (create from XSA file)”選項(xiàng)。隨后,我們需要選擇以上步驟 2.3 中的 XSA 文件導(dǎo)出位置。繼續(xù)完成其它設(shè)置,最后單擊“完成 (Finish)”。

3.2. 下一步,我們需要?jiǎng)?chuàng)建包含軟件的應(yīng)用工程。它將基于我們的平臺(tái)工程,因此其中包含我們的硬件信息,并且我們需要使用該應(yīng)用工程在目標(biāo)板上運(yùn)行應(yīng)用。選擇“文件 (File) -》 新建 (New) -》 新建應(yīng)用工程 (New Application Project)”。

3.3. 出現(xiàn)提示時(shí),選中“選擇存儲(chǔ)庫中的平臺(tái) (Select a platform from arepository)”選項(xiàng)。選擇步驟 3.1 中創(chuàng)建的平臺(tái)工程,然后單擊“下一步 (Next)”。

3.4. 選擇 Hello World 模板,然后單擊“完成 (Finish)”。

3.5. 現(xiàn)在,Hello World 代碼會(huì)顯示在《application_project_name》/src/helloworld.c下。為了執(zhí)行完整性檢查,我們將通過 JTAG 把示例下載到板上,并使用 UART 終端查看 printf 信息。

為此,請(qǐng)連接目標(biāo)板,并打開終端仿真器軟件(例如,Tera Term)以讀取輸出消息。如果您不知曉如何執(zhí)行此操作,請(qǐng)參閱板相關(guān)的用戶指南。 編譯并運(yùn)行程序。正確完成此操作后,您應(yīng)可在 Tera Term 中看到 Hello World 打印信息。

3.6. 現(xiàn)在,確認(rèn)板已正確連接后,下一步即可創(chuàng)建使用 HLS IP 的代碼。從Vitis_Code.c復(fù)制代碼(隨附于本教程)并將其粘貼到 helloworld.c 中,替換原有 helloworld 代碼。

保存,然后重新編譯并運(yùn)行軟件。這次 Tera Term 會(huì)提示您提供 2 項(xiàng)輸入:A 和 B,這 2 項(xiàng)將作為輸入一并傳遞給 HLS IP 中,并顯示結(jié)果。

注:由于在 Vitis HLS 中,A 和 B 已定義為“char”類型,因此輸入的值上限為 127。

示例代碼使用由 Vitis 自動(dòng)創(chuàng)建的函數(shù),因此開發(fā)非常便捷。

在名為X《HLS_IP_name》.h的文件中以及在《platform_project》/hw/drivers/《ex_name》/src 下可找到所使用的函數(shù)。

原文標(biāo)題:開發(fā)者分享 | AXI 基礎(chǔ)第 7 講 - 使用 AXI4-Lite 將 Vitis HLS 創(chuàng)建的 IP 連接到 PS

文章出處:【微信公眾號(hào):FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7594

    瀏覽量

    135856
  • AXI
    AXI
    +關(guān)注

    關(guān)注

    1

    文章

    127

    瀏覽量

    16575
  • HLS
    HLS
    +關(guān)注

    關(guān)注

    1

    文章

    128

    瀏覽量

    23993

原文標(biāo)題:開發(fā)者分享 | AXI 基礎(chǔ)第 7 講 - 使用 AXI4-Lite 將 Vitis HLS 創(chuàng)建的 IP 連接到 PS

文章出處:【微信號(hào):FPGA-EETrend,微信公眾號(hào):FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    vivado導(dǎo)入舊版本的項(xiàng)目,IP核心被鎖。

    vivado導(dǎo)入其他版本的項(xiàng)目的時(shí)候,IP核被鎖,無法解開,請(qǐng)問該如何解決。 使用軟件:vivado 2019.2 導(dǎo)入項(xiàng)目使用版本:vivado 2018
    發(fā)表于 11-08 21:29

    Vivado中FFT IP核的使用教程

    本文介紹了Vidado中FFT IP核的使用,具體內(nèi)容為:調(diào)用IP核>>配置界面介紹>>IP核端口介紹>>MATLAB生成測試數(shù)據(jù)>>測試verilogHDL>>TestBench仿真>>結(jié)果驗(yàn)證>>FFT運(yùn)算。
    的頭像 發(fā)表于 11-06 09:51 ?173次閱讀
    <b class='flag-5'>Vivado</b>中FFT <b class='flag-5'>IP</b>核的使用教程

    AMBA AXI4接口協(xié)議概述

    AMBA AXI4(高級(jí)可擴(kuò)展接口 4)是 ARM 推出的第四代 AMBA 接口規(guī)范。AMD Vivado Design Suite 2014 和 ISE Design
    的頭像 發(fā)表于 10-28 10:46 ?124次閱讀
    AMBA AXI4接口協(xié)議概述

    IP的綜合選項(xiàng)是什么意思

    我們?cè)谏?b class='flag-5'>IP的時(shí)候,vivado會(huì)出現(xiàn)如上圖的界面。這個(gè)界面中有三個(gè)綜合選項(xiàng),這三個(gè)選項(xiàng)分別是什么意思呢?我們來查看一下對(duì)應(yīng)的中文文檔ug896。另外,網(wǎng)絡(luò)上現(xiàn)有的文檔版本似乎并沒有看到Out
    的頭像 發(fā)表于 10-21 14:00 ?99次閱讀
    <b class='flag-5'>IP</b>的綜合選項(xiàng)是什么意思

    Multi-Scaler IP的Linux示例以及Debug(上)

    本篇文章介紹了在 ZCU106 上創(chuàng)建 Video Multi-Scaler IP 的 AMD Vivado? Design Tool 和 Petalinux 工程;在 ZCU106 上 Run 生成的 Image,并測試生成的
    的頭像 發(fā)表于 09-18 10:03 ?315次閱讀
    Multi-Scaler <b class='flag-5'>IP</b>的Linux示例以及Debug(上)

    AMD Vivado Design Suite 2024.1全新推出

    AMD Vivado Design Suite 2024.1 可立即下載。最新版本支持全新 AMD MicroBlaze V 軟核處理器,并針對(duì) QoR 和 Dynamic Function
    的頭像 發(fā)表于 09-18 09:41 ?405次閱讀

    一個(gè)更適合工程師和研究僧的FPGA提升課程

    設(shè)計(jì); ● UltraFast 設(shè)計(jì)方法; ● 使用UltraScale和UltraScale+架構(gòu)進(jìn)行設(shè)計(jì); ● FPGA 功耗最優(yōu)化; ● 使用 Vivado Design Suite 4
    發(fā)表于 06-05 10:09

    淺談Pango_Design_Suite工具的安裝

    聯(lián)系了小眼睛FPGA官方客服,獲取了基于PGX-Mini 4K開發(fā)板的SDK包,這里有包含了兩個(gè)版本的Pango_Design_Suite安裝文件,筆者
    發(fā)表于 05-30 00:43

    如何利用Tcl腳本在Manage IP方式下實(shí)現(xiàn)對(duì)IP的高效管理

    Vivado下,有兩種方式管理IP。一種是創(chuàng)建FPGA工程之后,在當(dāng)前工程中選中IP Catalog,生成所需IP,這時(shí)相應(yīng)的IP會(huì)被自動(dòng)
    的頭像 發(fā)表于 04-22 12:22 ?696次閱讀
    如何利用Tcl腳本在Manage <b class='flag-5'>IP</b>方式下實(shí)現(xiàn)對(duì)<b class='flag-5'>IP</b>的高效管理

    Vivado 使用Simulink設(shè)計(jì)FIR濾波器

    領(lǐng)域都有著廣泛的應(yīng)用。 Vivado自帶的FIR濾波器IP核已經(jīng)很好用,這里借FIR濾波器的設(shè)計(jì),介紹Simulink圖形設(shè)計(jì)編程方法。Simulink可以使設(shè)計(jì)更直觀,使硬件資源得到更為高效的利用
    發(fā)表于 04-17 17:29

    如何在AMD Vivado? Design Tool中用工程模式使用DFX流程?

    本文介紹了在 AMD Vivado? Design Tool 中用工程模式使用 DFX 流程以及需要注意的地方。在使用 DFX 工程模式的過程中要把具體步驟映射到相應(yīng)的 DFX 非工程模式的步驟,這樣才能更好地理解整個(gè)流程的運(yùn)行邏輯。
    的頭像 發(fā)表于 04-17 09:28 ?710次閱讀
    如何在AMD <b class='flag-5'>Vivado</b>? <b class='flag-5'>Design</b> Tool中用工程模式使用DFX流程?

    如何禁止vivado自動(dòng)生成 bufg

    操作: 打開Vivado工程,并進(jìn)入項(xiàng)目導(dǎo)航器窗口。 選擇下方的"IP"選項(xiàng)卡,展開"Clocking"選項(xiàng)。在這
    的頭像 發(fā)表于 01-05 14:31 ?1850次閱讀

    FPGA實(shí)現(xiàn)基于Vivado的BRAM IP核的使用

    文章是基于Vivado的 2017.1的版本,其他版本都大同小異。 首先在Vivado界面的右側(cè)選擇IP Catalog 選項(xiàng)。
    的頭像 發(fā)表于 12-05 15:05 ?1475次閱讀

    AMD Vivado Design Suite 2023.2的優(yōu)勢

    由于市場環(huán)境日益復(fù)雜、產(chǎn)品競爭日趨激烈,為了加快推出新型自適應(yīng) SoC 和 FPGA 設(shè)計(jì),硬件設(shè)計(jì)人員和系統(tǒng)架構(gòu)師需要探索更為高效的全新工作方式。AMD Vivado Design Suite
    的頭像 發(fā)表于 11-23 15:09 ?813次閱讀

    FPGA新IP核學(xué)習(xí)的正確打開方式

    的情況時(shí),總會(huì)遇到一些以前未曾接觸過的新內(nèi)容,這些新內(nèi)容會(huì)讓我們感到陌生和恐懼,不知道該如何下手。 那么今天以xilinx vivado 為例分享學(xué)習(xí)FPGA 新IP核的正確打開方式。 一、常規(guī)
    發(fā)表于 11-17 11:09