Title: Chapter
1Chapter 4 Programmable andSteering
LogicContemporary Logic DesignRandy H.
KatzUniversity of California, BerkeleyJune 1993
2Chapter Overview
PALs and PLAs Non-Gate Logic Switch
Logic Multiplexers/Selecters and Decoders
Tri-State Gates/Open Collector Gates
ROM Combinational Logic Design Problems
Seven Segment Display Decoder Process Line
Controller Logical Function Unit
Barrel Shifter
3PALs and PLAs
Pre-fabricated building block of many AND/OR
gates (or NOR, NAND) "Personalized" by making or
breaking connections among the gates
Programmable Array Block Diagram for Sum of
Products Form
4PALs and PLAs
Key to Success Shared Product Terms
Equations
F0 A B' C' F1 A C' A B F2 B' C'
A B F3 B' C A
Example
Input Side
1 asserted in term 0 negated in term - does
not participate
Personality Matrix
Output Side
1 term connected to output 0 no connection to
output
5PALs and PLAs
Example Continued
All possible connections are available before
programming
6PALs and PLAs
Example Continued
Unwanted connections are "blown"
Note some array structures work by making
connections rather than breaking them
7PALs and PLAs
Alternative representation for high fan-in
structures
Short-hand notation so we don't have to draw all
the wires!
Notation for implementing F0 A B A' B' F1
C D' C' D
8PALs and PLAs
Design Example
Multiple functions of A, B, C
F1 A B C F2 A B C F3 A B C F4 A
B C F5 A xor B xor C F6 A xnor B xnor C
9PALs and PLAs
What is difference between Programmable Array
Logic (PAL) and Programmable Logic Array
(PLA)?
PAL concept implemented by Monolithic Memories
constrained topology of the OR Array
A given column of the OR array has access to only
a subset of the possible product terms
PLA concept generalized topologies in AND and
OR planes
10PALs and PLAs
Design Example BCD to Gray Code Converter
Truth Table
K-maps
Minimized Functions
W A B D B C X B C' Y B C Z A'B'C'D
B C D A D' B' C D'
11PALs and PLAs
Programmed PAL
4 product terms per each OR gate
12PALs and PLAs
Code Converter Discrete Gate Implementation
4 SSI Packages vs. 1 PLA/PAL Package!
13PALs and PLAs
Another Example Magnitude Comparator
14Non-Gate Logic
Introduction
AND-OR-Invert PAL/PLA
Generalized Building Blocks Beyond Simple Gates
Kinds of "Non-gate logic" switching
circuits built from CMOS transmission gates
multiplexer/selecter functions
decoders tri-state and open collector
gates read-only memories
15Steering Logic Switches
Voltage Controlled Switches
n-type Si
p-type Si
"n-Channel MOS"
- Metal Gate, Oxide, Silicon Sandwich
- Diffusion regions negatively charged ions driven
into Si surface - Si Bulk positively charged ions
- By "pulling" electrons to the surface, a
conducting channel is formed
16Steering Logic
Voltage Controlled Switches
Logic 1 on gate, Source and Drain connected
Logic 0 on gate, Source and Drain connected
17Steering Logic
Logic Gates from Switches
NOR Gate
NAND Gate
Inverter
- Pull-up network constructed from pMOS transistors
- Pull-down network constructed from nMOS
transistors
18Steering Logic
Inverter Operation
Input is 1 Pull-up does not conduct Pull-down
conducts Output connected to GND
Input is 0 Pull-up conducts Pull-down does not
conduct Output connected to VDD
19Steering Logic
NAND Gate Operation
A 0, B 1 Pull-up network has path to
VDD Pull-down network path broken Output node
connected to VDD
A 1, B 1 Pull-up network does not
conduct Pull-down network conducts Output node
connected to GND
20Steering Logic
NOR Gate Operation
A 0, B 0 Pull-up network conducts Pull-down
network broken Output node at VDD
A 1, B 0 Pull-up network broken Pull-down
network conducts Output node at GND
21Steering Logic
CMOS Transmission Gate
nMOS transistors good at passing 0's but bad at
passing 1's pMOS transistors good at passing
1's but bad at passing 0's perfect
"transmission" gate places these in parallel
Transmission or "Butterfly" Gate
Switches
Transistors
22Steering Logic
Selection Function/Demultiplexer Function with
Transmission Gates
Selector Choose I0 if S 0 Choose I1 if S
1
Demultiplexer I to Z0 if S 0 I to Z1 if
S 1
23Steering Logic
Use of Multiplexer/Demultiplexer in Digital
Systems
So far, we've only seen point-to-point
connections among gates Mux/Demux used to
implement multiple source/multiple destination
interconnect
24Steering Logic
Well-formed Switching Networks
Problem with the Demux implementation
multiple outputs, but only one connected to the
input!
The fix additional logic to drive every output
to a known value Never allow outputs to "float"
25Steering Logic
Complex Steering Logic Example
N Input Tally Circuit count of 1's in the
inputs
Conventional Logic for 1 Input Tally Function
Switch Logic Implementation of Tally Function
26Steering Logic
Complex Steering Logic Example
Operation of the 1 Input Tally Circuit
Input is 0, straight through switches enabled
27Steering Logic
Complex Steering Logic Example
Operation of 1 input Tally Circuit
Input 1, diagonal switches enabled
28Steering Logic
Complex Steering Logic Example
Extension to the 2-input case
Conventional logic implementation
29Steering Logic
Complex Steering Logic Example
Switch Logic Implementation 2-input Tally Circuit
Cascade the 1-input implementation!
30Steering Logic
Complex Steering Logic Example
Operation of 2-input implementation
31Multiplexers/Selectors
Use of Multiplexers/Selectors
Multi-point connections
Multiple input sources
Multiple output destinations
32Multiplexers/Selectors
General Concept
n
2 data inputs, n control inputs, 1
output used to connect 2 points to a single
point control signal pattern form binary index
of input connected to output
n
Z A' I A I
0
1
Functional form
Logical form
Two alternative forms for a 21 Mux Truth Table
33Multiplexers/Selectors
Z A' I A I
0
1
Z A' B' I0 A' B I1 A B' I2 A B I3
Z A' B' C' I0 A' B' C I1 A' B C' I2 A' B
C I3 A B' C' I4 A B' C I5 A B C' I6
A B C I7
n
2 -1
In general, Z ? m I
k0
k
k
n
in minterm shorthand form for a 2 1 Mux
34Multiplexers/Selectors
Alternative Implementations
Transmission Gate Implementation of 41 Mux
Gate Level Implementation of 41 Mux
twenty transistors
thirty six transistors
35Multiplexer/Selector
Large multiplexers can be implemented by cascaded
smaller ones
Control signals B and C simultaneously choose one
of I0-I3 and I4-I7 Control signal A chooses
which of the upper or lower MUX's output to gate
to Z
Alternative 81 Mux Implementation
36Multiplexer/Selector
Multiplexers/selectors as a general purpose logic
block
n-1
2 1 multiplexer can implement any function
of n variables n-1 control variables remaining
variable is a data input to the mux
Example
F(A,B,C) m0 m2 m6 m7
A' B' C' A' B C' A B C' A B C
A' B' (C') A' B (C') A B' (0) A B (1)
"Lookup Table"
37Multiplexer/Selector
Generalization
Four possible configurations of the truth table
rows
n-1 Mux control variables
single Mux data variable
Can be expressed as a function of In, 0, 1
Example
G(A,B,C,D) can be implemented by an 81 MUX
K-map Choose A,B,C as control variables
Multiplexer Implementation
TTL package efficient May be gate inefficient
38Decoders/Demultiplexers
n
Decoder single data input, n control inputs, 2
outputs control inputs (called select S)
represent Binary index of output to which
the input is connected data input usually called
"enable" (G)
12 Decoder
38 Decoder
O0 G S0 S1 S2 O1 G S0 S1 S2 O2
G S0 S1 S2 O3 G S0 S1 S2 O4 G
S0 S1 S2 O5 G S0 S1 S2 O6 G
S0 S1 S2 O7 G S0 S1 S2
O0 G S O1 G S
24 Decoder
O0 G S0 S1 O1 G S0 S1 O2 G S0
S1 O3 G S0 S1
39Decoders/Demultiplexers
Alternative Implementations
12 Decoder, Active Low Enable
12 Decoder, Active High Enable
24 Decoder, Active Low Enable
24 Decoder, Active High Enable
40Decoders/Demultiplexers
Switch Logic Implementations
Naive, Incorrect Implementation All outputs not
driven at all times
Correct 12 Decoder Implementation
41Decoders/Demultiplexers
Switch Implementation of 24 Decoder
Operation of 24 Decoder
S0 0, S1 0 one straight thru path three
diagonal paths
42Decoder/Demultiplexer
Decoder as a Logic Building Block
Decoder Generates Appropriate Minterm based on
Control Signals
Example Function
F1 A' B C' D A' B' C D A B C D F2 A B
C' D' A B C F3 (A' B' C' D')
43Decoder/Demultiplexer
Decoder as a Logic Building Block
If active low enable, then use NAND gates!
44Multiplexers/Decoders
Alternative Implementations of 321 Mux
Multiplexer Decoder
Multiplexer Only
45Multiplexers/Decoders
532 Decoder
46Tri-State and Open-Collector
The Third State
Logic States "0", "1" Don't Care/Don't Know
State "X" (must be some value in real
circuit!) Third State "Z" high impedance
infinite resistance, no connection
Tri-state gates output values are "0", "1", and
"Z" additional input
output enable (OE)
When OE is high, this gate is a non-inverting
"buffer" When OE is low, it is as though the
gate was disconnected from the
output! This allows more than one gate to be
connected to the same output wire, as long
as only one has its output enabled at the
same time
OE 0 1 1
A X 0 1
F Z 0 1
Non-inverting buffer's timing waveform
"Z"
"Z"
47Tri-state and Open Collector
Using tri-state gates to implement an economical
multiplexer
When SelectInput is asserted high Input1 is
connected to F When SelectInput is driven low
Input0 is connected to F This is essentially
a 21 Mux
48Tri-state and Open Collector
Alternative Tri-state Fragment
Active low tri-state enables plus inverting
tri-state buffers
Switch Level Implementation of tri-state gate
49Tri-State and Open Collector
41 Multiplexer, Revisited
Decoder 4 tri-state Gates
50Tri-State and Open Collector
Open Collector
another way to connect multiple gates to the same
output wire gate only has the ability to pull
its output low it cannot actively drive
the wire high this is done by pulling the wire
up to a logic 1 voltage through a resistor
OC NAND gates
Wired AND
If A and B are "1", output is actively pulled
low if C and D are "1", output is actively pulled
low if one gate is low, the other high, then low
wins if both gates are "1", the output floats,
pulled high by resistor Hence, the two
NAND functions are AND'd together!
51Tri-State and Open Collector
41 Multiplexer
Decoder 4 Open Collector Gates
52Read-Only Memories
ROM Two dimensional array of 1's and 0's
Row is called a "word" index is called an
"address" Width of row is called bit-width or
wordsize Address is input, selected word is
output
Internal Organization
53Read-Only Memories
Example Combination Logic Implementation
F0 A' B' C A B' C' A B' C F1 A' B' C
A' B C' A B C F2 A' B' C' A' B' C
A B' C' F3 A' B C A B' C' A B C'
by
54Read-Only Memories
Not unlike a PLA structure with a fully
decoded AND array!
ROM vs. PLA
ROM approach advantageous when (1) design
time is short (no need to minimize output
functions) (2) most input combinations are
needed (e.g., code converters) (3) little
sharing of product terms among output
functions ROM problem size doubles for each
additional input, can't use don't cares PLA
approach advantangeous when (1) design tool
like espresso is available (2) there are
relatively few unique minterm combinations
(3) many minterms are shared among the output
functions PAL problem constrained fan-ins on OR
planes
55Read-Only Memories
2764 EPROM 8K x 8
16K x 16 Subsystem
56Combinational Logic Word Problems
General Design Procedure
1. Understand the Problem what is
the circuit supposed to do? write
down inputs (data, control) and outputs
draw block diagram or other picture 2.
Formulate the Problem in terms of a truth table
or other suitable design representation
truth table or waveform diagram 3.
Choose Implementation Target ROM,
PAL, PLA, Mux, Decoder OR, Discrete Gates 4.
Follow Implementation Procedure
K-maps, espresso, misII
57Combinational Logic Word Problems
Process Line Control Problem
Statement of the Problem
Rods of varying length (/-10) travel on
conveyor belt Mechanical arm pushes rods within
spec (/-5) to one side Second arm pushes rods
too long to other side Rods too short stay on
belt 3 light barriers (light source photocell)
as sensors Design combinational logic to
activate the arms
Understanding the Problem
Inputs are three sensors, outputs are two arm
control signals Assume sensor reads "1" when
tripped, "0" otherwise Call sensors A, B,
C Draw a picture!
58Combinational Logic Word Problems
Process Control Problem
Where to place the light sensors A, B, and C to
distinguish among the three cases? Assume
that A detects the leading edge of the rod on the
conveyor
59Combinational Logic Word Problems
Process Control Problem
A to B distance place apart at specification -
5 A to C distance placed apart at specification
5
60Combinational Logic Word Problems
Process Control Problem
Truth table and logic implementation now
straightforward
"too long" A B C (all three sensors
tripped) "in spec" A B C' (first two
sensors tripped)
61Combinational Logic Word Problems
BCD to 7 Segment Display Controller
Understanding the problem
input is a 4 bit bcd digit output is the control
signals for the display 4 inputs A, B, C, D 7
outputs C0 C6
Block Diagram
62Combinational Logic Word Problems
BCD to 7 Segment Display Controller
Formulate the problem in terms of a truth
table
Choose implementation target
if ROM, we are done don't cares imply PAL/PLA
may be attractive
Follow implementation procedure
hand reduced K-maps vs. espresso
63Combinational Logic Word Problems
BCD to 7 Segment Display Controller
C0 A B D C B' D' C1 A C' D' C D
B' C2 A B C' D
C3 B' D' C D' B C' D B' C C4 B' D' C
D C5 A C' D' B D' B C' C6 A C D' B
C' B' C
14 Unique Product Terms
64Combinational Logic Word Problems
BCD to 7 Segment Display Controller
16H8PAL Can Implement the function
65Combinational Logic Word Problems
BCD to 7 Segment Display Controller
14H8PAL Cannot Implement the function
66Combinational Logic Word Problems
BCD to7 Segment Display Controller
.i 4 .o 7 .ilb a b c d .ob c0 c1 c2 c3 c4 c5
c6 .p 16 0000 1111110 0001 0110000 0010
1101101 0011 1111001 0100 0110011 0101
1011011 0110 1011111 0111 1110000 1000
1111111 1001 1110011 1010 ------- 1011
------- 1100 ------- 1101 ------- 1110
------- 1111 ------- .e
.i 4 .o 7 .ilb a b c d .ob c0 c1 c2 c3 c4 c5
c6 .p 9 -10- 0000001 -01- 0001001 -0-1
0110000 -101 1011010 --00 0110010 --11
1110000 -0-0 1101100 1--- 1000011 -110
1011111 .e
C0 B C' D C D B' D' B C D' A C1 B' D
C' D' C D B' D' C2 B' D B C' D C' D'
C D B C D' C3 B C' D B' D B' D' B C
D' C4 B' D' B C D' C5 B C' D C' D' A
B C D' C6 B' C B C' B C D' A 9 Unique
Product Terms!
espresso output
63 Literals, 20 Gates
espresso input
67Combinational Logic Word Problems
BCD to 7 Segment Display Controller
PLA Implementation
68Combinational Logic Word Problems
BCD to7 Segment Display Controller
Multilevel Implementation
X C' D' Y B' C' C0 C3 A' B X' A D
Y C1 Y A' C5' C' D' C6 C2 C5 A' B' D
A' C D C3 C4 B D C5 A' B' X' C4 D' Y
A' C D' C5 C' C4 A Y A' B X C6 A C4
C C5 C4' C5 A' B' C
52 literals 33 gates Ineffective use of don't
cares
69Combinational Logic Word Problems
Logical Function Unit
Statement of the Problem
3 control inputs C0, C1, C2 2 data inputs A,
B 1 output F
70Combinational Logic Word Problems
Logical Function Unit
Formulate as a truth table Choose
implementation technology 5-variable K-map
espresso multiplexor implementation
4 TTL packages 4 x 2-input NAND 4 x 2-input
NOR 2 x 2-input XOR 81 MUX
71Combinational Logic Word Problems
Logical Function Unit
Follow implementation procedure
F C2' A' B' C0' A B' C0' A' B
C1' A B
5 gates, 5 inverters Also four packages 4 x
3-input NAND 1 x 4-input NAND Alternative
32 x 1-bit ROM single package
72Combinational Logic Word Problems
8-Input Barrel Shifter
Specification
Inputs D7, D6, , D0 Outputs O7, O6, ,
O0 Control S2, S1, S0
shift input the specified number of positions to
the right
Understand the problem
D7 D6 D5 D4 D3 D2 D1 D0
O7 O6 O5 O4 O3 O2 O1 O0
D7 D6 D5 D4 D3 D2 D1 D0
O7 O6 O5 O4 O3 O2 O1 O0
D7 D6 D5 D4 D3 D2 D1 D0
O7 O6 O5 O4 O3 O2 O1 O0
. . .
. . .
. . .
S2, S1, S0 0 0 1
S2, S1, S0 0 0 0
S2, S1, S0 0 1 0
73Combinational Logic Word Problems
8-Input Barrel Shifter
Function Table
Boolean equations
O7 S2' S1' S0' D7 S2' S1' S0 D6 S2
S1 S0 D0 O6 S2' S1' S0' D6 S2' S1' S0 D5
S2 S1 S0 D7 O5 S2' S1' S0' D5 S2'
S1' S0 D4 S2 S1 S0 D6 O4 S2' S1' S0'
D4 S2' S1' S0 D3 S2 S1 S0 D5 O3
S2' S1' S0' D3 S2' S1' S0 D2 S2 S1
S0 D4 O2 S2' S1' S0' D2 S2' S1' S0 D1
S2 S1 S0 D3 O1 S2' S1' S0' D1 S2' S1'
S0 D0 S2 S1 S0 D2 O0 S2' S1' S0' D0
S2' S1' S0 D7 S2 S1 S0 D1
74Combinational Logic Word Problems
8-Input Barrel Shifter
Straightforward gate logic implementation OR 8
by 81 multiplexer (wiring mess!) OR Switch logic
Crosspoint switches
Fully Wired crosspoint switch
75Chapter Review
Non-Simple Gate Logic Building
Blocks Combinational Word Problems
PALs/PLAs Multiplexers/Selecters Decoders ROMs
Tri-state, Open Collector
Understand the Problem Formulate in terms of a
Truth Table Choose implementation
technology Implement by following the design
procedure