Hello,
I have had this error when I am trying to learn how to use transfer to and fro from DRAM via AXI-DMA. I am attaching my Jupyter notebook code and block diagram. I am using avnet ultra-96 v2 board. I have gone through the solution mentioned in
The error is telling you the DMA is not idle, so the transfer() can’t start.
Do you get the error the first time you run this code, or do you get it after you run this code multiple times? I see you are at [76] cells that have been run.
Can you share the whole notebook, details of the hardware design, and board you are using, PYNQ version and any other relevant details?
Cathal
But could’ nt get it done.!
1 Like
Hi,
I suggest you use an AXI4-Stream Data FIFO. The tlast signal of the mm2s channel is not being used and this can be causing an error.
You can use this tutorial as a guideline
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# DMA tutorial: DMA to stream interfaces\n",
"\n",
"This overlay consists of two DMAs and an AXI Stream FIFO (input and output AXI stream interfaces). The FIFO represents an accelerator. A single DMA could be used with a read and write channel enabled, but for demonstration purposes, two different DMAs will be used. \n",
"\n",
"* The first DMA with read channel enabled is connected from DDR to IP input stream (reading from DDR, and sending to AXI stream).\n",
"* The second DMA has a write channel enabled and is connected to IP output stream to DDR (receiving from AXI stream, and writing to DDR memory).\n",
"\n",
"\n",
"![](images/dma_stream_example.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
This file has been truncated. show original
Mario
1 Like
Thanks Marioruiz,
I will try this solution and get back to you.
Hello Marioruiz,
I have corrected the mistake you have pointed out. I have created a tlast signal as shown in the diagram. After that, when I tried sending the data, My kernel ran for a long time but I couldn’t get any output. I have attached my modified block diagram.
1 Like
I suggest you use an AXI4-Stream Data FIFO.
The DMA also uses the keep signal. And this is missing in your design.
1 Like
Where is the keep signal in the AXI4-Stream Data FIFO.
I could not find it in the disabled ports as well when I opened the DMA IP.
@abdyoyo
From what i understand keep is only used when unaligned transfer.
If aligned TRX no reason to use keep signal.
ENJOY~
1 Like
Thanks Brian.
The TRX is aligned as we are getting the data in frames perfectly.