Hi, I am using the MTS overlay (using PYNQ v3.0.1) on RFSoC4x2 to perform measurements. I am able to successfully perform synchronized captures on the 3 channels, as required in my application. However, performing these captures with calls to ol.internal_capture() takes ~0.5 seconds, whereas the actual capture duration (64 kSamples at 4 GSPS) is only ~16 us. I have an automated script that reconfigures some external hardware between each measurement that takes <1 ms to run, so this 0.5 s capture overhead is the bottleneck in my ability to take measurements quickly.
Is this overhead expected, and if so, where does it come from? Maybe it’s due to saving the capture to memory, and could be reduced by modifying the MTS design to pipeline capturing and saving to several blocks of memory? Maybe it is due to Python/PYNQ and could be eliminated using a more bare metal approach? Or maybe it is due to some limitation of MTS itself?
Any insights into where this extra delay is coming from would be greatly appreciated, as would any suggestions on how to more quickly perform synchronized captures using the RFSoC.
Thank you so much!