For my case, the function input is a (13,) shape float array. The output is a (2,) shape float array. Basically, it is a small neural network input and output.
The neural network is generated from the tool called ‘hls4ml’ that converts a keras model into hls code.
The generated code uses ap_fixed as input and output and I am trying to send data as float arrays and then convert to ap_fixed for generated code to run.
So now I have passed simulation, generated ip and bit file. From the notebook file, seems that it stucks its asterisk at dma output receiving step:
dma_out.recvchannel.transfer(out_buffer)
dma_out.recvchannel.wait()
Wondering if it has anything to do with the data type conversion or some other reason?
I have attached the program files and block design.
Thank you!
Also, I noticed that you instantiated the in and out buffers using np.float32. I am not sure about its impact because I have not done such a design in the past. Maybe safer to do integers?
That is usually needed when an IP requires a start signal. For your HLS IP, if you check the program comment generated by Vivado, you could find some register information about the generated IP. This is not required if you use your customized RTL IP.