So you are looking to get into the wonderful world of field programmable gate arrays, also known as FPGAs? In order to get started you are ideally going to want a good development board.
There is something very fascinating to me about FPGAs, more specifically the concept of the technology. When you really think about what is going on under the hood, you start to think how much of a limitation traditional microprocessor development can be!
Why develop something confined within the architecture of a chip when you can just, well… design the chip! In a world of people making a whole lot of noise about Raspberry Pi and Arduino, it’s so much cooler to be the FPGA designer!
What is the DE0-Nano?
The DE0-Nano is a credit-card sized module containing one sleek square FPGA chip, a plethora of ancillary components and a set of the ubiquitous pin header type connectors. It is built by a company called Terasic, a leading developer of FPGA and ASIC hardware.
The untrained eye might easily assume the DE0-Nano to be yet another Raspberry Pi type device. However the DE0-Nano is quite different to the Raspberry Pi (shown in the image below). It is an entry level development board for FPGA design and development.
The board itself contains everything you need to get started in FPGA design, including onboard programmer and a wealth of onboard peripherals. Just connect it to your computer with the bundled USB cable and you can get started!
If you have been Googling reviews looking for the best FPGA board for beginners or similar then you will likely already know what a FPGA is. For the benefit of those that may not yet have a full understanding, allow me to clarrify.
What is a FPGA?
A field programmable gate array is not like your common microcontroller. I like to think of it like a ‘blank canvas’ or ’empty chip.’ It contains the fundamental building blocks that can produce the systems found within a microcontroller, allowing the user to effectively design a chip specifically for the application.
With a microprocessor you are bound to the hardwired systems inside of the chip. The software written for the chip is designed to operate the internal hardware to achieve the desired result.
What are FPGAs so powerful?
A FPGA is beautifully different. Why? The software that you write defines the hardware within the chip. Therefore you effectively design a processor to perform the desired tasks, rather than just configure an existing processor to function in a desired way.
So why is an FPGA so great I hear you ask!? Resources can be perfectly balanced for the task you want to complete. For example if you need a certain size of RAM memory, you can just create the exact size you need.
It is almost certain that an application will never make use of every aspect of a microcontroller. Why have a UART port if you are never going to use it? With the FPGA you do not need to create hardware within the chip that you are not going to use.
Why is parallel processing so awesome?
One other hugely beneficial feature of using a FPGA is its ability to do parallel processing. Microcontrollers always process instructions sequentially.
With FPGAs you can build multiple systems inside one chip that all process data simultaneously. Think of it like having several microcontrollers inside of one chip, plus all of the gluing logic between them. Amazing!
There are of course some disadvantages to using FPGAs. One of the primary drawbacks is their thirst for power. Microcontrollers offer far better power consumption, something to consider if your application is battery powered.
The learning curve for FPGA development is also considered to be steeper, especially as there is not so much community support as with Raspberry Pi or Arduino development.
There are additional skills required for developing FPGA applications, such as understanding how to set up timing correctly and debugging with simulation.
Finally there is the cost consideration. Although getting started with electronics is generally quite reasonable in terms of cost, FPGAs are definitely on the higher end of the price spectrum.
Why the DE0-Nano?
For those skimming the article or who just want the short answer, I will summarize the reasons I love the DE0-Nano.
- The size. It’s slightly smaller than a Raspberry Pi and around the size of a credit card. I like to sit lazily on my sofa with my laptop and write code whilst listening to obscure techno music. The DE0-Nano is my perfect companion.
- It’s portable. If you need to take it to university/college, or you just want to take it round to your bro’s to show off your retro console emulator.
- It’s all inclusive. Despite there being plenty of IO on the board you don’t need to connect it to anything to get a lot out of it (see points above about laziness and sofa). The USB programmer is built in and it runs from USB power. No additional hardware is required.
- It’s packed with features. It has a rich array of peripherals on board as well as a large number of IO pins accessible by headers. It will be a long time before you reach the limitation of this board!
- It’s sort of got a case. Not really fully enclosed, but the big slab of acrylic that comes screwed to the top does offer some protection. More than most dev modules, which usually just come as a bare PCB.
Who should buy the DE0-Nano?
The DE0-Nano is perfect for anyone who is looking to enter the world of FPGAs, who want a feature-rich board and all-in-one solution. It is an ideal choice for those wanting to learn either VHDL or Verilog within the Altera/Intel ecosphere.
Is it suitable for students?
Absolutely! It is ideal for those partaking in educational courses that cover FPGA development. I was personally introduced to Terasic development boards through studying electronic engineering, where I first developed a passion for FPGAs when using the slightly older Cyclone III based DE0 board. It is worth noting that Terasic do offer academic discounts!
Is it suitable for beginners?
Absolutely! Although I am not going to sugarcoat the truth about FPGA development, it is challenging! Be prepared to dive into Quartus (Intel’s development environment) and learn a whole new wealth of skills, way beyond what you get from microcontroller development.
Therefore I would say that anyone who likes an electronics and engineering challenge should definitely consider the DE0-Nano! If you would like to get a feel for how easy it is to develop a simple application, go ahead and take a read through my Quartus ‘hello world’ example tutorial.
For such a tiny board the DE0-Nano features a very powerful Cyclone IV FPGA chip and a whole host of peripherals to keep you busy. For those interested in the nitty-gritty details, tech specs coming right up!
The business end
- Cyclone IV EP4CE22F17C6 FPGA
- 22,320 Logic elements (LEs)
- 594 Embedded memory (Kbits)
- 66 Embedded 18 x 18 multipliers
- 4 General-purpose PLLs
- 153 Maximum FPGA I/O pins
- On-board 50MHz clock oscillator
Configuration Status and Set-Up Elements
- On-board USB-Blaster circuit for programming
- FPGA Serial Configuration Device (EPCS)
- Two 40-pin Headers (GPIOs) provides 72 3.3V I/O pins
- Two 5V power pins, two 3.3V power pins and four ground pins
- One 26-pin header provides 16 3.3V digital I/O pins and 8 analog input pins to connect to analog sensors, etc
- 32MB SDRAM
- 2Kb I2C EEPROM
- ADI ADXL345, 3-axis accelerometer with high resolution (13-bit)
- NS ADC128S022, 8-Channel, 12-bit A/D Converter
- 8 green LEDs
- 2 debounced push-buttons
- 4 dip switches
On-board power supply
- USB Type mini-AB port (5V)
- Two DC 5V pins of the GPIO headers (5V)
- 2-pin external power header (3.6-5.7V)
So what about the drawbacks to the DE0-Nano? The one major drawback that really grinds my gears is the DE0-Nano is not Mac natively compatible! This is because Quartus, the Intel FPGA development environment, is not available for Mac.
Although this is not a direct fault of the DE0-Nano itself, you are inherently tied to using Quartus to develop applications for the Altera/Intel FPGA onboard the DE0-Nano, therefore I can state that the board is not Mac compatible.
Does this mean you cannot develop applications on Mac? Thankfully it is still possible to use the DE0-Nano with Mac using a virtual machine to run either the Windows or Linux flavours of Quartus.
You can check out my detailed guide on how you can install Quartus under a virtual machine on Mac if you wish to run Quartus on a Mac.
Where to buy DE0-Nano?
The DE0-Nano is a superb little board for FPGA development and has served me well for a number of years. I would highly recommend it if you are looking for an entry into FPGA development and want to enter the Intel ecosphere.