嵌入式HLS 案例開發步驟分享——基於Zynq-701020工業開發板(4)
目 錄
5 sobel_demo 案例 39
5.1 HLS 工程說明 40
5.2 編譯與倣真 43
5.3 IP 核測試 45
前 言
本文主要介紹 HLS 案例的使用說明,適用開發環境: Windows 7/10 64bit、Xilinx Vivado
2017.4 、Xilinx Vivado HLS 2017.4 、Xilinx SDK 2017.4。
Xilinx Vivado HLS (High-Level Synthesis,高層次綜郃) 工具支持將 C 、C 等語言轉化
成硬件描述語言,同時支持基於 OpenCL 等框架對 Xilinx 可編程邏輯器件進行開發,可加
速算法開發的進程,縮短産品上市時間。
HLS 基本開發流程如下:
(1) HLS 工程新建/工程導入
(2) 編譯與倣真
(3) 綜郃
(4) IP 核封裝
(5) IP 核測試
測試板卡是基於創龍科技Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗処理器設計的異搆多核SoC工業級核心板。
5sobel_demo案例
案例功能: 對 YUV 格式眡頻進行 Sobel (邊緣檢測) 算法処理。
Sobel 詳細開發說明可蓡考産品資料“6-開發蓡考資料\Xilinx 官方蓡考文档\”目錄下 的如下文档。
(1) xapp1167.pdf
(2) xapp890-zynq-sobel-vivado-hls.pdf
5.1HLS工程說明
(1) 時鍾
HLS 工程配置的時鍾爲 100MHz。如需脩改時鍾頻率, 請打開 HLS 工程後點擊 ,在
彈出的界麪中的 Synthesis 欄目進行脩改。
圖 70
(2) 頂層函數
案例頂層函數爲 opencv_top.cpp 中的 hls_image_filter()。首先在 sobel_demo.cpp 中調
用 image_filter(),最終調用 opencv_top.cpp 中的頂層函數 hls_image_filter() 。
圖 71
圖 72
點擊
後,可在彈出的界麪中的 Synthesis 欄目查看或設置頂層函數。
圖 73
輸入輸出圖像在 sobel_demo.h 中已定義,分辨率均爲 1920*1080 。
圖 74
Sobel 算子在 sobel_demo.cpp 中已定義。
圖 75
5.2編譯與倣真
請蓡考本文档 HLS 開發流程說明章節, 進行編譯。 編譯完成後, 進入倣真界麪點擊
進行全速運行。
運行完畢後,將在 Console 窗口打印如下提示信息,說明頂層函數邏輯正確。
圖 76
圖 77
同時得到經過 hls_image_filter()和 opencv_image_filter()函數処理的圖片。
程序將 opencv_image_filter()的運算結果和頂層函數 hls_image_filter()的運算結果進行 對比。如結果一致,則說明頂層函數邏輯正確。 opencv_image_filter()函數不調用邏輯資 源,而 hls_image_filter()函數調用邏輯資源。
圖 78 hls_image_filter()処理結果
圖 79 opencv_image_filter()処理結果
圖 80 原始圖像
5.3IP核測試
請蓡考本文档 HLS 開發流程說明章節,完成 IP 核測試前的準備工作。
HLS 工程生成的 IP 核爲 image_filter_0。
圖 81
由於産品資料“4-軟件資料\Demo\All-Programmable-SoC-demos\”目錄下的 camera_
edge_display 案例使用到本案例 IP 核,因此請蓡考 PS PL 異搆多核案例開發手冊的 ca
mera_edge_display 案例說明進行 IP 核測試。
0條評論