概述
HLS工具
以个人的理解,xilinx将HLS(高层次综合)定位于更方便的将复杂算法转化为硬件语言,通过添加某些配置条件HLS工具可以把可并行化的C/C++的代码转化为vhdl或verilog,相比于纯人工使用vhdl实现图像算法,该工具综合出的代码的硬件资源占用可能较多,但并没有相差太大(见论文:基于HLS的 SURF特征提取硬件加速单元设计与实现),而纯人工用硬件描述语言实现一个复杂的图像处理算法要求十分深厚的FPGA功底,下面简单总结下好早之前做的一个在zybo开发板上的HLS图像处理通路。
硬件工程概述
demo工程是在xilinx公司实习的同学给的,现在在github上也有zynq_example
工程里已经有了xdma的通路和一个hls矩阵运算的例子,但hls矩阵运算例子里没用axi-stream总线。图像数据要通过axi-stream总线在各IP之间进行传输,而且这里需要vdma进行数据搬运,相对于xdma的配置更为复杂。然后在参考了”zynq base TRD”各个版本的例子的基础上修改了Block Design。vdma IP的配置和软件驱动参考的这个xilinx-video-capture(可能要翻墙)。经过数次漫长的综合最后完成了整个硬件的搭建和软件测试。。。