So if you have been following my series of post on what a FPGA is and which is better VHDL or Verilog then you should by now be thinking about the next step - actually buying a development kit. In this post I will talk about the three kits I think you should consider and why one, in my view wins over the rest for starting out.
Before I get too deep let’s consider what you want from a dev kit. You will need an FPGA that will allow you to do stuff. Sounds silly but what I mean is not a chip that’s crippled on gates and features to keep the price down, but a device you can grow into. Your dev kit also needs features, what extra things will it bring that makes it usable to you? Are you looking to perform some certain task, has the board got that? Can it expand? You also need to consider that once you have done the basics, how will it grow with you. There is no point in buying a whizz board that's only good for one job. And the important thing to me (and to you) is how easy is it to use and is it well documented?
Over the last year I reviewed a number of low-cost, entry level FPGA boards and there are three that really stand out to me; The Nano-DE0 from Terasic, the Papilio one and lastly the XuLa from XESS. Each of these board has different merits and restrictions as well as usability, so let’s look and see what they are like.
The Terasic Nano-DEo is possibly the best looking, feature rich of all the boards available. At only $79 the board features the largest of the FPGAs considered, an Altera Cyclone IV with up to 22,320 LEs. On chip features of the EP4CE22F17C6N also include 594Kbis of memory, 66 multipliers and 4 PLLs as well as 153 I/O pins. The dev board itself provides 72 I/O lines that come out on 40-way headers as well as one 26-pin header providing 16 digital I/O pins and 8 analog input pins to connect to analog sensors, etc. . Analog is handled by an ADC chip (8-Channel, 12-bit) with a high speed serial interface. This sits alongside other chips like a 3-axis accelerometer, I2C EEPROM, 32MB SRAM and other, standard dev kit stuff like LEDs and push buttons.
Documentation-wise it’s good at getting you started and getting your first example done, however it quickly moves onto embedded micro using the licenced Altera core. Great if you have a licence but not if you want to make a stand-alone design. Your option then is to use an open core that you can download but may need tweaking to fit and get working. The 40-way connectors are not the easiest things to connect to for expansion and the other issue for me is that it is an Altera part. Not that Altera is bad, but the IDE provided is not the best and simulation does not have a nice work flow to it.
By contract the Papilio One is a Xilinx part and the Xilinx IDE and work flow is far better in my view that that of Altera. The hardware of the Papilio uses a Spartan 3E and comes in one of two sizes of FPGA at $49.99 and $74.99, so it is competitive on price. The dev board itself is limited in features, including only a power supply input and regulators, an interface chip for programming and a SPI Flash chip to store your configurations (FPGA code). Despite this the board is possibly more open than the Terasic in having its 48 I/O pins all easy to access along the side of the board, Arduino style. In fact these are laid out as wings and Papilio offers lots of add on extra wings you can buy and use that fit these connectors. You may end up spending more but you get what you want.
The other nice thing about the Papilio is its Arduino compatibility. You can in fact program and use the Papilio One just like an Arduino part (less the analog side). This makes it attractive as a stepping stone while you learn extra VHDL or Verilog to strap on the AVR core that's downloaded. There is quite a bit of documentation but you may find yourself hunting around on the site to find examples and answer you want.
The last of my three is the XuLa from XESS. This, like the Papilio carries a Xilinx chip meaning you can use the better IDE for programming and simulation. The board is the lowest cost at $55 carrying the XC3S200A device but unlike the Papilio brings with it a 8Mbyte SDRAM (16bit data ). You will find an on board Microchip PIC that is used to interface between the USB port and JTAG. You have an SPI Flash for storing the FPGA configuration (programmable via the PIC) and that’s about it. The layout is, however, mbed style in that it’s a 40 DIL making it perfect for fitting in a bread board. This then give you access to 34 I/O pins that are not shared with the SDRAM.
Documentation for this kit surpasses any of the others and will guide you through what an FPGA is, how it works, your first design, errors and then even debugging via the USB on your PC. In fact it’s so good I’m wondering if I should have just posted the link in place of me writing these blogs! That aside you will also find on the site a large number of examples not only from Xess but from some customers, too.
So for me the clear choice is the XuLa and I will feature it in all of my posts next year showing examples of FPGAs doing their stuff. But the choice is yours as to what you would buy and what you want to get from the experience of learning about FPGAs. Remember, when designing something you need the right tool for the right job.
So until next time I want to wish you all a happy Christmas and New Year wherever you are and whatever you are doing - have a geeky time.