FPGA #0 Tutorial

Hi!

Some time ago I encountered topic of Programmable logic devices, to be precise FPGA. It interested me, so I decided to find out a bit more about it.
I’m going to give over to FPGA a series of films and articles, where I will describe you my doings from this area and as far as I am able on my own I will try to explain you most of issues connected with these devices.

Many books and articles about PLD (Programmable Logic Devices) eleborate mainly theory of their construction and operation.
In my opinion for people just beginning „fun” with these devices it isn’t necessary to learn so much theory. It might only dishearten you. So I will try not to torment you with unnecesssary theory in this series. for now J. I will try to present you this topic as simple as it’s possible. In this course we will hold principle „from practice to theory”.
Let’s start maybe first from what exactly is FPGA:
FPGA is literaly: Field-programmable gate array. It’s some kind of programmable logic device.
In order to understand what exactly is programmable logic device and why it’s „better” than microcontrollers, or common processors you have to know how processor works.
Processor is an electronic circuit that perform operations in predefined order, so it perform only one operation at once.
Probably It seemed to you that processor perform many operations at the same time, but in practice it works a bit differently.
Ostensible multitasking of processor is caused by fact that it perform operations in just a fraction of the time.
PLD can perform many more operations at once, because it works simultaneously, in other words it doesn’t have to „wait” till previous instructions are finished. It perform them independently.
Obviously there are some multithreading processors that allow to perform many operations in the same time, but at the present time this solution still isn’t as fast as PLD, and probably it won’t change in a short term.

And how do we program these circuits?
Here comes out a certain paradox, because we don’t program these devices. We configure them.
We do that in hardware description language.
Two the most popular languages are Verilog12-2-min
and VHDL
12-1-min
More about configuration of these devices you will lern in following episodes of this course.

But where is difference between this circuits and typical microcontrollers?
12-4-min


Creating simple solutions in FPGA takes more time than writting simple program for microcontroller, but FPGA is much more productive than microcontroller. It’s also very flexible and open to many modifications.
Main advantages of PLD are: low power consumption and huge possibilities resulted from speed of this system, which are useful for example when you compute DSP.
There are also some disadvantages.
For beginners hardware description language might seem very complex. PLD are relatively expensive. And cost of some of them is definitely too high for typical „sunday hothead”. However „good” starter kit can be bought even for about 600zł (it’s about 160 USD). There are also cheaper alternatives even for about 200 zł (about 50 USD), but I will say more about it in next episode of this course.

What is PLD for?
These devices wil fullfill it’s function wherever we need to perform some algorithm extraordinarily fast.
They are used in digital signal processing, aviation, military, during prototyping ASIC systems, and in many more areas.
Oddity is that FPGA devices produced by Xinlix were used during Mars mission ended up landing of jeeps „Spirit” and „Opportunity”.
12-3-min

In following episodes of this course we will take attention to creating many practical projects such as for example simple oscilloscope


robot detecting and following an object


and many more.

In (Polish) Internet there aren’t many materials about FPGA.
So my target will be to acquaint you with topic of PLD, support in understanding of their operation, and teach you how to configure these devices.
In next episode we will mind choice of language, evironment and starter kit