Features Used

Not Used Used
4 user switches X
4 user LEDs X
5 user push buttons X
Micro SD card connector X
HDMI Sink and HDMI Source X
16 Bit VGA port X
Audio codec w/ three 3.5mm jacks X
10/100/1000 Ethernet PHY X
512MiB 800Mt/s DDR3 Memory X
Serial Flash X
Five Pmod ports X
Pmod for XADC signals X


The ZYBO HDMI project demonstrates the usage of the HDMI and VGA ports on the ZYBO. The behavior is as follows:

  • Video data streams in through the HDMI port and out through the VGA port.
  • A UART interface is available to configure what is output through VGA.
  • There are 3 display frame buffers that the user can choose to display or write to.



  • Basic familiarity with Vivado & SDK
    • This experience can be found by walking through our “Getting Started with Vivado” guide


  • ZYBO board
  • Micro-USB cable
  • HDMI cable
  • HDMI source
  • VGA monitor


  • Vivado Design Suite & Xilinx SDK 2015.4
    • Version 2015.4 must be used to generate the project


ZYBO HDMI IN Project Repository – ZIP GIT Repo

ZYBO HDMI OUT Project Repository – ZIP GIT Repo

How to...

1. Generate the Project

1.1) Download the project linked in the download section and unzip it in the location of your choosing.
1.2) Generate the hdmi_in project in the Projects folder by following this guide before continuing: How to Generate a Project from Digilent's Github

2. Build the Project

2.1) Click Generate Bitstream on the left hand menu towards the bottom. Vivado will run through both Run Synthesis and Run Implementation before it generates the bitstream automatically.

Note: If you want, you can click each step by itself in the order of Run Synthesis, Run Implementation and then Generate Bitstream.

3. Export to SDK

3.1) Export the microblaze project by going to File>Export>Export Hardware. Click the check box to Include the bitstream, and export it local to project. This will create a .sdk folder in your project directory. Afterwards, click File>Launch SDK to launch Xilinx SDK.

4. Import the SDK files

4.1) In your project Explorer window on the left side, click File>Import then expand the General tab and click Existing Projects into Workspace. Navigate to the Projects/hdmi_in folder, select the sdk folder, and click OK. In the Import window, click Finish to import the SDK project.

5. Program the FPGA

5.1) Click Xilinx Tools>Program FPGA and click Program. Xilinx SDK will then program the FPGA with a microblaze bit file.

6. Program the Microblaze Processor

6.1) Click on the videodemo folder and click the Green Run System Debugger on Local videodemo.elf button. The microblaze program will be programmed onto your Zybo board.

7. Run the Project

This portion will help you run the demo and observe all its features.

7.1) Setup

Plug one end of the HDMI cable into a video source and the other into the ZYBO HDMI port. Plug one end of your VGA cable into the VGA port of the ZYBO and the other into your VGA monitor.

7.2) Setting up UART communications

To see the UART communication channel, open a terminal program on your computer set to 112500 baud rate, 8 data bits, no parity bit and 1 stop bit. On startup, the ZYBO will display the HDMI settings menu, shown below.

7.3) HDMI display options

1 - Changes the resolution of the VGA output to the monitor.
2 - Changes the frame buffer to display on the VGA monitor.
3/4 - Stores a test pattern in the chosen Video Frame buffer.
5 - Starts/Stops streaming video data from HDMI to the chosen video frame buffer.
6 - Changes the video buffer that HDMI data is streamed into.
7 - Inverts and stores the current video frame into the next video frame buffer and displays it.
8 - Scales the current video frame to the display resolution and stores it into the next video frame buffer, then displays it.