Abstract: In this tutorial, ZedBoard is used to implement GPIO via EMIO. Here, the GPIOs i.e., 5 buttons, 8 sliding switches, 8 LEDs, and Pmod A B C D which are not directly accessible in PS of ZedBoard are used. These GPIOs are controlled and monitored by PS through PL via EMIO interface.
Implementation: The block diagram illustrated in following figure provides an overview of implementation
The PS in ZedBoard can communicate with PL via EMIO interface. The PS uses Bank 2 ( Pins 54–85 ) and 3 ((Pins 86–117 ) to access and configure the EMIO interface. Each 32-bit bank independently controls 32 EMIO pins with each pin can be configured either input or output at a time. The EMIO pins are wired to PL, communicating with buttons, LEDs, sliding switches and PMODs.
The TCL file available in the following GitHub link can be used to generate the EMIO relatd hardware files (i.e., bitstream file) in Vivado. The SDK project containing the C driver files of EMIO interfaces are available in this GitHub Link. Each link has read me files instructing to build the complete project.
The video given below explains all the steps needed to implement GPIO via EMIO interfaces in ZedBoard.