How can send a command from PS to PL?


I’m very new to FPGA design, and it’s my first attempt at deploying a design on an FPGA. Currently, I’m working with a PYNQ Z2 board. I’ve developed a simple RISC-V processor using HLS and exported it as an IP block.

Now, I instantiate this IP block on the Vivado IP integrator. My objective is to control this IP block using the PS. According to the documentation, the PYNQ Z2 board is equipped with a Cortex A9 processor within the PS.

My goal is to send commands from the Cortex A9 to my IP block (RISC-V processor), which will then execute instructions based on these commands. Does anyone have any insights or suggestions on how I can achieve this?

Thank you.

1 Like

The easiest way to communicate between the PS and the PL is with the GPIO AXI IP. There are some examples in this lab I’m attaching.
Lab 8 - Digital Oscilloscope.pdf (1.4 MB)


Your example is very interesting. Can you upload the mem_control.v file?

Sorry for the delay. Here is the file.
mem_control.v (5.0 KB)

BTW, here’s the notebook, .bit, and .hwh files for the overlay.
lab_8.bit (3.9 MB)
lab_8.hwh (385.1 KB)
lab8_9.ipynb (261.0 KB)