色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

視覺(jué)L1重映射函數(shù)Zynq baremetal設(shè)計(jì)實(shí)例

XILINX開發(fā)者社區(qū) ? 來(lái)源:XILINX開發(fā)者社區(qū) ? 2023-07-07 10:13 ? 次閱讀

本文作者:AMD高級(jí)產(chǎn)品應(yīng)用工程師 Kevin Morris

這篇博客展示了在 AMD Zynq 設(shè)計(jì)中,如何用 Vitis Vision Library 中的函數(shù)(remap)導(dǎo)出一個(gè) IP,并基于此 IP 構(gòu)建一個(gè)的硬件平臺(tái)(XSA),進(jìn)而基于此平臺(tái)來(lái)運(yùn)行嵌入式應(yīng)用。

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

測(cè)試采用以下設(shè)置:

版本: Vivado 和 Vitis 2023.1

操作系統(tǒng):Ubuntu 20.04.1 LTS

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

1/ 創(chuàng)建 Vitis HLS IP 項(xiàng)目

在本節(jié)中,我們將利用 Vitis Vision L1 庫(kù)提供的預(yù)先存在的 Makefile 來(lái)創(chuàng)建和導(dǎo)出 remap 函數(shù),以便在 Vivado 項(xiàng)目中使用。

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

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

跳轉(zhuǎn)至 Vision L1 中名為 remap 的函數(shù)的目錄下:

cd Vitis_Libraries/vision/L1/examples/remap

注:專門就 Vision 庫(kù)而言,需要 OpenCV 庫(kù)才能編譯函數(shù)。請(qǐng)使用下面鏈接中的指令編譯 OpenCV,并在運(yùn)行下一步之前設(shè)置所需的環(huán)境變量。
https://support.xilinx.com/s/article/Vitis-Libraries-Compiling-and-Installing-OpenCV?language=en_US

設(shè)置 Vitis/Vivado 工具,然后運(yùn)行 HLS 項(xiàng)目腳本來(lái)構(gòu)建 HLS 設(shè)計(jì),并用該設(shè)計(jì)將函數(shù)作為 Vivado IP 導(dǎo)出。

525f2f2a-1bee-11ee-962d-dac502259ad0.png

PLATFORM——這是評(píng)估板平臺(tái)名稱,通常可以通過(guò) PLATFORM_REPO_PATHS 環(huán)境變量或在 /base_platforms中的 Vitis 安裝目錄內(nèi)找到該名稱。

VIVADO_SYN——此參數(shù)通過(guò) export_design 流程運(yùn)行 Vitis HLS 項(xiàng)目,該流程提供項(xiàng)目的壓縮文件作為 Vivado IP。

您還可以打開 Vitis HLS 項(xiàng)目,通過(guò)命令 vitis_hls -p remap.prj 查看結(jié)果和報(bào)告。

注:由于此 Vitis HLS 項(xiàng)目來(lái)自 Makefile,其并不包括在 GUI 環(huán)境下直接重新運(yùn)行 C Simulation 或 Cosimulation 所需的標(biāo)志和參數(shù)。您可以檢查 remap 文件夾中的 run_hls.tcl 文件,以查看仿真所需要添加的必要標(biāo)志和參數(shù)。

重新運(yùn)行上述指令,添加適當(dāng)?shù)淖兞浚员銖拿钚羞\(yùn)行仿真(例如:CSIM=1 和/或 COSIM=1)。

2 創(chuàng)建 Vivado 平臺(tái)項(xiàng)目

本節(jié)將展示如何使用上一節(jié)中創(chuàng)建的 Vitis HLS IP 來(lái)創(chuàng)建一個(gè)以 ZCU104 為目標(biāo)器件的自定義平臺(tái)。

將上一節(jié)中創(chuàng)建的導(dǎo)出 IP 復(fù)制到它自己的存儲(chǔ)庫(kù)位置,然后打開 Vivado。

5274738a-1bee-11ee-962d-dac502259ad0.png

按照下列步驟創(chuàng)建項(xiàng)目并對(duì)其進(jìn)行設(shè)置:

選擇 Create Project,點(diǎn)擊 Next:

輸入項(xiàng)目名稱:remap_vivado,點(diǎn)擊 Next

選擇 RTL 項(xiàng)目,此時(shí)不要指定源文件,點(diǎn)擊 Next

在評(píng)估板選項(xiàng)卡,選擇 Zynq UltraScale+ ZCU104 評(píng)估板,點(diǎn)擊 Next,然后選擇 Finish

打開項(xiàng)目后:

在左側(cè)的流程導(dǎo)航器中選擇 Project Manager > Settings

選擇IP > Repository,點(diǎn)擊 + 并在此添加 ip_repo 文件夾的位置,然后關(guān)閉窗口

我們現(xiàn)在可以添加自定義 IP 及其余的模塊:

在左側(cè)的流程導(dǎo)航器中,選擇 IP Integrator > Create Block Design

為原理圖選擇描述性名稱,或保留其默認(rèn)值,然后選擇 OK????

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

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

點(diǎn)擊窗口頂部橫幅上的 Run Block Automation。

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

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

雙擊圖中的 MPSoC 模塊,并做出以下修改。我們將關(guān)閉本設(shè)計(jì)中不會(huì)用到的一些功能。

52937910-1bee-11ee-962d-dac502259ad0.png

更改這些設(shè)置后,選擇 OK 將這些變更應(yīng)用到 MPSoC 模塊上。

我們現(xiàn)在可以使用連接自動(dòng)化功能將這些模塊彼此連接:

點(diǎn)擊 Run Connection Automation

?勾選全部自動(dòng)化,然后選擇 OK

點(diǎn)擊 Run Connection Automation(第二次運(yùn)行會(huì)把 IP 其它的 AXI 接口也鏈接起來(lái),這些接口是IP互聯(lián)接口的一部分)

勾選全部自動(dòng)化,然后選擇 OK


此刻的設(shè)計(jì)應(yīng)類似于下圖(您可以點(diǎn)擊工具欄上的“Regenerate”,可自動(dòng)對(duì)各個(gè)模塊進(jìn)行重新排列):

52acd23e-1bee-11ee-962d-dac502259ad0.png

檢查 Address Editor選項(xiàng)卡。請(qǐng)注意,默認(rèn)自動(dòng)分配地址,AXI 和 IP 控件的地址空間設(shè)置為 0x0 和 0xA000_0000。

52d35ba2-1bee-11ee-962d-dac502259ad0.png

返回至圖表選項(xiàng)卡,選擇工具欄上的 Validate Design 按鈕,或者在 Vivado 的主窗口中使用 Tools > Validate Design。確保設(shè)計(jì)無(wú)誤。


在 Sources 窗口的 Sources 選項(xiàng)卡中,展開 Design Sources ,右鍵點(diǎn)擊當(dāng)前模塊設(shè)計(jì),選擇 Create HDL Wrapper(選擇 Let Vivado manage wrapper and auto-update),然后點(diǎn)擊 OK。

在左側(cè)的 Flow Navigator 中,選擇 Generate Block Design,保留默認(rèn)選項(xiàng),然后點(diǎn)擊 Generate。您可以在 Design Runs 選項(xiàng)卡中監(jiān)視運(yùn)行狀態(tài)。

完成上述步驟后,點(diǎn)擊 Generate Bitstream,選擇 Yes/OK 來(lái)運(yùn)行生成比特流的必要流程。完成創(chuàng)建后,您可以點(diǎn)擊 Cancel 關(guān)閉打開的對(duì)話框,結(jié)束操作。

現(xiàn)在我們可以將硬件平臺(tái)導(dǎo)出為 XSA 格式,以便 Vitis 與我們的應(yīng)用一起使用。

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

選擇 Next

選擇 Include bitstream,點(diǎn)擊 Next

設(shè)置 XSA 文件名:remap_platform,點(diǎn)擊 Next,然后點(diǎn)擊 Finish。輸出的 XSA 文件默認(rèn)保存在項(xiàng)目的根目錄

3 創(chuàng)建 Vitis 應(yīng)用項(xiàng)目

現(xiàn)在我們已經(jīng)從 Vivado 導(dǎo)出了一個(gè)平臺(tái) XSA,我們可以使用這個(gè)文件來(lái)定義我們的平臺(tái),并創(chuàng)建一個(gè)應(yīng)用程序來(lái)在平臺(tái)內(nèi)通信和運(yùn)行 IP。

打開 Vitis,然后導(dǎo)入 XSA:

vitis -workspace remap_ws

此操作會(huì)打開工作空間為 remap_ws 的 Vitis GUI。

創(chuàng)建應(yīng)用項(xiàng)目

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

設(shè)置應(yīng)用項(xiàng)目名稱:remap_project,選擇將 psu_cortexa53_0 用作處理器,然后選擇Next

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

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

本博文包括參考文件,可供下載(點(diǎn)擊閱讀全文查看參考文件)。可將這些文件解壓到項(xiàng)目的根目錄中。


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

remap_example_app.c

remap_input_image.h

remap_x_map.h

remap_y_map.h


文件導(dǎo)入后,可隨時(shí)檢查 remap_example_app.c 文件,以查看應(yīng)用正在執(zhí)行的操作。總之,應(yīng)用程序用 DDR 內(nèi)存中的輸入圖像和映射數(shù)組數(shù)據(jù)配置 IP,并指示 IP 處理數(shù)據(jù)并將其寫回 DDR 內(nèi)存。

現(xiàn)在,我們可以構(gòu)建平臺(tái)并編譯應(yīng)用,以使其直接在 ZCU104 板上運(yùn)行。

在助手窗口中:

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

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

完成構(gòu)建過(guò)程可能需要一些時(shí)間,時(shí)間長(zhǎng)短取決于您的系統(tǒng)。

4 在硬件上運(yùn)行應(yīng)用

現(xiàn)在,我們可以運(yùn)行設(shè)計(jì)并驗(yàn)證 remap 函數(shù)的運(yùn)行。

在助手窗口中,選擇 remap_project_system [System],使用綠色運(yùn)行圖標(biāo),選擇 Launch Hardware。

一旦完成設(shè)計(jì)運(yùn)行,且硬件仍在運(yùn)行時(shí),選擇 XSCT 窗口。如果窗口未打開,選擇 Vitis > XSCT Console。

在控制臺(tái)運(yùn)行以下命令:

xsct% source remap_memory_copy.tcl

注:此腳本是參考文件的組成部分。您也可以指文件的完整路徑,或使用“cd”跳轉(zhuǎn)至適當(dāng)?shù)哪夸洝?/p>


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


在創(chuàng)建完 input.data 文件和 output.data 文件后,您現(xiàn)在可以通過(guò)運(yùn)行 Python 腳本來(lái)驗(yàn)證 remap 函數(shù)是否已成功執(zhí)行圖像的水平翻轉(zhuǎn)。運(yùn)行下列 Python 腳本:

python3 remap_convert_image.py

注:運(yùn)行此腳本需要安裝“numpy”和“Pillow” Python 包,通常使用“pip install numpy”和“pip install Pillow”命令來(lái)安裝這些包。


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

審核編輯:湯梓紅

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

    關(guān)注

    25

    文章

    5516

    瀏覽量

    135018
  • 嵌入式
    +關(guān)注

    關(guān)注

    5103

    文章

    19268

    瀏覽量

    310016
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4353

    瀏覽量

    63292
  • Zynq
    +關(guān)注

    關(guān)注

    10

    文章

    611

    瀏覽量

    47486
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    395

    瀏覽量

    15047

原文標(biāo)題:開發(fā)者分享|Vitis 庫(kù)流程:視覺(jué) L1 重映射函數(shù) Zynq baremetal 設(shè)計(jì)實(shí)例

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    printf串口映射函數(shù)不能用
    發(fā)表于 04-09 08:20

    請(qǐng)問(wèn)TMS320F2809中的L0/L1/H0 SARAM雙重映射數(shù)據(jù)段和程序段的地址空間能重合嗎?

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

    如何配置USRAT3重映射

    USRAT3重映射怎么配置呢
    發(fā)表于 11-08 02:02

    STM32重映射是什么意思

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

    怎樣去解決STM32庫(kù)函數(shù)CAN1通訊重映射發(fā)生錯(cuò)誤問(wèn)題

    STM32庫(kù)函數(shù)關(guān)于CAN1通訊重映射發(fā)生錯(cuò)誤問(wèn)題重映射啟動(dòng)必須嚴(yán)格按照步驟來(lái)1.端口時(shí)鐘使能2.模塊使能3.IO口設(shè)置4.
    發(fā)表于 02-22 07:53

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

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

    STM32管腳重映射

    STM32F103管腳重映射總結(jié)
    發(fā)表于 10-24 10:20 ?16次下載

    華大HC32L110 printf重映射UART

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

    STC15F408AS重映射串口打印函數(shù)

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

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

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

    STM32庫(kù)函數(shù)關(guān)于CAN1通訊重映射發(fā)生錯(cuò)誤問(wèn)題

    STM32庫(kù)函數(shù)關(guān)于CAN1通訊重映射發(fā)生錯(cuò)誤問(wèn)題重映射啟動(dòng)必須嚴(yán)格按照步驟來(lái)1.端口時(shí)鐘使能2.模塊使能3.IO口設(shè)置4.
    發(fā)表于 12-28 19:29 ?8次下載
    STM32庫(kù)<b class='flag-5'>函數(shù)</b>關(guān)于CAN<b class='flag-5'>1</b>通訊<b class='flag-5'>重映射</b>發(fā)生錯(cuò)誤問(wèn)題

    VITA 1300 像素重映射

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

    視覺(jué)L1重映射函數(shù)Zynq baremetal設(shè)計(jì)實(shí)例

    這篇博客展示了在 AMD Zynq 設(shè)計(jì)中,如何用 Vitis Vision Library 中的函數(shù)(remap)導(dǎo)出一個(gè) IP,并基于此 IP 構(gòu)建一個(gè)的硬件平臺(tái)(XSA),進(jìn)而基于此平臺(tái)來(lái)運(yùn)行嵌入式應(yīng)用。
    的頭像 發(fā)表于 07-07 09:22 ?757次閱讀
    <b class='flag-5'>視覺(jué)</b><b class='flag-5'>L1</b><b class='flag-5'>重映射函數(shù)</b><b class='flag-5'>Zynq</b> <b class='flag-5'>baremetal</b>設(shè)計(jì)<b class='flag-5'>實(shí)例</b>

    Vitis 庫(kù)流程:視覺(jué) L1 重映射函數(shù) Zynq baremetal 設(shè)計(jì)實(shí)例

    本文展示了在AMD Zynq設(shè)計(jì)中,如何用 Vitis Vision Library中的函數(shù)導(dǎo)出一個(gè) IP
    的頭像 發(fā)表于 07-13 17:05 ?650次閱讀
    Vitis 庫(kù)流程:<b class='flag-5'>視覺(jué)</b> <b class='flag-5'>L1</b> <b class='flag-5'>重映射函數(shù)</b> <b class='flag-5'>Zynq</b> <b class='flag-5'>baremetal</b> 設(shè)計(jì)<b class='flag-5'>實(shí)例</b>

    Zynq裸機(jī)設(shè)計(jì)中使用視覺(jué)庫(kù)L1 remap函數(shù)的示例

    本篇博文旨在演示如何在 Zynq 設(shè)計(jì)中使用 Vitis 視覺(jué)庫(kù)函數(shù) (remap) 作為 HLS IP,然后在 Vitis 中使用該函數(shù)作為平臺(tái)來(lái)運(yùn)行嵌入式應(yīng)用。
    的頭像 發(fā)表于 08-01 10:18 ?801次閱讀
    在<b class='flag-5'>Zynq</b>裸機(jī)設(shè)計(jì)中使用<b class='flag-5'>視覺(jué)</b>庫(kù)<b class='flag-5'>L1</b> remap<b class='flag-5'>函數(shù)</b>的示例
    主站蜘蛛池模板: 67194成在线观看免费 | 男人的天堂MV在线视频免费观看 | 久久re视频这里精品一本到99 | 樱桃视频高清免费观看在线播放 | 国产看黄网站又黄又爽又色 | 国产精品三级在线观看 | 国产永久免费高清在线观看 | 国产高清视频在线播放www色 | 久99久热只有精品国产99 | 国产欧美无码亚洲毛片 | 女张腿男人桶羞羞漫画 | 久草国产在线播放 | 海角社区在线视频播放观看 | 91久久综合精品国产丝袜长腿 | 色噜噜狠狠色综合中文字幕 | 人妻夜夜爽天天爽三区麻豆AV网站 | 中文字幕在线观看亚洲日韩 | 亚洲阿v天堂在线2017 | 热巴两次用约老师屁股发底线球 | 2021国产精品 | 久久久精品3d动漫一区二区三区 | 添加一点爱与你电视剧免费观看 | 伊人在线高清视频 | 97久久伊人精品影院 | 嫩草国产精品99国产精品 | 色婷婷欧美在线播放内射 | 男女作爱在线播放免费网页版观看 | 国产成人无码精品久久久影院 | 亚洲精品动漫免费二区 | 男人把女人桶到高潮嗷嗷叫 | 国产成人小视频 | 香蕉久久一区二区三区啪啪 | 广东95后小情侣酒店自拍流出 | 最近中文字幕2019国语4 | 欧美506070 | 亚洲一二三产品区别在哪里 | 99香蕉视频 | 久久亚洲国产精品亚洲 | 日本国产黄色片 | 动漫女主被扒开双腿羞辱 | 一本道高清不卡v免费费 |