Transcript Document
SOP and POS Forms
Notation
SOP Given a Table of Combinations
What is the SOP form for the following 3 input / 1
output digital device?
S
A
B
f
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
Computing the SOP (2)
S
A
B
f
minterm name
0
1
0
1
m2
0
1
1
1
m3
1
0
1
1
m5
1
1
1
1
m7
This SOP has 4 minterms:
f = S'AB' + S'AB + SA'B + SAB
Canonical SOP
Boolean functions can use shorthand notation when
in SOP form:
f = S'AB' + S'AB + SA'B + SAB
f(S,A,B) = (m2,m3,m5,m7)
or
f(S,A,B) = m(2,3,5,7)
Canonical SOP Example
f(x1,x2,x3) = m(1,4,5,6)
minterm
x1
x2
x3
f
0
0
0
0
0
1
0
0
1
1
2
0
1
0
0
3
0
1
1
0
4
1
0
0
1
5
1
0
1
1
6
1
1
0
1
7
1
1
1
0
f = x1'x2'x3 + x1x2'x3' + x1x2'x3 + x1x2x3'
Product of Sums Form
An alternate canonical “two-level” format
“Product of sums” POS
Two levels
OR level followed by AND level
Again, NOT doesn’t count as a level
Not a common as SOP, but can be useful in some
situations
Which ones?
Computing the POS
Identify rows with “0” on output (f = 0)
Represent the input for each 0 row as a maxterm
A logical “sum” of the input bits which guarantees that term
will be “0” (sum of literals)
A
B
f
0
0
0
0
1
1
1
0
0
1
1
0
Canonical POS Example
f(x1,x2,x3) = (M0,M2,M3,M7) = M(0,2,3,7)
maxterm
x1
x2
x3
f
0
0
0
0
0
1
0
0
1
1
2
0
1
0
0
3
0
1
1
0
4
1
0
0
1
5
1
0
1
1
6
1
1
0
1
7
1
1
1
0
f = (x1+x2+x3)(x1+x2'+x3)(x1+x2'+x3')(x1'+x2'+x3')
Example: 3 Way Light Control
L(A,B,C) = m(5,6)
or
L(A,B,C) = M(0,1,2,3,4,7)
SOP:
L = (A B' C)+(A B C')
POS:
L = (A+B+C)(A+B+C')
(A+B'+C)(A+B'+C')
(A'+B+C)(A'+B'+C')
A
B
C
L
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
Question:
Under what conditions would POS form be
better?
(assuming we aren’t doing further reductions)
Inverters in Two-Level Circuits
Inverters are not always required for two-level logic
This is why we do not always count them among the cost of
a circuit
Later, we will see that many variables will be
available to us in both normal and inverted form
don't need to invert them
We show them only for completeness at this point
NAND/NOR Circuits
Completeness of NAND
Any Boolean function can be implemented
using just NAND gates. Why?
Need AND, OR, and NOT
NOT: 1-input NAND (or 2-input NAND with inputs
tied together)
AND: NAND followed by NOT
OR: NAND preceded by NOTs
Likewise for NOR
Using NAND as Universal Logic
NOT
AND
OR
SOP Using NORs & POS Using NANDs
NANDs are natural for SOP networks
You can extend this idea to multi-level circuits as long as
the levels alternate AND/OR/AND/OR ending with OR
You can implement an SOP circuit using only NOR gates
All gates become NORs; just add an extra “inverter” following
the final NOR
NORs are natural for POS networks
You can extend this idea to multi-level circuits as long as
the levels alternate OR/AND/OR/AND ending with AND
You can implement a POS circuit using only NAND gates
All gates become NANDs; just add an extra inverter following
the final NAND
SOP Using NAND Networks
x1
x2
x1
x2
x3
x4
x5
x3
x4
x5
SOP can be implemented
with just NAND gates
“pushing the bubbles”
Every gate just becomes
a NAND!
x1
x2
x3
x4
x5
2x1 MUX Using NANDs
Implement f = S'A + SB with NAND gates only
This one is complicated by the inverter on S!
POS Using NOR Networks
x1
x1
x2
x2
x3
x3
x4
x4
x5
x5
POS can be implemented
with just NOR gates
Every gate just becomes
a NOR
x1
x2
x3
x4
x5
Schematics of DeMorgan’s Laws
(x ∙ y)' = x' + y'
(x + y)' = x' ∙ y'
Universal Logic Families
Any logic function can be designed using only:
AND, OR, NOT
NAND
NOR
These are called “universal logic families”
Actual components are often designed using either
NAND or NOR gates only
NAND and NOR require fewer transistors to build
Just having a single gate design is simpler than having 3!
AND/OR Networks NAND/NAND
Convert multi-level AND/OR net NAND/NAND
And Again … But Be Careful
conserve the polarity of
the input/output signals
Some Useful Circuits
Decoders and Multiplexors
Decoder: Popular
combinational logic building
block, in addition to logic gates
0
i0 d1
1 0
i0 d1
0 1
i0 d1
0
0
i1 d2
0 0
i1 d2
0 1
i1 d2
1 1
i1 d2
0
d3
1
d3
0
d3
i1’i0’
i1’i0
AND gate for each output to
detect input combination
n-input decoder:
2n
outputs
0
0 1
So has four outputs, one for
each possible input binary
number
Outputs all 0 if e=0
Regular behavior if e=1
d0
i0 d1
Decoder with enable e
d0
0
0
Internal design
d0
1
0
d3
0
2-input decoder: four possible
input binary numbers
Converts input binary number
to one high output
d0
i1
i0
d0
d1
i1i0’
d2
i1i0
d3
d0
0
1
i0
d1
0
1
i1
d2
0
e d3
1
1
d0
0
1
i0
d1
0
1
i1
d2
0
e d3
0
0
Multiplexor (Mux)
Mux: Another popular combinational building block
Routes one of its N data inputs to its one output, based on binary
value of select inputs
4 input mux needs 2 select inputs to indicate which input to route
through
8 input mux 3 select inputs
N inputs log2(N) selects
Like a railyard switch
Mux Internal Design
2×1
i0
d
i1
s0
2×1
i0
i0
d
i1
s0
0
d
1
i1
d
i1
i0 (1*i0=i0)
i0
2×1
0
s0
1
0
a
2x1 mux
0 s0
4 1
i0
i1
i2
i0
i1
d
d
i2
i3
s1 s0
i3
4x1 mux
s1
s0
i0
(0+i0=i0)
Muxes Commonly Together -- N-bit Mux
2 1
d
s0
a3
b3
i0
i1
a2
b2
2 1
i0
d
i1
s0
2 1
d
s0
a1
b1
i0
i1
a0
b0
i0 2 1
d
i1
s0
A
I0
4-bit
2x1
D
4
B
s0
4
I1
Simplifying
notation:
4
C
4
C
is short
for
s0
c3
s0
c2
c1
c0
Ex: Two 4-bit inputs:
A (a3 a2 a1 a0) and B (b3 b2 b1 b0)
4-bit 2x1 mux (just four 2x1 muxes sharing a select
line) can select between A or B
N-bit Mux Example
Four possible display items
Temperature (T), Average miles-per-gallon (A), Instantaneous mpg (I),
and Miles remaining (M) -- each is 8-bits wide
Choose which to display using two inputs x and y
Use 8-bit 4x1 mux