Programmable Logic Devices: Mohammed Anvar P.K Ap/Ece Al-Ameen Engineering College
Programmable Logic Devices: Mohammed Anvar P.K Ap/Ece Al-Ameen Engineering College
www.edutalks.org
Mohd Anvar
PLDs
PLA
PAL
ROM
CPLD
FPGA
Mohd Anvar
Fixed
AND array
(decoder)
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
www.edutalks.org
Outputs
Mohd Anvar
x1 x2
xn
Input buffers
and
inverters
x1 x1
xn xn
P1
AND plane
www.edutalks.org
OR plane
Pk
f1
fm
Mohd Anvar
x2
x3
Programmable
connections
f1 = x1x2+x1x3'+x1'x2'x3
OR plane
P1
f2 = x1x2+x1'x2'x3+x1x3
P2
P3
P4
AND plane
www.edutalks.org
f1
f2
Mohd Anvar
x2
x3
OR plane
f1 = x1x2+x1x3'+x1'x2'x3
P1
f2 = x1x2+x1'x2'x3+x1x3
P2
P3
P4
AND plane
www.edutalks.org
f1
f2
Mohd Anvar
F0 = A + B C
F1 = A C + A B
F2 = B C + A B
F3 = B C + A
Personality Matrix
Product Inputs
term
A B C
AB
1 1 BC
- 0 1
AC
1 - 0
BC
- 0 0
A
1 - -
Outputs
F0 F 1 F 2 F 3
0 1 1 0
0 0 0 1
0 1 0 0
1 0 1 0
1 0 0 1
Reuse
of
terms
Input Side:
1 = asserted in term
0 = negated in term
- = does not participate
Output Side:
1 = term connected to output
0 = no connection to output
www.edutalks.org
Mohd Anvar
F0
F1
www.edutalks.org
F2
F3
Mohd Anvar
F0
F1
F2
F3
Mohd Anvar
Unprogrammed device
A B C D
AB
AB
CD
CD
F0 = A B + A B
F1 = C D + C D
Programmed device
AB+AB
www.edutalks.org
CD+CD
Mohd Anvar
A B C
Design Example
ABC
Multiple functions of A, B, C
A
B
F1 = A B C
C
A
F2 = A + B + C
F3 = A B C
C
ABC
F4 = A + B + C
ABC
F5 = A B C
ABC
ABC
F6 = A B C
ABC
ABC
ABC
F1 F2 F3 F4 F5
www.edutalks.org
F6
Mohd Anvar
x1 x2
xn
Input buffers
and
inverters
The connections in
the AND plane are
programmable
x1 x1
The connections in
the OR plane are
NOT programmable
fixed connections
xn xn
P1
AND plane
www.edutalks.org
OR plane
Pk
f1
fm
Mohd Anvar
x2
x3
f1 = x1x2x3'+x1'x2x3
f2 = x1'x2'+x1x2x3
P1
f1
P2
P3
f2
P4
AND plane
www.edutalks.org
Mohd Anvar
K-maps
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
W
0
0
0
0
0
1
1
1
1
1
X
X
X
X
X
X
X
0
0
0
0
1
1
0
0
0
0
X
X
X
X
X
X
Y
0
0
1
1
1
1
1
1
0
0
X
X
X
X
X
X
Z
0
1
1
0
0
0
0
1
1
0
X
X
X
X
X
X
AB
00
CD
01
11
10
00
01
AB
00
CD
01
11
10
00
01
11
10
D
11
C
10
B
K-map for W
B
K-map for X
AB
00
CD
01
11
10
00
01
Minimized Functions:
AB
00
CD
01
11
10
00
01
11
10
D
11
W=A+BD+BC
X=BC
Y=B+C
Z=ABCD+BCD+AD+BCD
X
C
C
10
B
K-map for Y
www.edutalks.org
B
K-map for Z
Mohd Anvar
Programmed PAL:
A B
C D
A
BD
BC
Minimized Functions:
W=A+BD+BC
X=BC
Y=B+C
Z=ABCD+BCD+AD+BCD
BC
0
0
0
B
C
0
0
AB C D
BCD
AD
BCD
www.edutalks.org
Mohd Anvar
B
D
B
C
A
B
C
D
W
B
C
D
2
D
A
2
3
4
B
C
B
C
D
Mohd Anvar
AB
00
CD
AB
00
CD
01
11
10
00
00
01
11
ABCD
01
11
10
01
11
10
ABCD
ABCD
D
ABCD
C
10
AC
AC
K-map for EQ
K-map for NE
BD
BD
AB
00
CD
A
01
11
10
AB
00
CD
A
01
11
10
ABD
00
00
BCD
01
01
ABC
11
11
10
10
D
C
BCD
B
K-map for LT
B
K-map for GT
www.edutalks.org
EQ NE LT
GT
www.edutalks.org
Mohd Anvar
Select
Enable
OR gate from PAL
Macrocell
Flip-flop
Clock
www.edutalks.org
Mohd Anvar
www.edutalks.org
Mohd Anvar
www.edutalks.org
Mohd Anvar
www.edutalks.org
Mohd Anvar
www.edutalks.org
Mohd Anvar
www.edutalks.org
Mohd Anvar
Simple PLDS
Mohd Anvar
www.edutalks.org
Mohd Anvar
PAL-like
block
PAL-like
block
I/O block
I/O block
Structure of a CPLD
PAL-like
block
PAL-like
block
www.edutalks.org
I/O block
I/O block
Interconnection wires
Mohd Anvar
Fixed OR planes
OR gates have fan-in
between 5-20
PAL-like block
DQ
DQ
DQ
www.edutalks.org
Mohd Anvar
Example CPLD
Mohd Anvar
unused
PAL-likeblock
0 1
f
D Q
www.edutalks.org
Mohd Anvar
www.edutalks.org
Mohd Anvar
Xinlinx CPLDs
www.edutalks.org
Mohd Anvar
36 Signal pins
18 outputs
Global Clock
Global set/reset
Global 3 state control
www.edutalks.org
18 Output
enable signals
Mohd Anvar
www.edutalks.org
Mohd Anvar
www.edutalks.org
Mohd Anvar
www.edutalks.org
Mohd Anvar
FPGA
SPLDs and CPLDs are relatively small and useful for simple
logic devices
Up to about 20000 gates
Mohd Anvar
IOB
IOB
IOB
CLB
CLB
CLB
CLB
CLB
IOB
CLB
IOB
IOB
IOB
IOB
IOB
FPGA Structure
Input/Output
Block
IOB
SM
CLB
SM
CLB
IOB
SM
CLB
SM
CLB
SM
CLB
SM
IOB
Configurable
Logic
Block
SM
CLB
SM
SM
CLB
CLB
CLB
CLB
IOB
IOB
IOB
IOB
www.edutalks.org
Switch
Matrix
Mohd Anvar
www.edutalks.org
Mohd Anvar
LUTs
0/1
0/1
0/1
0/1
x2
www.edutalks.org
Mohd Anvar
x2
0
1
0
1
f
1
0
0
1
x1
1
0
0
1
x2
www.edutalks.org
Mohd Anvar
3 Input LUT
x1
x2
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
x3
www.edutalks.org
Mohd Anvar
Programming an FPGA
www.edutalks.org
Example FPGA
Mohd Anvar
f1 = x1x2
f2 = x2'x3
f = f1 + f2
x1
x2
x1 0
0 f
1
x2 0
1
x2 0
1 f
2
x3 0
0
f1 0
1
1
f2
1
www.edutalks.org
Mohd Anvar
www.edutalks.org
FPGA Implementation
Mohd Anvar
x5
x3
x1
x6
x1 0
0 A
x6 1
0
x4 0
0 C
x5 0
1
x3 0
1 E
1
C 1
x2 0
0 B
x7 0
1
A 0
1 D
1
B 1
D 0
0 f
0
E 1
x2
x7
www.edutalks.org
Mohd Anvar
www.edutalks.org
Mohd Anvar
www.edutalks.org
Mohd Anvar
www.edutalks.org
Mohd Anvar
Xilinx XC400-CLB
www.edutalks.org
Mohd Anvar
XC400 -IOB
www.edutalks.org
Mohd Anvar
Thank you
www.edutalks.org