CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization...
-
Upload
jemima-nicholson -
Category
Documents
-
view
213 -
download
0
Transcript of CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization...
![Page 1: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/1.jpg)
CS/EE 3700 : Fundamentals of Digital System Design
Chris J. Myers
Lecture 4: Logic Optimization
Chapter 4
![Page 2: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/2.jpg)
Motivation
• Algebraic manipulation is not systematic.
• This chapter presents methods that can be automated in CAD tools.
• Although tools used for logic optimization, designers must understand the process.
![Page 3: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/3.jpg)
Figure 4.1 The function f = m(0, 2, 4, 5, 6)
![Page 4: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/4.jpg)
x 2
(a) Truth table (b) Karnaugh map
0
1
0 1
m 0 m 2
m 3 m 1
x 1 x 2
0 0
0 1
1 0
1 1
m 0 m 1
m 3
m 2
x 1
Figure 4.2 Location of two-variable minterms
![Page 5: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/5.jpg)
Figure 2.15 A function to be synthesized
![Page 6: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/6.jpg)
Figure 4.4 Location of three-variable minterms
x 1 x 2 x 3 00 01 11 10
0
1
(b) Karnaugh map
x 2 x 3 0 0
0 1
1 0
1 1
m 0 m 1
m 3
m 2
0
0
0
0
0 0
0 1
1 0
1 1
1
1
1
1
m 4 m 5
m 7
m 6
x 1
(a) Truth table
m 0
m 1 m 3
m 2 m 6
m 7
m 4
m 5
![Page 7: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/7.jpg)
![Page 8: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/8.jpg)
![Page 9: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/9.jpg)
Figure 4.6 A four-variable Karnaugh map
x 1 x 2 x 3 x 4 00 01 11 10
00
01
11
10
x 2
x 4
x 1
x 3
m 0
m 1 m 5
m 4 m 12
m 13
m 8
m 9
m 3
m 2 m 6
m 7 m 15
m 14
m 11
m 10
![Page 10: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/10.jpg)
x 1 x 2 x 3 x 4
0
00 01 11 10
0 0 0
0 0 1 1
1 0 0 1
1 0 0 1
00
01
11
10
![Page 11: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/11.jpg)
x 1 x 2 x 3 x 4
0
00 01 11 10
0 0 0
0 0 1 1
1 1 1 1
1 1 1 1
00
01
11
10
![Page 12: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/12.jpg)
x 1 x 2 x 3 x 4
1
00 01 11 10
0 0 1
0 0 0 0
1 1 1 0
1 1 0 1
00
01
11
10
![Page 13: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/13.jpg)
x 1 x 2 x 3 x 4
1
00 01 11 10
1 1 0
1 1 1 0
0 0 1 1
0 0 1 1
00
01
11
10
![Page 14: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/14.jpg)
Figure 4.8 A five-variable Karnaugh map
x 1 x 2 x 3 x 4 00 01 11 10
1
1 1
1 1
1 1
00
01
11
10
x 5 1 =
x 1 x 2 x 3 x 4 00 01 11 10
1 1
1 1
1 1
00
01
11
10
x 5 0 =
![Page 15: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/15.jpg)
Terminology
• A variable either uncomplemented our complemented is called a literal.
• A product term that indicates when a function is equal to 1 is called an implicant.
• An implicant that cannot have any literal deleted and still be a valid implicant is called a prime implicant.
![Page 16: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/16.jpg)
Figure 4.9 Three-variable function f = m(0, 1, 2, 3, 7)
x 1 x 2 x 3
1 1
1 1
0 0
1 0
00 01 11 10
0
1
![Page 17: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/17.jpg)
Terminology (cont)
• A collection of implicants that accounts for all input combinations in which a function evaluates to 1 is called a cover.
• An essential prime implicant includes a minterm covered by no other prime.
• Cost is number of gates plus number of gate inputs. Assume primary inputs available in both true and complemented form.
![Page 18: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/18.jpg)
Minimization Procedure
• Generate all prime implicants.
• Find all essential prime implicants.
• If essential primes do not form a cover, then select minimal set of non-essential primes.
![Page 19: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/19.jpg)
Figure 4.10 Four-variable function f = m(2, 3, 5, 6, 7, 10, 11, 13, 14)
x 1 x 2 x 3 x 4 00 01 11 10
1 1
1 1
1 1
00
01
11
10 1 1
1
![Page 20: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/20.jpg)
Figure 4.11 The function f = m(0, 4, 8, 10, 11, 12, 13, 15)
x 1 x 2 x 3 x 4 00 01 11 10
1
1 1 1 1 00
01
11
10
1
1
1
![Page 21: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/21.jpg)
Figure 4.12 The function f = m(0, 2, 4, 5, 10, 11, 13, 15)
x 1 x 2 x 3 x 4 00 01 11 10
1
1
1
1
1
1
00
01
11
10 1
1
.
![Page 22: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/22.jpg)
Minimization of POS Forms
• Find a cover of the 0’s and form maxterms.
x 1 x 2 x 3
1
00 01 11 10
0
1
1 0 0
1 1 1 0
![Page 23: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/23.jpg)
Figure 4.14 POS minimization of f = M(0, 1, 4, 8, 9, 12, 15)
x 1 x 2 x 3 x 4
0
00 01 11 10
0 0 0
0 1 1 0
1 1 0 1
1 1 1 1
00
01
11
10
![Page 24: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/24.jpg)
Incompletely Specified Functions
• Often certain input conditions cannot occur.
• Impossible inputs are called don’t cares.
• A function with don’t cares is called an incompletely specified function.
• Don’t cares can be used to improve the quality of the logic designed.
![Page 25: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/25.jpg)
Figure 4.15 Two implementations of f = m(2, 4, 5, 6, 10) + D(12, 13, 14, 15)
x 1 x 2 x 3 x 4
0
00 01 11 10
1 d 0
0 1 d 0
0 0 d 0
1 1 d 1
00
01
11
10
![Page 26: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/26.jpg)
Figure 4.15 Two implementations of f = m(2, 4, 5, 6, 10) + D(12, 13, 14, 15)
x 1 x 2 x 3 x 4
0
00 01 11 10
1 d 0
0 1 d 0
0 0 d 0
1 1 d 1
00
01
11
10
![Page 27: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/27.jpg)
Multiple-Output Circuits
• Necessary to implement multiple functions.
• Circuits can be combined to obtain lower cost solution by sharing some gates.
![Page 28: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/28.jpg)
Figure 4.16 An example of multiple-output synthesis
x 1 x 2 x 3 x 4 00 01 11 10
1 1
1 1
1 1
1 1
00
01
11
10
(a) Function
1
f 1
x 1 x 2 x 3 x 4 00 01 11 10
1 1
1 1
1 1 1
1 1
00
01
11
10
(b) Function f 2
![Page 29: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/29.jpg)
f 1
f 2
x 2 x 3 x 4 x 1 x 3
x 1 x 3 x 2 x 3 x 4
(c) Combined circuit for f 1 f 2 and
![Page 30: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/30.jpg)
Figure 4.17 An example of multiple-output synthesis
x 1 x 2 x 3 x 4 00 01 11 10
1
1 1
1
00
01
11
10
(a) Optimal realization of (b) Optimal realization of
1
f 3 f 4
1
1
x 1 x 2 x 3 x 4 00 01 11 10
1 1
1
1
00
01
11
10
1
1 1
![Page 31: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/31.jpg)
(c) Optimal realization of f 3
x 1 x 2 x 3 x 4 00 01 11 10
1
1 1
1
00
01
11
10
1 1
1
x 1 x 2 x 3 x 4 00 01 11 10
1 1
1
1
00
01
11
10
1
1 1
and togetherf 4
![Page 32: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/32.jpg)
Figure 4.17 An example of multiple-output synthesis
f 3
f 4
x 1
x 4
x 3
x 4
x 1
x 1
x 2
x 2
x 4
x 4
(d) Combined circuit for f 3 f 4 and
x 2
![Page 33: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/33.jpg)
x 1 x 2 x 3 x 4 00 01 11 10
00
01
11
10
(a) Function
0
f 1
x 1 x 2 x 3 x 4 00 01 11 10
00
01
11
10
(b) Function f 2
0
0
0 0
0 0
0
0
0
0
0
0 0
![Page 34: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/34.jpg)
x 1 x 2 x 3 x 4 00 01 11 10
00
01
11
10
(a) Optimal realization of (b) Optimal realization off 3 f 4
x 1 x 2 x 3 x 4 00 01 11 10
00
01
11
100 0 0
0
0
0 0 0 0 0 0 0 0
0
0
0 0 0
![Page 35: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/35.jpg)
Figure 4.18 DeMorgan’s theorem in terms of logic gates
x 1
x 2
x 1
x 2
x 1
x 2
x 1
x 2
x 1
x 2
x 1
x 2
x 1 x 2 x 1 x 2 + = (a)
x 1 x 2 + x 1 x 2 = (b)
![Page 36: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/36.jpg)
Figure 4.19 Using NAND gates to implement a sum-of-products
x 1 x 2
x 3 x 4 x 5
x 1 x 2
x 3 x 4 x 5
x 1 x 2
x 3 x 4 x 5
![Page 37: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/37.jpg)
Figure 4.20 Using NOR gates to implement a product-of-sums
x 1
x 2
x 3
x 4
x 5
x 1
x 2
x 3
x 4
x 5
x 1
x 2
x 3
x 4
x 5
![Page 38: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/38.jpg)
Multilevel Synthesis
• SOP or POS circuits have 2-levels of gates.
• Only efficient for functions with few inputs.
• Many inputs can lead to fan-in problems.
• Multilevel circuits can also be more area efficient.
![Page 39: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/39.jpg)
Figure 4.21 Implementation in a CPLD
D Q
PAL-like block
(from interconnection wires)
x 1 x 2 x 3 x 4 x 5 x 6 x 7 unused
0 0 1
f
![Page 40: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/40.jpg)
Figure 4.22 Implementation in an FPGA
0 0 0 1
0 1 1 1
x 4
x 5
A
B
C
D
x 1
x 6
x 4 f
0 1 1 1
0 0 0 1
x 3
C
D
E
E
f
x 2
x 7
x 5 x 3
0 0 0 1
x 2
x 7
B
0 0 1 0
x 1
x 6
A
![Page 41: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/41.jpg)
Figure 4.23 Using 4-input AND gates to realize a 7-input product term
7 inputs
![Page 42: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/42.jpg)
Figure 4.24 A factored circuit
x 6
x 4
x 1
x 5
x 2
x 3
x 2
x 3
x 5
![Page 43: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/43.jpg)
Example 4.5
![Page 44: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/44.jpg)
Figure 4.25 A multilevel circuit
x 1
x 2
x 3
x 4
f 1
f 2
![Page 45: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/45.jpg)
Impact on Wiring Complexity
• Space on chip is used by gates and wires.
• Wires can be a significant portion.
• Each literal corresponds to a wire.
• Factoring reduces literal count, so it can also reduce wiring complexity.
![Page 46: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/46.jpg)
Functional Decomposition
• Multilevel circuits often require less area.
• Complexity is reduced by decomposing 2-level function into subcircuits.
• Subcircuit implements function that may be used in multiple places.
![Page 47: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/47.jpg)
Example 4.6
![Page 48: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/48.jpg)
Figure 4.26 A multilevel circuit
x 1
x 2
x 3
x 4
f g
![Page 49: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/49.jpg)
Figure 4.27 The structure of a decomposition
1 x 2
x 3 x 4
f
g
h
x
x 1
x 2
x 3
x 4
f g
![Page 50: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/50.jpg)
x 1 x 2 x 3 x 4 00 01 11 10
00
01
11
10
x 1 x 2 x 3 x 4 00 01 11 10
1 1
1 1
1
1
1
00
01
11
10
1
x 5 0 = x 5 1 =
f
1 1 1 1
1 1 1 1
![Page 51: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/51.jpg)
Figure 4.28 An example of decomposition
x 1 x 2 x 5
x 4
f x 3
g
k
![Page 52: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/52.jpg)
Figure 4.29 a Implementation of XOR
x 2
x 1
x 1 x 2
x 2
x 1
x 1 x 2
(a) Sum-of-products implementation
(b) NAND gate implementation
![Page 53: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/53.jpg)
Example 4.8
![Page 54: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/54.jpg)
x 2
x 1
g x 1 x 2
(c) Optimal NAND gate implementation
Figure 4.29 b Implementation of XOR
f = x1 x2 = x1x2 + x1x2 = x1(x1 + x2) + x2(x1 + x2)
![Page 55: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/55.jpg)
Practical Issues
• Functional decomposition can be used to implement general logic functions in circuits with built-in constraints.
• Enormous numbers of possible subfunctions leads to necessity for heuristic algorithms.
![Page 56: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/56.jpg)
Figure 4.30 Conversion to a NAND-gate circuit
x 2
x 1
x 3
x 4
x 5 x 6
x 7
x 2
x 1
x 3
x 4
x 5 x 6
x 7
f
f
(a) Circuit with AND and OR gates
(b) Inversions needed to convert to NANDs
![Page 57: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/57.jpg)
Figure 4.30 Conversion to a NAND-gate circuit
x 2
x 1
x 3
x 4
x 5 x 6
x 7
f
(b) Inversions needed to convert to NANDs
x 2
x 1
x 3
x 4
x 5
x 6 x 7
f
![Page 58: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/58.jpg)
Figure 4.31 Conversion to a NOR-gate circuit
x 2
x 1
x 3
x 4
x 5 x 6
x 7
f
(a) Circuit with AND and OR gates
x 2
x 1
x 3
x 4
x 5
x 6
x 7
f
(a) Inversions needed to convert to NORs
![Page 59: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/59.jpg)
Figure 4.31 Conversion to a NOR-gate circuit
x 2
x 1
x 3
x 4
x 5
x 6
x 7
f
x 2
x 1
x 3
x 4
x 5
x 6 x 7
f
![Page 60: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/60.jpg)
x 2
x 1
x 3
x 4
x 5
x 6
x 7
f
P 3
P 1
P 4
P 5 P 2
Figure 4.32 Circuit example for analysis
![Page 61: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/61.jpg)
x 1
x 2
x 5
x 4
f x 3
P 1
P 4
P 5
P 6 P 8
P 2
P 3
P 9
P 10
P 7
Figure 4.33 Circuit example for analysis
![Page 62: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/62.jpg)
x1
x2
x4
fx5
(c) Circuit with AND and OR gates
x3
Figure 4.34 Circuit example for analysis
x1
x2
x3
x4
x5f
P1
P2
P3
(a) NAND-gate circuit
x1
x2
x3
x4
x5f
(b) Moving bubbles to convert to ANDs and ORs
![Page 63: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/63.jpg)
x 2 x 3
x 1
x 4
x 5
f
P 3
P 1
P 2
P 4
Figure 4.35 Circuit example for analysis
![Page 64: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/64.jpg)
CAD Tools
• espresso – finds exact and heuristic solutions to the 2-level synthesis problem.
• sis – performs multilevel logic synthesis.
• Numerous commercial CAD packages are available from Cadence, Mentor, Synopsys, and others.
![Page 65: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/65.jpg)
Figure 4.46 A complete CAD system
Design conception
Design correct?
Chip configuration
Timing simulation
No
Yes
Design entry, initial synthesis, and functional simulation(see section 2.8)
Physical design
Logic synthesis/optimization
![Page 66: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/66.jpg)
Figure 4.42 VHDL code for the function f = m(1, 4, 5, 6)
![Page 67: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/67.jpg)
Figure 4.43 Logic synthesis options in MAX+PLUS II
![Page 68: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/68.jpg)
Physical Design
• Physical design determines how logic is to be implemented in the target technology.– Placement determines where in target device a
logic function is realized.– Routing determines how devices are to be
interconnected using wires.
![Page 69: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/69.jpg)
Figure 4.44 Results of physical design
![Page 70: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/70.jpg)
Timing Simulation
• Functional simulation does not consider signal propagation delays.
• After physical design, more accurate timing information is available.
• Timing simulation can be used to check if a design meets performance requirements.
![Page 71: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/71.jpg)
Figure 4.45 Timing simulation results
(a) Timing in an FPGA
(b) Timing in a CPLD
![Page 72: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/72.jpg)
Figure 4.46 A complete CAD system
Design conception
Design correct?
Chip configuration
Timing simulation
No
Yes
Design entry, initial synthesis, and functional simulation(see section 2.8)
Physical design
Logic synthesis/optimization
![Page 73: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/73.jpg)
STD_LOGIC type
• Defined in ieee.std_logic_1164 package.
• Enumerated type with 9 values.• ‘1’ – strong one ‘0’ – strong zero
• ‘X’ – strong unknown ‘Z’ – high impedence
• ‘H’ – weak one ‘L’ – weak zero
• ‘W’ – weak unknown ‘U’ – uninitialized
• ‘-’ – don’t care
• We will almost always use STD_LOGIC.
![Page 74: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/74.jpg)
Figure 4.47 VHDL code using STD_LOGIC
![Page 75: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/75.jpg)
Figure 4.48 VHDL code for the function f = m(0, 2, 4, 5, 6)
![Page 76: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/76.jpg)
Figure 4.49 Implementation of the VHDL code for the function f = m(0, 2, 4, 5, 6)
D Q
PAL-like block
(from interconnection wires)
x 1 x 2 x 3 unused
0
0 1
![Page 77: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/77.jpg)
D Q
PAL-like block
(from interconnection wires)
x 1 x 2 x 3 unused
0 1
Figure 4.50 Implementation using XOR synthesis (f = x3 x1x2x3)
![Page 78: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/78.jpg)
Figure 4.51 VHDL code for f = m(0, 2, 4, 5, 6) implemented in a LUT
0
0
1
1
0
1
0
1
1
0
1
0
f
0
0
1
0
1
0
1
1
1
1 1 0
0
0
0
0
1
1
1
1
d
d
d
d
d
d
d
d
i 1 i 2 i 3 i 4
i 1
i 2
i 3
i 4
x 1
x 2
x 3
0
f
LUT
![Page 79: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/79.jpg)
Figure 4.52 The VHDL code for f = m(2, 3, 9, 10, 11, 13)
![Page 80: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/80.jpg)
Figure 4.53 VHDL code for a 7-variable function
![Page 81: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/81.jpg)
Figure 4.54 Two implementations of a 7-variable function
x 6
x 4
f
x 5
0
x 7
x 2 x 3
x 2
x 7
x 4 x 5
0
x 6
x 1 x 3
x 1 x 4 x 5 x 6
x 1 x 3 x 6
x 2 x 3 x 7
x 2 x 4 x 5 x 7
(a) Sum-of-products realization
x 1
x 7
x 2 x 6
x 1 x 6 x 2 x 7 +
x 5
x 3 x 4
f
(b) Factored realization
x 1
![Page 82: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/82.jpg)
Logic Function Representation
• Truth tables
• Algebraic expressions
• Venn diagrams
• Karnaugh maps
• n-dimensional cubes
![Page 83: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/83.jpg)
Figure 4.36 Representation of f = m(1, 2, 3)
x 1
0 0 1 1
0 1 0 1
f
0 1 1 1
01
00
11
10
x 2
x 1
x1
1x
x 2
![Page 84: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/84.jpg)
Figure 4.37 Representation of f = m(0, 2, 4, 5, 6)
x 2
x 1
x 3
000
001
010
011
110
101
100
111
x10
1x0 0x0
x00
10x
xx0
![Page 85: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/85.jpg)
Figure 4.38 Representation of f = m(0, 2, 3, 6, 7, 8, 10, 15)
0000 1000
1010
0110
0011
0010
0111 1111
0x1x
x0x0
x111
![Page 86: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/86.jpg)
n-Dimensional Hypercube
• Function of n variables maps to n-cube.
• Size of a cube is number of vertices.
• A cube with k x’s consists of 2k vertices.
• n-cube has 2n vertices.
• 2 vertices are adjacent if they differ in one coordinate.
• Each vertex in n-cube adjacent to n others.
![Page 87: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/87.jpg)
Figure 4.39 The coordinate *-operation
o
o 0 0
1 1
1 0 x
1 0 x B i A i
0
1
x
A i B i *
C = A * B such that1. C = if Ai * Bi = for more than one i.2. Otherwise, Ci = Ai * Bi when Ai * Bi and Ci = x for the coordinate where Ai * Bi = .
![Page 88: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/88.jpg)
Using *-operation to Find Primes
• f is specified using a set of cubes, Ck of f.• Let ci and cj be any two cubes in Ck.• Apply *-operation to all pairs of cubes in Ck :
– Gk+1 = ci * cj for all ci, cj in Ck
• Form new cover for f as follows:– Ck+1 = Ck Gk+1– redundant cubes
– A is redundant if exists a B s.t. Ai = Bi or Bi = x for all i.
• Repeat until Ck+1 = Ck.
![Page 89: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/89.jpg)
Example 4.14
![Page 90: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/90.jpg)
Example 4.15
![Page 91: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/91.jpg)
Figure 4.40 The coordinate #-operation
o
0 1
1 0 x B i A i
0
1
x
A i B i #
o
C = A # B, such that1. C = A if Ai # Bi = for some i.2. C = if Ai # Bi = for all i.3. Otherwise, C = i(A1, A2, ..., Bi, ... An), where the union is for all i for which Ai = x and Bi x.
![Page 92: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/92.jpg)
Finding Essential Primes
• Let P be set of all prime implicants.
• Let pi denote one prime implicant in P.
• Let DC denote the don’t cares vertices for f.
• Then pi is an essential prime implicant iff:– pi # (P – pi) # DC
![Page 93: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/93.jpg)
Example 4.16
![Page 94: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/94.jpg)
Example 4.17
![Page 95: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/95.jpg)
Procedure to Find Minimal Cover
• Let C0 = ON DC be the initial cover of f.• Find all primes, P, of C0 using *-operation.• Find the essential primes using #-operation.• If essentials cover ON-set then done else
– Delete any nonessential prime that is more expensive than some other prime.
– Use branching technique to select lowest cost primes which cover ON-set.
![Page 96: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/96.jpg)
Figure 4.41 An example four-variable function
1 x 2 x 3 x 4 00 01 11 10
1
1 1 1
1 1
00
01
11
10
x 1 x 2 x 3 x 4 00 01 11 10
d 1
1
d
d
1 1
00
01
11
10
1
x 5 0 = x 5 1 =
d
x
![Page 97: CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.](https://reader035.fdocuments.in/reader035/viewer/2022062721/56649f1e5503460f94c35206/html5/thumbnails/97.jpg)
Summary
• Described 2-level logic synthesis methods.
• Discussed multilevel logic synthesis.
• Introduced CAD tools for logic synthesis.