ZCU111 Transceivers and high speed selectIO support?

Hi, There,

Based on my work. I need high speed serdes (>10GHz) or high speed IO(~1GHz).
Do the PYNQ support Transceivers IP and high speed selectIO IP? If there are any examples? If not, could I use PYNQ to write the driver program through the register map? Thank you!

Best regards,

No, PYNQ doesn’t have direct support for this, but this is more because these are physical interfaces. There isn’t a lot of runtime software control of the interface itself. I think I am correct in saying that there is no register map for the transceivers (IP).

Yes, if you want to control anything from software you could write your own driver, but I think this would be very limited. You would probably only use a few GPIO. There are some optional interfaces (RIU, DRP) for the SelectIO that enable additional functionality that you could try write a PYNQ driver for.
I’m not sure how easy this might be or if you will run into problems. AFAIK the IP are supported in IPI. I’m not sure how any interfaces would show in the HWH. This is something you would need to check.

At the next level up from the interface is the IP that will send/receive data. In general this is what your software will be controlling and where you could use PYNQ. If this is what you are thinking about rather than the physical interfaces, we have some PYNQ support for this.
For example, there is support for the 100G CMAC IP.

If you do continue with this work I would be really interested to see what you do. It would be great if you could post back with an update and it would be great if you can share any drivers or an applications you create.


Dear cathalmccabe,

Thank you for your so detailed answer. These two days, I was considering your suggestion. Writing a library about transceivers is a little beyond my ability now. But I will consider it. If I have written it. I will share the library code.

Best regards,