Sie sind auf Seite 1von 15

-•-• --•- - •• • ••• - • - - • •• - • ••• • -•

FPGAs For Beginners


An introduction to the dark art of
programmable logic for Hams.

Gar Fisher
VA7GRR

1
What is an FPGA?
-•-• --•- - •• • ••• - • - - • •• - • ••• • -•
! A Field Programmable Gate Array is a programmable logic device.
! It takes the form of an Integrated circuit chip, usually a large
package with many pins.
! It has an array of configurable logic blocks (CLBs) and look-up
tables (LUTs) inside it that can be configured to perform logic
functions
! It requires some form of configuration information (firmware) in
order for it to function.
! This configuration info is stored in the device in a series of static
RAM cells, where it defines the signal paths through the device.
This is loaded after the device powers on, but before normal
operation starts.
! FPGAs are similar in some respects to CPLDs ( Complex
Programmable Logic Devices) but usually don’t store their
programming when the power goes off, and can have way more
complex designs implemented in them.

2
Some FPGA History
-•-• --•- - •• • ••• - • - - • •• - • ••• • -•
! The FPGA was a natural outgrowth of the
marriage of memory and the primitive one time
programmable logic devices of the early 1980s.
! Xilinx introduced the XC2064, the first
commercially viable FPGA, in 1985.
! This device had only 64 CLBs and two look up
tables.
! Modern FPGAs can have in excess of 1000 pins,
80,000 CLBs and specialized functions that allow
them to implement the core of a large system in a
single chip.

3
What are they used for?
-•-• --•- - •• • ••• - • - - • •• - • ••• • -•
! Basically, anywhere you want to implement a
complete complex logic function in a single chip.
! Some examples:
" A microprocessor.
" An interface to the PCI bus on a PC.
" An interface for colour LCD display.
" A front end for a software defined radio (Digital Signal
Processing).
! There are FPGAs available that could do all of the
above examples simultaneously (and more!).
! You are only limited by your imagination!

4
But what about us?
-•-• --•- - •• • ••• - • - - • •• - • ••• • -•
! Amateur Radio equipment is getting more and more
sophisticated every year.
! Because of this, people think that the art of homebrew
equipment is a dying tradition within the amateur radio
community. It doesn’t have to be this way.
! The future of Amateur Radio is the software defined radio,
and this technology is heavily dependent on FPGAs to
make it go.
! Fortunately, FPGAs are no more difficult to learn than any
of the other things you learned to get your Amateur
License.
! FPGAs are like so many other things, you just have to have
the right tools, and spend some time learning how to use
them.

5
Hardware Description
Languages
-•-• --•- - •• • ••• - • - - • •• - • ••• • -•
! This is the single most important thing you will need to
work with FPGAs.
! The best language to learn for beginners is called VHDL
(Very High Speed Integrated Circuits Hardware Description
Language).
! VHDL was developed in the 1980s by the US department of
defence, as a way to standardize the design of large digital
ICs.
! VHDL is great for beginners because it is a strongly typed
language, it will generate errors and warnings if you
attempt to do things that could be problematic in your
design.

6
VHDL in a Nutshell
-•-• --•- - •• • ••• - • - - • •• - • ••• • -•
! VHDL is not like a conventional sequential computer programming
language where everything happens one-after-the-the-other.
! VHDL is inherently parallel, everything happens simultaneously!
! If you want to do something sequentially in VHDL, you can, but
you will have to have a clock signal to run it ( it’s digital logic,
remember?).
! Every piece of VHDL code has two parts:
" The Entity, which defines the signals running into, and out of the
device, think of it as being like the package of an IC.
" The Architecture, this defines what the device actually does, this is the
like the silicon die inside the IC package.
! Of course, any piece of VHDL code can be used in any other piece
of VHDL code, as a component. This is how you define complex
designs.

7
FPGA Design Software
-•-• --•- - •• • ••• - • - - • •• - • ••• • -•
! Xilinx and Altera (Leading FPGA Manufacturers)
both provide free software that will allow you to
write your VHDL code, and use it to program your
FPGA.
! This software will take your code and synthesize
it into a form that can be used to program the
FPGA. This is a very complicated process,
because after the logic has been synthesised, it
has to be placed and routed inside the chip you
have chosen.

8
FPGA Design Software 2
-•-• --•- - •• • ••• - • - - • •• - • ••• • -•
! These packages usually also come with
simulators, that allow you to test and verify your
code before you program the FPGA
! JTAG programmer software built in to these
programs allows you to program the FPGA itself,
or a separate Flash memory chip that the FPGA
will use to program itself when it powers up or
resets.
! The software also allows you to define which pins
on your FPGA device to use for your input and
output signals.

9
Open Source Hardware
-•-• --•- - •• • ••• - • - - • •• - • ••• • -•
! In FPGA design, you needn’t re-invent the wheel.
! Both Xilinx and Altera provide IP ( HDL code) free of charge
for different commonly used digital logic functions, but
there is a catch. The stuff is all encrypted, and you can’t
take a peak inside to see how it works.
! http://www.opencores.org/ is the home of open source
hardware on the web.
! You can find source code for almost anything here.
! Most designs use the excellent Wishbone bus, which is an
open source interconnect standard for different logic cores
in an FPGA.

10
Test Equipment
-•-• --•- - •• • ••• - • - - • •• - • ••• • -•
! A logic analyzer is essential, I use one that
connects to a PC with a USB port. This has two
clock inputs and 32 inputs. These are not very
expensive.
! http://www.pctestinstruments.com/
! A JTAG programming cable, that runs from your
computer to your FPGA board. The cheapest
kind use a parallel port and can be bought for
less than 20 dollars from Digilent Inc.
! http://www.digilentinc.com

11
FPGA Development
Boards
-•-• --•- - •• • ••• - • - - • •• - • ••• • -•
! You will need an FPGA board to learn on and play with, as
you figure out how to use the software, and design with
VHDL. A good source again is Digilent inc.
! http://www.digilentinc.com
! Another great source for FPGA boards is Sparkfun
Electronics. Their FPGA breakout boards can be used in
larger projects, without the hassle of laying out a printed
circuit board.
! http://www.sparkfun.com
! Xilinx and Altera also have their own boards which can be
bought directly from them.

12
Ham Radio Apps
-•-• --•- - •• • ••• - • - - • •• - • ••• • -•
! This is the HPSDR,
or High Perfomance
Software Defined
Radio.
! This is all open
source, developed
for ham radio
applications.
! Each of those
boards has an
FPGA on it.
! http://openhpsdr.or
g

13
Ham Radio Apps.
-•-• --•- - •• • ••• - • - - • •• - • ••• • -•
! This is the USRP, or
Universal Software Radio
Peripheral.
! Plug this into a USB port
on your PC, install the
GNU Radio Software, and
you have a system for
developing most any kind
of SDR.
! The FPGA is the large
square in the centre of the
board.
! http://gnuradio.org

14
Conclusions
-•-• --•- - •• • ••• - • - - • •• - • ••• • -•
! FPGAs aren’t really different than anything else in
Ham Radio, they are just another radio part.
! Ham Radio will be increasingly dependent on
these versatile devices in the future.
! Learning and using these devices needn’t be
difficult, there are lots of resources available on
the web and from the manufacturers.

15