I recently changed the verbose version of an AXI4Lite interface (every port declared, etc.) into one based on records and local package-defined data types. For those who may be familiar – it’s the RDL framework developed by the folks at DESY in Hamburg.
The addresses are assigned, everything builds. The block design and bitstream all import successfully to PYNQ. However, when I try to access this interface, no errors show up; the whole PYNQ system crashes and I have to power cycle the eval board I’m working on.
Any ideas where I can start looking to troubleshoot this? I don’t even know where to begin.
Is the delay_ctrl_top_0 suppose to use 4GB of memory?
Also, there is no need to manually create the MMIO object, the IPs are automatically assigned an MMIO object.
No it only needs to be like 16 bytes; 4 32-bit registers used to control the custom IP I’ve written, but there’s nothing else using the address space, and I assume vivado doesn’t route anything that isn’t tied to anything in synthesis. I manually create the MMIO object so I can just work with the address offsets.
Yep, so it turns out this System RDL-based interface generator doesn’t raise BVALID, so the processor subsystem crashes waiting for it. Is there an option in the MMIO library to not wait for BRESP? I don’t have access to the repository guts where these AXI signals are handled.
Well, I’ve found where the problem is, but I have no clue why the problem is.
I returned to my verbose AXI Lite interface and for some reason the exact same problem exists.
The images here show an ILA wired to the AXI port in question, and show how completely contradictory the two are. I can’t see any break in the chain; everything gets passed along correctly except for the BVALID signal, which is assigned correctly all the way up to the .bd file where it’s passed along with the rest of the AXI signals. The other AXI interfaces, coded nearly identically (with the only differences being the user-defined registers) work just fine.
Have you come across a problem like this before? I’m pretty stumped.