Recently, I have been selected to RoadTest the Digilent Arty S7 FPGA board. Since it has been ages since I last worked on digital design, and a lot has changed since then, this RoadTest offered me the opportunity to refresh and update my knowledge and I thought it would be nice to keep records of this journey into the discovery of this board and share it with the element14 community. I want to reassure you: there won't be Dragons, Orcs or any other strange creature met during the journey (sorry, couldn't resist making a reference to The Hobbit in the title), although there might still be an odd evil piece of code popping here and there :-). The "unexpected" here has a positive connotation, as I am pleasantly surprised by this board.
Over the several blog posts, I will explore the board and its components, the development tools available, and I'll try to touch on the world of FPGA's programming, looking at it all from a Makers perspective. There will also be a more practical part, where I will create a simple project, integrating the good old Panasonic AMG8833 GridEye sensor to create a basic thermal detection module. Before embarking on this journey, I would like to add I'm new to the Spartan-7 and the Vivado toolset, so bear with me if you find some inaccuracies in my writing. By all means, please do correct me whenever you spot a mistake or an inaccuracy! Also, any comment/suggestion is more than welcome.
What you get with this board
In this first post I will introduce the Arty S7 and look at the specifications. First of all, let me say I think, from a maker’s perspective, you get quite a lot with this development board: from the power and flexibility of the FPGA, to the rich set of interfaces available to extend this board, using the 4 Pmod headers and the Arduino/chipKIT shields connector. And, of course, you also get a few LEDs, switches and buttons, to exercise input/output. Before getting into the details of the board, to avoid confusion, I want to make clear the board used for the RoadTest is an Arty S7-50 Rev.B (the image below is taken from the Digilent Arty S7 reference manual).
The first thing you notice, once you open the nice paper packaging and look inside, is definitely the Xilinx FPGA, sitting almost at the center of the board.The chip is marked XC7S50-CSGA324, which identifies it as a Spartan-7.
Just off on the right, there is the PMF511816EBR-KADN DDR3L SDRAM, which gives Arty a respectable 256MB of RAM, 16bit bus @ 650MHz.
On the far left, you can find the USB connector. The USB port will also provide independent JTAG and UART connections (thanks to the FT2232HQ chip, found just on the right of the port), which proved to be extremely useful (no need to mess with wires and cables!)
Moving slightly on the right, we find the QUAD SPI Flash memory, which provides 16MB of non-volatile storage. This is more than enough to store the bitstream, needed to program the FPGA at boot time, rather than having to download it using the USB connection, while also leaving plenty of room to store application-specific code and/or configuration data.
Another noticeable feature is the Arduino-compatible header: this is, in my opinion, the first and possibly most remarkable "makers-oriented" feature of the board. Having such headers opens up the world of the Arduino/chipKIT shields to the Arty board developer. But you need to be careful which shields to use: reading the reference manual, you will find a warning notice which states that "The Arty S7 is not compatible with shields that output 5V digital or analog signals. Driving pins on the Arty S7 shield connector above 5V may cause damage to the FPGA".
On the top of the board there are 4 Pmod headers. This is another feature that would please many makers, considering the vast number of Pmod boards available from Digilent and from many other major vendors (like Maxim Integrated or Analog Devices). The Arty also offers SPI and I2C headers.
The bottom part of the board is reserved for the basic I/O devices: 4 green LEDs and 2 RGB LEDs for the output, 4 switches and 4 buttons for the input.
Last, but not least, there are 3 more components that are far less glamorous, but still vital to guarantee the proper functioning of the board: ADP2384, ADP5052 and REF3012. Those 3 voltage regulators provide all the voltages needed for the 6 power rails used in the board (4 of such supplies are used by the Spartan-7 FPGA: 3.3V, 1.8V, 1.35V and 1.00V).
To finish off, lets take a look to the FPGA specifications. On the Xilinx website there is the 7 Series Product Selection Guide, which includes all the main information about each product of the latest 7 Series, and below you can find the excerpt related to the Spartan-7. I won't go into the details of the data, my aim is only to highlight that the Arty S7 has been equipped with the XC7S50, a midrange model in the Spartan-7 family, which I believe is very respectable in terms of performances, and possibly the best feature of the Arty S7 board.
On the next blog, I will be exploring the development tools available for the Arty S7.