Hi @marioruiz
Thank you for your reply.
This is the Python code I am using.
def execute(self, test_data, batch_size, input_ch, input_dim, input_dim1, output_ch, output_dim, output_dim1):
input_mat = test_data[0:batch_size]
print(‘finished input_mat’)
print('input_mat = ', test_data[0:batch_size] )
input_val = np.append([0, batch_size, 0, input_ch, input_dim, input_dim1, output_ch, output_dim, output_dim1], input_mat.ravel())
print(‘finished input_val’)
print('input_val = ', [0, batch_size, 0, input_ch, input_dim, input_dim1, output_ch, output_dim, output_dim1], input_mat.ravel())
in_buffer = allocate(shape=(input_val.shape), dtype=np.int16)
out_buffer = allocate(shape=(9 + output_ch * batch_size * output_dim * output_dim1), dtype=np.int16)
for i, v in enumerate(input_val):
in_buffer[i] = v
print('input buffer = ', input_val.shape )
print('output buffer = ', 9 + output_ch * batch_size * output_dim * output_dim1)
start_time = time.process_time()
print(‘finished copying’)
self.axi_dma_0.sendchannel.transfer(in_buffer)
print(‘finished sendchannel.transfer’)
self.axi_dma_0.recvchannel.transfer(out_buffer)
print(‘finished recvchannel.transfer’)
self.axi_dma_0.sendchannel.wait()
print(‘finished sendchannel.wait’)
self.axi_dma_0.recvchannel.wait()
print(‘finished recvchannel.wait’)
end_time = time.process_time()
print("Elapsed Test Time: ", end_time-start_time)
output_mat = out_buffer[9:].reshape(batch_size, -1).astype(np.float32)
print(‘finished output_mat’)
@staticmethod
def checkhierarchy(description):
if ‘axi_dma_0’ in description[‘ip’]:
return True
return False
I put a comment to see the error code value here.
The senchannel input is 4098, but it should be 4096 in order to complete the DMA transaction. The AXI interface boundary access is limited to 4 KB per transaction. In my case, the answer is 4098. It is more than 2 bytes. Because this process is taking place internally, we are unable to modify and send the bytes that we require.

It keeps running without showing the result on recvchannel.wait()
I feel this information is enough to understand the issues. However, if you still want more info about vivado parameters, I am glad to share.
Thank You.