====== Cora Z7 Pmod VGA Demo ====== {{:reference:programmable-logic:cora-z7:demos:cora_pmod.jpg?400|}} ---- ===== Description ===== This simple VGA Demo project demonstrates usage of a Pmod VGA connected to the Cora Z7's Pmod ports. The behavior is as follows: * A bouncing box and black, white, and multiple colors of bars are displayed on a connected VGA monitor. * The Pmod VGA is controlled by the Cora Z7 through Pmod ports JA and JB. * The screen resolution is configurable through HDL code. ---- ===== Inventory ===== * Cora Z7 with a MicroUSB Programming Cable * Vivado installation compatible with the latest release of this demo (2022.1) * //See [[programmable-logic:guides:installing-vivado-and-vitis|Installing Vivado, Vitis, and Digilent Board Files]] for installation instructions.// * Pmod VGA * VGA monitor and cable ---- ===== Download and Usage Instructions ===== First and foremost, 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 "20/DMA/2020.1" for the Zybo Z7 is only to be used with the -20 variant of the board and Vivado 2020.1. The latest release version for this demo is highlighted in green. **Note:** //Releases for FPGA demos from before 2020.1 used a different git structure and used a different release tag naming scheme.// ^ Board Variant ^ Release Tag ^ Release Downloads ^ Setup Instructions ^ | Cora Z7-07S | @#C0EEBD: 07S/Pmod-VGA/2022.1-1 | {{https://github.com/Digilent/Cora-Z7/releases/download/07S/Pmod-VGA/2022.1-1/Cora-Z7-07S-Pmod-VGA-hw.xpr.zip}} | See //Using the Latest Release//, below | | Cora Z7-10 | @#C0EEBD: 10/Pmod-VGA/2022.1-1 | {{https://github.com/Digilent/Cora-Z7/releases/download/10/Pmod-VGA/2022.1-1/Cora-Z7-10-Pmod-VGA-hw.xpr.zip}} | See //Using the Latest Release//, below | | Cora Z7-07S | 07S/Pmod-VGA/2021.1-1 | {{https://github.com/Digilent/Cora-Z7/releases/download/07S/Pmod-VGA/2021.1-1/Cora-Z7-07S-Pmod-VGA-hw.xpr.zip}} | See //Using the Latest Release//, below | | Cora Z7-10 | 10/Pmod-VGA/2021.1-1 | {{https://github.com/Digilent/Cora-Z7/releases/download/10/Pmod-VGA/2021.1-1/Cora-Z7-10-Pmod-VGA-hw.xpr.zip}} | See //Using the Latest Release//, below | | Cora Z7-07S | 07S/Pmod-VGA/2020.1-1 | {{https://github.com/Digilent/Cora-Z7/releases/download/07S/Pmod-VGA/2020.1-1/Cora-Z7-07S-Pmod-VGA-hw.xpr.zip}} | See //Using the Latest Release//, below | | Cora Z7-10 | 10/Pmod-VGA/2020.1-1 | {{https://github.com/Digilent/Cora-Z7/releases/download/10/Pmod-VGA/2020.1-1/Cora-Z7-10-Pmod-VGA-hw.xpr.zip}} | See //Using the Latest Release//, below | | Cora Z7-07S | v2018.2-1 | [[https://github.com/Digilent/Cora-Z7-07S-Pmod-VGA/releases/tag/v2018.2-1|Release ZIP downloads]] | [[https://github.com/Digilent/Cora-Z7-07S-Pmod-VGA/tree/v2018.2-1| v2018.2-1 Github README]] | | Cora Z7-10 | v2018.2-1 | [[https://github.com/Digilent/Cora-Z7-10-Pmod-VGA/releases/tag/v2018.2-1|Release ZIP downloads]] | [[https://github.com/Digilent/Cora-Z7-10-Pmod-VGA/tree/v2018.2-1| v2018.2-1 Github README]] | | Cora Z7-07S | 2017.4-1 | [[https://github.com/Digilent/Cora-Z7-07S-Pmod-VGA/releases/tag/2017.4-1|Release ZIP downloads]] | [[https://github.com/Digilent/Cora-Z7-07S-Pmod-VGA/tree/2017.4-1| 2017.4-1 Github README]] | | Cora Z7-10 | 2017.4-1 | [[https://github.com/Digilent/Cora-Z7-10-Pmod-VGA/releases/tag/2017.4-1|Release ZIP downloads]] | [[https://github.com/Digilent/Cora-Z7-10-Pmod-VGA/tree/2017.4-1| 2017.4-1 Github README]] | **Note for Advanced Users:** //GitHub sources for this demo can be found in the [[https://github.com/digilent/cora-z7/tree/07S/Pmod-VGA/master|07S/Pmod-VGA/master]] and [[https://github.com/digilent/cora-z7/tree/10/Pmod-VGA/master|10/Pmod-VGA/master]] branches of the Cora-Z7 repository. Further documentation on the structure of this repository can be found on this wiki's [[programmable-logic:documents:git]] page.// ---- Instructions on the use of the latest release can be found in this dropdown: --> Using the Latest Release #^ {{page>programmable-logic:guides:using-github-releases#hardware_only_release_before_programming&noheader}} --> Set up the Cora Z7 # {{:reference:programmable-logic:cora-z7:demos:cora_pmod.jpg?400|}} Plug the Cora Z7 into the computer via the microUSB programming cable. Plug the Pmod VGA into the two Pmod ports as seen in the photo. Plug the VGA Monitor into the Pmod VGA through a VGA cable. ---- <-- {{page>programmable-logic:guides:using-github-releases#hardware_only_release_programming&noheader}} At this point, the demo is now running on your board. Refer to the [[#description|Description]] and [[#functionality|Functionality]] sections of this document for more information on what it does. <-- ---- ===== Functionality ===== ==== 1. View Results ==== >The VGA monitor will display a set of colored, black, and white bars, along with a moving box, as shown below. You may need to adjust the settings of your monitor to properly align the demo image. > >{{:learn:programmable-logic:tutorials:arty-pmod-vga-demo:arty-pmod-vga-test-pattern.png?direct&500|}} ==== 2. Changing the Resolution ==== >You may want to change the display resolution if your VGA monitor does not support 1080p, or you want to modify the demo for a specific application. > >To select a different display resolution, select the appropriate set of Sync Generation constants for your target resolution from the list starting at line 47 of **top.vhd**. Uncomment the ten corresponding constants, **FRAME_WIDTH** through **V_POL**, and comment the default versions of those same constants. The default resolution is 1920x1080 @ 60Hz. > >Next select **Project Manager** in the Flow Navigator. In the **Hierarchy** tab of the Sources box, expand **top.vhd** under Design Sources and double click on **clk_div_inst**. Change the clk_out1 Requested frequency - circled in red below - to the required pxl_clk frequency specified in the selected resolution's Sync Generation comment block. Select **Ok**, then **Generate** in the Generate Output Products dialog that pops up. Once the bitstream has been generated, reprogram your board with the new hardware. > >{{:learn:programmable-logic:tutorials:zybo-z7-pmod-vga-demo:pmod-vga-change-clock.png?500|}} ---- ===== Additional Resources ===== All materials related to the use of the Cora Z7 can be found on its [[..:start|Resource Center]]. All materials related to the use of the list other products here can be found on their resource centers, linked below: * Pmod VGA [[pmod:pmodvga:start| Resource Center]] For a walkthrough of the process of creating a simple HDL project in Vivado, see [[programmable-logic:guides:getting-started-with-vivado]]. Information on important parts of the GUI, and indirect discussion of the steps required to modify, rebuild, and run this demo in hardware can also be found here. For technical support, please visit the [[https://forum.digilent.com/forum/4-fpga/|FPGA]] section of the Digilent Forum.