Datasheet

Basys 3™ FPGA Board Reference Manual
Copyright Digilent, Inc. All rights reserved.
Other product and company names mentioned may be trademarks of their respective owners.
Page 4 of 19
2 FPGA Configuration
After power-on, the Artix-7 FPGA must be configured (or programmed) before it can perform any functions. You
can configure the FPGA in one of three ways:
1. A PC can use the Digilent USB-JTAG circuitry (portJ4, labeled "PROG") to program the FPGA any time the
power is on.
2. A file stored in the nonvolatile serial (SPI) flash device can be transferred to the FPGA using the SPI port.
3. A programming file can be transferred from a USB memory stick attached to the USB HID port.
Figure 3 shows the different options available for configuring the FPGA. An on-board "mode" jumper (JP1) selects
between the programming modes.
M0
M1
JTAG
Port
USB
Controller
SPI Quad mode
Flash
1x6 JTAG
Header
SPI
Port
Micro-AB USB
Connector (J4)
USB-JTAG/UART Port
Artix-7
Done
PIC24
Type A USB Host
Connector (J2)
Serial
Prog. Port
2
6-pin JTAG
Header (J5)
Prog
M2
Mode (JP1)
Programming Mode
JP1
SPI Flash
JTAG
USB
Figure 3. Basys 3 configuration options.
The FPGA configuration data is stored in files called bitstreams that have the .bit file extension. The Vivado
software from Xilinx can create bitstreams from VHDL, Verilog®, or schematic-based source files.
Bitstreams are stored in SRAM-based memory cells within the FPGA. This data defines the FPGA's logic functions
and circuit connections, and it remains valid until it is erased by removing board power, by pressing the reset
button attached to the PROG input, or by writing a new configuration file using the JTAG port.
An Artix-7 35T bitstream is typically 17,536,096 bits and can take a long time to transfer. The time it takes to
program the Basys 3 can be decreased by compressing the bitstream before programming, and then allowing the
FPGA to decompress the bitsream itself during configuration. Depending on design complexity, compression ratios
of 10x can be achieved. Bitstream compression can be enabled within the Xilinx Tools (Vivado) to occur during
generation. For instructions on how to do this, consult the Xilinx documentation for the toolset being used.
After being successfully programmed, the FPGA will cause the "DONE" LED to illuminate. Pressing the "PROG"
button at any time will reset the configuration memory in the FPGA. After being reset, the FPGA will immediately
attempt to reprogram itself from whatever method has been selected by the programming mode jumper.
The following sections provide greater detail about programming the Basys 3 using the different methods
available.