在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

Vitis 庫流程:視覺 L1 重映射函數 Zynq baremetal 設計實例

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-07-13 17:05 ? 次閱讀

這篇博客展示了在 AMD Zynq 設計中,如何用 Vitis Vision Library 中的函數(remap)導出一個 IP,并基于此 IP 構建一個的硬件平臺(XSA),進而基于此平臺來運行嵌入式應用。

remap 函數是指從圖像的某個位置獲取像素信息,并將這些像素信息重新放置到另一個圖像的另一個位置。在此示例中,設計將使用 128x128 像素的灰度輸入圖像,然后在輸出端將其水平翻轉。

測試采用以下設置:

版本: Vivado 和 Vitis 2023.1

操作系統:Ubuntu 20.04.1 LTS

硬件:Zynq UltraScale+ ZCU104 評估板 (xczu7ev-ffvc1156-2-e)

1. 創建 Vitis HLS IP 項目

在本節中,我們將利用 Vitis Vision L1 庫提供的預先存在的 Makefile 來創建和導出 remap 函數,以便在 Vivado 項目中使用。

打開終端選擇一個適合的路徑位置,并將最新的 Vitis 庫克隆到該位置:

git clone https://github.com/Xilinx/Vitis_Libraries

跳轉至 Vision L1 中名為 remap 的函數的目錄下:

cd Vitis_Libraries/vision/L1/examples/remap

注:專門就 Vision 庫而言,需要 OpenCV 庫才能編譯函數。請使用下面鏈接中的指令編譯 OpenCV,并在運行下一步之前設置所需的環境變量。
https://support.xilinx.com/s/article/Vitis-Libraries-Compiling-and-Insta...

設置 Vitis/Vivado 工具,然后運行 HLS 項目腳本來構建 HLS 設計,并用該設計將函數作為 Vivado IP 導出。

100572478-309132-hanshu.png

PLATFORM——這是評估板平臺名稱,通常可以通過 PLATFORM_REPO_PATHS 環境變量或在 /base_platforms 中的 Vitis 安裝目錄內找到該名稱。

VIVADO_SYN——此參數通過 export_design 流程運行 Vitis HLS 項目,該流程提供項目的壓縮文件作為 Vivado IP。

您還可以打開 Vitis HLS 項目,通過命令 vitis_hls -p remap.prj 查看結果和報告。

注:由于此 Vitis HLS 項目來自 Makefile,其并不包括在 GUI 環境下直接重新運行 C Simulation 或 Cosimulation 所需的標志和參數。您可以檢查 remap 文件夾中的 run_hls.tcl 文件,以查看仿真所需要添加的必要標志和參數。

重新運行上述指令,添加適當的變量,以便從命令行運行仿真(例如:CSIM=1 和/或 COSIM=1)。

2. 創建 Vivado 平臺項目

本節將展示如何使用上一節中創建的 Vitis HLS IP 來創建一個以 ZCU104 為目標器件的自定義平臺。

將上一節中創建的導出 IP 復制到它自己的存儲庫位置,然后打開 Vivado。

100572478-309133-hanshu2.png

按照下列步驟創建項目并對其進行設置:

選擇 Create Project,點擊 Next:

輸入項目名稱:remap_vivado,點擊 Next

選擇 RTL 項目,此時不要指定源文件,點擊 Next

在評估板選項卡,選擇 Zynq UltraScale+ ZCU104 評估板,點擊 Next,然后選擇 Finish

打開項目后:

在左側的流程導航器中選擇 Project Manager > Settings

選擇 IP > Repository,點擊 + 并在此添加 ip_repo 文件夾的位置,然后關閉窗口

我們現在可以添加自定義 IP 及其余的模塊:

在左側的流程導航器中,選擇 IP Integrator > Create Block Design

為原理圖選擇描述性名稱,或保留其默認值,然后選擇 OK

選擇 +(添加 IP),并選擇 Remap_accel 模塊

選擇 +(添加 IP),并選擇 Zynq UltraScale+ MPSoC 模塊

點擊窗口頂部橫幅上的 Run Block Automation。

確保勾選 Apply Board Preset,然后選擇 OK

現在,我們將配置 MPSoC 模塊,使其具有合適的接口,能夠與 IP 進行通信

雙擊圖中的 MPSoC 模塊,并做出以下修改。我們將關閉本設計中不會用到的一些功能。

100572478-309134-hanshu3.png

更改這些設置后,選擇 OK 將這些變更應用到 MPSoC 模塊上。

我們現在可以使用連接自動化功能將這些模塊彼此連接:

點擊 Run Connection Automation

勾選全部自動化,然后選擇 OK

點擊 Run Connection Automation(第二次運行會把 IP 其它的 AXI 接口也鏈接起來,這些接口是IP互聯接口的一部分)

勾選全部自動化,然后選擇 OK

此刻的設計應類似于下圖(您可以點擊工具欄上的“Regenerate”,可自動對各個模塊進行重新排列):

100572478-309135-tu1.png

檢查 Address Editor 選項卡。請注意,默認自動分配地址,AXI 和 IP 控件的地址空間設置為 0x0 和 0xA000_0000。

100572478-309136-tu2.png

返回至圖表選項卡,選擇工具欄上的 Validate Design 按鈕,或者在 Vivado 的主窗口中使用 Tools > Validate Design。確保設計無誤。

在 Sources 窗口的 Sources 選項卡中,展開 Design Sources ,右鍵點擊當前模塊設計,選擇 Create HDL Wrapper(選擇 Let Vivado manage wrapper and auto-update),然后點擊 OK。

在左側的 Flow Navigator 中,選擇 Generate Block Design,保留默認選項,然后點擊 Generate。您可以在 Design Runs 選項卡中監視運行狀態。

完成上述步驟后,點擊 Generate Bitstream,選擇 Yes/OK 來運行生成比特流的必要流程。完成創建后,您可以點擊 Cancel 關閉打開的對話框,結束操作。

現在我們可以將硬件平臺導出為 XSA 格式,以便 Vitis 與我們的應用一起使用。

在頂部工具欄中選擇 File > Export > Export Hardware

選擇 Next

選擇 Include bitstream,點擊 Next

設置 XSA 文件名:remap_platform,點擊 Next,然后點擊 Finish。輸出的 XSA 文件默認保存在項目的根目錄

3. 創建 Vitis 應用項目

現在我們已經從 Vivado 導出了一個平臺 XSA,我們可以使用這個文件來定義我們的平臺,并創建一個應用程序來在平臺內通信和運行 IP。

打開 Vitis,然后導入 XSA:

vitis -workspace remap_ws

此操作會打開工作空間為 remap_ws 的 Vitis GUI。

創建應用項目

選擇 Next

從頂部的選項卡中選擇 Create a new platform from hardware (XSA),然后瀏覽上一節的 remap_platform.xsa 文件,接著選擇 Next

設置應用項目名稱:remap_project,選擇將 psu_cortexa53_0 用作處理器,然后選擇 Next

保留默認域信息(Standalone OS),然后選擇 Next

選擇“Empty Application (C)”模板,然后選擇 Finish

本博文包括參考文件,可供下載(點擊閱讀全文查看參考文件)??蓪⑦@些文件解壓到項目的根目錄中。

在“Explorer”窗口展開 remap_project_system > remap_project > src,右鍵點擊 src,選擇 Import Sources,瀏覽保存參考文件的目錄,選擇并導入下列文件:

remap_example_app.c

remap_input_image.h

remap_x_map.h

remap_y_map.h

文件導入后,可隨時檢查 remap_example_app.c 文件,以查看應用正在執行的操作??傊?,應用程序用 DDR 內存中的輸入圖像和映射數組數據配置 IP,并指示 IP 處理數據并將其寫回 DDR 內存。

現在,我們可以構建平臺并編譯應用,以使其直接在 ZCU104 板上運行。

在助手窗口中:

選擇 remap_platform [Platform],并使用 Build 按鈕(錘子圖標),等待 Build Finished 消息出現

選擇 remap_project_system [System],并使用 Build 按鈕(錘子圖標),等待 Build Finished 消息出現

完成構建過程可能需要一些時間,時間長短取決于您的系統。

4. 在硬件上運行應用

現在,我們可以運行設計并驗證 remap 函數的運行。

在助手窗口中,選擇 remap_project_system [System],使用綠色運行圖標,選擇 Launch Hardware。

一旦完成設計運行,且硬件仍在運行時,選擇 XSCT 窗口。如果窗口未打開,選擇 Vitis > XSCT Console。

在控制臺運行以下命令:

xsct% source remap_memory_copy.tcl

注:此腳本是參考文件的組成部分。您也可以指文件的完整路徑,或使用“cd”跳轉至適當的目錄。

此腳本將讀取內存中“input_buffer”和“output_buffer”的數據,并將數據分別保存為 input.data和 output.data。在繼續操作之前等待完成消息。

在創建完 input.data 文件和 output.data 文件后,您現在可以通過運行 Python 腳本來驗證 remap 函數是否已成功執行圖像的水平翻轉。運行下列 Python 腳本:

python3 remap_convert_image.py

注:運行此腳本需要安裝“numpy”和“Pillow” Python 包,通常使用“pip install numpy”和“pip install Pillow”命令來安裝這些包。

此腳本將輸出兩種文件,一個是 input.png,另一個是 output.png,表示發送到硬件的輸入圖像,以及通過 IP 傳遞后的輸出圖像。


責任編輯:彭菁

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

    關注

    3

    文章

    4331

    瀏覽量

    62622
  • Zynq
    +關注

    關注

    10

    文章

    609

    瀏覽量

    47182
收藏 人收藏

    評論

    相關推薦

    STM32CubeIDE printf串口映射函數不能用,為什么?

    printf串口映射函數不能用
    發表于 04-09 08:20

    請問TMS320F2809中的L0/L1/H0 SARAM雙重映射數據段和程序段的地址空間能重合嗎?

    的話,是不是程序段和數據段可以任意定義?(只需保證地址不重合,總長度不超過應有的長度)在定義程序段和數據段要注意什么?3、L0、L1、H0(SARAM)是屬于雙重映射,那我究竟是用低端地址還是用高端
    發表于 10-24 15:50

    STM32重映射是什么意思

    STM32重映射(Remap)在外設的初始化中默認為Default重映射函數復用功能在外設的初始化中默認為Default在參考手冊中均有USART1的功能,但是若是想要用PB6與PB7作為
    發表于 08-10 08:13

    基于映射函數收縮算法的圖像去噪方法

    文中討論了圖像的高斯加性噪聲模型和圖像的稀疏性表示,提出了利用映射函數來描述圖像的去噪過程,通過求解映射函數和利用映射函數對加噪圖像的小波變換子帶系數進行變換,達
    發表于 03-12 16:30 ?21次下載
    基于<b class='flag-5'>映射函數</b>收縮算法的圖像去噪方法

    STM32管腳重映射

    STM32F103管腳重映射總結
    發表于 10-24 10:20 ?16次下載

    利用Vitis HLS tcl shell一鍵跑通視覺加速例程

    ? 本文給想直接使用Vitis HLS 工具在 Standalone 模式下調用 Xilinx Vision Library L1 API 的小伙伴提供了一個非常容易上手的腳本文件。 在論壇上遇到在
    的頭像 發表于 12-29 11:12 ?3460次閱讀
    利用<b class='flag-5'>Vitis</b> HLS tcl shell一鍵跑通<b class='flag-5'>視覺</b>加速例程

    華大HC32L110 printf重映射UART

    華大HC32L110 printf重映射UART在使用printf時官方工程默認使用的端口是UART0。找到dll.c文件 fputc函數,其中Debug_Output(ch)函數定義
    發表于 11-23 18:06 ?9次下載
    華大HC32<b class='flag-5'>L</b>110 printf<b class='flag-5'>重映射</b>UART

    STC15F408AS重映射串口打印函數

    STC15F408AS重映射串口打印函數
    發表于 12-06 19:06 ?10次下載
    STC15F408AS<b class='flag-5'>重映射</b>串口打印<b class='flag-5'>函數</b>

    STM32 部分重映射和完全重映射

    STM32中擁有重映射功能,可以使硬件電路的設計更加簡潔方便,在配置GPIO_PinRemapConfig()函數時,發現入口參數有兩種重映射,分為部分重映射(Partial Rema
    發表于 12-27 18:56 ?24次下載
    STM32 部分<b class='flag-5'>重映射</b>和完全<b class='flag-5'>重映射</b>

    STM32庫函數關于CAN1通訊重映射發生錯誤問題

    STM32庫函數關于CAN1通訊重映射發生錯誤問題重映射啟動必須嚴格按照步驟來1.端口時鐘使能2.模塊使能3.IO口設置4.
    發表于 12-28 19:29 ?8次下載
    STM32庫<b class='flag-5'>函數</b>關于CAN<b class='flag-5'>1</b>通訊<b class='flag-5'>重映射</b>發生錯誤問題

    VITA 1300 像素重映射

    VITA 1300 像素重映射
    發表于 11-15 19:54 ?0次下載
    VITA 1300 像素<b class='flag-5'>重映射</b>

    視覺L1重映射函數Zynq baremetal設計實例

    這篇博客展示了在 AMD Zynq 設計中,如何用 Vitis Vision Library 中的函數(remap)導出一個 IP,并基于此 IP 構建一個的硬件平臺(XSA),進而基于此平臺來運行嵌入式應用。
    的頭像 發表于 07-07 09:22 ?643次閱讀
    <b class='flag-5'>視覺</b><b class='flag-5'>L1</b><b class='flag-5'>重映射函數</b><b class='flag-5'>Zynq</b> <b class='flag-5'>baremetal</b>設計<b class='flag-5'>實例</b>

    視覺L1重映射函數Zynq baremetal設計實例

    這篇博客展示了在 AMD Zynq 設計中,如何用 Vitis Vision Library 中的函數(remap)導出一個 IP,并基于此 IP 構建一個的硬件平臺(XSA),進而基于此平臺來運行嵌入式應用。
    的頭像 發表于 07-07 10:13 ?576次閱讀
    <b class='flag-5'>視覺</b><b class='flag-5'>L1</b><b class='flag-5'>重映射函數</b><b class='flag-5'>Zynq</b> <b class='flag-5'>baremetal</b>設計<b class='flag-5'>實例</b>

    Zynq裸機設計中使用視覺L1 remap函數的示例

    本篇博文旨在演示如何在 Zynq 設計中使用 Vitis 視覺函數 (remap) 作為 HLS IP,然后在 Vitis 中使用該
    的頭像 發表于 08-01 10:18 ?692次閱讀
    在<b class='flag-5'>Zynq</b>裸機設計中使用<b class='flag-5'>視覺</b><b class='flag-5'>庫</b><b class='flag-5'>L1</b> remap<b class='flag-5'>函數</b>的示例

    如何在Vitis HLS GUI中使用庫函數?

    Vitis? HLS 2023.1 支持新的 L1 向導,本文將講解如何下載 L1 、查看所有可用功能以及如何在
    的頭像 發表于 08-16 10:26 ?1212次閱讀
    如何在<b class='flag-5'>Vitis</b> HLS GUI中使用庫<b class='flag-5'>函數</b>?
    主站蜘蛛池模板: 好骚综合在线| 高清不卡免费一区二区三区| 国产欧美另类第一页| 日本三级视频| 尤物久久99热国产综合| 6080午夜| 亚欧色| 国产女人视频| 国产理论视频| 香蕉久久夜色精品国产小说| 国产精品视频一区二区三区| 国产精品久久久久久久免费| 一级毛片真人免费观看| 国产美女动态免费视频| 关晓彤被调教出奶水的视频| 99国产精品久久久久久久成人热| 六月丁香六月婷婷| 久久9966精品国产免费| 一区二区三区欧美在线| 国模吧在线视频| 5151hh四虎国产精品| 五月婷婷丁香综合| 在线视频 亚洲| 亚a在线| 酒色激情网| 国产美女久久久久| 四虎影视色费永久在线观看| 在线观看天堂| 久久国产美女免费观看精品| 黄色免费的视频| 欧美综合色区| 日本网站黄色| 久久天天综合| 四虎在线播放免费永久视频| 午夜视频在线看| 最新色网站| 最近高清在线视频观看免费| 女攻各种play男受h| 国产一级特黄全黄毛片| 黄色在线观看网站| 快色视频免费观看|