调通DMA系统集成中遇到的问题

先写出整个流程,一环一环来找问题所在:

整个流程:

1.用c语言cnn源码用HLS生成相应的IP core

2.在vivado中加入IP core,生成系统

3.生成比特流,放入SD卡,烧录入FPGA中

4.服务器编译对单片机的Bench程序,并用单片机运行


目前最有可能出现问题:

一、HLS生成的IP core有问题:

方法:

1.用HLS和骆工源码生成cnnL和simpleIO,放入系统实验是否出问题。

2.直接用骆工源码和FIFO实验是否出问题。

实验步骤:

1.用vivado搭建实验FIFO创建实验,整流程实验无误。

2.用骆工cnn IP替代FIFO IP

3.用cnnL IP替代FIFO IP

实验过程:

1.vivado搭建FIFO系统,生成比特流。

调通DMA系统集成中遇到的问题

运行成功

调通DMA系统集成中遇到的问题

这个结果表明fifo的IPcore正常工作

另外,如果用dmabench运行这个程序

调通DMA系统集成中遇到的问题

表示dmabench这个单片机的程序虽然不能调用fifo的IPcore,但是fifo的IPcore还是正常工作的。并且dmabench这个程序是正常的。

2.在vivado上用骆工cnn替代fifo模块

调通DMA系统集成中遇到的问题

运行失败

运行结果:用骆工的dmabench,

调通DMA系统集成中遇到的问题

用fifoBench

调通DMA系统集成中遇到的问题

这个结果说明对应的cnn的IP core根本没有工作,因为单片机没有实现对IP core的读和写。我们认为骆工给的IP core是没有问题的,所以我们从搭建系统之中找相应的问题。


二、我们基本断定为系统搭建问题??先排除系统搭建问题,再来排除IPcore的问题。

3.可能针对constant的位长有误,之前位宽为1,值为1,现在改为位宽4096,值为1,其他不变再试一下

依然运行失败,错误与上个实验一模一样,这表示IP core根本没工作

调通DMA系统集成中遇到的问题

调通DMA系统集成中遇到的问题

4.位宽为1,值为5,再试。

调通DMA系统集成中遇到的问题

运行失败。


5.更改rst的链接位置,我们忽然发现两种rst管脚,一种是system产生的,只给system reset模块提供中断,另一种由system reset模块产生,给其他所有模块产生中断。我们两种都试一下。

cnn的rst有以下几种选择:

接常数0

接system产生的rst

接system reset产生的rst

5.1我们可能需要cnn一直工作,所以我们将其接常数0试一下

调通DMA系统集成中遇到的问题

运行失败

5.2用cnn的rst接系统输出的rst

连接到系统之后就好像要出问题了,因为警告了

调通DMA系统集成中遇到的问题

我们将连线去掉,重新进行auto connection

多了个rst_rtl给了system reset模块。

调通DMA系统集成中遇到的问题

我们还用cnn的rst连到sys reset模块出的rst上,validate后没有warning与error,于是我们生成比特流。

调通DMA系统集成中遇到的问题

调通DMA系统集成中遇到的问题

调通DMA系统集成中遇到的问题

直接writing之后就没有反应,之前还有reading这个printf,难道加入中断不对导致了系统停止?并且点击回车之后,之前即使没有打出行也有反应,现在一点反应都没有。所以我们推断是rst加入不对。

5.3在此图基础上,我们继续把相应的换成FIFO,然后再试。

调通DMA系统集成中遇到的问题我们一直用的是AXI4-Stream Data FIFO

调通DMA系统集成中遇到的问题

调通DMA系统集成中遇到的问题

调通DMA系统集成中遇到的问题

实验失败,说明系统的搭建是有问题的,中断会一直中断。

6 processingsystem中管脚的问题,

去掉AXI中的GP0

重新搭系统连cnn

调通DMA系统集成中遇到的问题

这次生成了完全不一样的系统,与之前的系统不一样,只有一个interConnect

调通DMA系统集成中遇到的问题

调通DMA系统集成中遇到的问题

实验失败。

7.在processing system中axi中加入non secure enablement,使能GP0

调通DMA系统集成中遇到的问题

调通DMA系统集成中遇到的问题

调通DMA系统集成中遇到的问题

实验失败

8.骆工帮忙搭建系统cnnLuo,在与DMA相连的AXI上多使能了一个管脚,因为DMA是一个进一个出。(不知为什么看上去与之前的一样)

调通DMA系统集成中遇到的问题

调通DMA系统集成中遇到的问题

调通DMA系统集成中遇到的问题

终于成功!我们详细记录下正确的操作步骤。

FPGA实践教程:在Xilinx zynq上运行LeNet(三)系统搭建与烧录