注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

highspeedlogic

FPGA/MATLAB/Simulink

 
 
 

日志

 
 

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现  

2014-09-29 15:17:08|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

专业技术网站:http://www.hslogic.com/

A我们首先通过MATLAB进行快速的算法效果仿真

拉普拉斯金字塔:

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

DTCWT算法:

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

       这里为什么使用MATLAB进行仿真呢?首先matlab可以进行快速的算法效果仿真验证,另外,在FPGA中,仿真的结果是以波形形式输出的,我们还需要使用matlab进行将波形转换为实际的图像的操作,所以这里使用matlab

B C_C++修改后Vivadohls工程

        这里,我们将MATLAB对应的算法转换为C++后,导入到vivado中,然后进行算法的C->RTL的映射。这里我们使用的软件版本为:VIVADO2012.4VIVADO14.4

        由于Vivado只支持C语言和C++语言的简单构架(不含虚拟函数,链表等高级语法),而原始的程序,具有较多高级语法部分,因此,需要较大程度的修改。这里,我们根据A步骤的MATLAB算法,分别进行软件语言的编程。这里原来的程序基本用不到,这里我改编为C语言(如果是C++,其实在没有高级语法的时候,完全和C一样,因此写成C++本质就是C)。这里,根据上面的算法验证,我们重新编写相关的软件程序。

        因此改动比较大,具体的设置步骤如下所示:

打开vivado hls软件,得到如下的界面:

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

        关于VIVADO HLS的相关设置,具体怎么导入,这里,我们的芯片选择如下所示:

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

      下面开始算法的映射操作:

      修改之后的代码,我们点击如下的按键:

     HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

系统会自动进行代码的mapping。。。。。

         如果程序没有问题,那么最后会得到如下的结果:

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

       然后在右边的explor窗口中会看到:

 

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

这个就是映射成功之后的结果,其中会产生verilog文件和vhdl文件。

        这里,对于两个算法,我们分别做相同的操作,然后这里hls中的一些设置如下所示:

Project Setting

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

Solution Setting

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

C最后再ISE或者Planahead中进行FPGA的设计

        这里,根据你的最初的要求,我们使用planahead来调用VIVADO HLS映射后的算法来实现。

        同样,两个算法的操作是类似的,首先建立PlanAhead工程:

 

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

添加Vivado HLS工程文件:

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

最后得到如下的界面:

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

这个就是planahead的设计界面,下面我们使用这个软件进行算法的仿真。

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

仿真之后,数据将自动保存到

1.txt

2.txt

 

D仿真波形的图像还原

      打开步骤三得到的波形数据,然后我们使用matlab进行数据的还原。运行D文件夹下的main1.m文件。仿真,就可以得到如下的结果图:

算法:

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

          从上面的仿真可以看到,采用vivado hls设计得到的仿真结果和实际理论仿真结果非常接近,其唯一的区别在于图像的最上面的有一条黑线,这是因为在fpga处理的时候,初始状态下,系统可能没有正确处理导致的,这是fpga图像处理的常见现象,是正常的。

E XPS_SDK

       这里,我们将使用xilinx公式的嵌入式软件进行操作,下面给出具体的步骤:

首先做PCORE生成操作。

进行Export RTL

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

成功之后,会产生:

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

impl文件。

      下面,我们开始使用XPSSDK进行嵌入式系统的开发和移植。

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

(你看下这个,这个就是我说的在建立XPS的时候,必须要硬件的原因了,因为没法避免需要设置板子的信息,或者芯片的信息,否则没法开始)

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

然后finish,产生硬件环境。

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

点击如下的模块:

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

会弹出如下的模块:

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

上面的是一些常用的接口,我们根据需要进行选择,这里则保持默认。

Pcore导入到xps系统中。

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

首先将这个目录

下的东西复制到如下的目录下:

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

然后:

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog 

 

软件会自动找到我们的pcore核。

HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog 

可以看到,我们设置的拉普拉斯金字塔。

然后,我们开始在xps中设置调用这个核。

双击这个核:

会出现如下的界面:

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

加入GPIO

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

设置为24RGB,各8位。

地址分配

直接地呢generate Address对于另外一个算法,也做同样的操作。

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

 

约束(如果不上板子,就不需要)

导入到SDK建立协同调试环境。

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

点如下的按键。。。。

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

如果前面所有的步骤均设置正确,那么就会成功弹出如下的窗口:

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

 

即告诉我们需要设置SDK的工作路径,

我在这里,把工作路径设置在如下的路径下:

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

然后会出现EDK的界面,,,,,

下面我们将工程导入到SDK中。

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

 

做入的设置:

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

此时会出现:

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

然后我们将实现的软件程序导入到testA

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

选择file system

 HighSpeedLogic专题: 基于VIVADO HLS和zyqn的图像处理算法实现 - highspeedlogicblog - highspeedlogicblog

 

导入成功之后,后面的就开始下载,然后是软件硬件协同调试了。。。。。

 

  评论这张
 
阅读(97299)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017