Xilinx Spartan-7 FPGA Maker Board by Digilent - Review

Table of contents

RoadTest: Xilinx Spartan-7 FPGA Maker Board by Digilent

Author: vplacint

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: I have been using the ARTY-7 board with the Artix-7 FPGA and I was quite impressed by its performances. This board, ARTY-S7, is similar with the ARTY-7, but I think the main drawback is the Ethernet connection which is missing.

What were the biggest problems encountered?:

Detailed Review:

Introduction

Many thanks for the element14 and Digilent guys for choosing me to do a review for this development board. This board features a SPARTAN-7 FPGA embedded in the latest version of Digilent's ARTY boards. The Xilinx's SPARTAN-7 in an SRAM-based FPGA built on TMSC's high performance and low power (HPL) 28 nm process with a high-k metal gate (HKMG), and it offers the best performance/watt ratio being optimized for low cost, high performance and low power. More details regarding this FPGA family can be found here: 7-series FPGAs Datasheet: Overview.

 

Courtesy of Digilent the following 2 pictures highlights the ARTY-S7 board and its hardware description:

  image

image

The main features of this development board are listed below:

  • FPGA: XC7S50-CSGA324 (8150 slices, 2.7 Mbits of RAM, 120 DSP slices, on-chip analog-to-digital conver-XADC, programmable over JTAG and Quad-SPI flash)
  • Memory: 256 MB DDR3L and 16 MB Quad-Spi flash
  • FT2232HQ: USB-UART bridge, and USB-JTAG
  • Swirches
  • Push-buttons
  • LEDs
  • Expansion connectors

 

More information can be found in the reference manual.

Being an roadtest+ review, I decided to make a complex project to test the capabilities of this board. In the following lines a custom application for driving and monitoring a brushed DC motor will be presented. All the controls commands and the monitoring are done with a LabVIEW-based graphical user interface (GUI).

 

Test Bench

This roadtest+ project aims to present a 2-Quadrant Drive Application for a Brushed DC Motor using the Arty-S7 FPGA Board. The DC Motor is driven using a low RDS-on NMOS H-Bridge while its power is monitored using a high speed 16-bit SAR ADC, LTC 2374-16. The ARTY-S7 board is used to control the H-Bridge circuit, hence the DC motor, by generating a 12-bit PWM signal and the necessary control signals. Apart from controlling the DC motor, the ARTY-S7 board embeds a custom SPI master controller used to readout the ADC, hence the power monitoring.

The ARTY-S7 communicates with a a LabVIEW-based GUI via a custom UART controller from which are sent all the control commands and where the measurements data are displayed.

This application allows to:

  • spin the DC motor forward and backward;
  • electronic brake;
  • power monitoring: voltage and current.

 

Hardware

The hardware and its connections used to control and monitor the brushed DC motor are shown in the following photos.

THE BRUSHED DC MOTOR (24 V DC, L= 913 uH, R=4.86 Ω)

image

THE H-BRIDGE CIRCUIT (IR2110 + IRF3205) TOP SIDE

image

 

THE H-BRIDGE CIRCUIT (IR2110 + IRF3205) BOTTOM SIDE

image

 

A CLOSE-UP of the TEST BENCH (Coffee mug included)

image

For power monitoring the following architecture was implemented:

  • a voltage divider + opamp based buffer + anti aliasing filter were used to monitor the motor's supply voltage;
  • a 50 mΩ shunt resistor + high side current shunt opamp, INA180 + anti aliasing filter were used to monitor the motor's current consumption;
  • both measurements were readout using the LTC2374-16 ADC at a sampling rate of 100 Hz.

 

A DC motor can be modeled as a LR series filter as described below:

image

Knowing the DC motor parameters (e.g. L and R) I was able to estimate the proper PWM frequency need to control this DC using a basic formula. Please note that in order to have a good resolution control, the calculations are a little bit more complex. Hence the PWM frequency can be roughly estimated by using the following formula:

image

 

Given the results, a 1KHz PWM frequency has been chosen to be used to drive the brushed DC motor.

 

FPGA Firmware

 

The FPGA firmware has been developed using XILINX's VIVADO environment and using VHDL language. The project has been designed to be modular as described below:

 

ARTY-S7 FIRMWARE ARCHITECTURE

image

ARTY-S7 RESOURCE UTILIZATION

image

SCOPE PRINT SCREENS DURING TESTING THE PWM CORE

image

image

image

LabVIEW GUI

Using LabVIEW, a GUI has been designed to monitor and control the brushed Dc motor. Its architecture is based on a event-based state machine, while all the data is readout and displayed at a 100 Hz rate. From the GUI the user can spin the motor in both directions and also can perform electronic brake to stop it almost instantaneously by using one of the 3 buttons (one at time). The GUI can be seen in the following image:

image

 

Testing Results

 

For testing, I decided to start with some several basic tests like spinning the motor in both ways and monitor its starting current.

The FORWARD MODE

image

The BACKWARD MODE

image

The following video shows a full control mode of the brushed DC motor:

 

 

Conclusions

 

This board, the ARTY-S7, is a low cost and very powerful tool to develop medium to complex FPGA-based applications. However, I still think that the main drawback of this board compared with the ARTY-7 is the absence of the Ethernet interface while their price are very similar. It is quite nice to write firmware for it, and all the resources concerning schematic, I/O pins are available on the vendor site, Digilent.

Hence, I highly recommend this board for students who want to start learning programming FPGAs, as well as for the advanced FPGA guys.

 

"Keep those motors spinning! :-)" ---Dave Wilson, Texas Instruments

 

PS: I am very sorry that I have not submitted the review in time, but I have had some unexpected issues with my PhD thesis, and that has high priority for me (it is also based on systems with FPGAs).

 

Best,

Vlad

Anonymous