HLS tutorial: buffer size question

Re: Tutorial: AXI Master interfaces with HLS IP

Hi
because the HLS IP uses local BRAM memory the size of buff[i] is limited. So is it possible to allocate py_buffer for eg. with 1 000 000 elements and then fill it all with multiple runs of HLS IP which each run write only 1000 elements to py_buffer?

I tried to achieve this by incrementing physical address over here →
my_ip.register_map.a_1 = py_buffer.physical_address
but it did not work.

And my second question, I filled the buff at the HLS IP with numbers from 0 to 17 but in py_buffer I can see only every second of them, what might be the reason for that?

My HLS IP reads data from FIFO and copies it to PS DRAM and also to a second FIFO. So by reading the second FIFO I know that data which HLS IP gets is correct.

thanks in advance

1 Like

because the HLS IP uses local BRAM memory the size of buff[i] is limited.
This is only partly correct.
This BRAM in the HLS IP are only to improve the data transfer through the AXI Master port by allowing burst transactions to be used.

If you need to transfer much larger blocks of data, then you would have a relatively small buff to read in a burst of data, process it, and write it out then read the next burst of data. This can be done efficiently in hardware.

In the HLS IP, you would modify the code would loop over the full address range.

Cathal

2 Likes