Pynq to m_axi HLS IP

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…

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.

  1. 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).

  1. 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

1 Like