在Qsys中如何连接DMA和支持流的AVALON-MM外设?
时间:10-02
整理:3721RD
点击:
曾经在试过在11.0的Quartus II 中使用SOPC builder连接DMA和UART,可以实现UART的自动连续收发。
这种方式在网上也可以搜到很多其他人成功的例子,不过应该都是用SOPC builder实现的。
SOPC连接图如下
但是最近更新到了15.0的Quartus ,只能用QSYS搭建SOPC系统,重新建立工程如下:
但是这次却无法正常工作了,仿真发现开启DMA后传输是连续进行的。也就是说DMA没有等UART完成第一个字节的发送时序就已经将所有数据传输完了。也就是说流控制信号没有起作用。
我对比了使用QSYS与SOPC builder编译出的RTL图,果然在QSYS中,UART的流控制信号dataavailable,endofpacket,readfordata都是悬空的。
SOPC builder(流控制信号是有链接的)
qsys(流控制信号悬空了)
那么,在Qsys中该如何去使用DMA来控制UART这类外设呢?
我在其他论坛上看到有人建议使用SGDMA和AVALON-ST外设,但是不太搞得懂具体应该怎么操作。