基于FPGA的简单图像处理程序,可实现两个功能

可编程逻辑

1366人已加入

描述

参考资料:xilinx大学计划

实验平台:ZYBO开发板

本次实验要做的是一个基于FPGA的简单图像处理程序, 共实现两个功能:

1.输出一个灰度图像的直方图。

2.将一个曝光不足的图像进行处理,使其对比度更大。

一、Vivado HLS 部分

首先我们用Vivado HLS来编写FPGA图像处理所用的IP核。

1.绘制直方图

1.首先编写相应的C/C++语言程序,加入到Vivado HLS工程中,再编写相应的testbench代码进行编译测试。

FPGA

代码很简单大家看一下就明白了。

注意到右侧Directive窗口中的优化部分,分别表示doHist的输出接口使用AXI4-lite传输协议,inStream图像输入接口采用AXI4协议,输入数组histo存入bram中,loop_init循环进行展开。

2.点击Run C Simulation进行对C/C++源文件进行编译测试。

FPGA

输出的部分直方图文本文件

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.。.

FPGA

随后点击Run Block Automation进行自动配置。

将之前HLS所生成的两个IP核导入工程中,同样的步骤将doHist、doHistStrech和AXI DMA添加到diagram中。

FPGA

双击AXI DMA进行对IP核的配置,配置情况如图所示。

FPGA

可以使用Run Connection Automation 来自动连接。完成后的效果图如下,缺少的ip核可以按照下图来添加。

FPGA

完成后点击Validate Design进行验证。

随后就可以生成bitstream,下载到FPGA。

2.使用逻辑分析仪进行Debug

三、利用ARM来测试FPGA的加速效果

1.下载完成后点击File-》Export-》Export Hardware,弹出对话框

FPGA

勾选include bitstream然后点击OK。

2.点击File-》Launch SDK启动SDK

3.SDK开发环境如下,主要用于对ARM的开发,在之前生成ip核的时候会生成对应的驱动函数。

FPGA

4.实验结果如下图所示

FPGA

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分