UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

取消
显示结果 
搜索替代 
您的意思是: 
Visitor yyt
Visitor
488 次查看
注册日期: ‎11-23-2018

AXI DMA 写过程丢失数据

各位好,我需要采用axi dma读写PS端ddr,连续写入N次,每次M个数(32bit),在写入第一次过程(第一个last之前),总是丢失最开始的4个数据。之后写入的数据没问题。

环境:vivado2016.4+xc7z020

AXI DMA 配置如下:
QQ浏览器截图20181123131800.png

比如,写入32*32 的矩阵,每个数据是32bit,写入的起始地址是0x10000000,观察到的结果如图:

写入的是0~31,第一次写入的结果显示为4~31,之后的写入都正常。

 

问题:为什么第一次写入会丢失4个数据,不管写入的是32*32、64*64、256*256等,均是如此?

 

 

微信图片_20181123134725.png

 

 

 

 

 

0 项奖励
4 条回复4
Xilinx Employee
Xilinx Employee
462 次查看
注册日期: ‎04-15-2011

回复: AXI DMA 写过程丢失数据

在第一次的时候,你能用ILA抓一下M_AXI_S2MM的信号,然后看看发出来的AXI起始地址,burst length等看看有没有问题?可以的话,可以把ILA文件上传上来,我这边看看。
另外,你配置AXI DMA用的是standalone application吗?还是在Linux配置?
-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 项奖励
Highlighted
Visitor yyt
Visitor
457 次查看
注册日期: ‎11-23-2018

回复: AXI DMA 写过程丢失数据

1.配置AXI DMA用的是standalone application

2.1抓取M_AXI_S2MM

第一次传输,发现数据是从4开始始,如图:

QQ浏览器截图20181123165628.png

2.2抓取S_AXI_S2MM

想抓取第一次的数据,0~7 都捕获不到,只能停在第二次的0~7,如图:

QQ浏览器截图20181123165700.png

 

发现,在S_AXI_S2MM端,每次都把下一次的前4个数据也发送给dma,但从第一次传输抓取结果来看,是从8开始,前面先发送了4个数据(4~7),但是0~3就丢了。

 

为了验证不是数据产生模块的计数问题,先把数据给fft_ip做32点fft,然后再通过dma写ddr,结果也是如此,第一次传输中前4个数据丢失。

 

添加两个.ila文件,一个dma之前抓取,一个在dma之后抓取

0 项奖励
Xilinx Employee
Xilinx Employee
442 次查看
注册日期: ‎04-15-2011

回复: AXI DMA 写过程丢失数据

请尝试抓一下一开始的0~7数据,确认0~7数据写入了DMA,时序上没有什么异常。
如果数据0~3确实写入了DMA,那可以在第一次和第二次完成后,把所有DMA的寄存器读出来,对比两次的寄存器,看看有什么差别,特别是状态寄存器。
-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 项奖励
Visitor yyt
Visitor
374 次查看
注册日期: ‎11-23-2018

回复: AXI DMA 写过程丢失数据

丢数据现象已经解决,但根本原因不清楚。

是这样,为了抓取到最开始的4个数据,分别进行一下尝试:

1.直接抓取,失败;

2.axi协议握手时增加1M个周期延迟,抓取失败;

3.PS端经GPIO进行使能主控,成功。

奇怪~

0 项奖励