Hi @NNUT,
Did you review this tutorial?
What you see in the register map is the control register of your IP. in
and out
are write-only arguments in your accelerator from the point of view of the PS. So, you need to pass a reference to memory where you want to read/write. Once you start your IP, it will issue transactions to read/write from memory independently from the PS.
From the tutorial above: To be really clear, a (in your case in
and out
) will be an AXI Master interface, but we can write the memory offset to a register on the AXI Slave interface…
- This is the current solution that could find to the “write-only” issue [reply made by [marioruiz] at the bottom of the post]: Pynq 2.7 HLS registers write-only?
These arguments are write-only and you should not read from them.
- All data is written into HLS “in” input via register 0x10
- All data is written out of HLS “out” output via register 0x1C
This is not correct, you are only writing the reference (physical address) where that data is allocated.
- Also, semi off-topic, how do I read the address space for the HLS IP in jupyter notebooks? Not the register_map.
I suppose you mean the result (out) of your IP. The data will be available in the output buffer you allocate in the Python code.
- Why do I do a write the same way to input the data to HLS and output the data from HLS? The semantics of the register_map write() are strange to me. I also couldn’t understand how to get read() to work.
Refer to the tutorial and answer above (4th paragraph).
- Is there a better way to do this? Am I doing this in a recommended way? Is there anything I should do differently?
This is the correct way, but I think your understanding of how this works is not correct.
Mario