PL端通过AXI DMA IP传图到PS端DDR已经成功。
上次遗留问题:第一帧数据传输时,会莫名其妙的多一个数据,
今天找出原因:是因为使用FIFO缓存数据时,FIFO类型选择错误,FIFO使用类型应该是FWFT。
值得注意的是,本次设计中,并没有发现DMA传输过程中前几个字节丢失的现象,我认为关键原因有两个,一个是将AXI DMA IP的复位信号与AXI数据模块的复位信号同步,另外一个是在PS端先执行DMA_SimpleTransfer函数,然后再产生GPIO口的上升沿(用于请求数据传输)。
本次设计中,PL传图到PS端DDR的机制为:
1、PS端通过设置GPIO口上升沿来通知PL端进行传图。
2、PL端检测到GPIO口上升沿后,开始将数据存入FIFO中。
3、FIFO端口上检测到Tready信号为1时,进行数据传输。
4、PS端设置传输字节个数为2048*2048*2个字节,AXI DMA允许最大传输为64MB,本次设计中一次传输8MB,绰绰有余。
5、当DMA收到Tlast信号后,认为一包数据传输结束。