Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
87 views

Fpgas For Beginners

FPGAs (Field Programmable Gate Arrays) are programmable logic devices that can be configured to perform complex logic functions. They contain configurable logic blocks and look-up tables that are programmed using configuration information stored in static RAM cells. FPGAs were introduced in 1985 and have since grown enormously in complexity. They are used anywhere complex logic needs to be implemented in a single chip, such as for microprocessors, interfaces, and software defined radios. For amateur radio, FPGAs enable more sophisticated homebrew equipment and are important for software defined radios. VHDL is the hardware description language used to program FPGAs, and free design software from manufacturers compiles VHDL into configurations. Open

Uploaded by

Al Sau
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views

Fpgas For Beginners

FPGAs (Field Programmable Gate Arrays) are programmable logic devices that can be configured to perform complex logic functions. They contain configurable logic blocks and look-up tables that are programmed using configuration information stored in static RAM cells. FPGAs were introduced in 1985 and have since grown enormously in complexity. They are used anywhere complex logic needs to be implemented in a single chip, such as for microprocessors, interfaces, and software defined radios. For amateur radio, FPGAs enable more sophisticated homebrew equipment and are important for software defined radios. VHDL is the hardware description language used to program FPGAs, and free design software from manufacturers compiles VHDL into configurations. Open

Uploaded by

Al Sau
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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

You might also like