Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
learn:programmable-logic:tutorials:arty-z7-hdmi-demo:start [2017/02/21 08:19] – [Prerequisites] Monica Ignatlearn:programmable-logic:tutorials:arty-z7-hdmi-demo:start [2017/07/20 20:35] (current) – [Downloads] Arthur Brown
Line 1: Line 1:
-====== Arty Z7 HDMI Demo ======+====== Arty Z7 HDMI Out Demo ======
  
 {{:learn:programmable-logic:tutorials:arty-z7-hdmi-demo:hdmiout.png?500|}} {{:learn:programmable-logic:tutorials:arty-z7-hdmi-demo:hdmiout.png?500|}}
 +
 ===== Overview ===== ===== Overview =====
 +
 +==== Description ====
 +
 +The Arty Z7 HDMI Out project demonstrates the usage of the HDMI out port on the Arty Z7 board. There are two projects, one for each variant of the board: Arty Z7-10 and Arty Z7-20.
 +The behavior is as follows:
 + 
 +  * Frames stream out through the HDMI port.
 +  * A UART interface is available to configure what is output through HDMI.
 +  * There are 3 display frame buffers that the user can choose to display.
 +
 +-------
 +
 ==== Features Used ==== ==== Features Used ====
  
Line 18: Line 31:
 ^ Quad-SPI Flash                        X           | ^ Quad-SPI Flash                        X           |
 ^ Two Pmod ports                        X           | ^ Two Pmod ports                        X           |
-^ chipKIT connector for XADC signals |              |+^ chipKIT connector for XADC signals |        |       |
 ^ USB HID Host                          X           | ^ USB HID Host                          X           |
- 
- 
-==== Description ==== 
- 
-The Arty Z7 HDMI project demonstrates the usage of the HDMI port on the Arty Z7 board. 
-. The behavior is as follows: 
-  
-  * Frames stream out through the HDMI port. 
-  * A UART interface is available to configure what is output through HDMI. 
-  * There are 2 display frame buffers that the user can choose to display or write to. 
- 
-------- 
  
 ===== Prerequisites ===== ===== Prerequisites =====
- 
-===Skills=== 
-  * **Basic familiarity with Vivado & SDK** 
-    *  //This experience can be found by walking through our "Getting Started with Vivado" guide// 
  
 ===Hardware=== ===Hardware===
Line 48: Line 45:
   * **Vivado Design Suite & Xilinx SDK 2016.4**    * **Vivado Design Suite & Xilinx SDK 2016.4** 
     * //Version 2016.4 must be used to generate the project//     * //Version 2016.4 must be used to generate the project//
 +  * **Digilent Board Support Files for Vivado** 
 +    * Follow the [[vivado:boardfiles|Vivado Board Files for Digilent 7-Series FPGA Boards]] guide on how to install Board Support Files for Vivado.
  
 ----- -----
 +
 ===== Downloads ===== ===== Downloads =====
-ZYBO Support Repository -- [[https://github.com/Digilent/ZYBO/archive/master.zip|ZIP]] [[https://github.com/Digilent/ZYBO|GIT Repo]]+Arty Z7-10 Hdmi Out Project Repository -- [[https://github.com/Digilent/Arty-Z7-10-hdmi-out/releases/download/v2016.4-3/Arty-Z7-10-hdmi-out-2016.4-3.zip|ZIP]] [[https://github.com/Digilent/Arty-Z7-10-hdmi-out|Git Repo]] 
 + 
 +Arty Z7-20 Hdmi Out Project Repository -- [[https://github.com/Digilent/Arty-Z7-20-hdmi-out/releases/download/v2016.4-4/Arty-Z7-20-hdmi-out-2016.4-4.zip|ZIP]] [[https://github.com/Digilent/Arty-Z7-20-hdmi-out|Git Repo]]
 ------- -------
  
-===== How to... ===== +===== Download and Launch the Arty Z7 HDMI Demo =====
- +
-==== 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: [[vivado:github|How to Generate a Project from Digilent's Github]]+
  
-==== 2. Build the Project ====+>1) Follow the [[:learn:programmable-logic:tutorials:github-demos:start:|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.1Click **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+>2) Plug one end of the HDMI cable into a video monitor and the other into the Arty Z7 HDMI out port
 > >
->Note: If you want, you can click each step by itself in the order of **Run Synthesis**, **Run Implementation** and then **Generate Bitstream**. +>{{:learn:programmable-logic:tutorials:arty-z7-hdmi-demo:hdmi_out_setup.jpg?500|}}
-+
->{{:basys3:buildflow.png?600|}}+
  
-==== 3. Export to SDK ==== +>3) Turn on your board and open a serial terminal (such as TeraTerm) on your computer to receive status messagesSetup the serial port to connect to the appropriate port for your boardwith baud rate of 1152008 data bits, no parity bit and 1 stop bit. Then return to the Github Project Tutorial to finish programming and running the demo.
- +
->3.1Export 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 .sdk folder in your project directory. Afterwardsclick **File>Launch SDK** to launch Xilinx SDK.+
 > >
->{{:zybo:exporthw.jpg?500|}}+>{{:learn:programmable-logic:tutorials:arty-z7-hdmi-demo:hdmiout.png?500|}}
  
-==== 4. Import the SDK files ====+===== Using the Arty Z7 HDMI Demo =====
  
->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. +==== HDMI Display Options ====
-+
->{{:zybo:import.jpg?300|}}{{:zybo:import2.jpg?300|}}+
  
-==== 5Program the FPGA ==== +>  1 - Changes the resolution of the HDMI output to the monitor. 
- +>  2 - Changes the frame buffer index. 
->5.1) Click **Xilinx Tools>Program FPGA** and click **Program**. Xilinx SDK will then program the FPGA with a microblaze bit file.+>  3/4 - Prints a test pattern in the chosen frame buffer: blended or color bar. 
 + - Inverts current frame colors. 
 + 6 - Inverts current frame colors seamlessly.
 > >
->{{:zybo:program.jpg?500|}} +>{{:learn:programmable-logic:tutorials:arty-z7-hdmi-demo:arty-z7-hdmi-blend.jpg?400|}} {{:learn:programmable-logic:tutorials:arty-z7-hdmi-demo:arty-z7-hdmi-bar.jpg?400|}}
- +
-==== 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. +
-+
-{{:zybo:program2.jpg?700|}} +
- +
-==== 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. +
-+
->{{:zybo:img_20151211_170349.jpg?500|}} +
- +
->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. +
-+
->{{:zybo:uart.jpg?500|}} +
- +
->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. +
-+
->{{:zybo:img_20151211_172212.jpg?500|}} +
  
 +{{tag>learn programmable-logic project arty-z7}}