Chapter 2 – Combinational Logic Circuits

Transcript

Chapter 2 – Combinational Logic Circuits
Logic and Computer Design Fundamentals
Chapter 2 – Combinational
Logic Circuits
Part 2 – Circuit Optimization
Charles Kime & Thomas Kaminski
© 2008 Pearson Education, Inc.
(Hyperlinks are active in View Show mode)
Overview
 Part 1 – Gate Circuits and Boolean Equations
• Binary Logic and Gates
• Boolean Algebra
• Standard Forms
 Part 2 – Circuit Optimization
•
•
•
•
Two-Level Optimization
Map Manipulation
Practical Optimization (Espresso)
Multi-Level Circuit Optimization
 Part 3 – Additional Gates and Circuits
• Other Gate Types
• Exclusive-OR Operator and Gates
• High-Impedance Outputs
Chapter 2 - Part 2
2
Circuit Optimization
 Goal: To obtain the simplest
implementation for a given function
 Optimization is a more formal approach
to simplification that is performed using
a specific procedure or algorithm
 Optimization requires a cost criterion to
measure the simplicity of a circuit
 Distinct cost criteria we will use:
• Literal cost (L)
• Gate input cost (G)
• Gate input cost with NOTs (GN)
Chapter 2 - Part 2
3
Literal Cost
 Literal – a variable or it complement
 Literal cost – the number of literal
appearances in a Boolean expression
corresponding to the logic circuit
diagram
 Examples:
•
•
•
•
F = BD + A B C + AC D
L=8
F = BD + A BC + A B D + AB C
L=
F = (A + B)(A + D)(B + C + D)(B + C + D) L =
Which solution is best?
Chapter 2 - Part 2
4
Gate Input Cost
 Gate input costs - the number of inputs to the gates in the
implementation corresponding exactly to the given equation
or equations. (G - inverters not counted, GN - inverters counted)
 For SOP and POS equations, it can be found from the
equation(s) by finding the sum of:
• all literal appearances
• the number of terms excluding single literal terms,(G) and
• optionally, the number of distinct complemented single literals (GN).
 Example:
• F = BD + A B C + AC D
G = 8, GN = 11
• F = BD + AB C + A B D + AB C
G = , GN =
• F = (A + B)(A + D)(B + C + D)( B + C + D) G = , GN =
• Which solution is best?
Chapter 2 - Part 2
5
Cost Criteria (continued)
GN = G + 2 = 9
L=5
 F=A+BC+BC
G=L+2= 7
 Example 1:
B
C
A
F
 L (literal count) counts the AND inputs and the single
literal OR input.
 G (gate input count) adds the remaining OR gate inputs
 GN(gate input count with NOTs) adds the inverter inputs
Chapter 2 - Part 2
6
Cost Criteria (continued)
 Example 2:




A
B
C
F = A B C + AB C
L = 6 G = 8 GN = 11
F = (A + C)( B + C)( A + B)
L = 6 G = 9 GN = 12
F
 Same function and same
A
literal cost
B
 But first circuit has better C
gate input count and better
gate input count with NOTs
 Select it!
F
Chapter 2 - Part 2
7
Boolean Function Optimization
 Minimizing the gate input (or literal) cost of a (a
set of) Boolean equation(s) reduces circuit cost.
 We choose gate input cost.
 Boolean Algebra and graphical techniques are
tools to minimize cost criteria values.
 Some important questions:
• When do we stop trying to reduce the cost?
• Do we know when we have a minimum cost?
 Treat optimum or near-optimum cost functions
for two-level (SOP and POS) circuits first.
 Introduce a graphical technique using Karnaugh
maps (K-maps, for short)
Chapter 2 - Part 2
8
Karnaugh Maps (K-map)
 A K-map is a collection of squares
• Each square represents a minterm
• The collection of squares is a graphical representation
•
•
of a Boolean function
Adjacent squares differ in the value of one variable
Alternative algebraic expressions for the same function
are derived by recognizing patterns of squares
 The K-map can be viewed as
• A reorganized version of the truth table
• A topologically-warped Venn diagram as used to
visualize sets in algebra of sets
Chapter 2 - Part 2
9
Some Uses of K-Maps
 Provide a means for:
• Finding optimum or near optimum
 SOP and POS standard forms, and
 two-level AND/OR and OR/AND circuit
implementations
for functions with small numbers of
variables
• Visualizing concepts related to manipulating
Boolean expressions, and
• Demonstrating concepts used by computeraided design programs to simplify large
circuits
Chapter 2 - Part 2
10
Two Variable Maps
 A 2-variable Karnaugh Map:
y=0 y=1
• Note that minterm m0 and
minterm m1 are “adjacent” x = 0 m0 = m1 =
xy
xy
and differ in the value of the
variable y
x = 1 m2 = m3 =
xy
x
y
• Similarly, minterm m0 and
minterm m2 differ in the x variable.
• Also, m1 and m3 differ in the x variable as
well.
• Finally, m2 and m3 differ in the value of the
variable y
Chapter 2 - Part 2
11
K-Map and Truth Tables
 The K-Map is just a different form of the truth table.
 Example – Two variable function:
• We choose a,b,c and d from the set {0,1} to
implement a particular function, F(x,y).
Function Table
Input
Values
(x,y)
Function
Value
F(x,y)
00
01
10
11
a
b
c
d
K-Map
y=0
x=0 a
x=1 c
y=1
b
d
Chapter 2 - Part 2
12
K-Map Function Representation
 Example: F(x,y) = x

F=x y=0y=1
x=0
0
0
x=1
1
1
For function F(x,y), the two adjacent cells
containing 1’s can be combined using the
Minimization Theorem:
F( x, y ) = x y + x y = x
Chapter 2 - Part 2
13
K-Map Function Representation
 Example: G(x,y) = x + y
G = x+y y = 0 y = 1
x=0
0
1
x=1
1
1
 For G(x,y), two pairs of adjacent cells containing
1’s can be combined using the Minimization
Theorem:
G( x, y ) = (x y + x y )+ (xy + x y )= x + y
Duplicate x y
Chapter 2 - Part 2
14
Three Variable Maps
 A three-variable K-map:
yz=00
yz=01
yz=11
yz=10
x=0
m0
m1
m3
m2
x=1
m4
m5
m7
m6
 Where each minterm corresponds to the product
terms:
yz=00 yz=01 yz=11
x=0 x y z
xyz
xyz
xyz
x=1
xyz
xyz
yz=10
xyz
xyz
 Note that if the binary value for an index differs in one
bit position, the minterms are adjacent on the K-Map
Chapter 2 - Part 2
15
Alternative Map Labeling
 Alternate labelings are useful:
y
y
x
x
x
0
1
3
2
4
5
7
6
z
z
00 01 11 10
0 0
z
y
yz
x 1
4
1
3
2
5
7
6
z
Chapter 2 - Part 2
16
Example Functions
 By convention, we represent the minterms of F by a "1"
in the map and leave the minterms of F blank
 Example:
y
F(x, y, z) = !m(2,3,4,5)
 Example:
G(a,
c) = !m(3,4,6,7)
Learn
theb,
locations
of the 8
0
1
x 41
indices based on the variable
order shown (x, most significantx
and z, least significant) on the
map boundaries
5
3
21
7
6
1
1
z
0
4
1
1
y
3
1
7
1
5
2
6
1
z
Chapter 2 - Part 2
17
Combining Squares

By combining squares, we reduce number of
literals in a product term, reducing the literal cost,
thereby reducing the other two cost criteria

On a 3-variable K-Map:
• One square represents a minterm with three
variables
• Two adjacent squares represent a product term
with two variables
• Four “adjacent” terms represent a product term
with one variable
• Eight “adjacent” terms is the function of all ones (no
variables) = 1.
Chapter 2 - Part 2
18
Example: Combining Squares
 Example: Let
y
F = !m(2,3,6,7)
x
0
1
4
5
3
1
7
1
2
1
6
1
z
 Applying the Minimization Theorem three
times:
F( x, y , z ) = x y z + x y z + x y z + x y z
= yz + y z
=y
 Thus the four terms that form a 2 × 2 square
correspond to the term "y".
Chapter 2 - Part 2
19
Three-Variable Maps
 Reduced literal product terms for SOP standard
forms correspond to rectangles on K-maps
containing cell counts that are powers of 2.
 Rectangles of 2 cells represent 2 adjacent
minterms; of 4 cells represent 4 minterms that
form a “pairwise adjacent” ring.
 Rectangles can contain non-adjacent cells as
illustrated by the “pairwise adjacent” ring
above.
Chapter 2 - Part 2
20
Three-Variable Maps
 Topological warps of 3-variable K-maps
that show all adjacencies:
 Venn Diagram
0

Cylinder
4 X
6 7 5
Y 3 Z
1
2
Chapter 2 - Part 2
21
Three-Variable Maps
 Example Shapes of 2-cell Rectangles:
y
XY
x
0
1
3
2
4
5
7
6
z
XZ
YZ
 Read off the product terms for the
rectangles shown
Chapter 2 - Part 2
22
Three-Variable Maps
 Example Shapes of 4-cell Rectangles:
y
xx
0
1
3
2
4
5
7
6
z
 Read off the product terms for the
rectangles shown
Chapter 2 - Part 2
23
Three Variable Maps
 K-Maps can be used to simplify Boolean functions by
systematic methods. Terms are selected to cover the
“1s”in the map.
 Example: Simplify F(x, y, z) = !m(1,2,3,5,7)
xy
z
y
1 1 1
x
1 1
z
F(x, y, z) =
z+xy
Chapter 2 - Part 2
24
Three-Variable Map Simplification
 Use a K-map to find an optimum SOP
equation for F(X, Y, Z) = !m(0,1,2,4,6,7)
xy
y
y
1 1
1
x 1
xy
1 1
z
F(X,Y,Z) = Y + XY + X Y
Chapter 2 - Part 2
25
Four Variable Maps
 Map and location of minterms:
Y
Variable Order
W
0
1
3
2
4
5
7
6
12
13
15
14
8
9
11
10
X
Z
Chapter 2 - Part 2
26
Four Variable Terms
 Four variable maps can have rectangles
corresponding to:
• A single 1 = 4 variables, (i.e. Minterm)
• Two 1s = 3 variables,
• Four 1s = 2 variables
• Eight 1s = 1 variable,
• Sixteen 1s = zero variables (i.e.
Constant "1")
Chapter 2 - Part 2
27
Four-Variable Maps
 Example Shapes of Rectangles:
Y
XZ
XZ
W
0
1
3
2
4
5
7
6
12
13
15
14
8
9
11
10
WY
X
Z
Chapter 2 - Part 2
28
Four-Variable Maps
 Example Shapes of Rectangles:
Y
W
0
1
3
2
4
5
7
6
12
13
15
14
8
9
11
10
X
Z
Chapter 2 - Part 2
29
Four-Variable Map Simplification
 F(W, X, Y, Z) = Σm(0, 2,4,5,6,7,8,10,13,15)
Y
1
1
1
W
1
1
1
1
1
1
X
1
Z
F(W,X,Y,Z)=XZ+WX+XZ
Chapter 2 - Part 2
30
Four-Variable Map Simplification
 F(W, X, Y, Z) = Σm(3,4,5,7,9,13,14,15)
Y
1
1
1
1
1
1
X
1
W
1
Z
F(W,X,Y,Z)=XZ+WXY+WZY+WXYZ+WXY
Chapter 2 - Part 2
31
Systematic Simplification
 A Prime Implicant is a product term obtained by combining
the maximum possible number of adjacent squares in the map
into a rectangle with the number of squares a power of 2.
 A prime implicant is called an Essential Prime Implicant if it is
the only prime implicant that covers (includes) one or more
minterms.
 Prime Implicants and Essential Prime Implicants can be
determined by inspection of a K-Map.
 A set of prime implicants "covers all minterms" if, for each
minterm of the function, at least one prime implicant in the
set of prime implicants includes the minterm.
Chapter 2 - Part 2
32
Example of Prime Implicants
 Find ALL Prime Implicants
CD
C
BD
1
1
BD
A
AB
1
1
1
1
1
1
1
D
AD
ESSENTIAL Prime Implicants
C
BD
1
1
1
B
BD
A
1
1
1
1
1
1
1
1
1
B
1
D
BC
Minterms covered by single prime implicant
Chapter 2 - Part 2
33
Prime Implicant Practice
 Find all prime implicants for:
F(A, B, C, D) = !m(0,2,3,8,9,10,11,12,13,14,15)
C
1
1
1
1
B
1
1
1
1
1
1
1
1
A
D
Chapter 2 - Part 2
34
Another Example
 Find all prime implicants for:
G(A, B, C, D) = !m(0,2,3,4,7,12,13,14,15)
C
1
1
1
1
1
1
1
1
B
1
A
D
Chapter 2 - Part 2
35
Five Variable or More K-Maps
 For five variable problems, we use two adjacent Kmaps. It becomes harder to visualize adjacent
minterms for selecting PIs. You can extend the
problem to six variables by using four K-Maps.
V=1
V=0
Y
Y
X
X
W
W
Z
Z
Chapter 2 - Part 2
36
Five Variable or More K-Maps
V=0
Y
V=1
Y
1
1
X
X
W
W
Z
Z
F(W,X,Y,Z)=VWXYZ+VWXYZ=WXYZ
Chapter 2 - Part 2
37
Don't Cares in K-Maps
 Sometimes a function table or map contains entries for
which it is known:
• the input values for the minterm will never occur, or
• The output value for the minterm is not used
 In these cases, the output value need not be defined
 Instead, the output value is defined as a “don't care”
 By placing “don't cares” ( an “x” entry) in the function table
or map, the cost of the logic circuit may be lowered.
 Example 1: A logic function having the binary codes for the
BCD digits as its inputs. Only the codes for 0 through 9 are
used. The six codes, 1010 through 1111 never occur, so the
output values for these codes are “x” to represent “don’t
cares.”
Chapter 2 - Part 2
38
Don't Cares in K-Maps
 Example 2: A circuit that represents a very common situation that
occurs in computer design has two distinct sets of input variables:
• A, B, and C which take on all possible combinations, and
• Y which takes on values 0 or 1.
and a single output Z. The circuit that receives the output Z
observes it only for combinations of A, B, and C such A = 1 and B
= 1 or C = 0, otherwise ignoring it. Thus, Z is specified only for
those combinations, and for all other combinations of A, B, and C,
Z is a don’t care. Specifically, Z must be specified for AB + C = 1,
and is a don’t care for :
AB + C = (A + B)C = AC + BC = 1
 Ultimately, each don’t care “x” entry may take on either a 0 or 1
value in resulting solutions
 For example, an “x” may take on value “0” in an SOP solution and
value “1” in a POS solution, or vice-versa.
 Any minterm with value “x” need not be covered by a prime
implicant.
Chapter 2 - Part 2
39
Example: BCD “5 or More”
0
w
 The map below gives a function F1(w,x,y,z) which
is defined as "5 or more" over BCD inputs. With
the don't cares used for the 6 non-BCD
combinations:
y
F1 (w,x,y,z) = w + x z + x y G = 7
0
0
0
 This is much lower in cost than F2 where
0 1 1 1
the “don't cares” were treated as "0s."
4
5
7
6
x
= w x z + w x y + w x y G = 12
X X X X
F
(w,
x,
y,
z)
2
12
13
15
14
 For this particular function, cost G for the
1 1 X X
8
9
11
10
POS solution for F1(w,x,y,z) is not changed
z
by using the don't cares.
0
1
3
2
Chapter 2 - Part 2
40
Product of Sums Example
 Find the optimum POS solution:
F(A, B, C, D) = !m(3,9,11,12,13,14,15) +
C
!d (1,4,6)
x
1
x
x
1
A
Fa = AB + B D + BD
1
1
1
1
D
B
1
Fb = AB + B D
Chapter 2 - Part 2
41
Optimization Algorithm
 Find all prime implicants.
 Include all essential prime implicants in the
solution
 Select a minimum cost set of non-essential
prime implicants to cover all minterms not yet
covered:
• Obtaining an optimum solution: See Reading
Supplement - More on Optimization
• Obtaining a good simplified solution: Use the
Selection Rule
Chapter 2 - Part 2
42
Prime Implicant Selection Rule
 Minimize the overlap among prime
implicants as much as possible. In
particular, in the final solution, make
sure that each prime implicant selected
includes at least one minterm not
included in any other prime implicant
selected.
Chapter 2 - Part 2
43
Selection Rule Example
 Simplify F(A, B, C, D) given on the KSelected Essential
map.
C
1
1
1
1
1
1
A
1
C
1
1
1
B
1
D
1
1
1
1
A
1
1
1
B
1
D
Minterms covered by essential prime implicants
Chapter 2 - Part 2
44
Selection Rule Example with Don't Cares
 Simplify F(A, B, C, D) given on the K-map.
C
1
A
x
1
x
x
1
x
1
1
D
Essential
Selected
x
C
1
B
A
x
1
x
x
1
1
x
x
1
B
D
Minterms covered by essential prime implicants
Chapter 2 - Part 2
45
Practical Optimization
 Problem: Automated optimization
algorithms:
• require minterms as starting point,
• require determination of all prime
implicants, and/or
• require a selection process with a potentially
very large number of candidate solutions to
be found.
 Solution: Suboptimum algorithms not
requiring any of the above in the general
case
Chapter 2 - Part 2
46
Cubical Notation
X1 X 2 X 3 X 4 + X1 X 2 X 3 X 4 = X1 X 3 X 4
!
(1010)c
+
(1110)c
=
(1-10)c
Chapter 2 - Part 2
47
Tabular Algorithm(Quine-McCluskey)
www.writphotec.com/mano4/Supplements/More_Optimization_supp4.pdf
Chapter 2 - Part 2
48
Tabular Algorithm(Quine-McCluskey)
X3
1
X1
1
1
d
1
1
1
1
1
X2
1
X4
Chapter 2 - Part 2
49
Tabular Algorithm(Quine-McCluskey)
Chapter 2 - Part 2
50
Tabular Algorithm(Quine-McCluskey)
Chapter 2 - Part 2
51
Tabular Algorithm(Quine-McCluskey)
y
1
x
1
1
1
1
1
z
Chapter 2 - Part 2
52
Tabular Algorithm(Quine-McCluskey)
Chapter 2 - Part 2
53
Tabular Algorithm(Quine-McCluskey)
Chapter 2 - Part 2
54
Esempio
 F=∑( 1,3,6,7,8,9,12,13)
Chapter 2 - Part 2
55
Esempio
Chapter 2 - Part 2
56
Esempio
Dominanza di RIGHE: se un implicante pi copre tutti i mintermini
di pj più almeno uno, si dice che pi domina pj. In tal caso
l’implicante pj puo’ essere eliminato
Dominanza di COLONNE: se ogni volta che un implicante copre
la colonna ci copre anche la colonna cj ma non viceversa, si dice
che ci domina cj. In tal caso la colonna ci puo’ essere eliminata
f=p1+p4+p5
Chapter 2 - Part 2
57
Esempio con indeterminazioni
Chapter 2 - Part 2
58
Esempio con indeterminazioni
Chapter 2 - Part 2
59
Esempio con indeterminazioni
 f1=p1+p3
Chapter 2 - Part 2
60
Reti combinatorie a più uscite
F1=X’Z+YZ
L=4; G=6; GN=7
F2=XY+YZ
L=4; G=6; GN=6
Implementazione comune L =6; G=10; GN=11
Chapter 2 - Part 2
61
Reti combinatorie a più uscite
f1= X’Z+YZ
f2= XY+YZ’
f1= X’Z+XYZ
f2= YZ’+XYZ
L=4; G=6; GN=7
L=4; G=6; GN=7
Implementazione comune
G=11; GN=13
Chapter 2 - Part 2
62
Metodo di Quine e McCluskey per reti
combinatorie a più uscite
Chapter 2 - Part 2
63
Reti combinatorie a più uscite
Chapter 2 - Part 2
64
Reti combinatorie a più uscite
Chapter 2 - Part 2
65
Reti combinatorie a più uscite
Primo implicante di più
uscite
p6 è Primo implicante
essenziale per f1 non
per f2
Chapter 2 - Part 2
66
Reti combinatorie a più uscite
Chapter 2 - Part 2
67
Reti combinatorie a più uscite
Chapter 2 - Part 2
68
Reti combinatorie a più uscite
Chapter 2 - Part 2
69
Reti combinatorie a più uscite
f1=p6+p1 +p2 +p5; f3=p1 +p5 +p10
f2=p2+p12
Chapter 2 - Part 2
70
Metodi di Semplificazione
 Metodo Classico:
• Individuare i mintermini
• Individuare i primi implicanti
• Selezionare opportunamente i primi implicanti
 Metodi Pragmatici:
• Non dipendono dal numero di mintermini
• Non generano tutti i primi implicanti
• Non richiedono di generare tutti i primi
implicanti alternativi
Chapter 2 - Part 2
71
Espresso(1)
 Init: Inserire la funzione F e la copertura iniziale, valutare il costo
iniziale (G)
Ciclo 1:
Ciclo 2:
OUT:
QUIT:










Esegui EXPAND
[Solo per il primo passo esegui ESSENTIAL_PRIMES]
Esegui IRREDUNTANT_COVER
Calcola Costo, se il costo non è migliorato, vai a OUT
Esegui REDUCE
Vai a Ciclo 1
Esegui LAST_GASP
Se il costo non migliora vai a QUIT
Vai a Ciclo 2
Aggiungi agli implicanti trovati i primi implicanti essenziali
Chapter 2 - Part 2
72
Espresso(2)
 EXPAND:
• Estrae da ogni implicante della funzione un primo implicante.
• Gli implicanti sono ordinati da quelli piu’ grandi (meno letterali) a quelli
più piccoli (più letterali)
• Tra le possibili espansioni si scelgono quelli che coprono più implicanti e
hanno dimensioni maggiori
 ESSENTIAL_PRIMES:
• Analizza ogni primo implicante per determinare se è un primo implicante
essenziale
• Un Primo Implicante è valutato come essenziale se ha almeno un
mintermine che è circondato da mintermini dello stesso implicante o 0 in
tutte le n direzioni ( dove n è il numero di variabili della funzione)
• I primi implicanti essenziali vengono rimossi dalla soluzione e introdotti
nel passaggio finale
• I mintermini rimossi vengono sostituiti con non-specificazioni (don’t
care)
Chapter 2 - Part 2
73
Espresso(3)
 IRREDUNTANT_COVER:
• Rimuove gli implicanti che sono ridondanti (e.g. quelli che coprono
soltanto non-specificazioni) senza lasciare implicanti non coperti
 REDUCE:
• Viene utilizzata per superare i minimi locali
• Ogni implicante viene ridotto all’implicante più piccolo che garantisce la
copertura della funzione
• La riduzione di un implicante coinvolge i successivi
• Gli implicanti vengono ordinati considerando l’implicante maggiore e
successivamente gli implicanti che hanno il minor numero di posizioni
differenti dai precedenti
Chapter 2 - Part 2
74
Espresso(4)
 LAST_GASP:
• Applica REDUCE ad ogni singolo implicante (uno alla volta) ottenendo
il più piccolo implicante che copre i mintermini dell’implicante di
partenza
• Si applica EXPAND alla copertura generata al passo precedente
selezionando i primi implicanti che coprono almeno due degli implicanti
ottenuti.
• Si combina la copertura ottenuta con quella fornita in ingresso alla
procedure LAST_GASP e si applica IRREDUNTANT_COVER
 QUIT:
•
Aggiunge agli implicanti determinati nel processo i primi implicanti essenziali,
valuta il costo
Chapter 2 - Part 2
75
Esempio(1)
F(A,B,C,D) = A D + A BD + B CD + AB C D
!
L=12; G=16;
Chapter 2 - Part 2
76
Esempio(2)
F = (A B + A D + AB D) + B CD L=10; G=14
Chapter 2 - Part 2
77
Esempio (3)
Chapter 2 - Part 2
78
Esempio (4)
F = (A B + A D + AB D) + A C
L=9;G=13;
Chapter 2 - Part 2
79
Example Algorithm: Espresso
 Illustration on a K-map:
C
C
1
1
1
1
1
X
1
X
X 1
1
X
1
1
1
1
1
1
A
1
1
1
D
B
A
1
1
1
B
D
Original F & EXPAND ESSENTIAL & IRREDUNDANT
COVER
Chapter 2 - Part 2
80
Example Algorithm: Espresso
 Continued:
C
C
A
X
X X
X
X
X X
X
1
1
1
1
1
1
1
1
1
D
REDUCE
B
A
1
1
1
B
D
EXPAND
Chapter 2 - Part 2
81
Example Algorithm: Espresso
 Continued:
C
A
C
X
X X
X
1
1
1
1
1
1
1
1
D
B
IRREDUNDANT COVER
A
1
1
1
1
1
1
1
1
B
D
After REDUCE, EXPAND,
IRREDUNDANT COVER,
LAST GASP, QUIT
Chapter 2 - Part 2
82
Example Algorithm: Espresso
 This solution costs 2 + 2 + 3 + 3 + 4 = 14
 Finding the optimum solution and comparing:
C
Essential
1
1
1
1
1
1
1
Selected
A
1
1
1
B
Minterms covered by essential prime implicants
D
 There are two optimum solutions one of which is the
one obtained by Espresso.
Chapter 2 - Part 2
83
Multiple-Level Optimization
 Multiple-level circuits - circuits that are
not two-level (with or without input
and/or output inverters)
 Multiple-level circuits can have reduced
gate input cost compared to two-level
(SOP and POS) circuits
 Multiple-level optimization is performed
by applying transformations to circuits
represented by equations while
evaluating cost
Chapter 2 - Part 2
84
Transformations
 Factoring - finding a factored form from
SOP or POS expression
• Algebraic - No use of axioms specific to
Boolean algebra such as complements or
idempotence
• Boolean - Uses axioms unique to Boolean
algebra
 Decomposition - expression of a function
as a set of new functions
Chapter 2 - Part 2
85
Transformations (continued)
 Substitution of G into F - expression
function F as a function of G and some or
all of its original variables
 Elimination - Inverse of substitution
 Extraction - decomposition applied to
multiple functions simultaneously
Chapter 2 - Part 2
86
Transformation Examples
 Algebraic Factoring
F = A C D + A B C + ABC + AC D
G = 16
• Factoring:
F = A (C D + BC) + A (BC + C D ) G = 16
• Factoring again:
F = A C ( B + D ) + AC (B + D )
G = 12
• Factoring again:
F = (A C + AC) (B + D)
G = 10
Chapter 2 - Part 2
87
Transformation Examples
 Decomposition
• The terms B + D and AC + AC can be defined
as new functions E and H respectively,
decomposing F:
F = E H, E = B + D , and H = AC + AC G = 10
 This series of transformations has reduced G from
16 to 10, a substantial savings. The resulting
circuit has three levels plus input inverters.
Chapter 2 - Part 2
88
Transformation Examples
 Substitution of E into F
• Returning to F just before the final factoring step:
F = A C ( B + D ) + AC (B + D )
G = 12
• Defining E = B + D, and substituting in F:
F = A C E + ACE
G = 10
• This substitution has resulted in the same cost as the
decomposition
Chapter 2 - Part 2
89
Transformation Examples
 Elimination
• Beginning with a new set of functions:
X=B+C
Y=A+B
Z = AX + C Y
G = 10
• Eliminating X and Y from Z:
Z = A (B + C) + C (A + B)
G = 10
• “Flattening” (Converting to SOP expression):
Z = A B + A C + AC + BC
G = 12
• This has increased the cost, but has provided an new
SOP expression for two-level optimization.
Chapter 2 - Part 2
90
Transformation Examples
 Two-level Optimization
• The result of 2-level optimization is:
Z=AB+ C
G=4
 This example illustrates that:
• Optimization can begin with any set of equations,
not just with minterms or a truth table
• Increasing gate input count G temporarily during a
series of transformations can result in a final
solution with a smaller G
Chapter 2 - Part 2
91
Transformation Examples
 Extraction
• Beginning with two functions:
E = A B D + A BD
H = B C D + BCD
G = 16
• Finding a common factor and defining it as a
function:
F = B D + BD
• We perform extraction by expressing E and H as
the three functions:
F = BD + BD, E = A F, H = CF
G = 10
• The reduced cost G results from the sharing of logic
between the two output functions
Chapter 2 - Part 2
92
Circuiti Multilivello
 G=ABC+ABD+E+ACF+ADF
(L=13;G=17;GN=17)
G=AB(C+D)+E+AF(C+D)
(L=9;G=13;GN=13)
Chapter 2 - Part 2
93
Circuiti Multilivello
 G=AB(C+D)+AF(C+D)+E
 (
;G=11;GN=11)
 G=A(C+D)(B+F)+E
 (L=6;G=9;GN=9)
Chapter 2 - Part 2
94
Semplificazione di Circuiti Multilivello
 Fattorizzazione : si individuano i fattori comuni
 Decomposizione : si esprimono le funzioni tramite
nuove funzioni
 Estrazione : si esprimono funzioni multiple
tramite nuove funzioni
 Sostituzione: si esprime una funzione F in
relazione della funzione G e alcune o tutte le
variabili di F
 Eliminazione: l’espressione di F in funzione di G
viene sostituita dall’espressione relativa(inverso
della sostituzione, è detta flattening o collapsing)
Chapter 2 - Part 2
95
RTL Logic
NOT
NAND
NOR
Chapter 2 - Part 2
96
Completezza della porta NAND
Chapter 2 - Part 2
97
Completezza della porta NOR
Chapter 2 - Part 2
98
Implementazione con porte NAND
F(X,Y,Z) = " m(1,2,3,4,5,7)
X
!
F(X,Y,Z) = Z + XY + XY
Y
1
1
1
1
1
1
Z
F(X,Y,Z) = Z • XY • XY
!
!
F(X,Y,Z) = Z • XY • XY
Chapter 2 - Part 2
99
Implementazione con porte NAND
F(A,B) = A + B
F(A,B) = A " B
!
!
F(A,B) = A " B = A # B
F(A,B,C) = A + AB C + ABC + A B C + ABC
F(A,B,C) = A " AB C " ABC " A B C " ABC
F(A,B,C) = A " AB C " ABC " A B C " ABC
F(A,B,C) = A # AB C # ABC # A B C # ABC
F(A,B,C) = A # (A# B # C)# (A# B# C )# (A # B # C)# (A# B# C)
!
Chapter 2 - Part 2
100
Implementazione con porte NOR
F(A,B) = AB
F(A,B) = A + B
!
!
F(A,B) = A + B = A " B
F(A,B,C) = A + AB C + ABC + A B C + ABC
F(A,B,C) = A + (A + B + C ) + (A + B + C) + (A + B + C ) + (A + B + C )
F(A,B,C) = A + (A " B" C ) + (A " B " C) + (A" B" C ) + (A " B " C )
F(A,B,C) = A" (A " B" C )" (A " B " C)" (A" B" C )" (A " B " C )
!
Chapter 2 - Part 2
101
Codice di Gray
Da codice binario Bn-1Bn-2…B0 a codice di Gray
Gn-1Gn-2…G0
Decimale
Binario
Gray
0
0000
0000
1
0001
0001
2
0010
0011
3
0011
0010
4
0100
0110
5
0101
0111
6
0110
0101
7
0111
0100
8
1000
1100
9
1001
1101
10
1010
1111
11
1011
1110
B j = $ "Gk
12
1100
1010
k= j
13
1101
1011
14
1110
1001
15
1111
1000
Gn"1 = Bn"1
Gk = Bk " Bk +1
!con k = 0,1,2,…,n-2
Da!codice binario a codice di Gray
n#1
con j = 0,1,2,…,n-1
!
Chapter 2 - Part 2
102
Rotation encoder
5 bits
8 bits
Chapter 2 - Part 2
103
XOR
 Tavola di Verità
X
Y
X XOR Y
0
0
0
0
1
1
1
0
1
1
1
0
 Proprietà
!
!
!
X "0= X
X "1= X
X " X =0
X " X =1
!
X "Y = X "Y
X "Y = X "Y
!
!
Chapter 2 - Part 2
104
XNOR
 Tavola di Verità
X
Y
X XNOR Y
0
0
1
0
1
0
1
0
0
1
1
1
X " Y = XY + XY = (X + Y ) # (X + Y ) = XX + XY + XY + YY
X " Y = XY + XY
!
!
Chapter 2 - Part 2
105
Calcolo della Parità
X " Y " Z = (XY + XY ) " Z
!
= (XY + XY ) "Z + (XY + XY ) " Z =
= (XY + XY )Z + (XY + XY ) " Z =
= XYZ + XYZ + XY Z + XY Z
!
Chapter 2 - Part 2
106
Calcolo della Parità (dispari)
X " Y " Z = (X " Y ) " Z
!
Chapter 2 - Part 2
107
Codice di Hamming
Distanza di Hamming tra due configurazioni di un codice è data
dal numero di bit che differisce tra le due configurazioni
Codici ASCII con Bit di Parità hanno configurazioni con
distanza di Hamming pari a 2 (rilevazione errore dispari)
Codice
Non Codice
0111010.0
0111010.1
0111011.1
0111011.0
0011011.0
0011011.1
Chapter 2 - Part 2
108
Codici
 Un codice è un insieme di simboli e regole per
rappresentare gli elementi di un insieme
 PAROLA (WORD): è una combinazione dei simboli
previsti dal codice
 Codice è Ambiguo se esiste una parola del codice che si
riferisce a due o più elementi dell’insieme
 Codice Ridondante: codice che utilizza un numero di
simboli maggiore di quello strettamente necessario per
rappresentare gli elementi dell’insieme
Chapter 2 - Part 2
109
Codici
Con n simboli nella base b, supponendo di avere un codice a
lunghezza fissata si dispone di bn configurazioni(parole).
Per la codifica di valori numeri si possono rappresentare i
valori tra
m =0
M = bn-1
Per valori non numerici si possono associare le bn parole di
codice ai valori da rappresentare (insieme S)
ln(# S)
n = log b (# S) =
ln(b)
bn=#S
il valore di n viene approssimato per eccesso!
!
Chapter 2 - Part 2
110
Codice di Hamming
Codice di Hamming (7,4)
p1p2d1p3d2d3d4
•La distanza tra due parole di codice è 3
•Corregge gli errori singoli
Chapter 2 - Part 2
111
Codice di Hamming 7,4
p1p2d1p3d2d3d4
p1=parità(d1,d2,d4)
p2=parità(d1,d3,d4)
p3=parità(d2,d3,d4)
d1d2d3d4
0101
p3 p2 p1
0 1 0
Chapter 2 - Part 2
112
Codice di Hamming 7,4
p1p2d1p3d2d3d4
d1d2d3d4
0101
1101
p3 p2 p1
0 1 0
0 1 0
0 0 1
0
p1=parità(d1,d2,d4)
p2=parità(d1,d3,d4)
p3=parità(d2,d3,d4)
1
1
Errore su d1
Ricalcolo la parità
L’errore è in
posizione 3
Chapter 2 - Part 2
113
Codice di Hamming 7,4
p1p2d1p3d2d3d4
d1d2d3d4
p3 p2 p1
0 1 0
Errore su d4
0 1 0
1 0 1 Ricalcolo la parità
0101
0100
1
p1=parità(d1,d2,d4)
p2=parità(d1,d3,d4)
p3=parità(d2,d3,d4)
1
1
L’errore è in
posizione 7
Chapter 2 - Part 2
114
Codice di Hamming 7,4
p1p2d1p3d2d3d4
d1d2d3d4
p3 p2 p1
0 1 0
Errore su p3
1 1 0
0 1 0 Ricalcolo la parità
0101
0101
1
p1=parità(d1,d2,d4)
p2=parità(d1,d3,d4)
p3=parità(d2,d3,d4)
0
0
L’errore è in
posizione 4
Chapter 2 - Part 2
115
Codice di Hamming 8,4
p1p2d1p3d2d3d4p4
p1=parità(d1,d2,d4)
p2=parità(d1,d3,d4)
p3=parità(d2,d3,d4)
p4=parità(p1,p2,p3,d1,d2,d3,d4)
•Corregge l’errore singolo
•Rileva l’errore doppio
Chapter 2 - Part 2
116
Terms of Use
 All (or portions) of this material © 2008 by Pearson
Education, Inc.
 Permission is given to incorporate this material or
adaptations thereof into classroom presentations and
handouts to instructors in courses adopting the latest
edition of Logic and Computer Design Fundamentals
as the course textbook.
 These materials or adaptations thereof are not to be
sold or otherwise offered for consideration.
 This Terms of Use slide or page is to be included within
the original materials or any adaptations thereof.
Chapter 2 - Part 2
117