Genesys 2 HDMI Demo

Overview

Description

The Genesys 2 HDMI Demo project demonstrates usage of the Genesys 2's HDMI in and HDMI out ports. . The behavior is as follows:

  • A menu is displayed over UART at 115200 baud.
  • There are 3 video buffers that can hold video data, as well as an input pointer and an output pointer.
  • The input pointer chooses which display buffer to write to (Test pattern or input stream from HDMI in).
  • The output pointer chooses which display buffer to display through the HDMI out port.
  • The output resolution is controlled independent from the input data. This output resolution can be changed using the menu.

Important

The drawing functions (Functions 3, 4, 7, and 8) were designed for the Zynq processor. These functions run very slowly on the Microblaze processor, so it is advised not to use these functions for the time being. It is possible that the floating point calculations are slowing these functions down. This should be fixed in a later release.

Features Used

Not Used Used
8 User Switches X
8 User LEDs X
6 User Push Buttons X
128×32 Monochrome OLED Display X
USB-UART Bridge X
Fully Bonded 400-pin FMC HPC Connector X
Micro SD Card Connector X
HDMI Sink and HDMI Source X
VGA Connector X
Two four-lane DisplayPort Connectors X
Audio Codec w/ Four 3.5mm Jacks X
10/100/1000 Ethernet PHY X
1GiB 1800Mt/s DDR3 Memory X
Serial Flash X
Five Pmod Ports X
Pmod for XADC Signals X
USB HID Host X
USB 2.0 Host/Device/OTG PHY X

Prerequisites

Hardware

  • Genesys 2 FPGA board
  • 2 Micro-USB cables
  • Genesys 2 Power Supply
  • 1 or 2 HDMI-HDMI or HDMI-DVI Cables

Software

  • Vivado Design Suite 2016.4
    • The project must be generated in 2016.4
  • Xilinx SDK 2016.4
    • Newer versions can be used, but the procedure may vary slightly

Board Support Files

  • Genesys 2 Support Files

Downloads

Genesys 2 HDMI Demo Repository – ZIP GIT Repo


Download and Launch the Genesys 2 HDMI Demo

1) 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.
2) Turn on your board and open a serial terminal (such as TeraTerm) on your computer to receive status messages. Setup the serial port to connect to the appropriate port for your board, with a baud rate of 115200. Then return to the Github Project Tutorial to finish programming and running the demo.

Tip

You can connect your serial terminal to your board before the board is programmed, this will make sure that you don't miss any startup messages. If the demo is already running, you can restart the demo in SDK to make sure you get these messages.



3) In order to use the demo, you will need to plug in your HDMI cables to the Genesys 2's HDMI ports. Connect the HDMI TX port to a cable that connects through to a DVI or HDMI port on your monitor and the HDMI RX port to a cable that connects to a DVI or HDMI port on your computer or other source. These cables do not need to be connected until the demo is running, but it is recommended to set them up now. Note that some features of this demo only require that the HDMI TX port be connected to a monitor.


Using the Genesys 2 HDMI Demo

Tip

The scaling function (Functions 8) was designed for the Zynq processor. In its current state, this function run VERY slowly on the Microblaze processor, so it is advised not to use these functions for the time being. This should be fixed in a later release. <\WRAP>

1. View the Menu

Open a serial monitor (Tera Term, etc.) and configure it to work with a baud rate of 115200. When the program starts up you should see the following menu.

2. Change the Display Resolution (Option 1)

The output resolution is changed independently from the input resolution. You can choose the output resolution in this menu.

3. Change the Frame Buffer Index (Option 2)


Selecting option 2 will cycle between the 3 frame buffers to output to the monitor.
Selecting these will print a test pattern on the selected input video frame buffer.

5. Start/Stop Video Stream (Option 5)

This option will start or stop the video data stream from the HDMI input. When streaming, the HDMI input data will be displayed on the current video frame buffer.

6. Change Video Frame Buffer (Option 6)

This option will change the buffer that video input will stream into.

7. Grab Video Frame and invert colors (Option 7)

This option will grab the current frame from the HDMI input and invert the colors. The inverted frame will be output on the following display buffer.

8. Grab Video Frame and Scale to Display resolution (Option 8)

Tip

This will run very slowly on the Genesys 2.

This option will grab the current frame from the HDMI input and scale it to the current output resolution.