Professional Documents
Culture Documents
Class #1
Unallocated Space, Severn MD
fpga@unallocatedspace.org
Presenter: David Protzman
Agenda
Instructor Intro
Class History
Things That Will Be Covered
Instructor Intro
Name: Dave / Proto
Job: Cloud Software Developer
Electronics Background:
Arduino
PIC
VHDL
Xilinx
Class History
What to Expect
Tonights Plan
What is an FPGA?
A word about CPLDs
How does it compare to microcontrollers/CPUs?
Why use an FPGA?
How are FPGAs programmed?
What is an FPGA made of?
What are the different Xilinx FPGAs?
Why not Xilinx and Altera mix?
What do I need to start programming?
Live demo of ISE
Upload Hello World blinky light example bit file
What is an FPGA?
Microcontrollers:
Good for quick turnaround development
Lots of already baked in functionality (serial, I2C, SPI, etc)
Cheap
Breadboardable (sometimes)
Moderately fast
Programmed in C/C++/assembly
Generally low pin count
Mostly single threaded
FPGAs:
Can be anything you want
Programmed with VHDL/Verilog
Need to develop your own peripherals
Parallel by default
Not breadboardable
Expensive compared to microcontrollers
Takes a while to program
Completely different way of thinking about a problem
Need a 200 MHz sine generator and 2 FFT modules? No Problem!
FPGA - Programming
FPGA - Programming
Flip-flop: A 1 bit circuit that has two stable states and can be used to store
state information (Wikipedia)
An FPGA can be thought of as a massive array of flip-flops.
Flip-flops can be connected together to store larger amounts of
information.
Lookup Table: Basically a small RAM block that can be used to implement
logic functions
Example: You want to make sure that when inputs A and B are
pressed that C goes high.
A
FPGA - RAM
2 types of RAM
Distributed
Uses FPGA fabric
Takes up logic resources
Distributed RAM is made of
LUTs
Block
Dedicated blocks of memory on
the die
Does not take up logic resources
FPGA - DSP
FPGA - DCM
FPGA Parts - IO
Class activity:
Spartan 6 (Mojo and Nexys3)
http://www.xilinx.com/support/documentation/user_guides/ug385.
pdf
Find your chip
Mojo - TQG144 Package--LX4 and LX9 page 272
Nexys 3 - CSG324 Package--LX16 page 279
Spartan 3 (Basys2)
http://www.xilinx.com/support/documentation/data_sheets/ds099.
pdf
Find your chip
Basys2 - CP132 Footprint page 140
Xilinx
Spartan:
1-6
Virtex:
1-7
Artix
7
Kintex
7
Easy Path
6
VHDL - Why?
ISE
Stands for Integrated Software Environment
Requires a license (free for us!)
We will be using the Web Pack
Only supports the lower end FPGAs
Does not have all the bells and whistles
You can get a 30 day license for the Design Suite
Has all the cool stuff!
Consists of many different programs
Project Navigator
Simulator
Floor Planner
Others
Xilinx - ISE
Constraints file
Xilinx - ISE