91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用AMD Vitis HLS創建HLS IP

XILINX開發者社區 ? 來源:XILINX開發者社區 ? 2025-06-13 09:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文作者:AMD 工程師 Rachel Gaines

本文逐步演示了如何使用 AMD Vitis HLS 來創建一個 HLS IP,通過 AXI4 接口從存儲器讀取數據、執行簡單的數學運算,然后將數據寫回存儲器。接著會在 AMD Vivado Design Suite 設計中使用此 HLS IP,并使用嵌入式 Vitis 應用控制此 HLS IP。

具體的運行和測試條件如下:

操作系統:Ubuntu 20.04

版本:2023.1

注釋:請確保使用您的操作系統支持的版本 -受支持的操作系統

https://docs.amd.com/r/2023.1-English/ug973-vivado-release-notes-install-license/Supported-Operating-Systems

本文使用的工具流程為 Vitis HLS > Vivado > Vitis IDE。我們將使用 Vitis HLS 創建一個自定義 IP,將該 HLS IP 合并到 Vivado 的硬件設計中,然后創建一個與 HLS IP 通信的 Vitis 應用。該 Vitis 應用將按照自定義硬件上的嵌入式工程所需進行設置。應用代碼將利用自動生成的 HLS API 驅動程序調用來控制 HLS IP 并與之通信。整個流程假設您已經安裝了 Vitis、Vitis HLS 和 Vivado。

1下載并解壓縮 ReferenceDocs 文件夾

將該文件夾保存在所需工作位置。vitis_hls 和 Vivado 各有單獨的文件夾。稍后,可創建自己的 Vitis 應用工程文件夾。

2創建 HLS IP

打開 Linux 終端,執行以下命令以便:

進入 vitis_hls 文件夾 - 該文件夾包含 HLS IP 的源代碼。

運行 TCL 腳本來設置 HLS 工程 - 該腳本還將運行 C 語言仿真、C 語言綜合與協同仿真。

在 GUI 中打開 HLS 工程

f1e9ec60-45ea-11f0-b715-92fbcf53809c.png

打開 GUI 后,檢查 example.cpp 源代碼。HLS IP 使用 Volatile 指針和 Memcpy 函數在存儲器上讀取和寫入數據。Memcpy 需要一個緩沖器來存儲存儲器傳輸事務的各項結果。m_axi 接口編譯指示要求此 IP 使用存儲器映射。深度設置為 50 意味著串流在給定時間最多可以容納 50 個未完成的元素,選擇該值是為了匹配緩沖器的大小。s_axilite 接口編譯指示允許此 IP 接受應用的控制,并與 AMD Zynq SoC 器件通信。

使用 GUI 左下角的 Flow Navigator,以便在 GUI 中運行 C 語言仿真、C 語言綜合與協同仿真,查看每項報告并熟悉 IDE。準備就緒后,可以通過在 Flow Navigator 中選擇“Export RTL”來導出 HLS IP,以便在 Vivado 中使用。

3創建 Vivado 平臺

有兩種方法可用于創建 Vivado 平臺。

選項 1:

使用以下所示命令從“Vivado”文件夾運行 Tcl 腳本。運行此腳本后,將創建一個 Vivado 工程,隨后可在 GUI 中打開該工程。在 GUI 中,您需要綜合、實現、生成比特流,并導出硬件。

f1f8dc0c-45ea-11f0-b715-92fbcf53809c.png

選項 2:

按照以下步驟在 Vivado 中自行創建平臺:

打開 Vivado,并使用 ZCU102 評估板創建一個新工程

將 Vitis HLS IP 添加到 IP 目錄中:

打開 IP 目錄,右鍵單擊并選擇“add Repo”。

瀏覽到導出 IP 的位置,并將“ip”文件夾添加到目錄中。默認路徑為 /solution1/impl/IP。

注釋:如果希望使用不同的位置將 HLS IP 添加到 IP 目錄中,可以使用導出 HLS IP 時創建的export.zip文件:

https://docs.xilinx.com/r/en-US/ug1399-vitis-hls/Exporting-the-RTL-Design

它位于相同的默認路徑中,但您可以將其移至期望的位置,并使用該位置代替“ip”文件夾,以添加到 IP 目錄中。“ip”文件夾所含內容與解壓后 IP 的內容相同。

創建一個新的塊設計,并添加 HLS IP 和 Zynq UltraScale+ MPSoC。通過雙擊 Zynq,對其進行自定義。在該設計中,我們添加了 S_AXI_HP0_FPD 端口。該評估板默認啟用 DDR,但請在“DDR Configurations”選項卡中確認 DDR 是否已啟用。

f20c94fe-45ea-11f0-b715-92fbcf53809c.png

使用設計輔助來運行自動連接。它將通過 AXI Interconnect 和 AXI SmartConnect 自動連接 Zynq 和 HLS IP。

須手動將 HLS IP 上的中斷端口連接到 Zynq 上的 pl_ps_irq 端口。此時設計應與以下截屏相似:

f2221db0-45ea-11f0-b715-92fbcf53809c.png

打開“Address Editor”選項卡,確保已如下所示分配了所有地址。

f234a304-45ea-11f0-b715-92fbcf53809c.png

確認該設計。如果沒有錯誤,則運行綜合、實現和生成比特流的步驟。完成后,選擇“File > Export > Export Hardware”導出設計,并將 XSA 文件保存到期望的位置。

注釋:在導出硬件時,確保選擇“Include bitstream”。

4創建 Vitis 應用

打開 Vitis 并選擇“Create Application Project”- 這適用于獨立的嵌入式系統

對于平臺選擇,請選擇“Create a new platform from hardware (XSA)”選項卡,并瀏覽到您在上一節中創建的 XSA 文件所在位置。單擊“Next”。

確保選中“Generate boot components”以及“psu_cortexa53_0”。在下一個框中按需更改平臺名稱,然后單擊“Next”。

命名應用工程。系統名稱將使用相同的標題。選擇處理器“psu_cortexa53_0”。單擊“Next”。

對于“Domain”選擇,請確保操作系統設置為“standalone”,且架構為 64 位。單擊“Next”。

對于模板,請選擇“Empty C Application”。

設置源代碼

在 GUI 中打開 Vitis 工程后,在左側的“Explorer”選項卡中右鍵單擊 projectName_system/projectName/src,然后選擇“Import Sources”。在彈出窗口中,瀏覽至源代碼所在的文件夾。

添加 helloworld.c,它位于“閱讀原文”底部的壓縮文件夾中,然后從文件列表中選擇 helloworld.c,如下圖所示。接著單擊“Finish”。

f245094c-45ea-11f0-b715-92fbcf53809c.png

檢查 helloworld.c。整個過程中都有注釋用于解釋每一節的作用。以“XExample”開頭的數據類型和函數調用是自動生成的 API 調用,用來控制 HLS IP 并與之通信。

關鍵要點包括:須創建一個 Vitis HLS IP 實例,如第 14 行所示,并使用 API 調用來獲取/設置 IP 與數據并且啟動它(第 34、35 和 48 行)。

此時還須完成另一項不尋常的操作,即,使用 Xil_DCacheInvalidate() 函數,告訴處理器對 DDR(而非其高速緩存)執行讀取/寫入操作,以確保處理器和 HLS IP 在相同的位置執行讀取/寫入。

構建并運行工程

構建系統工程。這將構建整個工程,包括平臺和應用。右鍵單擊系統工程或選擇錘子圖標。還可以使用左下角的應用助手來構建和運行設計。

該工程未經軟件仿真測試,因為這需要執行額外的步驟,不在本博客的討論范圍之內。但在 ZCU102 評估板上,已通過選擇“Run As”選項中的“Launch Hardware”來對該工程進行了測試和驗證。當連接到該評估板時,您還可以運行調試器并單步執行代碼。您可使用終端連接到 UART (com0),以查看硬件上的輸出。

參考文件

HLS - Tcl 腳本 - run_hls.tcl

HLS - 源代碼 - example.cpp 和測試激勵文件

Vivado - 從 write_project_tcl 創建的 Tcl 腳本

Vitis - 應用源代碼

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • amd
    amd
    +關注

    關注

    25

    文章

    5594

    瀏覽量

    136557
  • 接口
    +關注

    關注

    33

    文章

    9032

    瀏覽量

    153949
  • Vivado
    +關注

    關注

    19

    文章

    835

    瀏覽量

    68967
  • Vitis
    +關注

    關注

    0

    文章

    150

    瀏覽量

    7979

原文標題:開發者分享|AMD Vitis? HLS 系列 1 - AMD Vivado? IP 流程(Vitis 傳統 IDE)

文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用AMD Vitis Unified IDE創建HLS組件

    這篇文章在開發者分享|AMD Vitis HLS 系列 1 - AMD Vivado IP 流程(Vit
    的頭像 發表于 06-20 10:06 ?1082次閱讀
    使用<b class='flag-5'>AMD</b> <b class='flag-5'>Vitis</b> Unified IDE<b class='flag-5'>創建</b><b class='flag-5'>HLS</b>組件

    如何在Unified IDE中創建視覺庫HLS組件

    Vivado IP 流程(Vitis Unified),在這篇 AMD Vitis HLS 系列 3 中,我們將介紹如何使用 Unifie
    的頭像 發表于 07-02 10:55 ?575次閱讀
    如何在Unified IDE中<b class='flag-5'>創建</b>視覺庫<b class='flag-5'>HLS</b>組件

    FPGA高層次綜合HLSVitis HLS知識庫簡析

    1、HLS最全知識庫介紹高層次綜合(High-level Synthesis)簡稱HLS,指的是將高層次語言描述的邏輯結構,自動轉換成低抽象級語言描述的電路模型的過程。對于AMD Xilinx而言
    發表于 09-07 15:21

    使用Vitis HLS創建屬于自己的IP相關資料分享

    1、使用Vitis HLS創建屬于自己的IP高層次綜合(High-level Synthesis)簡稱HLS,指的是將高層次語言描述的邏輯結
    發表于 09-09 16:45

    如何在Vitis HLS中使用C語言代碼創建AXI4-Lite接口

    在本教程中,我們將來聊一聊有關如何在 Vitis HLS 中使用 AXI4-Lite 接口創建定制 IP 的基礎知識。
    的頭像 發表于 09-13 10:04 ?6957次閱讀
    如何在<b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b>中使用C語言代碼<b class='flag-5'>創建</b>AXI4-Lite接口

    Vivado HLSVitis HLS 兩者之間有什么區別

    Vitis HLS下,一個Solution的Flow Target可以是Vivado IP Flow Target,也可以是VitisKernel Flow Target,如下圖所示。前者最終導出來
    的頭像 發表于 11-05 17:43 ?4w次閱讀

    Vitis HLS工具簡介及設計流程

    Vitis HLS 是一種高層次綜合工具,支持將 C、C++ 和 OpenCL 函數硬連線到器件邏輯互連結構和 RAM/DSP 塊上。Vitis HLS 可在
    的頭像 發表于 05-25 09:43 ?2861次閱讀

    Vitis HLS如何添加HLS導出的.xo文件

    HLS導出的.xo文件如何導入到Vitis里面?需要把.xo文件解壓,然后把文件夾導入到Vitis Kernel/src文件夾下嗎?
    的頭像 發表于 08-03 11:20 ?3527次閱讀
    <b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b>如何添加<b class='flag-5'>HLS</b>導出的.xo文件

    使用AXI4-Lite將Vitis HLS創建IP連接到PS

    在 AXI 基礎第 6 講 - Vitis HLS 中的 AXI4-Lite 簡介中,使用 C 語言在 HLS創建包含 AXI4-Lite 接口的
    發表于 08-02 09:43 ?1020次閱讀
    使用AXI4-Lite將<b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b><b class='flag-5'>創建</b>的<b class='flag-5'>IP</b>連接到PS

    Vitis HLS前端現已全面開源

    Vitis HLS 工具能夠將 C++ 和 OpenCL 功能部署到器件的邏輯結構和 RAM/DSP 塊上。在 GitHub 上提供 Vitis HLS 前端為研究人員、開發人員和編譯
    的頭像 發表于 08-03 09:53 ?1260次閱讀

    Vitis HLS知識庫總結

    對于AMD Xilinx而言,Vivado 2019.1之前(包括),HLS工具叫Vivado HLS,之后為了統一將HLS集成到Vitis
    的頭像 發表于 09-02 09:06 ?4092次閱讀

    HLS最全知識庫

    對于AMD Xilinx而言,Vivado 2019.1之前(包括),HLS工具叫Vivado HLS,之后為了統一將HLS集成到Vitis
    的頭像 發表于 01-15 11:27 ?3431次閱讀

    AMD全新Vitis HLS資源現已推出

    AMD Vitis HLS 工具允許用戶通過將 C/C++ 函數綜合成 RTL,輕松創建復雜的 FPGA 算法。Vitis
    的頭像 發表于 04-23 10:41 ?1452次閱讀
    <b class='flag-5'>AMD</b>全新<b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b>資源現已推出

    關于HLS IP無法編譯解決方案

    Xilinx平臺的Vivado HLSVitis HLS 使用的 export_ip 命令會無法導出 IP
    的頭像 發表于 07-07 14:14 ?1271次閱讀
    關于<b class='flag-5'>HLS</b> <b class='flag-5'>IP</b>無法編譯解決方案

    Vitis HLS移植指南

    電子發燒友網站提供《Vitis HLS移植指南.pdf》資料免費下載
    發表于 09-13 09:21 ?0次下載
    <b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b>移植指南
    主站蜘蛛池模板: 日日操夜夜操免费视频 | 色综合视频一区二区三区 | 国产精品毛片天天看片 | 日本免费大黄 | 亚洲综合一区二区三区 | 国产午夜在线观看 | 特黄aa级毛片免费视频播放 | 午夜影院免费视频 | 亚洲黄色天堂 | 永久免费人成网ww555kkk手机 | 寡妇一级a毛片免费播放 | 天天干夜夜艹 | 午夜男人影院 | 久久亚洲国产成人精品性色 | 色偷偷中文字幕 | 欧美猛交xxxx免费看 | 天天狠狠弄夜夜狠狠躁·太爽了 | 一区二区三区网站在线免费线观看 | 特级一级毛片 | 福利视频入口 | 麒麟色欧美影院在线播放 | 亚洲国产第一区二区香蕉 | 免费人成网站在线高清 | 男女交性视频免费播放视频 | 激情理论 | 草草影院ccyy国产日本欧美 | 亚洲激情五月 | 黄网在线观看 | 四虎网站 | 日日噜噜夜夜狠狠久久aⅴ 日日噜噜夜夜狠狠久久丁香 | 亚洲高清一区二区三区 | 日韩欧美亚洲一区 | 天堂在线天堂最新版在线www | 国产免费人成在线视频视频 | 欧美性猛交xxxx免费 | 精品综合久久久久久98 | 婷婷综合久久中文字幕蜜桃三 | 亚洲丝袜一区二区 | 性69交片免费看 | 欧美性猛交xxxx乱大交中文 | 国产美女在线精品免费观看 |