栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

HLS第三十七课(XAPP1167,基于xfopencv实现图像处理)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HLS第三十七课(XAPP1167,基于xfopencv实现图像处理)

HLS Videolib能够实现的功能,xfopencv也都能实现。
下面重点实现几个之前的例子,看看从videolib移植到xfopencv需要注意哪些要点。

(一)CFLAGS
被编译的文件,例如TOP函数的CPP,或者子函数的CPP,以及TB的CPP,都需要添加CFLAGS。

"-D__SDSVHLS__  --std=c++0x"

设置CFLAGS:
方法一,在GUI中,在project setting中,设置各个文件的CFLAG。
方法二,找到vivado_hls.app文件,用vscode打开,修改CFLAGS。
例如,类似的描述块中,cpp文件,都添加上CFLAGS。




注意,在CSIM和COSIM中,必须添加–std=c++0x,
但是在RTL时,又要再去掉这个标志去完成综合。

推荐使用TCL模式建工程,这样,方便于设置每个CPP文件的CFLAG。
建好工程后,再使用GUI执行后续任务。

(二)searching path
由于xfopencvlib是我们自行下载的,HLS并不会找到xfopencv的搜索路径。
我们需要给HLS指定xfopencv的搜索路径。

方法一,vivado_hls.app文件,用vscode打开,修改testbench以及所有CPP的CFLAGS,添加

-ID:/Xilinx/Vivado/2019.1/xfopencv/include

注意不要有空格。

方法二,修改CDT user setting entry。

(三)namespace
之前使用的hls::Mat,现在改为使用xf::Mat。
注意,xf::Mat没有重载<<和>>,只能使用read和write函数。

hls videolib中的14个接口函数,只保留了两个在xfopencv中。
cvMat2AXIvideo
AXIvideo2cvMat
这是用在CSIM中的函数。
在RTL中使用的,是
xf::AXIvideo2xfMat
xf::xfMat2AXIvideo
替代之前的hls video lib中的等价函数。
使用它们,需要包含
common/xf_infra.h文件。这个文件里已经包含了hls_stream.h文件,所以不需要显式包含hls_stream.h了。

(四)编码风格
在HLS域中编程时,我们往往会使用typedef预先定义好需要的类型,然后再使用。
在XF域中编程时,我们往往选择直接在代码行中具象实例化一个模板类或者模板函数,统一使用预定义的常量宏。
两种风格都是可取的。

但是前一种风格下,好处在于逻辑更清晰,坏处在于,大量使用了模板参数推断,这依赖于编译器。
后一种风格下,模板参数全部显式手工完成,代码更严谨。

+++++++++++++++++++++++++++++++++++++++++
首先是定义自己的top.h文件。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/429424.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号