Learning FPGA and Verilog A Beginner's Guide Part 1 - Introduction
Learning electronics can be a bit challenging sometimes, but it is real fun if you have a little patience to read, understand and experiment. FPGAs need not be any different. Let us give it a try and see how fast and easily we can learn. To get the best out of this tutorial series, I strongly recommend to download the tools listed at the end of this document and try doing every step as you read along.
Some time back, I wanted to learn about programming FPGAs. I started googling only to find that there is no tutorial on the web (at least I couldn't find any, maybe it is time to refine my googling skills!) that can get you started with learning an HDL and take you all the way through design, simulation and implementation. There are many tutorials online that will help you learn HDLs, some tutorials tell you how to do simulation, some may tell you about implementation, but no single tutorial that guides you step by step from basics to implementation.
I write this tutorial in the hope that it may help our readers to learn Verilog (The HDL I chose to learn first because of its syntax similarity to C), simulate your code and implement it on real hardware. This tutorial expects you to have basic knowledge in Digital Electronics, Familiarity with some programming language (preferably C). This tutorial is not meant be an in-depth study about Verilog or FPGAs or anything, but just a guide to walk you through different basic things you need to know to design a simple digital circuit in Verilog, simulate it and implement it on hardware.
We will be using Xilinx ISE for simulation and synthesis. The final design will be programmed to an Elbert - Spartan 3A FPGA Development Board (below picture) to make sure our code works on real hardware as well.
What is FPGA ?
FPGA stands for "Field Programmable Gate Array". As you may guess, FPGA essentially is a huge array of gates which can be programmed and reconfigured anytime anywhere. "Huge array of gates" is an oversimplified description of FPGA. FPGA is indeed much more complex than simple array of gates. But the point is, there are many gates inside the FPGA which can be arbitrarily connected together to make a circuit of your choice. FPGAs are manufactured by companies like Xilinx, Altera, Actel etc.. . FPGAs are fundamentally similar to CPLDs but CPLDs are very small in size and capability compared to FPGA.