参考资料:xilinx大学计划
实验平台:ZYBO开发板
本次实验要做的是一个基于FPGA的简单图像处理程序, 共实现两个功能:
1.输出一个灰度图像的直方图。
2.将一个曝光不足的图像进行处理,使其对比度更大。
一、Vivado HLS 部分
首先我们用Vivado HLS来编写FPGA图像处理所用的IP核。
1.绘制直方图
1.首先编写相应的C++/C++语言程序,加入到Vivado HLS工程中,再编写相应的testbench代码进行编译测试。
代码很简单大家看一下就明白了。
注意到右侧DirecTIve窗口中的优化部分,分别表示doHist的输出接口使用AXI4-lite传输协议,inStream图像输入接口采用AXI4协议,输入数组histo存入bram中,loop_init循环进行展开。
2.点击Run C SimulaTIon进行对C/C++源文件进行编译测试。
输出的部分直方图文本文件
3.将testbench输出的直方图文本与MATLAB中的直方图文件进行对比验证算法无误后,点击Run C/RTL CosimulaTIon来进行协同验证。
4.验证通过后点击Export RTL生成ip核。
如上步骤所示,绘制直方图的IP核已经生成成功。
2.调节对比度
步骤如上所示,接口部分也同样使用AXI4协议,效果如下。
处理前
处理后
二、Vivado 综合部分
1.将IP核部署到FPGA
打开Vivado界面,并建立工程,随后创建Block Design。
在Block Design界面首先需要添加zynq7 processing system,点击ADD IP查找ZYNQ添加IP核。该IP核是系统所提供的连接ARM与FPGA的IP核,详情见: https://www.xilinx.com/products/intellectual-property/processing_system7.。.
随后点击Run Block AutomaTIon进行自动配置。
将之前HLS所生成的两个IP核导入工程中,同样的步骤将doHist、doHistStrech和AXI DMA添加到diagram中。
双击AXI DMA进行对IP核的配置,配置情况如图所示。
可以使用Run Connection Automation 来自动连接。完成后的效果图如下,缺少的ip核可以按照下图来添加。
完成后点击Validate Design进行验证。
随后就可以生成bitstream,下载到FPGA。
2.使用逻辑分析仪进行Debug
三、利用ARM来测试FPGA的加速效果
1.下载完成后点击File-》Export-》Export Hardware,d出对话框
勾选include bitstream然后点击OK。
2.点击File-》Launch SDK启动SDK
3.SDK开发环境如下,主要用于对ARM的开发,在之前生成ip核的时候会生成对应的驱动函数。
4.实验结果如下图所示
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)