Sunteți pe pagina 1din 12

Programmable

Logic Devices

Introduction
An IC that contains large numbers of gates, flip-flops,
etc. that can be configured by the user to perform
different functions is called a Programmable Logic
Device (PLD).
The internal logic gates and/or connections of PLDs can
be changed/configured by a programming process.
One of the simplest programming technologies is to use
fuses. In the original state of the device, all the fuses are
intact.
Programming the device involves blowing those fuses
along the paths that must be removed in order to obtain
the particular configuration of the desired logic function.

Programmable Logic Organization


PLDs are typically built with an array of AND gates (AND-array)
and an array of OR gates (OR-array).
"Personalized" by making or breaking connections among the
gates
Inputs

Programmable Array Block Diagram for Sum of Products Form

ADVANTAGES
less board space, faster, lower power requirements (i.e., smaller power supplies),
less costly assembly processes, higher reliability (fewer ICs and circuit
connections means easier troubleshooting), and availability of design software.

Basic Programmable Logic


Organizations
Depending on which of the AND/OR logic
arrays is programmable, we have three
basic organizations
ORGANIZATION

AND ARRAY

OR ARRAY

PAL

PROG.

FIXED

PROM

FIXED

PROG.

PLA

PROG.

PROG.

ROM, PAL and PLA Configurations


Fixed
AND array
(decoder)

Inputs

Programmable
Connections

Programmable
OR array

Outputs

(a) Programmable read-only memory (PROM)

Inputs

Programmable
Connections

Programmable
AND array

Fixed
OR array

Outputs

Programmable
OR array

Outputs

(b) Programmable array logic (PAL) device

Inputs

Programmable
Connections

Programmable
AND array

Programmable
Connections

(c) Programmable logic array (PLA) device

Chapter 3 - Part 2

PLA Logic Implementation


Unprogrammed device

Alternative representation

Short-hand notation
so we don't have to
draw all the wires!

X at junction indicates
a connection

A B C D
AB
AB
CD

Notation for implementing

CD

F0 = A B + A B
F1 = C D + C D

Programmed device

AB+AB

CD+CD

PLA Logic Implementation


Design Example

A B C
ABC

Multiple functions of A, B, C

A
B

F1 = A B C

C
A

F2 = A + B + C

F3 = A B 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

F6

PALs and PLAs


What is difference between Programmable Array Logic (PAL) and
Programmable Logic Array (PLA)?
PAL concept implemented by Monolithic Memories
AND array is programmable, OR array is fixed at fabrication

A given column of the OR array


has access to only a subset of
the possible product terms

PLA concept Both AND and OR arrays are programmable

PALs and PLAs


Of the two organizations the PLA is the
most flexible
One PLA can implement a huge range of logic
functions
BUT many pins; large package, higher cost

PALs are more restricted / you trade


number of OR terms vs number of outputs
Many device variations needed
Each device is cheaper than a PLA

PAL Logic Implementation


Design Example: BCD to Gray Code Converter
Truth Table
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

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

A
01

11

10

00

01

AB
00
CD

A
01

11

10

00

01

11

10

D
11

C
10

B
K-map for W
AB
00
CD

Minimized Functions:

B
K-map for X

A
01

11

10

00

01

AB
00
CD

A
01

11

10

00

01

11

10

D
11

W=A+BD+BC
X=BC
Y=B+C
Z=ABCD+BCD+AD+BCD

K-maps

C
10

B
K-map for Y

B
K-map for Z

PAL Logic Implementation


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
ABCD
BCD
AD
BCD

4 product terms per each OR gate


W

PLA Logic Implementation


Another Example: Magnitude Comparator
AB
00
CD

A
01

11

10

AB
00
CD

ABCD

01

11

10

00

00

01

01

11

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

EQ NE LT

GT

S-ar putea să vă placă și