首页 > 其他分享 >嵌入式HLS 案例开发步骤分享——基于Zynq-7010/20工业开发板(4)

嵌入式HLS 案例开发步骤分享——基于Zynq-7010/20工业开发板(4)

时间:2023-01-02 15:46:54浏览次数:39  
标签:20 IP image HLS filter 案例 Zynq Xilinx

目 录

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工业级核心板。

 

5 sobel_demo 案例

案例功能: 对 YUV 格式视频进行 Sobel (边缘检测) 算法处理。

Sobel 详细开发说明可参考产品资料“6-开发参考资料\Xilinx 官方参考文档\”目录下 的如下文档。

(1) xapp1167.pdf

 

(2) xapp890-zynq-sobel-vivado-hls.pdf

5.1 HLS 工程说明

(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.3 IP 核测试

请参考本文档 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 核测试。

 

标签:20,IP,image,HLS,filter,案例,Zynq,Xilinx
From: https://www.cnblogs.com/Tronlong818/p/17019984.html

相关文章

  • 嵌入式HLS 案例开发步骤分享——基于Zynq-7010/20工业开发板(1)
    目录前言31HLS开发流程说明51.1HLS工程导入51.2编译与仿真61.3综合81.4IP核封装101.5IP核测试14 前言本文主要介绍HLS案例的使用说明,适......
  • 嵌入式HLS 案例开发手册——基于Zynq-7010/20工业开发板(2)
    目录2led_flash案例192.1HLS工程说明192.2编译与仿真202.3IP核测试233key_led_demo案例233.1HLS工程说明233.2编译与仿真253.3IP核测试27......
  • 话说会火到2019年的句子
    1.一见钟情,钟的不是情,是脸。。。2.一场戏,累坏了小丑,笑坏了观众。。。3.是不是帅哥,剪个平头就知道了。是不是美女,卸了妆就知道了。。4.我要嫁的不是王子,而是把我......
  • Kusto 2023 快速入门 开篇 —— 启发式和探索式的大数据分析工具
    陈希章2023年1月2日于上海这是一个献给自己的新年礼物,但其实已经构思了很久,这一方面跟我多年的工作经历有关——我的职业生涯中最为有意思的部分可能就是跟数据打......
  • 20、前端基础-ES6---模块化
    ......
  • SQL Server 2012/2016/2017 新增函数
    /**************************************************************SQLServer2012新增的函数***************************************************************/ ......
  • foreach-2023-1-2
    for循环条件语句中的这个(intnum:nums)是什么意思?foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。foreach语句是for语句的特殊简......
  • Calendar 类的应用-2023-1-2
    Date类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用Calendar类进......
  • 2022年终总结
    波澜不惊的2022上半年在学校准备毕设相关的内容,以及参加春招找工作,因为个人不想当北漂,加上父母在成都的原因,所以目标定在成都,具体的面经可以看安全岗春招面经总结,最后选择......
  • Java 中基本类型和字符串之间的转换-2023-1-2
    在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。其中,基本类型转换为字符串有三种方法:1.使用包装类的toString()方法2.使用String类的valueOf()......