修改时间 05-20-2020 10:53 AM
你好,技术请教:
使用的是黑金AC7020开发板,想控制PL经AXI DMA向PS写数据。
框架如下图
Block Design如下图:
控制模块Ctrl为自写,向Data FIFO写数据,经AXI DMA发送至内存,但SDK调试时发现出了BUG,主要是AXI DMA模块出现错误中断,此后不能再传输数据,即不再进入DMA中断。
项目文件:大概70MB,链接: https://pan.baidu.com/s/1IrIrCbJBVJXuwJUjOKSG7Q 提取码: kmxc。也可见下面多个回复的多个附件,共5个。
想咨询两个问题:1、到底哪里出现了问题,整个框架的问题还是Ctrl模块的问题么?2、能提供解决思路么?
非常感谢!
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
之前的帖子被置为垃圾帖,且上个账户不能发帖了,不知道为什么,技术请教也不行么,购买了XILINX的产品不懂的地方请教一下论坛大佬都不行么。希望这个帖子不要被删了,上传文件不容易。
所以不能给之前的大佬进行回复,抱歉。
暂回复见下:
2020.05.20 9:25am
@sdyang ,你好,
“你可以直接做回环测试,直接跑Xilinx 的Demo。”请问这个测试怎么做,目前仅可以做功能仿真。
功能仿真BD图和AXI4-Stream Data FIFO设置见下图:
仿真文件见附件,分别进行了两部分仿真:1、写满后读;2、边写边读(先写了一部分)。写满后读问题不大,但边写边读会出现count减少(TLAST的原因)。
写满后关闭写再读:
写一部分后边写边读:
现在关于ctrl这个IP的AXIS_M的接口有两个问题:1、TLAST可以任意设置么(就是传输一个packet可以任意大小么),有什么影响呢,特别是和AXI DMA Burst设置有什么关系呢?2、是否和TKEEP有关呢(之前TKEEP未使能,这里修改了ctrl,使其默认全高)?如果不设置是否可行?
非常感谢~~
2020.05.20 10:18am
@shengjie ,你好,
下面是第一次进入DMA RX中断时S2MM_DMA五个寄存器的值,DMA基地址0x40400000。
可以看到S2MM_DMASR=0x00005011,查看了一下该错误为DMAIntErr,好像是packet不匹配导致的,所以问题应该在ctrl模块的AXIS_M的接口有问题,应该是TLAST的问题(即一个Packet的设置好像需要匹配),该如何解决呢?
非常感谢~~