I use ZCU102 development board PYNQ v3.0.1. In my bd, PS writes the physical address and data transmission instruction through AXI-Lite protocol, and the PL terminal will convert the data transmission instruction into an AXI Datamover IP instruction and start a data transmission. The data bit width of AXI Datamover is 64. AXI Datamover supports non-aligned transfer and store forward is not turned on.
When I use PYNQ, everything works normally; However, when I used PYNQ api(mesham/pynq_api: C API drivers for PYNQ FPGA board), the total transmission length of Datamover was halved, and only part of the data in the uint32 array was transmitted (index i%4=0 or 1). After I run in PYNQ and use ila to capture a correct transmission waveform, I compile and run the C program again, and the C program can work normally.
Whether the AXI DataMover and the S AXI HP on the PS side are bridged through SmartConnect or directly connected, the issue can still be reproduced.
Compared with PYNQ, PYNQ_api only needs bit files, and doesn’t care about tcl and hwh files. I suspect there may be a problem here. Has anyone encountered a similar situation?