0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

hls之xfopencv

倩倩 来源:Hack电子 作者:Hack电子 2022-09-09 15:07 次阅读
  1. 为什么要引入xfopencv

vivado本身集成了opencv库以及hls视频库了,opencv不能被综合导出为RTL电路,hls视频库的功能有所欠缺,因此引入xfopencv作为既可以被综合导出为RTL电路,也能够实现opencv丰富的功能。

2.软件环境

vivado 2019.1,包含vivado,hls,以及SDSOC套件。

3.下载

1.打开github直接搜索xfopencv,如图所示

d4aa65b8-2ffd-11ed-ba43-dac502259ad0.png

2.点击master->tags->选择与本身vivado匹配的版本(我的版本是2019.1,所以选择第一个)

d4d0d7c0-2ffd-11ed-ba43-dac502259ad0.png

4.使用(xfopencv/examples/canny)

1.解压下载的文档,创建HLS工程,右击source->add files,添加文件如如所示

d4fe2b58-2ffd-11ed-ba43-dac502259ad0.png

2.右击Test Bench->add files,添加如下文件,其中im0.jpg在data文件夹

d537b47c-2ffd-11ed-ba43-dac502259ad0.png

3.选中project->settings->syntheis 添加顶层文件,如图所示

d54f5460-2ffd-11ed-ba43-dac502259ad0.png

4.然后选中xf_canny_accel.cpp文件,选择Edit GFLAS Dialog,用于添加xfopencv库,添加内容

-I <路径 to your xfopencv> -D__(双下划线)SDSVHLS__(双下划线)。

d57051c4-2ffd-11ed-ba43-dac502259ad0.png

5.然后选择Simulation,对tb文件添加xfopencv库,方式同上,内容如下

-I <路径 to your xfopencv> -D__(双下划线)SDSVHLS__(双下划线) -std=c++0x

d5a96630-2ffd-11ed-ba43-dac502259ad0.png

5.综合以及C仿真

1.综合

由于xf_canny_accel.cpp文件中的XF_USE_URAM未被定义,删掉后综合才能不出错

原始代码

xf::Canny(_src,_dst1,low_threshold,high_threshold);  //xf::xfMat2AXIvideo(nms_output, _dst1);  #pragma SDS wait(1)  //xf::AXIvideo2xfMat(_dst1, nms_output);  xf::EdgeTracing(_dst1,_dst2);

更改以后的代码

xf::Canny(_src,_dst1,low_threshold,high_threshold);  //xf::xfMat2AXIvideo(nms_output, _dst1);  #pragma SDS wait(1)  //xf::AXIvideo2xfMat(_dst1, nms_output);  xf::EdgeTracing(_dst1,_dst2);  //xf::xfMat2AXIvideo(edge_output, _dst2);}

2.C仿真

选择im0.jpg作为输入图片

原始图像:

d60a80fa-2ffd-11ed-ba43-dac502259ad0.jpg

opencv处理图像:

d644cc9c-2ffd-11ed-ba43-dac502259ad0.png

xfopencv处理图像:

d68127dc-2ffd-11ed-ba43-dac502259ad0.png

以上为xfopencv的例子学习,关于xfopencv更加详细的介绍请参考xilinx官方文档ug1233

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RTL
    RTL
    +关注

    关注

    1

    文章

    377

    浏览量

    59064
  • OpenCV
    +关注

    关注

    29

    文章

    611

    浏览量

    40776
  • HLS
    HLS
    +关注

    关注

    1

    文章

    126

    浏览量

    23683

原文标题:hls之xfopencv

文章出处:【微信号:Hack电子,微信公众号:Hack电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AMD-Xilinx的Vitis-HLS编译指示小结

    流水线指令 pragma HLS pipeline 通过流水线提高性能是计算机架构设计的8个伟大思想之一,不管是硬件设计还是软件设计,流水线设计(pipeline)都能够用更多的资源来实现高速
    发表于 12-31 21:20

    HLS中组合电路对设计的影响

    该项目通过一个示例演示了 HLS 中组合电路对设计的影响。
    的头像 发表于 11-03 09:04 421次阅读
    <b class='flag-5'>HLS</b>中组合电路对设计的影响

    【KV260视觉入门套件试用体验】硬件加速—使用PL加速矩阵乘法运算(Vitis HLS

    四、硬件加速—使用PL加速矩阵乘法运算(Vitis HLS) 前四期测评计划: 一、开箱报告,KV260通过网线共享PC网络 二、Zynq超强辅助-PYNQ配置,并使用XVC(Xilinx
    发表于 10-13 20:11

    什么是DASH和HLS流?

    -自适应流- HTTP) HLS(HTTP- Live-流) 两种协议的工作方式相似——数据被编码(分割)成块并发送到客户端进行查看。 一、HLS(HTTP直播) HLS(即HTTP Live
    的头像 发表于 10-09 17:16 566次阅读
    什么是DASH和<b class='flag-5'>HLS</b>流?

    HLS中RTL无法导出IP核是为什么?

    请教一下,我在HLS里面要将以下程序生成IP核,C Synthesis已经做好了,但是在export RTL的时候一直在运行 int sum_single(int A int B
    发表于 09-28 06:03

    UltraFast Vivado HLS方法指南

    电子发烧友网站提供《UltraFast Vivado HLS方法指南.pdf》资料免费下载
    发表于 09-13 11:23 1次下载
    UltraFast Vivado <b class='flag-5'>HLS</b>方法指南

    Vitis HLS移植指南

    电子发烧友网站提供《Vitis HLS移植指南.pdf》资料免费下载
    发表于 09-13 09:21 0次下载
    Vitis <b class='flag-5'>HLS</b>移植指南

    将VIVADO HLS设计移植到CATAPULT HLS平台

    电子发烧友网站提供《将VIVADO HLS设计移植到CATAPULT HLS平台.pdf》资料免费下载
    发表于 09-13 09:12 2次下载
    将VIVADO <b class='flag-5'>HLS</b>设计移植到CATAPULT <b class='flag-5'>HLS</b>平台

    如何在Vitis HLS GUI中使用库函数?

    Vitis™ HLS 2023.1 支持新的 L1 库向导,本文将讲解如何下载 L1 库、查看所有可用功能以及如何在 Vitis HLS GUI 中使用库函数。
    的头像 发表于 08-16 10:26 621次阅读
    如何在Vitis <b class='flag-5'>HLS</b> GUI中使用库函数?

    使用VVAS调用HLS生成硬件加速器的主要流程

    本篇博客介绍 VVAS 框架所支持调用的 H/W(HLS) 内核。 H/W 内核指的是使用 HLS 工具生成的在 FPGA 部分执行的硬件功能模块。
    的头像 发表于 08-04 11:00 380次阅读
    使用VVAS调用<b class='flag-5'>HLS</b>生成硬件加速器的主要流程

    基于HLS之任务级并行编程

      HLS任务级编程第一篇文章可看这里: HLS之任务级并行编程 HLS的任务级并行性(Task-level Parallelism)分为两种:一种是控制驱动型;一种是数据驱动型。对于控制驱动
    的头像 发表于 07-27 09:22 796次阅读
    基于<b class='flag-5'>HLS</b>之任务级并行编程

    浅析HLS的任务级并行性

    HLS的任务级并行性(Task-level Parallelism)分为两种:一种是控制驱动型;一种是数据驱动型。
    的头像 发表于 07-27 09:21 621次阅读
    浅析<b class='flag-5'>HLS</b>的任务级并行性

    调用HLS的FFT库实现N点FFT

    HLS中用C语言实现8192点FFT,经过测试,实验结果正确,但是时序约束不到100M的时钟,应该是设计上的延时之类的比较大,暂时放弃这个方案,调用HLS中自带的FFT库(hls:fft
    的头像 发表于 07-11 10:05 657次阅读
    调用<b class='flag-5'>HLS</b>的FFT库实现N点FFT

    关于HLS IP无法编译解决方案

    Xilinx平台的Vivado HLS 和 Vitis HLS 使用的 export_ip 命令会无法导出 IP
    的头像 发表于 07-07 14:14 402次阅读
    关于<b class='flag-5'>HLS</b> IP无法编译解决方案

    调用HLS的FFT库实现N点FFT(hls:fft)

    HLS中用C语言实现8192点FFT,经过测试,实验结果正确,但是时序约束不到100M的时钟,应该是设计上的延时之类的比较大,暂时放弃这个方案
    的头像 发表于 07-07 09:08 1037次阅读
    调用<b class='flag-5'>HLS</b>的FFT库实现N点FFT(<b class='flag-5'>hls</b>:fft)