Pulse generator using transceivers with Pynq

Hey guys!

Took me a bit to do this and I’ve found very little references on this matter online, so I decided to publish my design here.

For my applications I needed a digital pulse generator with multiple channels where I could control pulse width, pulse number, and relative delay between channels. Yes, commercial solutions exist, but from my experience they are not too reliable in some aspects, or are just too expensive. So, of course, immediate solution is to create my own using the ZCU102 that we had at the lab I’m working in.

Moreover, I needed this system to be controllable by a non-FPGA person, so Pynq was the first thought there. From there I created this system that I called zPulse, which is just a couple of memories mapped to the Transceiver Wizard of the ZCU102.

To install Pynq on this board, I just followed the tutorial within GitHub - ATchelet/ZCU102-PYNQ to do the installtion through Ubuntu 20.04.

I uploaded the entire Vivado project and Pynq code inside GitHub - bmatiasruben/zPulse: Pynq-based pulse generator for the ZCU102 platform. Can in principle be expanded to any Zynq Ultrascale+ board with transceivers available..

Hope it can be useful for someone!

2 Likes