基于zynq的图像识别算法移植(二)

这一部分主要介绍一下Vivado HLS的开发流程

学习HLS最好的参考资料还是xilinx官方的ug871和ug902,但xilinx的教程实在太长了,我也只是挑着看,等空下来了一定要细品

一、HLS简介
Vivado HLS是Xilinx公司发布的面向新一代FPGA推出的高级综合工具,在HLS工具中,用户不用受传统HDL语言的限制,能够选择不同的高级语言(C、C++、system C)进行FPGA设计,经仿真、优化和综合等步骤后即可生成RTL(Register Transfer Level)级代码,大幅降低了产品的研发周期。HLS更注重系统级建模,是一种全新的设计方法,能够将设计效率大幅提高。
在这里插入图片描述
二、HLS加速opencv
HLS的C语言函数库提供了丰富的函数接口与数据结构,其中HLS Video Functions Library堪称FPGA的opencv,在ug902的第四章有这些接口函数的详细介绍。
在Zynq系列APSoC上使用opencv主要有以下四种方式:
在这里插入图片描述这里我主要采用的是第四种。不依赖于Arm进行一些重复运算,而是把算法中诸如滤波之类的需要大量计算的部分用硬件来实现,充分利用FPGA的并行特性。
zynq系列是ARM与FPGA集成的SoC,ARM与FPGA之间共享DDR,二者之间的通信与数据交换基于AXI4流协议,基于该协议可以实现视频处理模块之间的像素级通信。在使用HLS开发opencv应用的过程中,需要将输入定义为Video Stream接口,视频函数库采用hls::Mat数据类型, 因此还需要AXI4 video stream 到 VivadoHLS 中 hls::Mat<>类型的转换。

// 输入数据类型
typedef hls::stream<ap_axiu<24,1,1,1> >  AXI_STREAM;
//注:后面两个尖括号之间要加空格
// Convert AXI4 Stream data to hls::mat format
hls::AXIvideo2Ma
  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值