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:cmod-a7-programming-guide:start [2016/08/08 18:23] – [Prerequisites] Sam Lowelearn:programmable-logic:tutorials:cmod-a7-programming-guide:start [2022/10/04 11:38] (current) – external edit 127.0.0.1
Line 7: Line 7:
   * Quad SPI Flash   * Quad SPI Flash
  
-This tutorial will walk you through what you need to know to get started on your projects and program your Cmod A7 FPGA board using each of the three possible methods. It is recommended that you first complete the "Getting Started with Vivado" guide before continuing with this project.+This tutorial will walk you through what you need to know to get started on your projects and program your Cmod A7 FPGA board using each of the two possible methods. It is recommended that you first complete the "Getting Started with Vivado" guide before continuing with this project.
 ----- -----
  
Line 13: Line 13:
 ===Skills=== ===Skills===
   * **Basic familiarity with Vivado**   * **Basic familiarity with Vivado**
-    *  //This experience can be found by walking through our "Getting Started with Vivado" guide//+    *  //This experience can be found by walking through our "[[learn/software/tutorials/verilog-project-2/start|Getting Started with Vivado]]" guide//
  
 ===Hardware=== ===Hardware===
   * **Cmod A7 FPGA board**   * **Cmod A7 FPGA board**
   * **Micro-USB cable**    * **Micro-USB cable** 
-  * **Micro SD card** 
  
 ===Software=== ===Software===
   * **Vivado Design Suite 2015.X**    * **Vivado Design Suite 2015.X** 
-    * //Webpack version works//+    * //This proccess will work for 2016.X editions of Vivado as well//
  
 === Board Support Files === === Board Support Files ===
Line 33: Line 32:
 =====Downloads===== =====Downloads=====
  
-**Source Files** -- {{:cmod_a7:cmoda7btn_demo.zip|ZIP}}+**Source Files** -- {{:learn:programmable-logic:tutorials:cmod-a7-programming-guide:cmoda7btn_demo.zip|ZIP}}
  
 =====Tutorial===== =====Tutorial=====
Line 44: Line 43:
  
 >1.2)  A new window will open up, click "Next" and you'll see the screen below. Name your project (no spaces!) and choose your project saving directory before clicking "Next". >1.2)  A new window will open up, click "Next" and you'll see the screen below. Name your project (no spaces!) and choose your project saving directory before clicking "Next".
->{{:genesys2:pg1.jpg?nolink&500|}}+>{{:learn:programmable-logic:tutorials:cmod-a7-programming-guide:programming_1.jpg?500|}}
  
 >1.3) We will be building this project from the ground up and adding our own sources so we will want to create an RTL project. select RTL Project and click "Next". >1.3) We will be building this project from the ground up and adding our own sources so we will want to create an RTL project. select RTL Project and click "Next".
Line 62: Line 61:
  
 >1.7) At this point Vivado will open up a part selection window. Select the "Boards" tab highlighted in orange below. If you installed the board files correctly, you should see a list of Digilent boards. Select the Cmod A7 and click "Next". >1.7) At this point Vivado will open up a part selection window. Select the "Boards" tab highlighted in orange below. If you installed the board files correctly, you should see a list of Digilent boards. Select the Cmod A7 and click "Next".
->{{:genesys2:pg6.jpg?nolink&500|}}+>{{:learn:programmable-logic:tutorials:cmod-a7-programming-guide:programming_2.jpg?500|}}
 >This will create your project and bring you to the Vivado project manager.  >This will create your project and bring you to the Vivado project manager. 
  
Line 68: Line 67:
 ----- -----
 ====2. Creating Program File==== ====2. Creating Program File====
-For the four ways to program your Cmod A7 FPGA there are two file types available; .bit and .bin files. Using a .bit file we can use either the JTAG programming cable, or a standard USB storage device to load the bit file into the FPGA. Programming with a .bin file will use the QuadSPI to program the FPGA each time it is powered on. This means you will not have to reprogram it each time via a micro USB cable or by a thumb drive. The following steps bellow will get you all prepared to program your Cmod A7.+For the two ways to program your Cmod A7 FPGA there are two associated file types available; .bit and .bin files. Using a .bit file we can use either the JTAG programming cable, or a standard USB storage device to load the bit file into the FPGA. Programming with a .bin file will use the QuadSPI to program the FPGA each time it is powered on. This means you will not have to reprogram it each time via a micro USB cable or by a thumb drive. The following steps bellow will get you all prepared to program your Cmod A7.
  
->2.1) In order to program the FPGA on startup we have to specify that we want to generate a .bin file. This can be done by clicking Tools> Project Settings> Bitstream. In this window we will check the box next to .bin_file. Now Vivado will create both a .bit, and .bin file when we generate a Bitstream.+>2.1) In order to program the FPGA on startup we have to specify that we want to generate a .bin file. This can be done by clicking Tools> Project Settings> Bitstream. In this window we will check the box next to .bin_file. Now Vivado will create both a .bit, and .bin file when we generate a Bitstream. Click Ok.
 >{{:basys3:27.png?nolink&500|}} >{{:basys3:27.png?nolink&500|}}
  
Line 83: Line 82:
  
 >2.5) To improve programming speed of our .bin file, in the main toolbar select Tools > Edit Device Properties. Under General, set Enable Bitsream Compression to "TRUE". >2.5) To improve programming speed of our .bin file, in the main toolbar select Tools > Edit Device Properties. Under General, set Enable Bitsream Compression to "TRUE".
->{{:basys3:20.png?nolink&500|}}+>{{:learn:programmable-logic:tutorials:cmod-a7-programming-guide:programming_3.jpg?500|}}
  
 >2.6) Under Configuration, set Configuration Rate (Mhz) to 33. >2.6) Under Configuration, set Configuration Rate (Mhz) to 33.
Line 91: Line 90:
 >{{:basys3:22.png?nolink&500|}} >{{:basys3:22.png?nolink&500|}}
  
->2.8) Press "Ok", save your synthesized design (Ctrl+S) and then click "Generate Bitstream" in the Flow Navigator on the left side.+>2.8) Press "Ok", save your synthesized design (Ctrl+S). Vivado will notify you that since you have changed some things after synthesizing your design, your synthesis may become "out of date" with respect to your current project; go ahead and click Ok anyway. Vivado will then ask where you want to write unsaved constraints (even though we did not change any constaints); go ahead an choose the existing file that was used with this project and click Ok. Then click "Generate Bitstream" in the Flow Navigator on the left side.
 >{{:basys3:23.png?nolink&300|}} >{{:basys3:23.png?nolink&300|}}
  
Line 112: Line 111:
 >3.2) Click "Program device" (in the green bar) then xc7a15t_0, select your .bit file in the bitstream file box, and click Program. >3.2) Click "Program device" (in the green bar) then xc7a15t_0, select your .bit file in the bitstream file box, and click Program.
 > >
->{{:genesys2:pg9.jpg?nolink&600|}}+>{{:learn:programmable-logic:tutorials:cmod-a7-programming-guide:programming_4.jpg?500|}}
  
 This will program your Cmod A7 through the JTAG connector. Once the programming window is closed go ahead and test out your board. Each slide switch at the bottom of your board should now toggle its respective LED on and off. This will program your Cmod A7 through the JTAG connector. Once the programming window is closed go ahead and test out your board. Each slide switch at the bottom of your board should now toggle its respective LED on and off.
  
 ----- -----
-====5. Programming the Cmod A7 using Quad SPI====+====4. Programming the Cmod A7 using Quad SPI====
 Quad SPI Flash is a non-volatile memory that the Cmod A7's FPGA chip looks at on every startup. If Quad SPI is flashed then the FPGA will program itself with the contents found in Quad SPI's flash memory. This method of programming your board is great when you have a final project that you would like to demo or display that doesn't need to be edited and therefore reprogrammed. Quad SPI Flash is a non-volatile memory that the Cmod A7's FPGA chip looks at on every startup. If Quad SPI is flashed then the FPGA will program itself with the contents found in Quad SPI's flash memory. This method of programming your board is great when you have a final project that you would like to demo or display that doesn't need to be edited and therefore reprogrammed.
  
->5.1) In the Hardware Manager window, under hardware right click your device and click Add Configuration Memory Device...+>4.1) In the Hardware Manager window, under hardware right click your device and click Add Configuration Memory Device...
 >{{:basys3:basys3_screen_shot_2015-6-10_9.png?nolink&400|}} >{{:basys3:basys3_screen_shot_2015-6-10_9.png?nolink&400|}}
  
->5.2) This window will pop up. Select the **n25q32-3.3v-spix1_x2_x4** (highlighted below). Click OK on the next window asking if you want to program the configuration memory device.+>4.2) This window will pop up. Select the **n25q32-3.3v-spix1_x2_x4** (highlighted below). Click OK on the next window asking if you want to program the configuration memory device.
 >{{:cmod_a7:pg1.jpg?nolink&700|}} >{{:cmod_a7:pg1.jpg?nolink&700|}}
  
->5.3) Select the .bin file (found in your project/project.runs/impl_1/ folder) where it asks for a configuration file and finally click OK.+>4.3) Select the .bin file (found in your project/project.runs/impl_1/ folder) where it asks for a configuration file and finally click OK.
 >{{:genesys2:pg12.jpg?nolink&700|}} >{{:genesys2:pg12.jpg?nolink&700|}}