Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| programmable-logic:genesys-zu:demos:hdmi [2022/09/12 12:48] – changed forum.digilentinc.com to forum.digilent.com jeff.greenberg_ni.com | programmable-logic:genesys-zu:demos:hdmi [2022/10/04 11:38] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Genesys ZU-5EV HDMI Demo ====== | ||
| + | {{ : | ||
| + | ---- | ||
| + | ==== Description ==== | ||
| + | The Genesys ZU-5EV HDMI Demo project demonstrates usage of the Genesys ZU-5EV' | ||
| + | |||
| + | * A menu is displayed over UART at 115200 baud rate. | ||
| + | * Information about the HDMI RX/TX Stream along with the settings for the GT transceivers and PLL can be accessed from the menu. | ||
| + | * When only the HDMI TX port is connected, the project enters in standalone mode, generating a color bar on the display. | ||
| + | * From the menu, the color bar can be forced to re-appear on the display. | ||
| + | * The resolution can be changed on the fly, but the user needs to make sure that he is using the correct pixel clock. More information on how to calculate the correct clock for the desired resolution can be found in the [[https:// | ||
| + | * After calculating the resolution, the IC46 (SI5342A-D-GM) needs to be reprogrammed accordingly. More information, | ||
| + | * The frame rate can be changed. The default value is 60 Hz. | ||
| + | * The color depth can be changed. The default value is 8bpp. | ||
| + | * The color space can be changed. The default color space is RGB. | ||
| + | * When both HDMI ports are connected, and there is a valid HDMI source, the project will automatically enter in pass-through mode and the Si5342A-D-GM will generate a jitter-attenuated reference clock to drive the HDMI Transmitter Subsystem with a phase-aligned version of the HDMI RX Subsystem HDMI RX TMDS Clock. Thus, the image from the HDMI source will be outputted | ||
| + | * The pass-trough mode can be forced from the menu. | ||
| + | * There is a GT & HDMI TX/RX log option that can be used for debugging. For example, for the HDMI TX log, each message is bonded to a specific interrupt. Thus, for debugging, the entire chain of events can be reiterated and compared with the one listed in [[https:// | ||
| + | * The EDID can be set and displayed. | ||
| + | * The audio can be muted/ | ||
| + | * The output video pattern can be changed. The default setting is for color bar. | ||
| + | * The TX mode can be forced in HDMI or DVI. | ||
| + | |||
| + | ---- | ||
| + | ===== Inventory ===== | ||
| + | |||
| + | * Genesys ZU-5EV FPGA board | ||
| + | * 1 Micro-USB cables | ||
| + | * Genesys ZU-5EV Power Supply | ||
| + | * 1 or 2 HDMI-HDMI or HDMI-DVI Cables | ||
| + | * 1 HDMI Display | ||
| + | * 1 HDMI Source (Used only in pass-through mode) | ||
| + | |||
| + | ---- | ||
| + | ===== Download/ | ||
| + | |||
| + | |||
| + | First and foremost, any user can access this demo using two different approaches. The first one is by importing the release archive through Vitis GUI. This method doesn' | ||
| + | |||
| + | **Note:** //Releases - consisting of a set of files for download - are only compatible with a specific version of the Xilinx tools, as specified in the name of the release (referred to as a //release tag//). In addition, releases are only compatible with the specified variant of the board. For example, a release tagged " | ||
| + | |||
| + | The latest release version for this demo is highlighted in green. | ||
| + | |||
| + | **Important: | ||
| + | |||
| + | ^ Board Variant | ||
| + | | Genesys ZU-5EV | ||
| + | |||
| + | ---- | ||
| + | Instructions on the use of the latest release can be found in this dropdown: | ||
| + | |||
| + | |||
| + | --> Using the Latest Release # | ||
| + | <WRAP group> | ||
| + | |||
| + | {{page> | ||
| + | |||
| + | --> Set up the Genesys ZU-5EV # | ||
| + | |||
| + | --> Set up the Genesys ZU-5EV for Standalone Mode# | ||
| + | Plug the HDMI cable into the HDMI TX port of the Genesys ZU. Connect one end of the cable to the HDMI TX port, and the other one to a DVI or HDMI port of your monitor. This cable does not need to be connected until the demo is running, but it is recommended to set it up now. Please see image bellow. | ||
| + | |||
| + | {{ : | ||
| + | < | ||
| + | //Figure 1: HDMI Cable Connections in standalone mode // | ||
| + | < | ||
| + | Plug the microUSB programming cable into the Genesys ZU-5EV' | ||
| + | <-- | ||
| + | |||
| + | |||
| + | --> Set up the Genesys ZU-5EV for Pass-Through Mode# | ||
| + | Connect the HDMI cables to the HDMI ports of the Genesys ZU. Connect one end of the first cable to the HDMI TX port, and the other one to a DVI or HDMI port of your monitor. Then, connect one end of the second cable to the HDMI RX port, and the other end to your HDMI source. These cables do not need to be connected until the demo is running, but it is recommended to set them up now. Please see image bellow. | ||
| + | |||
| + | {{ : | ||
| + | < | ||
| + | //Figure 2: HDMI Cable Connections in pass-through mode // | ||
| + | < | ||
| + | Plug the microUSB programming cable into the Genesys ZU-5EV' | ||
| + | <-- | ||
| + | <-- | ||
| + | --> Launch the Vitis Baremetal Software Application# | ||
| + | |||
| + | <WRAP group> <WRAP column half> | ||
| + | First, many applications require that a serial console is connected to the board, so that standard output (from print statements) can be viewed. For this purpose, a serial terminal should be used. Use a serial terminal application to connect to the board' | ||
| + | |||
| + | **Note:** //While Vitis has a built in serial terminal included in its Debug view, it sends characters to a board on a line-by-line basis. Some software examples require the use of character-by-character reception of data. [[https:// | ||
| + | </ | ||
| + | {{ : | ||
| + | </ | ||
| + | ---- | ||
| + | <WRAP group> <WRAP column half> | ||
| + | Browse for the // | ||
| + | </ | ||
| + | {{ : | ||
| + | </ | ||
| + | ---- | ||
| + | <WRAP group> <WRAP column half> | ||
| + | Click on //Project// and select //Build Project//, or simply press //CTRL+B//. The build should take a couple of seconds. | ||
| + | </ | ||
| + | {{ : | ||
| + | </ | ||
| + | ---- | ||
| + | <WRAP group> <WRAP column half> | ||
| + | In the // | ||
| + | |||
| + | **Note:** //Once the project has been run at least once, you can use the green run button ({{: | ||
| + | </ | ||
| + | {{ : | ||
| + | </ | ||
| + | <-- | ||
| + | ---- | ||
| + | At this point, the demo is now running on your board. Refer to the [[# | ||
| + | ---- | ||
| + | Additional steps beyond here present how you can use the other archive provided in the release, containing the hardware project, to rebuild the Vivado project, and use a newly exported XSA file to update the platform in Vitis. | ||
| + | ---- | ||
| + | In order to modify and switch out the hardware platform for a baremetal demo, you should first open the Vivado project from the release. Extract the previously downloaded ' | ||
| + | ---- | ||
| + | |||
| + | {{page> | ||
| + | </ | ||
| + | <-- | ||
| + | |||
| + | ---- | ||
| + | Instructions on the cloning and the use of the latest git project can be found in this dropdown: | ||
| + | |||
| + | --> Using the Genesys ZU repository# | ||
| + | <WRAP group> | ||
| + | |||
| + | **Important: | ||
| + | |||
| + | **Note for Advanced Users:** //Further documentation on the structure of the [[https:// | ||
| + | ---- | ||
| + | |||
| + | --> Git for Windows# | ||
| + | |||
| + | <WRAP group> <WRAP column half> | ||
| + | For Windows OS we need to emulate Git from command line. For this please download and install [[https:// | ||
| + | </ | ||
| + | {{ : | ||
| + | </ | ||
| + | <-- | ||
| + | --> Clone the project repository and initialize all the submodules.# | ||
| + | |||
| + | <WRAP group> <WRAP column half> | ||
| + | First, copy the https or ssh URL from [[https:// | ||
| + | |||
| + | |||
| + | </ | ||
| + | {{ : | ||
| + | </ | ||
| + | ---- | ||
| + | <WRAP group> <WRAP column half> | ||
| + | Create a folder, in a location of your choice on the computer. Right-click from within and select ''// | ||
| + | |||
| + | </ | ||
| + | {{ : | ||
| + | </ | ||
| + | ---- | ||
| + | <WRAP group> <WRAP column half> | ||
| + | First, we have to clone the root repository. For this, please run the fallowing command. | ||
| + | < | ||
| + | Navigate inside the repository. | ||
| + | < | ||
| + | |||
| + | We use se the following commands within the root repository to check out the " | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | Navigate to the " | ||
| + | < | ||
| + | Initialize and update the embeddedsw submodule. | ||
| + | < | ||
| + | < | ||
| + | |||
| + | </ | ||
| + | {{ : | ||
| + | </ | ||
| + | ---- | ||
| + | <-- | ||
| + | --> Recreate a Vitis Workspace from Source # | ||
| + | <WRAP group> | ||
| + | **Important: | ||
| + | |||
| + | {{page> | ||
| + | |||
| + | <WRAP group> <WRAP column half> | ||
| + | With Vitis open, in the menu bar at the top of the window, use the **Xilinx -> XSCT Console** option to launch the Xilinx Software Command-line Tool. | ||
| + | </ | ||
| + | {{ : | ||
| + | </ | ||
| + | ---- | ||
| + | <WRAP group> <WRAP column half> | ||
| + | In the XSCT Console, if you used the software archive' | ||
| + | < | ||
| + | |||
| + | If you did not use the ws folder, find the path to the extracted archive, and enter the commands below. Note that all slashes in the path must be forward slashes ("/" | ||
| + | < | ||
| + | |||
| + | The checkout process may some time, though not more than a few minutes, as the projects are recreated and built. When complete, the " | ||
| + | </ | ||
| + | {{ : | ||
| + | </ | ||
| + | ---- | ||
| + | </ | ||
| + | <-- | ||
| + | |||
| + | --> Set up the Genesys ZU-5EV # | ||
| + | |||
| + | --> Set up the Genesys ZU-5EV for Standalone Mode# | ||
| + | Plug the HDMI cable into the HDMI TX port of the Genesys ZU. Connect one end of the cable to the HDMI TX port, and the other one to a DVI or HDMI port of your monitor. This cable does not need to be connected until the demo is running, but it is recommended to set it up now. Please see image bellow. | ||
| + | |||
| + | {{ : | ||
| + | < | ||
| + | //Figure 1: HDMI Cable Connections in standalone mode // | ||
| + | < | ||
| + | Plug the microUSB programming cable into the Genesys ZU-5EV' | ||
| + | <-- | ||
| + | |||
| + | |||
| + | --> Set up the Genesys ZU-5EV for Pass-Through Mode# | ||
| + | Connect the HDMI cables to the HDMI ports of the Genesys ZU. Connect one end of the first cable to the HDMI TX port, and the other one to a DVI or HDMI port of your monitor. Then, connect one end of the second cable to the HDMI RX port, and the other end to your HDMI source. These cables do not need to be connected until the demo is running, but it is recommended to set them up now. Please see image bellow. | ||
| + | |||
| + | {{ : | ||
| + | < | ||
| + | //Figure 2: HDMI Cable Connections in pass-through mode // | ||
| + | < | ||
| + | Plug the microUSB programming cable into the Genesys ZU-5EV' | ||
| + | <-- | ||
| + | <-- | ||
| + | --> Launch the Vitis Baremetal Software Application# | ||
| + | |||
| + | <WRAP group> <WRAP column half> | ||
| + | First, many applications require that a serial console is connected to the board, so that standard output (from print statements) can be viewed. For this purpose, a serial terminal should be used. Use a serial terminal application to connect to the board' | ||
| + | |||
| + | **Note:** //While Vitis has a built in serial terminal included in its Debug view, it sends characters to a board on a line-by-line basis. Some software examples require the use of character-by-character reception of data. [[https:// | ||
| + | </ | ||
| + | {{ : | ||
| + | </ | ||
| + | ---- | ||
| + | <WRAP group> <WRAP column half> | ||
| + | Browse for the // | ||
| + | </ | ||
| + | {{ : | ||
| + | </ | ||
| + | ---- | ||
| + | <WRAP group> <WRAP column half> | ||
| + | Click on //Project// and select //Build Project//, or simply press //CTRL+B//. The build should take a couple of seconds. | ||
| + | </ | ||
| + | {{ : | ||
| + | </ | ||
| + | ---- | ||
| + | <WRAP group> <WRAP column half> | ||
| + | In the // | ||
| + | |||
| + | **Note:** //Once the project has been run at least once, you can use the green run button ({{: | ||
| + | </ | ||
| + | {{ : | ||
| + | </ | ||
| + | <-- | ||
| + | ---- | ||
| + | At this point, the demo is now running on your board. Refer to the [[# | ||
| + | ---- | ||
| + | Additional steps beyond here present how you can use the other archive provided in the release, containing the hardware project, to rebuild the Vivado project, and use a newly exported XSA file to update the platform in Vitis. | ||
| + | ---- | ||
| + | In order to modify and switch out the hardware platform for a baremetal demo, you should first open the Vivado project from the release. Extract the previously downloaded ' | ||
| + | ---- | ||
| + | |||
| + | {{page> | ||
| + | </ | ||
| + | <-- | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Functionality ===== | ||
| + | |||
| + | ==== 1. Standalone mode ==== | ||
| + | > In standalone mode you should see the fallowing color bar. | ||
| + | > | ||
| + | >{{ : | ||
| + | |||
| + | ==== 2. Pass-through mode ==== | ||
| + | > In pass-through mode, you should see the HDMI image generated by the HDMI Source. For example, in cases in which the HDMI source is a laptop, you should see, depending on the case, the laptop display being duplicated or extended. | ||
| + | > | ||
| + | |||
| + | ==== 3. View the Menu ==== | ||
| + | >If your serial monitor (Tera Term, etc.) was open and it was correctly configured to work with a baud rate of 115200, you should see the following menu when the program starts up. | ||
| + | > | ||
| + | >{{ : | ||
| + | > | ||
| + | > | ||
| + | |||
| + | ==== 4. Going through all the menu options ==== | ||
| + | |||
| + | >You can select each individual option by clicking on its corresponding letter. | ||
| + | > | ||
| + | |||
| + | ===== Additional Resources ===== | ||
| + | |||
| + | All materials related to the use of the Genesys ZU can be found on its [[/ | ||
| + | |||
| + | For a walkthrough of the process of creating a simple baremetal software project in Vivado and Vitis, see [[programmable-logic: | ||
| + | |||
| + | For technical support, please visit the [[https:// | ||
| + | |||
| + | {{tag> | ||

