Running MTS on Pynq on RFSoC 4x2

Hi everyone,

I am currently migrating a fully functional Baremetal design (Vitis) to PYNQ on an RFSoC 4x2. While most features work as expected, I am struggling to implement MTS (Multi-Tile Sync).

Even though MTS is enabled in my Vivado design and my xrfclk is correctly configured, I cannot access the MTS functions through the standard xrfdc Python package. When attempting to call mts_dac(), I encounter the following error: RuntimeError: Function XRFdc_MultiTile_Sync not in library (or XRFdc_MultiConverter_Sync).

It seems that the libxrfdc.so or the xrfdc_functions.c files included in the default PYNQ image (v3.1.1) are missing the necessary functions for Multi-Tile/Multi-Converter synchronization.

How can i get the access to these functions please. Thank you in advance.

Hi @Alexandre_Chfr , welcome to the PYNQ community.

The current version of xrfclk xrfdc doesn’t support the MTS functions. This is something I’m actively looking at, but no timeline yet unfortunately.

For the time being I’d have a look a the RFSoC-MTS GitHub repo. I’ve not been able to try this design out yet, but it does include a patch for the driver to add that functionality in, which may be helpful for now.

Thank you Josh, I will try the RFSoC-MTS patch soon and I’ll let you know if it works. Thanks for the help!.

Apologies @Alexandre_Chfr

I realised I said xrfclk instead of xrfdc. What I meant was that the current PYNQ xrfdc drivers don’t contain the MTS functions. These are available as a patch though in the RFSoC-MTS design.

I hope that didn’t confuse things for you.