1、A 我们首先通过 MATLAB 进行快速的算法效果仿真拉普拉斯金字塔:DTCWT 算法:这里为什么使用 MATLAB 进行仿真呢?首先 matlab 可以进行快速的算法效果仿真验证,另外,在 FPGA 中,仿真的结果是以波形形式输出的,我们还需要使用 matlab 进行将波形转换为实际的图像的操作,所以这里使用 matlab。B C_C+修改后 Vivadohls 工程这里,我们将 MATLAB 对应的算法转换为 C+后,导入到 vivado 中,然后进行算法的C-RTL 的映射。这里我们使用的软件版本为:VIVADO2012.4 即 VIVADO14.4由于 Vivado 只支持 C 语言和
2、 C+语言的简单构架(不含虚拟函数,链表等高级语法),而原始的程序,具有较多高级语法部分,因此,需要较大程度的修改。这里,我们根据A 步骤的 MATLAB 算法,分别进行软件语言的编程。这里原来的程序基本用不到,这里我改编为 C 语言(如果是 C+,其实在没有高级语法的时候,完全和 C 一样,因此写成 C+本质就是 C)。这里,根据上面的算法验证,我们重新编写相关的软件程序。因此改动比较大,具体的设置步骤如下所示:打开 vivado hls 软件,得到如下的界面:关于 VIVADO HLS 的相关设置,具体怎么导入,这里,我们的芯片选择如下所示:下面开始算法的映射操作:修改之后的代码,我们点击
3、如下的按键:系统会自动进行代码的 mapping。如果程序没有问题,那么最后会得到如下的结果:然后在右边的 explor 窗口中会看到:这个就是映射成功之后的结果,其中会产生 verilog 文件和 vhdl 文件。这里,对于两个算法,我们分别做相同的操作,然后这里 hls 中的一些设置如下所示:Project Setting:Solution Setting:C 最后再 ISE 或者 Planahead 中进行 FPGA 的设计这里,根据你的最初的要求,我们使用 planahead 来调用 VIVADO HLS 映射后的算法来实现。同样,两个算法的操作是类似的,首先建立 PlanAhead
4、工程:添加 Vivado HLS 工程文件:最后得到如下的界面:这个就是 planahead 的设计界面,下面我们使用这个软件进行算法的仿真。仿真之后,数据将自动保存到1.txt和2.txtD 仿真波形的图像还原打开步骤三得到的波形数据,然后我们使用 matlab 进行数据的还原。运行 D 文件夹下的main1.m 文件。仿真,就可以得到如下的结果图:算法:从上面的仿真可以看到,采用 vivado hls 设计得到的仿真结果和实际理论仿真结果非常接近,其唯一的区别在于图像的最上面的有一条黑线,这是因为在 fpga 处理的时候,初始状态下,系统可能没有正确处理导致的,这是 fpga 图像处理的常
5、见现象,是正常的。E XPS_SDK这里,我们将使用 xilinx 公式的嵌入式软件进行操作,下面给出具体的步骤:首先做 PCORE 生成操作。进行 Export RTL:成功之后,会产生:impl 文件。下面,我们开始使用 XPS 和 SDK 进行嵌入式系统的开发和移植。(你看下这个,这个就是我说的在建立 XPS 的时候,必须要硬件的原因了,因为没法避免需要设置板子的信息,或者芯片的信息,否则没法开始)然后 finish,产生硬件环境。点击如下的模块:会弹出如下的模块:上面的是一些常用的接口,我们根据需要进行选择,这里则保持默认。将 Pcore 导入到 xps 系统中。首先将这个目录下的东西
6、复制到如下的目录下:然后:软件会自动找到我们的 pcore 核。可以看到,我们设置的拉普拉斯金字塔。然后,我们开始在 xps 中设置调用这个核。双击这个核:会出现如下的界面:加入 GPIO 口设置为 24,RGB ,各 8 位。地址分配直接地呢 generate Address 对于另外一个算法,也做同样的操作。约束(如果不上板子,就不需要)导入到 SDK 建立协同调试环境。点如下的按键。如果前面所有的步骤均设置正确,那么就会成功弹出如下的窗口:即告诉我们需要设置 SDK 的工作路径,我在这里,把工作路径设置在如下的路径下:然后会出现 EDK 的界面,下面我们将工程导入到 SDK 中。做入的设置:此时会出现:然后我们将实现的软件程序导入到 testA选择 file system导入成功之后,后面的就开始下载,然后是软件硬件协同调试了。