1.04k likes | 1.22k Views
Computer Architecture I: Digital Design Dr. Robert D. Kent. Lecture 3 Simplification of Boolean Expressions. Simplification of Boolean Expressions. A. Cost Models B. Reduction Techniques - i. Karnaugh Map Method. The Simplification Problem: Requirements.
E N D
Computer Architecture I: Digital Design Dr. Robert D. Kent Lecture 3 Simplification of Boolean Expressions
SimplificationofBoolean Expressions A. Cost Models B. Reduction Techniques - i. Karnaugh Map Method
The Simplification Problem: Requirements • Simplification of complex circuits, starting from their equivalent representation as complex Boolean expressions, requires an understanding of cost. • We will see that the typical goal is to arrive at Boolean expressions that: • are expressible in SOP (or POS) form • involve minimal numbers of literals • involve a minimal number of gate application levels • To help us understand how to accomplish circuit minimization, we will study one powerful reduction technique: • Karnaugh maps
Concepts of Cost • We focus on two types of cost model. • Minimum time of completion of circuit logic • both SOP and POS circuit representations are two-level designs with all the gates at each level performing in parallel with the same time characteristics. • Minimum cost of circuit construction • very often it is possible, starting with the SOP or POS forms, to rewrite a near-optimal cost form involving pure nand or nor gates only. • This leads to four cost theorems.
Concepts of Cost • Before stating the theorems we need some definitions of terms: • Literal a variable or its complement (unique symbol) • Implies F implies G, means that there does not exist a set of N input literals such that both F=1 and G=0; By contrast, if F=1 then G must be equal to 1. • Subsumes A term T1subsumes a term T2if and only if (!)all the literals in T2 are also found in T1. If one term subsumes another in an expression, then the subsuming term can always be deleted with changing the function. In other words, if T1 subsumes T2 then T1 may be ignored because the T2 terms account for logic.
Concepts of Cost • … and some more definitions of terms: • Implicant a product term is said to be an implicant of a complete function if the product term implies the function. • Implicate a sum term is said to be an implicate of a complete function if the sum term implies the function.
Concepts of Cost • … and some more definitions of terms: • Prime Implicant an implicant is a prime implicant if it does not subsume any other implicant with fewer literals. This means that if any literal is removed from the term, it no longer implies the function. • Prime Implicate an implicate is a prime implicate if it does not subsume any other implicate with fewer literals. This means that if any literal is removed from the term, it no longer implies the function. Note the symmetry between the definitions of implicant (product) and implicate (sum).
Concepts of Cost • Cost Theorem 1a.When the cost, assigned by some criterion, for a minimal Boolean formula is such that decreasing the number of literals in the disjunctive normal formula does not increase the cost of the formula, there is at least one minimal disjunctive normal formula that corresponds to a sum of prime implicants. • Cost Theorem 2a. For any cost criterion such that the cost of a formula does not increase when a literal is removed, at least one minimal disjunctive normal formula describing a function is an irredundantdisjunctive normal formula (SOP).
Concepts of Cost • Cost Theorem 1b.When the cost, assigned by some criterion, for a minimal Boolean formula is such that decreasing the number of literals in the conjunctive normal formula does not increase the cost of the formula, there is at least one minimal conjunctive normal formula that corresponds to a product of prime implicates. • Cost Theorem 2b. For any cost criterion such that the cost of a formula does not increase when a literal is removed, at least one minimal conjunctive normal formula describing a function is an irredundant conjunctive normal formula (POS). • These theorems establish that implicates are dual to implicants.
Expression Simplification • The algebraic techniques we have developed are too slow and uncertain to apply in cases where the numbers of variables are large. • To meet the needs of modern circuit analysis and design several methods have been developed that • are somewhat scalable, and • permit limited degrees of automation (ie. Programmability).
Karnaugh Maps • The use of mapping, or tableau-based, techniques were developed by Veitch and modified by Karnaugh. • We will determine these techniques by studying examples in order to establish the rules for map manipulation.
Karnaugh Maps Truth Table • 1 variable mapx f(x)0 f(0)1 f(1)
Karnaugh Maps Truth Table • 1 variable mapx f(x)0 f(0)1 f(1) Literal Function Values Binary Values
Karnaugh Maps x0 1 f(0) f(1) Truth Table • 1 variable mapx f(x)0 f(0)1 f(1) Literal Literal Binary Values Function Values Function Values Binary Values
Karnaugh Maps x0 1 f(0) f(1) Truth Table 1x2 Karnaugh Map • 1 variable mapx f(x)0 f(0)1 f(1)
Karnaugh Maps Truth Table • 2 variable mapx y f(x,y) 0 0 f(0,0)0 1 f(0,1)1 0 f(1,0)1 1 f(1,1)
Karnaugh Maps Truth Table y0 1 2x2 Karnaugh Map f(0,0) f(0,1) 0 x 1 f(1,0) f(1,1) • 2 variable mapx y f(x,y) 0 0 f(0,0)0 1 f(0,1)1 0 f(1,0)1 1 f(1,1)
Karnaugh Maps yz00 01 11 10 f(000) f(001) f(011) f(010) 0 x 1 f(100) f(101) f(111) f(110) 2x4 Karnaugh Map • 3 variable mapx y z f(x,y,z)0 0 0 f(000)0 0 1 f(001)0 1 0 f(010)0 1 1 f(011)1 0 0 f(100)1 0 1 f(101)1 1 0 f(110)1 1 1 f(111)
Karnaugh Maps yz00 01 11 10 f(000) f(001) f(011) f(010) 0 x 1 f(100) f(101) f(111) f(110) 2x4 Karnaugh Map Note the way that the column indices change by only 1 bit at a time from left to right. • 3 variable mapx y z f(x)0 0 0 f(000)0 0 1 f(001)0 1 0 f(010)0 1 1 f(011)1 0 0 f(100)1 0 1 f(101)1 1 0 f(110)1 1 1 f(111)
Karnaugh Maps y00 011110 f(000) f(001) f(011) f(010) 0 x 1 f(100) f(101) f(111) f(110) 2x4 Karnaugh Map An alternative labelling scheme is based on which literal has value 1. • 3 variable mapx y z f(x,y,z)0 0 0 f(000)0 0 1 f(001)0 1 0 f(010)0 1 1 f(011)1 0 0 f(100)1 0 1 f(101)1 1 0 f(110)1 1 1 f(111) z
Karnaugh Maps y00 011110 0 1 3 2 0 x 1 4 5 7 6 2x4 Karnaugh Map One final alternative labelling scheme replaces the function value by the decimal minterm index value. • 3 variable mapx y z f(x,y,z)0 0 0 f(000)0 0 1 f(001)0 1 0 f(010)0 1 1 f(011)1 0 0 f(100)1 0 1 f(101)1 1 0 f(110)1 1 1 f(111) z
Karnaugh Maps • 4 variable mapw x y z f(w,x,y,z)0 0 0 0 f(0000)0 0 0 1 f(0001)0 0 1 0 f(0010)0 0 1 1 f(0011)0 1 0 0 f(0100)0 1 0 1 f(0101)0 1 1 0 f(0110)0 1 1 1 f(0111)1 0 0 0 f(1000)1 0 0 1 f(1001)1 0 1 0 f(1010)1 0 1 1 f(1011)1 1 0 0 f(1100)1 1 0 1 f(1101)1 1 1 0 f(1110)1 1 1 1 f(1111)
Karnaugh Maps • 4 variable mapw x y z f(w,x,y,z)0 0 0 0 f(0000)0 0 0 1 f(0001)0 0 1 0 f(0010)0 0 1 1 f(0011)0 1 0 0 f(0100)0 1 0 1 f(0101)0 1 1 0 f(0110)0 1 1 1 f(0111)1 0 0 0 f(1000)1 0 0 1 f(1001)1 0 1 0 f(1010)1 0 1 1 f(1011)1 1 0 0 f(1100)1 1 0 1 f(1101)1 1 1 0 f(1110)1 1 1 1 f(1111) yz00 01 11 10 00 01 wx 11 10 f(0000) f(0001) f(0011) f(0010) f(0100) f(0101) f(0111) f(0110) f(1100) f(1101) f(1111) f(1110) f(1000) f(1001) f(1011) f(1010)
Karnaugh Maps Note the way that both the row and column indices change by only 1 bit at a time. • 4 variable mapw x y z f(w,x,y,z)0 0 0 0 f(0000)0 0 0 1 f(0001)0 0 1 0 f(0010)0 0 1 1 f(0011)0 1 0 0 f(0100)0 1 0 1 f(0101)0 1 1 0 f(0110)0 1 1 1 f(0111)1 0 0 0 f(1000)1 0 0 1 f(1001)1 0 1 0 f(1010)1 0 1 1 f(1011)1 1 0 0 f(1100)1 1 0 1 f(1101)1 1 1 0 f(1110)1 1 1 1 f(1111) yz00 01 11 10 00 01 wx 11 10 0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10
Karnaugh Maps Note the way that both the row and column indices change by only 1 bit at a time. This implies that two rows, or columns, whose indices differ by only 1 bit value, are adjacent. • 4 variable mapw x y z f(w,x,y,z)0 0 0 0 f(0000)0 0 0 1 f(0001)0 0 1 0 f(0010)0 0 1 1 f(0011)0 1 0 0 f(0100)0 1 0 1 f(0101)0 1 1 0 f(0110)0 1 1 1 f(0111)1 0 0 0 f(1000)1 0 0 1 f(1001)1 0 1 0 f(1010)1 0 1 1 f(1011)1 1 0 0 f(1100)1 1 0 1 f(1101)1 1 1 0 f(1110)1 1 1 1 f(1111) yz00 01 11 10 00 01 wx 11 10 0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10
Karnaugh Maps Note the way that both the row and column indices change by only 1 bit at a time. This implies that two rows, or columns, whose indices differ by only 1 bit value, are adjacent. • 4 variable mapw x y z f(w,x,y,z)0 0 0 0 f(0000)0 0 0 1 f(0001)0 0 1 0 f(0010)0 0 1 1 f(0011)0 1 0 0 f(0100)0 1 0 1 f(0101)0 1 1 0 f(0110)0 1 1 1 f(0111)1 0 0 0 f(1000)1 0 0 1 f(1001)1 0 1 0 f(1010)1 0 1 1 f(1011)1 1 0 0 f(1100)1 1 0 1 f(1101)1 1 1 0 f(1110)1 1 1 1 f(1111) yz00 01 11 10 00 01 wx 11 10 0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10 WRAP-AROUND!
Karnaugh Maps An alternative row/column labelling, highlighting the literal with value 1. • 4 variable mapw x y z f(w,x,y,z)0 0 0 0 f(0000)0 0 0 1 f(0001)0 0 1 0 f(0010)0 0 1 1 f(0011)0 1 0 0 f(0100)0 1 0 1 f(0101)0 1 1 0 f(0110)0 1 1 1 f(0111)1 0 0 0 f(1000)1 0 0 1 f(1001)1 0 1 0 f(1010)1 0 1 1 f(1011)1 1 0 0 f(1100)1 1 0 1 f(1101)1 1 1 0 f(1110)1 1 1 1 f(1111) y00 01 11 10 00 01 x 11 10 0 1 3 2 4 5 7 6 12 13 15 14 w 8 9 11 10 z
Karnaugh Maps x0 1 0 1 Place function values (from the defining function truth table) in the map positions. • Case Study: 1 variable map • Ex.
Karnaugh Maps x0 1 0 1 • Case Study: 1 variable map Circle all 1 entries that, taken together, form a subcube (i.e. rectangular shape formed from 1-boxes, without holes).
Karnaugh Maps x0 1 0 1 • Case Study: 1 variable map Circle all 1 entries that, taken together, form a subcube (i.e. rectangle). DEFINITION: When constructing SOP forms, a 2N -subcube is a rectangular region of a Karnaugh map consisting of 2Nadjacent cells, each containing the same value 1 (or 0 for POS forms), and where N must be an integer greater or equal to zero.
Karnaugh Maps x0 1 0 1 • Case Study: 1 variable map The entry 1 in the second column corresponds to the prime implicantx.
Karnaugh Maps x0 1 0 1 • Case Study: 1 variable map The entry 1 in the second column corresponds to the prime implicantx. Recall that x is a prime implicant iff: - x implies f(x) and, - x does not subsume any other implicant: Since, removing x from itself leaves nothing, then x is clearly prime.
Karnaugh Maps x0 1 0 1 • Case Study: 1 variable map Thus, the minimal expression of the function is: F(x) = x
Karnaugh Maps x0 1 1 0 • Case Study: 1 variable map - Complementation The entry 1 in the first column corresponds to the prime implicantx’.
Karnaugh Maps x0 1 1 0 • Case Study: 1 variable map - Complementation The entry 1 in the first column corresponds to the prime implicantx’. Thus, the minimal expression of the function is: F(x) = x’
Karnaugh Maps x0 1 1 1 • Case Study: 1 variable map - 2nd variation Circle all 1 entries that, taken together, form a subcube (i.e. rectangle).
Karnaugh Maps x0 1 1 1 • Case Study: 1 variable map - 2nd variation We note that both x and x’ terms are included in the rectangle. Their individual “product” contributions to the SOP expression must be summed (or’ed): x + x’ But, this reduces to 1.
Karnaugh Maps x0 1 1 1 • Case Study: 1 variable map - 2nd variation Thus, the minimal expression of the function is: F(x) = 1
Karnaugh Maps x0 1 1 1 • Case Study: 1 variable map - 2nd variation Thus, the minimal expression of the function is: f = 1 In other words, when both 0 and 1 terms appear for a literal referenced within the cells of a subcube, that literal is removed from the implicant corresponding to that subcube, leaving a prime implicant.
Karnaugh Maps yz00 01 11 10 0 1 1 0 0 x 1 1 0 1 0 2x4 Karnaugh Map Place function values (from the defining function truth table) in the map positions. • 3 variable map
Karnaugh Maps yz00 01 11 10 0 1 1 0 0 x 1 1 0 1 0 • 3 variable map • Circle all 1 entries that, taken together, form a subcube (i.e. rectangle). • Start with the largest subcubes, then proceed to smaller subcubes • Generally speaking, there will be more than one independent subcube, each reflecting a different prime implicant.
Karnaugh Maps yz00 01 11 10 0 1 1 0 0 x 1 1 0 1 0 • 3 variable map y’ z’ x • For each subcube, write its algebraic expression using the variable name (eg. x) if the box occurs in the row/column for which the variable is 1 – otherwise, if the box occurs in the row/column for which the variable (eg. y,z) is 0, use the complemented variable (ie. y’, z’).
Karnaugh Maps yz00 01 11 10 0 1 1 0 0 x 1 1 0 1 0 • 3 variable map y’ z’ Collecting literals into a product gives: xy’z’ x 1-subcubes are expressed using all variable symbols
Karnaugh Maps yz00 01 11 10 0 1 1 0 0 x 1 1 0 1 0 • 3 variable map z y+y’=1 x’ Circle all 1 entries that, taken together, form a subcube (i.e. rectangle). Generally speaking, there will be more than one independent subcube, each reflecting a different prime implicant.
Karnaugh Maps yz00 01 11 10 0 1 1 0 0 x 1 1 0 1 0 • 3 variable map z y+y’=1 Collecting literals into a product gives: x’z x’ Circle all 1 entries that, taken together, form a subcube (i.e. rectangle). Generally speaking, there will be more than one independent subcube, each reflecting a different prime implicant.
Karnaugh Maps yz00 01 11 10 0 1 1 0 0 x 1 1 0 1 0 • 3 variable map y z x+x’ = 1 Circle all 1 entries that, taken together, form a subcube (i.e. rectangle). Generally speaking, there will be more than one independent subcube, each reflecting a different prime implicant.
Karnaugh Maps yz00 01 11 10 0 1 1 0 0 x 1 1 0 1 0 • 3 variable map y z x+x’ = 1 Collecting literals into a product gives: yz Circle all 1 entries that, taken together, form a subcube (i.e. rectangle). Generally speaking, there will be more than one independent subcube, each reflecting a different prime implicant.
Karnaugh Maps yz00 01 11 10 0 1 1 0 0 x 1 1 0 1 0 • 3 variable map Each subcube (rectangle) corresponds to a prime implicant term. Gathering all terms in SOP form, f = xy’z’ + x’z + yz
Karnaugh Maps yz00 01 11 10 0 1 1 0 0 x 1 1 0 1 0 • 3 variable map f = xy’z’ + x’z + yz