Arty ™ FPGA Board Reference Manual: Revised July 28, 2016 This Manual Applies To The Arty Rev. C
Arty ™ FPGA Board Reference Manual: Revised July 28, 2016 This Manual Applies To The Arty Rev. C
Arty ™ FPGA Board Reference Manual: Revised July 28, 2016 This Manual Applies To The Arty Rev. C
Pullman, WA 99163
509.334.6306
www.digilentinc.com
Overview
Arty is a ready-to-use development platform designed around the Artix-7 Field Programmable Gate Array (FPGA)
from Xilinx. It was designed specifically for use as a MicroBlaze Soft Processing System. When used in this context,
Arty becomes the most flexible processing platform you could hope to add to your collection, capable of adapting
to whatever your project requires. Unlike other Single Board Computers, Arty isnt bound to a single set of
processing peripherals: One moment its a powerhouse chock-full of UARTS, SPIs, IICs, and an Ethernet MAC, and
the next its a meticulous timekeeper with a dozen 32-bit timers.
Arty is fully compatible with the high-performance Vivado Design Suite. It is supported under the free
WebPACK license, so designs can be implemented at no additional cost. This free license includes the ability to
create MicroBlaze soft-core processor designs. Design resources, example projects, and tutorials are available for
download at the Arty Resource Center, accessible from reference.digilentinc.com.
Arty's Soft SoC configurations are powered by MicroBlaze processor cores. MicroBlaze is a 32-bit RISC soft
processor core, designed specifically to be used in Xilinx FPGAs. The MicroBlaze processor in an Arty SoC
configuration is typically run at 100 MHz, though it is possible to design your SoC so that it can operate at over
200MHz. Arty supports large MicroBlaze programs with demanding memory requirements by providing 16MB of
non-volatile program memory and 256MB of DDR3L RAM.
After you design your soft SoC configuration for Arty you can start writing programs for it. This is done by exporting
your SoC design out of Vivado IPI and into the Xilinx Software Development Kit (XSDK), an Integrated Development
Environment (IDE) for designing/debugging MicroBlaze programs in C. After the IPI to XSDK handoff, XSDK is
automatically configured to include libraries and examples for the peripheral blocks you've included in your SoC. At
this point, programming the Arty is very similar to programming other SoC or microcontroller platforms: Programs
are written in C, programmed into board over USB, and then optionally debugged in hardware. Soft SoC
configurations and MicroBlaze programs can also be loaded into the 16MB non-volatile program memory so that
they execute immediately after Arty is powered on.
Although the Arty is particularly well suited for MicroBlaze Soft SoC designs, it can also be programmed with a
Register-Transfer Level (RTL) circuit description like any other FPGA development platform. This design flow
requires that you describe your RTL circuit using an HDL within Vivado, and it does not use the Vivado IPI or XSDK
tools. Designing this way has many advantages, but is very unlike programming a single board computer, and
instead is used by those familiar with FPGA design or interested in designing and implementing a digital circuit that
doesn't contain a processor.
3 Power Supplies
The Arty board requires a 5V power source to operate. This power source can come from the Digilent USB-JTAG
port (J10) or it can be derived from a 7 to 15 Volt DC power supply thats connected to Power Jack (J12) or Pin 8 of
Header J7. Header J13, located between the power jack and the Ethernet connector, is used to determine which
source is used.
A power-good LED (LD11), driven by the power good (PWRGD) output of the ADP5052 regulator, indicates that
the board is receiving power and that the onboard supplies are functioning as expected. An overview of the Arty
power circuit is shown below.
The USB port can deliver enough power for the vast majority of designs. However, a few demanding applications,
including any that drive multiple peripheral boards, might require more power than the USB port can provide.
Also, some applications may need to run without being connected to a PCs USB port. In these instances, an
external power supply or battery pack can be used.
An external power supply can be used by plugging into Power Jack J12 and installing a jumper in the REG position
on Header J13. The supply must use a coaxial, center-positive 2.1mm (or 2.5mm) internal-diameter plug, and
provide a voltage of 7 to 15 Volts DC. The supply should provide a minimum current of 1 amp. Ideally, the supply
should be capable of providing 36 Watts of power (12 Volts DC, 3 amps).
An external battery pack can be used by connecting the battery's positive terminal to pin 8 of J7 (labeled VIN) and
the negative terminal to pin 7 of J7 (labeled GND), as shown in the figure below. In order to use the battery pack as
the boards power source a jumper must be installed in the REG position on Header J13. The battery must
provide a voltage between 7 and 15 volts DC, and should NOT be installed while there is a supply connected to
Power Jack J12.
Voltage regulator circuits from Analog Devices and Texas Instruments create the required 3.3V, 1.8V, 1.35V, 1.25V,
and 0.95V supplies from the 5V power source. In the event that an external supply or battery pack is used, the on-
board Analog Devices 5V regulator provides the 5V source. The table below provides additional information
(typical currents depend strongly on FPGA configuration and the values provided are typical of medium size/speed
designs).
wish to monitor the voltage of an external supply may configure Channel 2 of the XADC as a unipolar input and
perform a conversion to receive a digital value corresponding to the input voltage. The figure below provides an
overview that allows an external supply voltage to be monitored.
4 FPGA Configuration
After power-on, the Artix-7 FPGA must be configured (or programmed) before it can perform any function. You can
configure the FPGA in one of two ways:
1. A PC can use the Digilent USB-JTAG circuitry (port J10) 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.
Figure 3 shows the different options available for configuring the FPGA. An on-board mode jumper (JP1) selects
whether the FPGA will be programmed by the Quad-SPI flash on power up.
The FPGA configuration data is stored in files called bitstreams that have the .bit file extension. The ISE or Vivado
software from Xilinx can create bitstreams from VHDL, Verilog, or schematic-based source files (in the ISE toolset,
EDK is used for MicroBlaze embedded processor-based designs).
Bitstreams are stored in volatile memory cells within the FPGA. This data defines the FPGAs 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. The time it takes to program the Arty can be decreased by
compressing the bitstream before programming, and then allowing the FPGA to decompress the bitstream itself
during configuration. Depending on design complexity, compression ratios of 10x can be achieved. Bitstream
compression can be enabled within the Xilinx tools (ISE or 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 jumpers.
The following sections provide greater detail about programming the Arty using the different methods available.
Programming the Arty with an uncompressed bitstream using the on-board USB-JTAG circuitry usually takes
around 6 seconds. JTAG programming can be done using the hardware manager in Vivado or the iMPACT tool
included with ISE.
Programming the flash can take as long as four to five minutes, which is mostly due to the lengthy erase process
inherent to the memory technology. Once written however, FPGA configuration can be very fastless than a
second. Bitstream compression, SPI bus width, and configuration rate are factors controlled by the Xilinx tools that
can affect configuration speed. The Arty supports x1, x2, and x4 bus widths and data rates of up to 50 MHz for
Quad-SPI programming.
Quad-SPI programming can be done using the hardware manager in Vivado or with the iMPACT tool included with
ISE.
5 Memory
The Arty board contains two external memories: a 256MB DDR3L SDRAM and a 128Mb (16MB) non-volatile serial
flash device. The DDR3L module is connected to the FPGA using the industry standard interface. The serial flash is
on a dedicated quad-mode (x4) SPI bus. The connection and a pin assignment between the FPGA and external
memories are shown below.
5.1 DDR3L
The Arty includes one MT41K128M16JT-125 memory component, creating a single rank, 16-bit wide interface. It is
routed to a 1.35V-powered HR (High Range) FPGA bank with 50 ohm controlled single-ended trace impedance. 50
ohm internal terminations in the FPGA are used to match the trace characteristics. Similarly, on the memory side,
on-die terminations (ODT) are used for impedance matching.
For proper operation of the memory, a memory controller and physical layer (PHY) interface needs to be included
in the FPGA design. The easiest way to accomplish this on the Arty is to use the Xilinx 7-series memory interface
solutions core generated by the MIG (Memory Interface Generator) Wizard. Depending on the tool used (ISE, EDK
or Vivado), the MIG Wizard can generate a native FIFO-style or an AXI4 interface to connect to user logic. This
workflow allows the customization of several DDR parameters optimized for the particular application. Table 2
below lists the MIG Wizard settings optimized for the Arty.
Setting Value
Memory type DDR3 SDRAM
Max clock period 3000ps (667Mbps data rate)
Memory part MT41K128M16XX-15E
Memory voltage 1.35V
Data width 16
Data mask Enabled
Recommended input clock period 6000ps (166.667 MHz)
Output driver impedance control RZQ/6
Controller chip select pin Enabled
Rtt (nominal) on-die termination RZQ/6
Interval Vref Enabled
Internal termination impedance 50omhs
The MIG Wizard will require the fixed pin-out of the memory signals to be entered and validated before generating
the IP core. For your convenience, an importable UCF file is provided on the Arty resource center to speed up this
process. It is included in the MIG Project design resource download. This download also includes a .prj file that
can be imported into the wizard to automatically configure it with the options found in Table 2.
For more details on the Xilinx MIG, refer to the 7 Series FPGAs Memory Interface Solutions User Guide (ug586).
The contents of the memory can be manipulated by issuing certain commands on the SPI bus. The implementation
of this protocol is outside the scope of this document. All signals in the SPI bus are general-purpose user I/O pins
after FPGA configuration. On other boards, SCK is an exception because it remains a dedicated pin even after
configuration, however, on Arty the SCK signal is routed to an additional general purpose pin that can be accessed
after configuration (see Figure below). This allows access to this pin without having to instantiate the special FPGA
primitive called STARTUPE2.
Xilinx's AXI Quad SPI core can be used to read/write the flash in a MicroBlaze design. Refer to Xilinx's product guide
for this core to learn more about using it, or to Micron's datasheet for the flash device to learn how to implement
a custom controller.
6 Ethernet PHY
Arty includes a Texas Instruments 10/100 Ethernet PHY (TI part number DP83848J) paired with an RJ-45 Ethernet
jack with integrated magnetics and indicator LEDs. The TI PHY uses the MII interface and supports 10/100 Mb/s.
Figure 5 illustrates the pin connections between the Artix-7 and the Ethernet PHY. At power-on reset, the PHY is
set to the following defaults:
Two LEDs found in the Ethernet connector (J9) are connected to the PHY to provide link status and data activity
feedback. See the PHY datasheet for details. Note that it is normal for one LED to be illuminated and one to be off,
even when not using the Ethernet PHY.
Vivado IPI-based designs can access the PHY using either the AXI EthernetLite IP core, the AXI 1G/2.5G Ethernet
Subsystem IP core, or the Tri Mode Ethernet MAC IP core. A 25 MHz clock needs to be generated for the X1 pin of
the external PHY, labeled ETH_REF_CLK in the Arty Schematic. To learn how to properly use the Ethernet PHY in a
MicroBlaze design on the Arty, refer to the Getting Started with MicroBlaze Servers tutorial from the Arty Resource
Center.
For further information on the Ethernet PHY, refer to the DP83848J datasheet.
7 Oscillators/Clocks
The Arty board includes a single 100 MHz crystal oscillator connected to pin E3 (E3 is a MRCC input on bank 35).
The input clock can drive MMCMs or PLLs to generate clocks of various frequencies and with known phase
relationships that may be needed throughout a design. Some rules restrict which MMCMs and PLLs may be driven
by the 100 MHz input clock. For a full description of these rules and of the capabilities of the Artix-7 clocking
resources, refer to the 7 Series FPGAs Clocking Resources User Guide available from Xilinx.
Xilinx offers the Clocking Wizard IP core to help users generate the different clocks required for a specific design.
This wizard will properly instantiate the needed MMCMs and PLLs based on the desired frequencies and phase
relationships specified by the user. The wizard will then output an easy-to-use wrapper component around these
clocking resources that can be inserted into the users design. The clocking wizard can be accessed from within the
Project Navigator or Core Generator tools.
Two on-board status LEDs provide visual feedback on traffic flowing through the port: the transmit LED (LD10) and
the receive LED (LD9). Signal names that imply direction are from the point-of-view of the DTE (Data Terminal
Equipment), in this case the PC.
The FT2232HQ is also used as the controller for the Digilent USB-JTAG circuitry, but the USB-UART and USB-JTAG
functions behave entirely independent of one another. Programmers interested in using the UART functionality of
the FT2232 within their design do not need to worry about the JTAG circuitry interfering with the UART data
transfers, and vice-versa. The combination of these two features into a single device allows the Arty to be
programmed, communicated with via UART, and powered from a computer attached with a single Micro USB
cable.
The CK_RST signal (see the Arty Schematic) is also connected to the FT2232HQ device via JP2. When JP2 is shorted,
the FT2232HQ can trigger a MicroBlaze reset, mimicking the behavior of Arduino and chipKIT boards when
sketches are loaded. Note the CK_RST signal is also connected to the red RESET button and the RST pin of J7 on the
shield connector (these connections are not shown in the figure below).
The connections between the FT2232HQ and the Artix-7 are shown in Figure 6.
9 Basic I/O
The Arty board includes four tri-color LEDs, 4 switches, 4 push buttons, 4 individual LEDs, and a reset button, as
shown in Figure 16. The push buttons and slide switches are connected to the FPGA via series resistors to prevent
damage from inadvertent short circuits (a short circuit could occur if an FPGA pin assigned to a push button or slide
switch was inadvertently defined as an output). The four push buttons are momentary switches that normally
generate a low output when they are at rest, and a high output only when they are pressed. Slide switches
generate constant high or low inputs depending on their position.
The red reset button labeled RESET generates a high output when at rest and a low output when pressed. The
RESET button is intended to be used in MicroBlaze designs to reset the processor, but you can also use it as a
general purpose push button. Note that it is also tied to the RST pin on J7 of the shield connector and to the
FT2232 UART device via JP2, though these connections are not shown in the figure below.
The four individual high-efficiency LEDs are anode-connected to the FPGA via 330-ohm resistors, so they will turn
on when a logic high voltage is applied to their respective I/O pin. Additional LEDs that are not user-accessible
indicate power-on, FPGA programming status, and USB and Ethernet port status.
Note: Digilent strongly recommends the use of pulse-width modulation (PWM) when driving the tri-color LEDs.
Driving any of the inputs to a steady logic 1 will result in the LED being illuminated at an uncomfortably bright
level. You can avoid this by ensuring that none of the tri-color signals are driven with more than a 50% duty cycle.
Using PWM also greatly expands the potential color palette of the tri-color led. Individually adjusting the duty cycle
of each color between 50% and 0% causes the different colors to be illuminated at different intensities, allowing
virtually any color to be displayed.
10 Pmod Connectors
Pmod connectors are 26, right-angle, 100-mil spaced female connectors that mate with standard 26 pin
headers. Each 12-pin Pmod connector provides two 3.3V VCC signals (pins 6 and 12), two Ground signals (pins 5
and 11), and eight logic signals, as shown in Fig. 16. The VCC and Ground pins can deliver up to 1A of current, but
care must be taken not to exceed any of the power budgets of the onboard regulators or the external power
supply (these are described in the Power supplies section).
Digilent produces a large collection of Pmod accessory boards that can attach to the Pmod expansion connectors
to add ready-made functions like A/Ds, D/As, motor drivers, sensors, and other functions.
The Arty has four Pmod connectors, some of which behave differently than others. Each Pmod connector falls into
one of two categories: standard or high-speed. Table 9 specifies which category each Pmod falls into, and also lists
the FPGA pins they are connected to. The following sections describe the different types of Pmods.
These connectors should be used only when high speed differential signaling is required or the other Pmods are all
occupied. If used as single-ended, coupled pairs may have significant crosstalk. In applications where this is a
concern, the standard Pmod connector shall be used. Another option would be to ground one of the signals (drive
it low from the FPGA) and use its pair for the signal-ended signal.
Since the High-Speed Pmods have 0-ohm shunts instead of protection resistors, the operator must take precaution
to ensure that they do not cause any shorts.
Note: The Arty is not compatible with shields that output 5V digital or analog signals. Driving pins on the Arty
shield connector above 5V may cause damage to the FPGA.
The figure below diagrams the pins found on the shield connector of the Arty.
Recommended Recommended
Absolute Absolute Maximum
Minimum Maximum Operating
Minimum Voltage Voltage
Operating Voltage Voltage
Powered -0.4V -0.2V 3.4V 3.75V
Unpowered -0.4V N/A N/A 0.55V
For more information on the electrical characteristics of the pins connected to the FPGA, please see the Artix-7
datasheet from Xilinx.
The pins labeled A6-A11 are connected directly to 3 pairs of analog capable pins on the FPGA via an anti-aliasing
filter. This circuit is shown in Figure 11.2.2. These pairs of pins can be used as differential analog inputs with a
voltage difference between 0-1V. The even numbers are connected to the positive pins of the pair and the odd
numbers are connected to the negative pins (so A6 and A7 form an analog input pair with A6 being positive and A7
being negative). Note that though the pads for the capacitor are present, they are not loaded for these pins. Since
the analog capable pins of the FPGA can also be used like normal digital FPGA pins, it is also possible to use these
pins for Digital I/O.
The pins labeled V_P and V_N are connected to the VP_0 and VN_0 dedicated analog inputs of the FPGA. This pair
of pins can also be used as a differential analog input with voltage between 0-1V, but they cannot be used as
Digital I/O. The capacitor in the circuit shown in Figure 11.2.2 for this pair of pins is loaded on the Arty.
The XADC core within the Artix-7 is a dual channel 12-bit analog-to-digital converter capable of operating at 1
MSPS. Either channel can be driven by any of the analog inputs connected to the shield pins. The XADC core is
controlled and accessed from a user design via the Dynamic Reconfiguration Port (DRP). The DRP also provides
access to voltage monitors that are present on each of the FPGAs power rails, and a temperature sensor that is
internal to the FPGA. For more information on using the XADC core, refer to the Xilinx document titled 7 Series
FPGAs and Zynq-7000 All Programmable SoC XADC Dual 12-Bit 1 MSPS Analog-to-Digital Converter. A demo that
uses the XADC core is available on the Arty resource center.