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
vivado:getting_started:start [2018/05/29 20:41] – [10. Finished!] Arthur Brownvivado:getting_started:start [2023/04/27 17:11] (current) – [10. Finished!] James Colvin
Line 1: Line 1:
 ====== Getting Started with Vivado ====== ====== Getting Started with Vivado ======
------ +<WRAP center round important 60%> 
- +For the most up to date version of this guide, please visit [[programmable-logic/guides/getting-started-with-vivado|Getting Started with Vivado for Hardware-Only Designs]]. 
-===== Prerequisites ===== +</WRAP>
-Prior to starting this guide make sure to install Vivado. For more information see our [[learn:software:tutorials:vivado-install-guide:|Installing Vivado]] guide+
- +
-Make sure to install [[reference:software:vivado:board-files#installation|Digilent's board files]] to make selection of a target board easier.+
  
 ===== Introduction ===== ===== Introduction =====
Line 13: Line 10:
 The goal of this guide is to familiarize the reader with the Vivado tools through the hello world of hardware, blinking an LED. The goal of this guide is to familiarize the reader with the Vivado tools through the hello world of hardware, blinking an LED.
  
-This guide was created using Vivado 2016.4. +**Note:** //While this guide was created using Vivado 2016.4, the workflow described has not substantially changed, and the guide works as described through Vivado 2019.2, the latest version as of time of writing.// 
-==== 1. Starting Vivado ====+ 
 +---- 
 +===== Prerequisites ===== 
 +Prior to starting this guide make sure to install Vivado: 
 +  * For versions 2019.2 and later, see [[vivado:installing-vivado:v2019.2]]. 
 +  * For versions prior to 2019.2, see [[vivado:installing-vivado:start]]. 
 + 
 +---- 
 +===== Guide ===== 
 +==== 1. Launching Vivado ====
 <WRAP group> <WRAP group>
 <WRAP column half> <WRAP column half>
Line 55: Line 61:
 == 4. Open Hardware Manager == == 4. Open Hardware Manager ==
  
-This will open the Hardware Manager without an associated project. If connecting to and programming a device is all that is required by the user this is the button to use.+This will open the Hardware Manager without an associated project. If connecting to and programming a device is all that is required by the user, then this is the button to use.
  
 ==== 3. Creating a New Project ==== ==== 3. Creating a New Project ====
Line 144: Line 150:
     * Tools for creating Block Designs     * Tools for creating Block Designs
   * //Simulation//   * //Simulation//
-    * Allows a developer to verify the output of their deisgn prior to programming their device+    * Allows a developer to verify the output of their design prior to programming their device
   * //RTL Analysis//   * //RTL Analysis//
     * lets the developer see how the tools are interpreting their code     * lets the developer see how the tools are interpreting their code
Line 255: Line 261:
 ==== 6. Adding a Constraint File ==== ==== 6. Adding a Constraint File ====
  
-In order to connect HDL code with the physical pins of the FPGA, a constraint file needs to be added or created. Digilent has produced a Xilinx Design Constraint (XDC) file for each of our boards. Download the [[https://github.com/Digilent/digilent-xdc/archive/master.zip|ZIP Archive]] containing each of these master XDC files, then extract it in a location you will remember.+In order to connect HDL code with the physical pins of the FPGA, a constraint file needs to be added or created. Digilent has produced a Xilinx Design Constraint (XDC) file for each of our boards. Download [[https://github.com/Digilent/digilent-xdc/archive/master.zip|digilent-xdc-master.zip]], the ZIP Archive containing each of these master XDC files, then extract it in a location you will remember.
  
 <WRAP group> <WRAP group>
Line 292: Line 298:
 <WRAP column half> <WRAP column half>
 === 6.4 === === 6.4 ===
-Make sure that the selected XDC file has been added into the list of sources, then click //Finish//.+Make sure that the selected XDC file has been added into the list of sources, and that the //Copy constraint files into project// is checked, then click //Finish//. 
 + 
 +**Note:** //Leaving the Copy... box unchecked means that any editing done to the constraint file will be reflected in the original copy. Checking the box is highly recommended//
 </WRAP> </WRAP>
 <WRAP column half> <WRAP column half>
Line 372: Line 380:
  
 There are five fields to define for each of the module's I/O ports: There are five fields to define for each of the module's I/O ports:
-  * //Port Name// +  * **Port Name:** This field defines the name of the port and needs to match one of the names you used in your XDC file. 
-    * This field defines the name of the port and needs to match one of the names you used in your XDC file. +  * **Direction:** This drop-down menu can be set to //input//, //output//, or //inout//, defining the direction that signals propagate through this port, with respect to your module. Outputs are the signals that your module will be controlling. 
-  * //Direction// +  * **Bus:** This can be checked or not, when checked, this port consists of multiple single bit signals, grouped into a single bus. 
-    * This drop-down menu can be set to //input//, //output//, or //inout//, defining the direction that signals propagate through this port, with respect to your module. Outputs are the signals that your module will be controlling. +  * **MSB:** The index of the most significant bit of the port, if it is a bus. This option is grayed out for single-bit ports. 
-  * //Bus// +  * **LSB:** The index of the least significant bit of the port, if it is a bus. This option is grayed out for single-bit ports.
-    * This can be checked or not, when checked, this port consists of multiple single bit signals, grouped into a single bus. +
-  * //MSB// +
-    * The index of the most significant bit of the port, if it is a bus. This option is grayed out for single-bit ports. +
-  * //LSB// +
-    * The index of the least significant bit of the port, if it is a bus. This option is grayed out for single-bit ports.+
  
 <WRAP round center tip> <WRAP round center tip>
Line 460: Line 463:
 <WRAP group> <WRAP group>
 <WRAP column half> <WRAP column half>
-The next screen asks if the hardware server is local or remote. If the board is connected to the host computer choose local, if it is connected to another machine choose remote and fill in the //Host Name// and //Port// fields.\+The next screen asks if the hardware server is local or remote. If the board is connected to the host computer choose local, if it is connected to another machine choose remote and fill in the //Host Name// and //Port// fields.
  
 Click //Next// to continue. Click //Next// to continue.
Line 509: Line 512:
 You should now see one of the LEDs on your board blinking! You should now see one of the LEDs on your board blinking!
  
-Be sure to visit your board's resource center for more tutorials and demo projects. A link to each resource center can be found [[https://reference.digilentinc.com/reference/programmable-logic/start|here]].+Be sure to visit your board's resource center for more tutorials and demo projects. A link to each resource center can be found [[/programmable-logic/start|here]].
  
-{{tag>learn programmable-logic software tutorial vivado arty arty-a7 arty-s7 arty-z7 cmod-a7 cmod-s7 cora-z7 genesys-2 nexys-4-ddr nexys-video zybo-z7 zybo zedboard sword }}+{{tag>learn programmable-logic software tutorial vivado arty arty-a7 arty-s7 arty-z7 basys-3 cmod-a7 cmod-s7 cora-z7 genesys-2 nexys-4-ddr nexys-a7 nexys-video zybo-z7 zybo zedboard legacy}}