Introduction

We will learn in this section what is programmable logic devices and FPGAs. Also we will learn how to program them using the VHDL and Verilog languages, which are the most used languages in hardware description. During this tutorial we will use Xilinx Spartan3E the development kit. Unfortunately I don't have kits from other manufacturers at least not until now...

What is programmable logic devices

It's a full reconfigurable digital circuit driven by some description language (VHDL or Verilog), the idea is that you build some algorithm and the sintethyser tool (pld compiler) finds the best implementation in hardware of that algorithm.

And.. what is FPGA?

This guy is a programable logic device based on a gate array, and normally programmed via JTAG interface, the main diference from DSPs or other microcontrollers is that while a processor reads each instruction at a time, the FPGA "becomes" the algorithm so it normally runs a lot faster.

What is Hardware description language

In order to program PLDs you're going to use a kind of language used to describe the hardware that will be implemented. Those languages differs a little bit from C ou Pascal, because you can do things in parallel. Don't worry later we're going to see VHDL and Verilog from a more closer point of view.

What we got inside an FPGA

As we said earlier FPGAs are devices formed by elements called "logic blocks", conected in a matrix form. Those blocks can be configurated to implement any combinational/sequential logic equation. So this way an FPGA can implement almost every digital circuit, just connecting the logic blocks in proper form.

Now the logic blocks connected in the matrix ...

Parallelism

Another great advantage of FPGAs is that they can do things in parallel, for example, where we can have two different circuits within a single FPGA, representing 2 different algorithms working in parallel.

Tools used

In this series of tutorials we will use the following tools to work with FPGAs:

Those tools can be downloaded from Xilinx website.

Steps needed to create an FPGA project

Those are the steps needed to create an FPGA project

Pin Assignment 

As previously mentioned, after the HDL algorithm properly implemented and tested we set wich pins on the FPGA will be assigned to our "ports" of the HDL description, for that we use the "constraint file" that not only defines pin assignment but also signal speed rules to the implementation phase.

What we can do with FPGAs?

Hummm ... everything from a new embedded video processor , to a new CPU processor ...

Zet Processor

Home sweet home.

Next topics:

Verilog

VHDL