As a summary, here are my trials:
The corresponding designs can be found here:
1.pdf (62.5 KB) 1_modified.pdf (69.0 KB) 2.pdf (70.4 KB) 3.pdf (98.5 KB) 4.pdf (78.5 KB) 5.pdf (71.7 KB) 6.pdf (77.1 KB)
Here are my notes:
1- Don’t use Scatter/Gather.
2- If you want to use interrupt, use AXI Interrupt Controller.
3- if you’re making your custom IP in HLS, the input and output ports should be axis interfaces, while the return port should be s_axilite:
#pragma HLS INTERFACE axis port=input_stream
#pragma HLS INTERFACE axis port=output_stream
#pragma HLS INTERFACE s_axilite port=return bundle=CTRL_BUS
Afterwards, you should MMIO your CTRL_BUS address and only set the ap_start bit without waiting for the ap_idle or ap_done, and you should give the correct amount of input, otherwise it will hang.
Rashed