Hi everyone,
This is the first time I use PYNQ-Z1 board. After getting the Reed-Solomon_Encoder IP from Xilinx and generating the Bitstream, I tried to upload it on my PYNQ-Z1 board but i received this error:
“Could not find IP or hierarchy axi_dma_0 in overlay”
PS: I’m pretty sure that I already inserted a DMA and connected it with the other components.
Hi Cathal,
thank you for your response. I did what you suggested but I got this (I made a new Python file and I chnaged rs_design by test_design but I did the same instructions)
Which version of PYNQ are you using?
I just noticed that you are not including the HWH with your .bit. Can you add that?
Can you post your block diagram?
I created my Vivado project using the PYNQ ZYNQ board part “xc7z020clg400-1” (because I have a PYNQ-Z1 board).
I did include the .hwh file with my .bit file. (I uploaded it in my jupyter folder where I created my python file)
Hey @marioruiz, so I did some changes and I tried the instruction you gave me and this is the output.
Now it can find the DMA but still can’t find the Reed-Solomon encoder.
Hi @marioruiz I tried to transfer data through the DMA like mentioned in the figure below.
At first, when I ran the function “run_kernel()”, it took more than 10 min and it didn’t finish running so I tried to reload the page but now when I run the function “run_kernel()” I get this error:
/usr/local/lib/python3.6/dist-packages/pynq/lib/dma.py in transfer(self, array)
120 raise RuntimeError(‘DMA channel not started’)
121 if not self.idle and not self._first_transfer:
→ 122 raise RuntimeError(‘DMA channel not idle’)
123 if self._flush_before:
124 array.flush()
Is you IP setting tlast when the compute ends? The DMA expects a tlast to finish moving data.
I suggest to include an ILA in the design to check if the output is correct.
@marioruiz was asking about TLAST. The DMA needs that signal to be part of the M_AXIS_OUTPUT channel.
If you go back and check, I think you should find a warning somewhere to say this is disconnected. If you have a lot of warning messages in Vivado it can be tedious to check them all, but it can be worth doing this if you have a problem.
I think this is included by default (you can check by expanding the M_AXIS_OUTPUT port):
What configuration setting did you use for the IP, if any?
If you double click this IP you can configure it. I notice that m_axis_output_tready doesn’t seem to be enabled by default. This would prevent the IP from working with the DMA and causing the hang you see.
Hi @cathalmccabe,
I tried to follow your instructions you and @marioruiz , so I inserted the ILA system and configured my Reed Solomon IP to have the m_axis_output_tlast and connected it to my DMA.
When I validate the design I get this warning:
Hi @Oumayma,
The input and output stream in the IP are 8-bit wide, however the DMA output is 32-bit wide. This is the meaning of the warning you are seeing. You need to modify the DMA to match the data width of the IP.
I have the same problem as him, I can’t find the IP in jupyter. But I didn’t get an error when I used system ILA design valid, so what was wrong with me?