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-in-demo [2017/03/01 17:18] – [Prerequisites] sbobrowiczlearn:programmable-logic:tutorials:arty-z7-hdmi-in-demo [2022/10/04 11:38] (current) – external edit 127.0.0.1
Line 4: Line 4:
 {{:learn:programmable-logic:tutorials:arty-z7:hdmi_in.png?500|}} {{:learn:programmable-logic:tutorials:arty-z7:hdmi_in.png?500|}}
 ===== Overview ===== ===== Overview =====
 +
 +==== Description ====
 +
 +The Arty Z7 HDMI In project demonstrates the usage of the HDMI in and out ports 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:
 + 
 +  * Video data streams in through the HDMI in port and out through the HDMI out 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 or write to.
  
 ==== Features Used ==== ==== Features Used ====
Line 23: Line 32:
 ^ USB HID Host                       |    X     |       | ^ USB HID Host                       |    X     |       |
  
 +-------
  
-==== Description ==== 
- 
-The Arty Z7 HDMI In project demonstrates the usage of the HDMI in and out ports 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: 
-  
-  * Video data streams in through the HDMI in port and out through the HDMI out 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 or write to. 
- 
-------- 
 ===== Prerequisites ===== ===== Prerequisites =====
  
Line 46: Line 46:
   * **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 =====
-Arty Z7 Support Repository -- [[https://github.com/Digilent/Arty-Z7/archive/master.zip|ZIP]] [[https://github.com/Digilent/Arty-Z7|Git Repo]]+Arty Z7-10 Hdmi In Project Repository -- [[https://github.com/Digilent/Arty-Z7-10-hdmi-in/releases/download/v2016.4-2/Arty-Z7-10-hdmi-in-2016.4-2.zip|ZIP]] [[https://github.com/Digilent/Arty-Z7-10-hdmi-in.git|Git Repo]] 
 + 
 +Arty Z7-20 Hdmi In Project Repository -- [[https://github.com/Digilent/Arty-Z7-20-hdmi-in/releases/download/v2016.4-4/Arty-Z7-20-hdmi-in-2016.4-4.zip|ZIP]] [[https://github.com/Digilent/Arty-Z7-20-hdmi-in.git|Git Repo]]
 ------- -------
-===== How to..=====+===== Download and Launch the Arty Z7 HDMI Input Demo =====
  
-==== 1. Generate 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.
  
->1.1) Download the project linked in the download section and unzip it in the location of your choosing.  +>2) Plug one end of the HDMI cable into a video monitor and the other into the Arty Z7 HDMI out port. Do the same for an HDMI source, likely your computer, and the HDMI in port.
- +
->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 ==== +
- +
->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**. +>{{:learn:programmable-logic:tutorials:arty-z7:hdmi_in_setup.jpg?500|}}
-> +
->{{:basys3:buildflow.png?600|}} +
-==== 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.+>3) 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, 8 data bits, no parity bit and 1 stop bit. Then return to the Github Project Tutorial to finish programming and running the demo.
 > >
->{{:zybo:exporthw.jpg?500|}} +>{{:learn:programmable-logic:tutorials:arty-z7:hdmi_in.png?500|}}
-==== 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_out folder, select the **sdk** folder, and click OK. In the //Import// window, click Finish to import the SDK project. 
-> 
->{{:learn:programmable-logic:tutorials:arty-z7-hdmi-demo:import_hdmi_out1.png?300|}}{{:learn:programmable-logic:tutorials:arty-z7:import_hdmi_in.png?300|}} 
-==== 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. +===== Using the Arty Z7 HDMI Input Demo =====
-> +
->{{:learn:programmable-logic:tutorials:programfpgahdmi_in.png?500|}}+
  
-==== 6. Program the Microblaze Processor ====+==== HDMI Display Options ====
  
->6.1) Click on the **hdmi_in** folder and click the Green **Run System Debugger on Local videodemo.elf** button. The microblaze program will be programmed onto your Arty Z7 board. +>  1 - Change the resolution of the HDMI output to the monitor.
-> +
-{{:learn:programmable-logic:tutorials:program_hdmi_in.png?600|}} +
-==== 7. Run the Project ====+
  
-This portion will help you run the demo and observe all its features.+>  2 - Change the frame buffer to display on the HDMI monitor.
  
->7.1) Setup+>  3/4 - Store a test pattern in the chosen video frame buffer - color bar or blended.
 > >
->Plug one end of the HDMI cable into a video source and the other into the ZYBO HDMI port. Plug one end of your other HDMI cable into the HDMI Out port of the Arty Z7 and the other into your HDMI monitor. +>{{:learn:programmable-logic:tutorials:arty-z7:hdmi_incolorbar.jpg?500|}}{{:learn:programmable-logic:tutorials:arty-z7:hdmi_inblend.jpg?500|}}
-> +
->{{:learn:programmable-logic:tutorials:arty-z7:hdmi_in_setup.jpg?500|}}+
  
->7.2) Setting up UART communications +>  5 - Start/Stop streaming video data from HDMI to the chosen video frame buffer.
-> +
->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 Arty Z7 will display the HDMI settings menu, shown below. +
-> +
->{{:learn:programmable-logic:tutorials:arty-z7:hdmi_in.png?500|}}+
  
->7.3) HDMI display options+>  6 - Change the video frame buffer that HDMI data is streamed into. 
 + 
 +>  7 - Invert and store the current video frame into the next video frame buffer and display it.
 > >
->  1 - Changes the resolution of the HDMI output to the monitor. 
->  2 - Changes the frame buffer to display on the HDMI monitor. 
->  3/4 - Stores a test pattern in the chosen Video Frame buffer - color bar or blended. 
->{{:learn:programmable-logic:tutorials:arty-z7:hdmi_incolorbar.jpg?500|}}{{:learn:programmable-logic:tutorials:arty-z7:hdmi_inblend.jpg?500|}} 
->  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. 
 >{{:learn:programmable-logic:tutorials:arty-z7:video_in.jpg?500|}}{{:learn:programmable-logic:tutorials:arty-z7:20170224_120103.jpg?500|}} >{{:learn:programmable-logic:tutorials:arty-z7:video_in.jpg?500|}}{{:learn:programmable-logic:tutorials:arty-z7:20170224_120103.jpg?500|}}
->  8 - Scales the current video frame to the display resolution and stores it into the next video frame buffer, then displays it. + 
-> +>  8 - Scale the current video frame to the display resolution, store it into the next video frame buffer, and then display it. 
-{{tag>learn programmable-logic tutorial arty-z7}}+ 
 +{{tag>learn programmable-logic project arty-z7}}