Handouts DSD 13 PLD FPGA PDF
Handouts DSD 13 PLD FPGA PDF
Handouts DSD 13 PLD FPGA PDF
Designing With
Programmable Logic Devices
Examples:
PROM
Programmable Logic Array (PLA)
Programmable Array Logic (PAL) device
Complex Programmable Logic Device (CPLD)
Field-Programmable Gate Array (FPGA)
Why PLDS?
PLD
Programmable logic technology advances rapidly,
and manufacturers are continually offering devices
with increased capabilities and speeds.
Major players in PLDs
Fact:
It is most economical to produce an IC in large volumes
But:
PLD
Altera
Atmel
Cypress
Lattice
QuickLogic
Xilinx
EC6101 Digital System Design Monsoon 2014
PLD
Disadvantage of PLDs
5
EC6101 Digital System Design Monsoon 2014
11/11/2014
Inputs
Programmable
connections
Programmable
OR array
Outputs
Inputs
Programmable
connections
Programmable
AND array
Fixed
OR array
Outputs
Inputs
Programmable
connections
Programmable
AND array
Programmable
connections
Programmable
OR array
Outputs
10
n outputs
(data)
11
12
11/11/2014
Combinational Circuit
Implementation with ROM
Programming a ROM
I4
0
0
0
0
1
1
1
1
Inputs
I3 I2 I1
0
0
0
0
0
0
0
0
1
0
0
1
.
.
.
1
1
0
1
1
0
1
1
1
1
1
1
Outputs
A7 A6 A5 A4 A3 A2 A1 A0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
.
.
.
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
I0
0
1
0
1
0
1
0
1
13
Example 1
Example 1 (cont.)
Inputs
14
Outputs
Outputs
A2
A1
A0
B5
B4
B3
B2
B1
B0
SQ
16
A2
A1
A0
B5
B4
B3
B2
B1
B0
SQ
25
36
49
16
25
36
49
A0
B0
0
B1
8 X 4 ROM
B2
B3
A1
B4
A2
B5
16
Example 2
Example 2
Problem: Tabulate the truth for an 8 X 4 ROM that implements the following
four Boolean functions:
A(X,Y,Z) = Sm(3,6,7); B(X,Y,Z) = Sm(0,1,4,5,6)
C(X,Y,Z) = Sm(2,3,4); D(X,Y,Z) = Sm(2,3,4,7)
Problem: Tabulate the truth for an 8 X 4 ROM that implements the following
four Boolean functions:
A(X,Y,Z) = Sm(3,6,7); B(X,Y,Z) = Sm(0,1,4,5,6)
C(X,Y,Z) = Sm(2,3,4); D(X,Y,Z) = Sm(2,3,4,7)
Solution:
Solution:
Inputs
17
Outputs
18
11/11/2014
Sequential Circuit
Implementation with ROM
inputs X
Combinational
Circuits
Example
Example: Design a sequential circuit whose state table is given, using a
ROM and a register.
outputs Z
next state
present state
State Table
FFs
19
Types of ROMs
By a semiconductor company
21
EC6101 Digital System Design Monsoon 2014
20
22
23
24
11/11/2014
PAL
Example:
3 inputs/2 outputs
F1 = A B + A C + A B C
F2 = (AC + BC)
25
EC6101 Digital System Design Monsoon 2014
27
Example:
4 inputs/4 outputs with fixed 3input OR gates
W = A B C + A B C D
X=?
Y=?
Z=?
EC6101 Digital System Design Monsoon 2014
28
Opposite of ROM
CPLD
26
29
EC6101 Digital System Design Monsoon 2014
30
11/11/2014
CPLD Architecture
CPLD
I/Os
PAL Block
I/Os
PAL Block
Dedicated
inputs
PAL Block
I/Os
PAL Block
I/Os
Clock/
Inputs
The CPLD is an array of PAL-like devices, interconnected by a switch matrix.
EC6101 Digital System Design Monsoon 2014
31
32
CPLD
FPGA
33
What is an FPGA?
Why FPGAs?
By the early 1980s most of the logic circuits
in typical systems where absorbed by a
handful of standard large scale integrated
circuits (LSI).
35
36
11/11/2014
Why FPGAs?
Why FPGAs?
Systems had a few LSI components and lots
of small low density SSI (small scale IC)
and MSI (medium scale IC) components.
37
Why FPGAs?
ASIC
Application Specific
Integrated Circuit
FPGA
Field Programmable
Gate Array
no physical layout design;
design ends with a
bitstream used to configure
a device
bought off the shelf and
reconfigured by
designers themselves
39
FPGAs vs ASICs
40
Comparison
FPGAs
ASICs
38
Summary
Off-the-shelf
High performance
Low development costs
Low power
Short time to the market
Low cost (but only
in high volumes)
Reconfigurability
41
42
11/11/2014
Implementation
Timing simulation
On chip testing
Functional simulation
entity RC5_core is
port(
clock, reset, encr_decr: in std_logic;
data_input: in std_logic_vector(31 downto 0);
data_output: out std_logic_vector(31 downto 0);
out_full: in std_logic;
key_input: in std_logic_vector(31 downto 0);
key_read: out std_logic;
);
end AES_core;
Synthesis
Post-synthesis simulation
43
Logic block
I/O
Interconnection switches
I/O
I/O
44
I/O
45
46
Classification of FPGAs
Families of FPGAs differ in:
physical means of implementing user programmability,
Granularity
how logic is organised
47
I.
48
11/11/2014
OTP devices
Fuse blown = connection established
EC6101 Digital System Design Monsoon 2014
49
50
Antifuse FPGAs
Anti-fuse Programming
Technology
Advantages
Highest density - a mere cross
point - 10X the density of SRAM
Lowest switch resistance - 25
Ohms
Very low capacitance 1 fF per
node.- approaching the metal line
capacitance
non- volatile
Nearly impossible to reverse
engineer
Radiation hard - Space appns Live within 1 millisecond of the
power supply reaching spec
voltage
Software is easy to place and
route
52
FPGA Comparison
SRAM
Antifuse
Flash
EPROM
Worst
Best
Worst
Medium
Power
Varies
Near Best
Best
Worst
Density
Medium
Second
Best
Worst
Worst
Best
Medium
Medium
1/10
1/7
1/-5-
Reprogrammable
Yes
No
Yes
Yes
Speed
Disadvantages
Requires programmer
Requires a socket - a problem for
devices with > 200 pins
Requires one to two transistors per
wire for programming
Some antifuse defects not testable
until programming
51
Radiation
53
54
11/11/2014
Classification of FPGAs
Classification of FPGAs
Symmetrical Array
Row Based
Sea of Gates
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
55
Classification of FPGAs
MUX Implementation
Required function
a
b
MUX based
LUT based
Truth Table
abc y
a
b
y
1
0
1
0
1
0
1
1
58
Programmed LUT
SRAM Cells
1
0
1
0
1
0
1
1
8:1 Multiplexer
000
001
010
011
100
101
110
111
57
LUT Implementation
Required function
56
a bc
59
60
10
11/11/2014
LUT Implementation
n-bit LUT is implemented as a 2n x 1 memory:
inputs choose one of 2n memory locations.
memory locations are normally loaded with values from
users configuration bit stream.
Inputs to mux control are the Configurable Logic Block
(CLB) inputs.
Result is a general purpose logic gate.
n-LUT can implement any function of n inputs!
61
62
An Example
63
64
Classification of PLDs
65
66
11
11/11/2014
Artix 7
Kintex 7
Virtex 7
Virtex 6
Virtex 5
Virtex IV
Virtex II Pro
Virtex II
Spartan 3 (1.2V)
Spartan 2E (1.8V)
Spartan 2 (2.5V)
Spartan XL (3.3V)
XC4000
XC3000
XC2000
EC6101 Digital System Design Monsoon 2014
67
68
69
70
71
72
12
11/11/2014
73
74
75
77
76
78
13
11/11/2014
Direct Interconnects
Between Adjacent CLBs
General-purpose Interconnects
79
80
Package Marking
After Programming
81
Package Marking
82
Spartan-3E FPGAs
83
84
14
11/11/2014
Spartan-3E FPGAs
85
86
Educational Board
87
88
Reference
1. Fundamentals of Logic Design, Charles H Roth.
2. Digital System Design using VHDL, Charles H Roth.
2. Xilinx FPGA data sheets and manuals.
89
90
15