Zybo HDMI Input Demo



The Zybo HDMI In 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.

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



  • 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 2016.4
    • Version 2016.4 must be used to generate the project


ZYBO HDMI IN Project Repository – ZIP GIT Repo

Download and Launch the Zybo HDMI Input Demo

Follow the Using Digilent Github Demo Projects Tutorial. Since this is a Vivado SDK Project, you can either directly launch SDK and import the hardware handoff, or you can generate a bitstream in Vivado before launching SDK. Select the hardware handoff options in the tutorial if you don't want to modify the project block design later. Return to this guide when prompted to check for additional hardware requirements and 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.

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.

Using the Zybo HDMI Input Demo

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 - Store one of two test patterns in the chosen video frame buffer.
5 - Start/Stop 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.

The demo in action - displaying the blended test pattern.