PYNQ 使用AXI-Stream封装自定义ip挂在AXI-DMA上传输数据报错 RuntimeError: DMA channel not started

文章讲述了在使用PYNQ进行硬件设计时,遇到DMA从PS到PL的数据传输错误,通过更换示例项目中的AXI-StreamDataFIFO解决了问题。作者还探讨了Tready信号在AXI协议中的角色,以及为何默认状态下Tready为高电平可能导致错误。
摘要由CSDN通过智能技术生成

参考下列PYNQ官方示例工程使用DMA进行PS和PL的交换,主要指通过MM2S将数据发给AXI-Stream口的自定义IP,但执行python时报错:RuntimeError: DMA channel not started

Tutorial: PYNQ DMA (Part 1: Hardware design) - Learn - PYNQ

将自定义ip换为example project里的AXI-Stream Data FIFO,能够正常工作,用ila抓取波形如下

发现Tready在默认情况下为高电平,但根据ip package自动生成的stream slave代码,Tready为低电平,将Tready改为一直为高,发现可以正常传输(但要保证不会错失数据)

但根据AXI协议,TVALID不能依赖TREADY,所以为什么会这样还不是很清楚


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值