Unit 7
Unit 7
General purpose chip for implementing circuits Can be customized using programmable switches
Designers can purchase an IC Connections on the IC are either created or destroyed to implement desired functionality Field-Programmable Gate Array (FPGA) very popular Low NRE costs, almost instant IC availability Bigger, expensive (perhaps $30 per unit), power hungry, slower
2
Benefits
Drawbacks
Inputs
(logic variables)
(logic functions)
Outputs
x1 x2
xn
Use to implement circuits in SOP form The connections in the AND plane are programmable The connections in the OR plane are programmable
x1 x1
Pk
f1
fm
Comparison
Technology Performance/ Cost Time until running Time to high performance Time to change code functionality
ASIC
Very Long Very Long Medium Long Long Long Not Attainable
Speed
Flexibility
PLD Definition
An integrated circuit chip that can be configured by end use to implement different digital hardware Also known as Field Programmable Logic Device (FPLD)
PLD Advantages
ASIC
Volume
PLD Categorization
PLD SPLD
Simple PLD
HCPLD
High Capacity PLD
PLA
PAL
Programmable Array Logic
CPLD
Complex PLD
FPGA
Field Programmable Gate Array
8
N input
xM ROM
M output
The input bits decide the particular word that becomes available on output lines
Sum of minterms
10
PROM Types
Programmable PROM
Break links through current pulses Write once, Read multiple times Program with ultraviolet light Write multiple times, Read multiple times
Program with electrical signal Write multiple times, Read multiple times
12
Widely used to implement functions with large number of inputs and outputs Design of control units (Micro-programmed control units) For combinational circuits with lots of dont care terms, PROM is a wastage of logic resources
13
Programmable AND array + programmable OR array n x k x m PLA has 2n x k + k x m links Sum of products
14
PLA 4 X 6 X 2
15
Finite number of AND gates => simplify function to minimum number of product terms Number of literals in a product term is not important since we have all the input variables Sharing of product terms between outputs => multiple-output minimization
16
17
Number of switching functions that can be implemented with PAL are more limited than PROM and PLA
18
19
20
PAL Implications
Number of product terms per output > number of product terms in each sum-ofproduct expression No sharing of product terms between outputs
21
PALs have the same limitations as PLAs (small number of allowed AND terms) plus they have a fixed OR plane less flexibility than PLAs PALs are simpler to manufacture, cheaper, and faster (better performance) PALs also often have extra circuitry connected to the output of each OR gate
Macrocell
Select
0 1
Enable f1
D Clock
Flip-flop
CPLD
Programmable Interconnect
Logic Block
24
Simple PLD
Logic blocks executes sum-of-product expressions and stores the results in micro-cell registers Programmable interconnects route signals to and from logic blocks
25
Number of macro-cells per logic block Number of inputs from programmable interconnect to logic block Number of product terms in logic block
26
Logic Block
I/O Block
Interconnect
27
Logic Function
Implemented as look-up table (LUT) K-input LUT corresponds to 2 x 1 bit memory K-input LUT can implement any k-input 1output logic function
K
28
Configuring FPGA
29
Programming Technology
Name EPROM EEPROM SRAM Antifuse Re-programmable yes (out of circuit) yes (in circuit) yes (in circuit) no Volatile no no yes no
30
FPGA Applications
Glue Logic (replace SSI and MSI parts) Rapid turnaround Prototype design Emulation Custom computing Dynamic reconfiguration
31
Altera FLEX (250K logic gates) Xilinx XC9500 Xilinx Vertex-E ( 3 million logic gates) Xilinx Spartan (10K logic gates) Altera
FPGA
32
Design Entry
Design Implementation
Design Verification
FPGA Configuration
33
Schematic Compile
HDL
Test vectors
Simulation
34
CPLD
Complex Programmable Logic Devices (CPLD) SPLDs (PLA, PAL) are limited in size due to the small number of input and output pins and the limited number of product terms
Each block is like a PAL: PAL-like block Connections are provided between PAL-like blocks via an interconnection network that is programmable
Structure of a CPLD
I/O block
I/O block
PAL-like block
PAL-like block
Interconnection wires
I/O block
I/O block
PAL-like block
PAL-like block
Includes macrocells
PAL-like block
Fixed OR planes
DQ
DQ
CPLD pins are provided to control XOR, MUX, and tri-state gates When tri-state gate is disabled, the corresponding output pin can be used as an input pin
The AND plane and interconnection network are programmable Commercial CPLDs have between 2-100 PAL-like blocks
Programming a CPLD
Removal of CPLD from a PCB is difficult without breaking the pins Use ISP (in system programming) to program the CPLD JTAG (Joint Test Action Group) port used to connect the CPLD to a computer
Example CPLD
(from inte rconne ction wire s)
x1 x2
unuse d
PAL-like block 0 0
D Q
1 f
FPGA
SPLDs and CPLDs are relatively small and useful for simple logic devices
No AND/OR planes Provide logic blocks, I/O blocks, and interconnection wires and switches Logic blocks provide functionality
interconnection switch
I/O block
logic block
I/O block
I/O block
LUTs
Small number of inputs, one output Contains storage cells that can be loaded with the x1 desired values
0/1
x2
x1 0 0 1 1
0 1 0 1
1 0 0 1
f = x1'x2' + x1x2, or using Shannon's expansion: f = x1'(x2') + x1(x2) = x1'(x2'(1) + x2(0)) + x1(x2'(0) + x2(1))
x1 1 0 0 1 x2 f
3 Input LUT
Commercial LUTs have 0/1 4-5 inputs, and 16-32 0/1 storage cells 0/1
0/1 x3
Programming an FPGA
None of the other PLD technologies are volatile FPGA storage cells are loaded via a PROM when power is first applied
The UP2 Education Board by Altera contains a JTAG port, a MAX 7000 CPLD, and a FLEX 10K FPGA
Example FPGA
x3 f
Use an FPGA with 2 input LUTS to implement the function f = x1x2 + x2'x3 x
1
f1 = x1x2 f2 = x2'x3 f = f1 + f2
x2
x1 0 0 0 x2 1
f1
x2 0 1 0 x3 0
f2
f1 0 1 1 f2 1
Use an FPGA with 2 input LUTS to implement the function f = x1x3x6' + x1x4x5x6' + x2x3x7 + x2x4x5x7
Fan-in of expression is too large for FPGA (this was simple to do in a CPLD) Factor f to get sub-expressions with max fan-in = 2
FPGA Implementation x x
4 5
x3
x1
x6
x2 x2 0 0 B x7 0 1 A 0 1 D 1 B 1 D 0 0 f 0 E 1
x7
Standard Cells
Designers (via CAD tools) select prefab gates from a library and place them in rows Interconnections are made by wires in routing channels
x1 x2 x3
Multiple layers may be used to avoid short circuiting A hard-wired connection between layers is called a via f
2
f1
x1 x2 x3
f1
A Sea of Gates gate array is just like a standard cell except all gates are of the same type
Interconnections are run in channels and use multiple layers Cheaper to manufacture due to regularity
f1 = x2x3' + x1x3