How to send data from python to the pynq board?

I want a python interface where I can input some sequence of bits and it should go to the fpga board. The data needs to be inputted to a custom IP. What are the steps required to do this?

Hello and welcome to the community of PYNQ =]

The easiest and lowest effort way is to use GPIO as bytes or words load and capture via some logic.
And a simplest ready and busy logic to indicate it is go or no go.

Other than that you need more knowledge on HDL design and HLS.

Video example that may be of use here; using PS GPIO:

There are other ways to do this depending on what you need, and your IP.


This is similar to what I want, except that the data I want to transfer is more than 64 bits (136 bits, to be precise). How can that be achieved?

Hello, could you please elaborate on how this supposed to be done. My design requires a 136-bit input which I want to be given from python code and the rest of the pins of my design will be mapped to the peripherals of the board. I have attached a picture of my design.


I saw this tutorial and it is similar to what I want, besides that I want to input an array. One thing though is that the design in the tutorial has an AXILITE interface whereas my IP does not. Do I convert my IP to have an AXILITE interface, as that seems to be very cumbersome? Or is there any other method which I should follow?