ELEC-2005
Electronics in High Energy Physics
Winter Term: Introduction to Electronics in HEP
Field Programmable Gate Arrays
Part 1
Stefan Haas
CERN Technical Training 2005
Stefan Haas, 1 F
eb. 2005
ELEC-2005 2
Part 2
•
VHDL
–
Introduction
–
Examples
•
Design Flow
–
Entry Methods
–
Simulation
–
Synthesis
–
Place & Route
•
IP Cores
•
CERN Tools & Support
Part 1
•
Programmable Logic
•
CPLD
•
FPGA
–
Architecture
–
Examples
–
Features
–
Vendors and Devices
coffee break
Outline
Programmable Logic
Stefan Haas, 1 F
eb. 2005
ELEC-2005 4
Programmable Logic
•
Programmable digital integrated circuit
•
Standard off-the-shelf parts
•
Desired functionality is implemented by configuring
on-chip logic blocks and interconnections
•
Advantages (compared to an ASIC):
–
Low development costs
–
Short development cycle
–
Device can (usually) be reprogrammed
•
Types of programmable logic:
–
Complex PLDs (CPLD)
–
Field programmable Gate Arrays (FPGA)
CPLD
Architecture and Examples
Stefan Haas, 1 F
eb. 2005
ELEC-2005 6
PLD - Sum of Products
A B C
CBACBAf ••+••=
1
CBABAf ••+•=
2
AND plane
Programmable AND array followed by fixed fan-in OR gates
Programmable switch or fuse
Stefan Haas, 1 F
eb. 2005
ELEC-2005 7
PLD - Macrocell
Can implement combinational or sequential
logic
A
B
C
Flip-flop
Select
Enable
D Q
Clock
AND plane
MUX
1
f
Stefan Haas, 1 F
eb. 2005
ELEC-2005 8
CPLD Structure
Integration of several PLD blocks with a programmable
interconnect on a single chip
PLD
Block
PLD
Block
PLD
Block
PLD
Block
Interconnection Matrix
Interconnection Matrix
I/O Block
I/O Block
I/O Block
I/O Block
PLD
Block
PLD
Block
PLD
Block
PLD
Block
I/O Block
I/O Block
I/O Block
I/O Block
•
•
•
Interconnection Matrix
Interconnection Matrix
•
•
•
•
•
•
•
•
•
Stefan Haas, 1 F
eb. 2005
ELEC-2005 9
CPLD Example - Altera MAX7000
EPM7000 Series Block Diagram
Stefan Haas, 1 F
eb. 2005
ELEC-2005 10
CPLD Example - Altera MAX7000
EPM7000 Series Device Macrocell
FPGA Architecture
Stefan Haas, 1 F
eb. 2005
ELEC-2005 12
FPGA - Generic Structure
FPGA building blocks:
•
Programmable logic blocks
Implement combinatorial and
sequential logic
•
Programmable interconnect
Wires to connect inputs and
outputs to logic blocks
•
Programmable I/O blocks
Special logic blocks at the
periphery of device for external
connections
I/O
I/O
Logic block
Interconnection switches
I/O
I/O
Stefan Haas, 1 F
eb. 2005
ELEC-2005 13
Other FPGA Building Blocks
•
Clock distribution
•
Embedded memory blocks
•
Special purpose blocks:
–
DSP blocks:
•
Hardware multipliers, adders and registers
–
Embedded microprocessors/microcontrollers
–
High-speed serial transceivers
Stefan Haas, 1 F
eb. 2005
ELEC-2005 14
FPGA – Basic Logic Element
•
LUT to implement combinatorial logic
•
Register for sequential circuits
•
Additional logic (not shown):
–
Carry logic for arithmetic functions
–
Expansion logic for functions requiring more than 4 inputs
LUT
LUT
Out
Select
D Q
A
B
C
D
Clock
Stefan Haas, 1 F
eb. 2005
ELEC-2005 15
Look-Up Tables (LUT)
•
Look-up table with N-inputs can be used to implement any
combinatorial function of N inputs
•
LUT is programmed with the truth-table
LUT
LUT
A
B
C
D
Z
A
B
C
D
Z
Truth-table Gate implementation
LUT implementation
Stefan Haas, 1 F
eb. 2005
ELEC-2005 16
LUT Implementation
•
Example: 3-input LUT
•
Based on multiplexers
(pass transistors)
•
LUT entries stored in
configuration memory
cells
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
X1
X2
X3
F
Configuration memory
cells
Stefan Haas, 1 F
eb. 2005
ELEC-2005 17
Programmable Interconnect
•
Interconnect hierarchy (not shown)
–
Fast local interconnect
–
Horizontal and vertical lines of various lengths
LE
LE
LE
LE
LE
LE
LE
LE
LE
LE
LE
LE
Switch
Matrix
Switch
Matrix
Stefan Haas, 1 F
eb. 2005
ELEC-2005 18
Switch Matrix Operation
•
6 pass transistors per switch
matrix interconnect point
•
Pass transistors act as
programmable switches
•
Pass transistor gates are driven
by configuration memory cells
After Programming
Before Programming
Stefan Haas, 1 F
eb. 2005
ELEC-2005 19
Special Features
•
Clock management
–
PLL,DLL
–
Eliminate clock skew between external clock input
and on-chip clock
–
Low-skew global clock distribution network
•
Support for various interface standards
•
High-speed serial I/Os
•
Embedded processor cores
•
DSP blocks
Stefan Haas, 1 F
eb. 2005
ELEC-2005 20
Configuration Storage Elements
•
Static Random Access Memory (SRAM)
–
each switch is a pass transistor controlled by the state of an SRAM bit
–
FPGA needs to be configured at power-on
•
Flash Erasable Programmable ROM (Flash)
–
each switch is a floating-gate transistor that can be turned off by
injecting charge onto its gate. FPGA itself holds the program
–
reprogrammable, even in-circuit
•
Fusible Links (“Antifuse”)
–
Forms a forms a low resistance path when electrically programmed
–
one-time programmable in special programming machine
–
radiation tolerant
Example: Altera Stratix Series
Stefan Haas, 1 F
eb. 2005
ELEC-2005 22
Floorplan
Stefan Haas, 1 F
eb. 2005
ELEC-2005 23
Logic Element
Stefan Haas, 1 F
eb. 2005
ELEC-2005 24
Logic Array Block (LAB)
•
LAB regroups 10 logic
elements with a fast
local interconnect
•
Interconnect structure
–
Direct link between LABs
and adjacent blocks
–
Row interconnects
•
4, 8, and 24 blocks left or
right
–
Column interconnects
•
4, 8, and 16 blocks up or
down
Stefan Haas, 1 F
eb. 2005
ELEC-2005 25
Embedded Memory
Dual-Port RAM
–
M512 – 512 x 1
–
M4K – 4096 x 1
–
M-RAM – 64K x 8