我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 738|回复: 2

[技术文章] Vitis HLS跑通视觉加速例程

[复制链接]

该用户从未签到

25

主题

30

回帖

133

积分

二级逆天

积分
133

社区居民终身成就奖

发表于 2022-3-2 14:15:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1. 新建工程


                               
登录/注册后可看大图
Project命名


                               
登录/注册后可看大图
时钟平台选择
2. 添加文件
从Vitis_Libraries-master\vision\L1\examples\demosaicing中复制所有的源文件到新建工程的目录E:\HLS_File\Ex02_demosaicing


                               
登录/注册后可看大图
添加文件后
引用单个HLS内核文件,引用 Vision 库(-cflags/-csimflags)
-IE:/HLS_File/Vitis_Libraries-master/vision/L1/include -I./. -D__SDSVHLS__ -std=c++14


                               
登录/注册后可看大图
内核文件CFLAS/CSIMLAGS设置
引用 Test bench文件,引用用于C仿真的Vision库,引用OpenCV 包含文件(-cflags/-csimflags)
-IE:/HLS_File/Vitis_Libraries-master/vision/L1/include -ID:/opencv/build_win10/install/include -I./. -D__SDSVHLS__-std=c++14


                               
登录/注册后可看大图
Test Bench文件CFLAS/CSIMLAGS设置
3. C-Sim
本部分通过将 HLS IP 和 Testbench 设计发送给编译器进行编译和执行,来执行 HLS 流的 C仿真阶段。此命令用于设置编译器链接器标志和 testbench文件,以及:(官方例程需要修改TB文件:xf:: cv::read为cv::read;xf:: cv::write为cv::write)

引用 OpenCV包含和预编译的库目录
-ldflags “-L D:/opencv/build_win10/install/x64/mingw/lib -lopencv_imgcodecs3411 -lopencv_imgproc3411 -lopencv_core3411 -lopencv_highgui3411 -lopencv_flann3411 -lopencv_features2d3411”

包括用于验证测试台的图像作为主要功能的参数
-argv “E:/HLS_File/Vitis_Libraries-master/vision/data/128x128.png”


                               
登录/注册后可看大图
C仿真参数设置


                               
登录/注册后可看大图
C仿真结果
4. C到RTL综合
本部分执行Vitis HLS C到 RTL合成阶段。此阶段不需要标志或选项。


                               
登录/注册后可看大图
RTL综合结果
5. C/RTL协同仿真
本部分在合成后执行 Vitis HLS IP的 RTL 协同仿真。HLS会自动根据 C testbench 生成RTL testbench进行协同仿真,以下指令用于设置编译器链接器标志和testbench文件,以及:


                               
登录/注册后可看大图
Co-sim仿真参数设置


                               
登录/注册后可看大图
Co-sim仿真结果
6. 过程遇到问题及解决方案
error: no matching function for call to 'imread(char*&, int)'
解决方法:xf:: cv::read为cv::read;xf:: cv::write为cv::write

参考:no matching function for call to ‘transform - 程序园 (voidcn.com)
在G ++编译命令中包含-std = c ++ 0x的意义是什么?
解决方法:默认情况下,GCC编译C++代码为 gnu++ 98 ,这是一种奇怪的方式说C++ 98标准加上大量的gnu extenstions。你可以使用-std=?向编译器说明应遵循的标准。不要忽略 -pedantic ,否则会违反标准。你可以选择的选项:

standard with gnu extensions
c++ 98 gnu++ 98
c++ 03 gnu++ 03
c++ 11(c++ 0x)gnu++ 11(gnu++ 0x)
c++ 14(c++ 1y)gnu++ 14(gnu++ 1y)

warning: variable templates only available with -std=c++14 or -std=gnu++14
解决方法:修改C++编译设置-std = c ++ 0x为-std = c++14
回复

使用道具 举报

  • TA的每日心情
    开心
    28 分钟前
  • 签到天数: 186 天

    [LV.7]常住居民III

    2

    主题

    8897

    回帖

    1万

    积分

    三级逆天

    积分
    10354

    社区居民终身成就奖特殊贡献奖原创先锋奖

    QQ
    发表于 2022-4-21 07:17:12 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 179 天

    [LV.7]常住居民III

    44

    主题

    5329

    回帖

    4485

    积分

    二级逆天

    积分
    4485

    社区居民忠实会员社区劳模原创达人终身成就奖优秀斑竹奖特殊贡献奖原创先锋奖

    QQ
    发表于 2023-10-3 08:55:52 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    每日签到,有金币领取。


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    ( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

    平平安安
    TOP
    快速回复 返回顶部 返回列表