This is an old revision of the document!


Zedboard Programming Guide in SDK

Under construction

pic FIXME

Overview

There are three ways you can program the Zedboard:

  • JTAG
  • Quad SPI Flash
  • SD Card

This tutorial will walk you through what you need to know to get started on your projects and program your Zedboard 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.


Prerequisites

Skills

  • Basic familiarity with Vivado
    • This experience can be found by walking through our “Getting Started with Vivado” guide

Hardware

  • Zedboard
  • Micro-USB cable

Software

  • Vivado Design Suite 2016.2
    • Newer/older versions can be used, but the procedure may vary slightly

Board Support Files

  • Zedboard Support Files

Downloads

none


Tutorial

1. Creating the Project

If you already have a working SDK project continue. If not, complete the getting started with Zynq tutorial to create a simple design to program with.


3. Programming the Zedboard using JTAG

JTAG is primarily used as a programming, debugging, and probing port and communicates through the “PROG” micro-USB port.(J17)

3.1) First, make sure that the jumpers JP7-JP11 are in the JTAG position (shown below) and that the Zedboard is plugged into your computer via micro-USB cord.


3.2) Next click on Xilinx Tools and then Program FPGA


3.3) Make sure you have the correct bit file selected and click finish. SDK should then give you a progress bar and complete the fabric programming


3.4) Finally find the .elf file in your main project, right click and select run as launch on hardware (system debugger)

4. Programming the Basys3 using a USB Flash drive

It is important to note that the USB device that you select to program the Basys3 must be formatted in Fat32. Other than that your device doesn't have to be empty and can contain other files and folders. At this point Vivado is no longer needed to program the FPGA, so you can minimize your project and follow these steps in File Explorer:

4.1) Make sure the jumper on JP1 is in the USB position.
4.2) Plug your USB flash device into your computer.
4.3) Open File Explorer and navigate to the root folder of your Vivado project.
4.4) From root go to root > Project_name.runs > impl_1 and copy the .bit file.
4.5) Go to the root of your USB device and paste the .bit file. The Basys3 on startup will only look through the USB's root for a file with a .bit extension so it is important that the only .bit file in root is the one that you want to be used to program the Basys3.
4.6) Safely remove the USB device from your computer and plug it into the USB port on the Basys3.
4.7) Make sure your board is connected to your computer for power and turn on the Basys3. It should immediately begin writing the .bit file to the FPGA.

Once finished your board should function exactly as it did when programming it with JTAG. Whether you were aware or not you just successfully programmed your Basys3 board two separate ways using the same .bit file.


5. Programming the Basys3 using Quad SPI

Quad SPI Flash is a non-volatile memory that the Basys3'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) Make sure the jumper on JP1 is in the QSPI position
5.2) In the Hardware Manager window, under hardware right click your device and click Add Configuration Memory Device…

5.3) This window will pop up. Search for “Spansion” and select the 32 bit device (highlighted below). Click OK on the next window asking if you want to program the configuration memory device.

5.4) Select the .bin file where it asks for a configuration file and finally click OK.

Vivado will now erase the old configuration file, and reprogram your Basys3 with the demo file. From now on, when you power up the Basys3, the demo will load at startup until you reprogram it.