The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Boolean Algebra • • • • • • • Boolean Algebra (named for its developer, George Boole), is the algebra of digital logic circuits that all computers use. It is a symbolic representation of logic principles that date back to Greek logic studies (Aristotle, ~384-322 BC). In the Victorian Age, mathematicians began to apply formal principles to Aristotelian logic, which led to the field of symbolic logic. Technically, “Boolean Algebra” refers to a family of logic systems, but it is generally used to refer to one system -- and that is how we will use it. George Boole (1815-1864) was a mathematician and teacher, the selfeducated son of a cobbler, who married Mary Everest (niece of Sir George Everest of mountain fame).* Boole’s thinking was typical of Victorians: All processes (even thinking!) could be represented by formal rules. His intent was to formalize the “rules of thinking” with logic equations – a well-meant but totally impossible task. Scientists soon began to apply “switching algebra” to logic problems. * His key work was “An Investigation of the Laws of Thought on Which are Founded the Mathematical Theories of Logic and Probabilities.” 1 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Boolean Algebra (2) • Later contributors improved and adapted Boole’s work, slowly evolving it towards computer applications, including William S. Jevons (1869 – “the logic piano,” a rudimentary Boolean algebra computational device), and Claude Shannon (1930’s – a great early data transmission expert, who died in 2001; he invented digital data transmission [“it’s all bits”]). • Despite many contributors Boolean Algebra is mostly unchanged. • Boolean Algebra is “1-0 logic.” – 0 = “off,” “not present,” “false,” “de-asserted.” – 1 = “on,” “present,” “true,” “asserted.” Very important statement!!!! • All computer circuits solve problems by performing Boolean transformations on binary (0-1) variables. It could be said that Boolean algebra is the algebra of binary systems. 2 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Boolean Algebra in the Computer • In a computer, logic levels 1 and 0 correspond to voltages: – “Positive logic” uses a + voltage (e.g., 5 V) for 1 and 0 V for 0. – Sometimes, “negative logic” (1 = 0V, 0 = +V [e.g., 5V]) is used. • There are two classes of digital or computer logic: – Combinational logic – output depends only on the inputs. – Sequential logic – output depends on the inputs, the internal state of the logic, and possibly a clock or timing mechanism (studied later). • We will only cover circuit behavior in terms the manipulation of 1’s and 0’s. You will cover electronics of digital circuits later. • A logic circuit (“gate”), is an electronic device that performs a Boolean function* on one or more inputs, and provides at least one output. • There are three basic Boolean functions: AND OR NOT * A function is an action that can be performed on a value, state, or number, resulting in a new value, state, or number. 3 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 Erik Jonsson School of Engineering and Computer Science The University of Texas at Dallas Boolean Functions: Logical Negation • NOT is the simplest logical function: 1 input and 1 output. • NOT is defined as follows: “The output f of NOT, given an input a, is the complement or opposite of the input.” Or : f = a • Since NOT can have only a 0 or 1 input, the output of NOT is the reverse, or complement, of the input. – If the input of NOT is 1, the output is 0. – If the input of NOT is 0, the output is 1. • The NOT function is called inversion, and the digital circuit which inverts is an inverter. The electronic circuit symbol for NOT is: a 4 a Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Truth Tables • The input/output relationship is easy to show for an inverter (see last slide). Boolean Function Truth Table • For more complex functions, a Input x Input y Output f table of outputs versus inputs is helpful. 0 0 0 • Such a table is called a truth table, 0 1 1 since the table indicates the 1 (or “true”) outputs, although the 1 0 1 table normally shows outputs for 1 1 0 all input combinations. • We will use truth tables to demonstrate many Boolean functions. 5 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Logical AND • • • • • • • 6 AND Truth Table AND has two or more inputs. a b a AND b The truth table for a two-input AND with 0 0 0 a and b inputs is shown in the chart. 0 1 0 AND is defined as follows: a AND b = 1 if and only if (iff) a = 1 and b = 1. 1 0 0 Mathematically, we represent “a AND b” 1 1 1 as a ⋅ b (an unfortunate choice). AND may have more than two inputs, i. a 2-Input AND a⋅b e.: a AND b AND c AND d. b The electronic circuit symbols for 2- and a 4-input AND’s are shown at the right. a⋅b⋅c⋅d b 4-Input AND c Regardless of the number of inputs, the d output of AND is 1 iff all inputs are 1. Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Logical OR • • • • • • • • 7 OR has two or more inputs. The truth table for two inputs a, b is shown in the adjacent chart. OR is defined as follows: a OR b = 1 if either a or b or both a and b = 1. Another way to way this is that a OR b = 0 iff a = b = 0. Mathematically, we represent “a OR b” as a + b (another bad choice). OR may have many inputs, e. g.: a+b+c+d. The electronic circuit symbols for 2- and 4input OR’s are shown at the right. Regardless of the number of inputs, the output of OR is 0 iff all inputs are 0. OR Truth Table a 0 b 0 a OR b 0 0 1 1 0 1 1 1 1 1 a b a+b 2-Input OR a b c d a+b+c+d 4-Input OR Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Illustration of AND and OR with “Goofy Flashlights” a·b Light Bulb a a+b a b b Switches AND • • • 8 The AND “goofy flashlight” is a • circuit connecting batteries to a light bulb via series switches, a & b. The bulb will be lighted only if both • switches are closed. Thus we say that the “AND light • bulb function” = a AND b = a · b. Batteries OR The OR “goofy flashlight” connects batteries to a light bulb via parallel switches, a & b. The bulb will be lighted if either switch is closed. Thus we say that the “OR light bulb function” = a OR b = a + b. Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 Erik Jonsson School of Engineering and Computer Science The University of Texas at Dallas NAND and NOR • Both NAND and NOR are composite functions, but we discuss them here, since they are commercially available. • The NAND function is inverted AND; NOR is inverted OR. • Mathematically, we use a horizontal bar to indicate the inversion, i.e.: a NAND b is written as a ⋅ b , and a NOR b is written as a + b • As NAND is the reverse of AND, the NAND output is 1 unless all inputs are 1. Likewise, NOR outputs 0 unless all inputs are 0. NAND a b a⋅b a b 9 NOR NAND Truth Table a⋅b a 0 0 1 1 b 0 1 0 1 a NAND b 1 1 1 0 a b a b NOR Truth Table a+b a+b Lecture #4: Boolean Algebra and Combinational Digital Logic a 0 0 1 1 b a NOR b 0 1 1 0 0 0 1 0 © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Creating Boolean Functions • As mentioned a few slides ago, digital circuits solve problems by performing Boolean transformations on binary numbers. • Any computer function can be created by combinations of Boolean variables. Boolean functions created in this way are called combinational logic, and they are time-independent (we will discuss sequential, or time-dependent, logic in a few lectures). • When a digital system is being designed, an engineer usually starts with a specification (“spec”), which describes how the system performs (“when the system inputs are this, the output is that”). • We go from “spec” → truth table, from which we can derive a Boolean expression, from which a circuit can be made. • We will look at the entire process later: Let’s now examine the Boolean function → circuit design process. 10 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Circuit Derived from Boolean Expression • Assume we have some Boolean functions that represent computer circuits that we want to design. How do we go from the Boolean function to the computer circuit? • Consider these functions: f = a+b+c f= a + b f = (a ⋅ b) + c 1: 2: 3: (finally, a more complicated one!): f = (a + b) ⋅ (c + d ) 11 4: Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Exercise 1 • Now let’s try a few digital circuit designs from the Boolean expressions: f = a⋅b⋅c f = (a + b) ⋅ c f = (a + b) ⋅ (c ⋅ d ) f =a + ( b ⋅ c ) + d 12 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Complex Boolean Functions: “Combinational Logic” • Any Boolean function f maps a total of n inputs (x1, x2, x3, ...... xn) into one output (0,1). That is, a Boolean function f of n variables produces a single output for each unique combination of inputs. • Remember: – There are only two Boolean variables: 0 or 1. – A Boolean function in which the output f depends only on the input variables is called combinational logic. – No matter how complex, a Boolean function can always be defined by using a truth table, as we have done previously. • Principle: Any combinational logic function may be represented by two levels of logic: a level of AND gates followed by an OR gate, or a level of OR gates followed by an AND gate. Input inversion may also be required, but this is not considered a third level. 13 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science SOP and POS Boolean Representations • If we have AND functions followed by an OR, then we have a “Sum of Products” (SOP) representation, a misnomer from mathematics.* • If we have OR’s followed by an AND, we say that we have a “Product of Sums” (POS) representation (also misnamed). • A “Sum of Products” function looks like this: f = ( a ⋅ b ) + ( c ⋅ d ) . – The Boolean function f is the OR of two functions, a AND b & c AND d. It is an SOP since the AND’s come first, and then the OR. – Likewise, g = ( a ⋅ b ) + ( c ⋅ d ) is also SOP, even with inverted inputs. OR Level SOP Illustration: f = (a ⋅ b) + (c ⋅ d ) AND Level * Remember, AND and OR symbols look like the “times” and “plus” symbols, hence the names SOP and POS. 14 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 Erik Jonsson School of Engineering and Computer Science The University of Texas at Dallas SOP and POS (Continued) • A “Product of Sums” looks like this: f = ( a + b ) ⋅ ( c + d ) . – In this case, f is a Boolean AND of two OR functions, a OR b & c OR d. It is POS since the OR’s come first, and then the AND. – In the same way, g = ( a + b ) ⋅ ( c + d ) is also POS. It is also 2level, even though there are also two variable inversions. OR Level AND Level 15 POS Illustration: f = (a + b) ⋅ (c + d ) Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Using a Truth Table to Find Boolean Expressions • • • In digital circuit design, inputs and outputs are normally defined.* Since computer circuits use only binary numbers, input values will always be only 0 and 1, and the output will always be 0 and 1. The engineer designs the “stuff in the middle” between input and output by: – – – Making a truth table to represent the input/output relationship. Defining a Boolean expression in SOP or POS form that satisfies the truth table. Constructing a circuit that represents the “stuff in the middle” that performs the Boolean function on the inputs to get the desired output. Establish inputs and outputs Construct Truth Table Define Boolean expression in SOP or POS form Design digital circuit based on Boolean expression * Once again, we get this output-versus-input information from a product or performance specification, or a “spec.” 16 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Examples: Sum-of-Products Form • • • • • 17 Assume that we have a specification that gives the outputs of function f for the 8 possible combinations of inputs x, y, z. We can then build the truth table shown. Note that the output is “true” (=1) for only two combinations of the inputs. If we make the Boolean expression SOP, the first level (which has the most terms) will have only two AND terms.* We then define the two AND functions that result in 1’s being output from the function f for each x, y, z combination. Note that the two AND functions are unique. x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 f(x, y, z) 0 0 0 1 0 1 0 0 AND’s x⋅ y⋅ z x⋅ y⋅ z For the x, y, z combination (0,1,1), f will only be 1 for f = x ⋅ y ⋅ z . For the x, y, z combination (1,0,1), f will be one for f = x ⋅ y ⋅ z (only). *Note that AND produces a single, unique output of 1 for only one combination of its inputs! Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 Erik Jonsson School of Engineering and Computer Science The University of Texas at Dallas Sum-of-Products Boolean Form (2) • Now we wish to complete the SOP Boolean expression for the function which will result in 1’s for the two cases shown. • We know that in SOP form the second level of Boolean operator will be an OR. • Thus we define f as: x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 f(x, y, z) 0 0 0 1 0 1 0 0 AND’s x⋅ y⋅ z x⋅ y⋅ z f = ( x ⋅ y ⋅ z) + ( x ⋅ y ⋅ z) For f = ( x ⋅ y ⋅ z ) + ( x ⋅ y ⋅ z ) , note • The Boolean expression is fully that f = 1 only for the two cases in the truth table. Try other combinations defined. of x, y, and z to prove this to yourself. 18 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Boolean Notation; Minterms and Maxterms • In SOP notation, which contain AND terms OR’ed together, the AND and the parentheses are often omitted for simplicity. • Thus, the SOP expression f = ( a ⋅ b ⋅ c ) + ( a ⋅ c ⋅ d ) + ( a ⋅ b ⋅ d ) + ( b ⋅ c ⋅ d ) could also be written as: f = abc + acd + abd + bcd . • The AND symbols are implied in this representation and are still used when the expression might not be clear if they were left out. • Since SOP is more compact, it is sometimes called the minterm form, and the AND components minterms. Similarly, POS is often referred to as the maxterm form, and the OR’s maxterms, since POS terms are more unwieldy: f = ( a + b + c ) ⋅ ( a + c + d ) ⋅ ( b + c + d ) • Since this is a customary terminology, the names minterm and maxterm will be used occasionally in future lectures. 19 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Product-of-Sums Boolean Form • A POS representation will contain OR’s x y z f(x, y, z) a first level of OR’s. 0 0 0 1 • In the SOP example, we looked 0 0 1 1 for the 1 outputs in f. 0 1 0 0 x+ y+z • For POS, we look for outputs that 0 1 1 1 are 0.* 1 0 0 1 • Here, f is 0 only for two 1 0 1 1 combinations of x, y, and z. x+ y+z 1 1 0 0 • We represent these conditions in 1 1 1 1 OR form. • Each OR will produce a 0 only for A truth table example, with 0’s the exact OR expression shown. represented by Boolean OR terms. *OR produces a single, unique output of 0 for only one combination of its inputs, just as AND produces 20 a single unique output of 1 for only one combination of inputs. Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science POS Boolean Expressions (2) • We now complete the Boolean POS expression for the truth table shown. • Since in POS, the second level of logic will be an AND, we know that the two OR terms must be ANDed together: x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 f(x, y, z) 1 1 0 1 1 1 0 1 OR’s x+ y+z x+ y+z f = ( x + y + z ) ⋅ ( x + y + z ) For f = ( x + y + z ) ⋅ ( x + y + z ) , • The Boolean expression is now fully defined. 21 note that f=0 only for the two cases in the truth table. Again, try other combinations of x, y, and z to prove this to yourself. Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science SOP versus POS Representations (1) • Any Boolean expression can be a b f SOP POS represented in SOP or POS form. a+b 0 0 0 • Consider the truth table shown. • If we represent f in SOP form, 0 1 0 a+b we have = f ab + ab . 1 0 1 ab • If we represent f in POS form, 1 1 1 ab we have f = ( a + b ) ⋅ ( a + b ) . • Either representation is correct. In general, we pick the representation that is simplest. • The SOP form is used more frequently, simply because the notation is easier, but the POS form can have an advantage by making the Boolean function being represented much simpler to express. 22 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science SOP versus POS Representations (2) • In the example at OR’s AND’s x y z f(x, y, z) the right (seen x+ y+z 0 0 0 0 previously), note 0 0 1 0 x+ y+z how the SOP form 0 1 0 0 x+ y+z 0 1 1 1 of the Boolean xyz 1 0 0 0 x+ y+z expression is much 1 0 1 1 x yz simpler. x+ y+z 1 1 0 0 • We could also make 0 1 1 1 x+ y+z up a truth table so that the POS form POS: f = ( x + y + z ) ⋅ ( x + y + z ) ⋅ ( x + y + z ) was much simpler ⋅( x + y + z ) ⋅ ( x + y + z ) ⋅ ( x + y + z ) to use as the representation. SOP:= f xyz + x yz 23 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Exercise 2 • 24 Let’s try our hand at starting with a truth table and developing the Boolean expression: x y z f 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 1 AND 1 1 x y z f 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 SOP POS 1 Lecture #4: Boolean Algebra and Combinational Digital Logic OR 0 0 © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Finding the Truth Table, Given SOP Expression • We can also go the other way, Boolean expression → truth table. • Consider the SOP Boolean expression: f = xyz + xyz + x yz + xyz – The first term will be 1 when x, y, and z are 1, the second when x = y = 1, and z = 0, the third when x = z = 1, and y = 0, and the last when y = z = 1, and x = 0. • We insert the 1 outputs in the truth table at right. By default all the other values of f must be 0. 25 x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 f(x, y, z) AND’s 0 0 0 xyz 1 0 x yz 1 xyz 1 xyz 1 Why would we want to go from Boolean expression first to a truth table second? Maybe we experimented in the lab to come up with a Boolean circuit to solve a problem and now we need to try to simplify it. Simplify it? We’ll talk about that in a few slides. Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Step-by-Step Logic Circuit Design • We usually go truth table → circuit, however. Consider this truth table: • Output f will be 1 when x = 0, y = 1. – The Boolean expression for this term is xy . • Output f is also 1 when x = 1, y = 0. – The Boolean expression for this term is xy . • The circuit equivalents of these two AND terms are shown to the right. 26 x 0 0 1 1 y 0 1 0 1 f(x, y,) SOP Terms 0 1 xy 1 xy 0 x y xy x y xy Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 Erik Jonsson School of Engineering and Computer Science The University of Texas at Dallas Step-by-Step Logic Circuit Design (2) • We now add the OR level to our SOP representation to get the circuit which will produce the correct output for all possible input combinations of the two variables x and y. • The resulting Boolean expressions is: x f y = f xy + x y 27 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Another Boolean Function • Suppose a specification has given us the following truth table: abc – a b c y a – 0 0 0 0 abc – 0 0 1 0 b – 0 1 0 0 abc – 0 1 1 1 – 1 0 0 1 c – 1 0 1 1 – 1 1 0 0 The circuit implementation – 1 1 1 0 is shown above. • Then y = abc + abc + abc . Note that this is also in SOP form. 28 Lecture #4: Boolean Algebra and Combinational Digital Logic y © N. B. Dodge 9/16 Erik Jonsson School of Engineering and Computer Science The University of Texas at Dallas Exercise 3: Specification → Circuit • Now let’s try a design going from “spec” to circuit. Below are 2 very simple “specs.” Use each set to create (1) a truth table, (2) a Boolean expression, and (3) the corresponding digital circuit. 1. A function f has inputs a and b. It’s output is true (or 1) only when a is 1 and b is 0. 2. Function g has inputs x and y. Its output is 1 only when the inputs are opposite (i.e., 1-0 or 0-1). 29 a b f 0 0 0 1 1 0 1 1 x y g 0 0 0 1 1 0 1 1 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Looking for the Simplest Expression • Since Boolean expressions represent logical circuit functions that the engineer may want to build, it is always important to get the simplest Boolean circuit representation (simplest = cheapest). • Since we chose the SOP or POS form of Boolean expression to reduce the number of terms, one might think that the resulting circuit would be the simplest possible digital circuit. • Unfortunately, even a SOP or POS Boolean expression may NOT be in the simplest form! • However, it is possible to reduce a Boolean expression to its simplest form using the simple identities and relations that we discussed earlier (in a future lecture, we will study simplification of a circuit using a graphical technique called the Karnaugh Map). 30 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 Erik Jonsson School of Engineering and Computer Science The University of Texas at Dallas Boolean Theorems: Commutativity • Boolean relations follow simple rules. We discuss some of these rules or principles before developing more complex functions. The first is commutativity: – The Boolean functions AND and OR are commutative. That is: x · y = y · x, and x + y = y + x – Using logic circuits, we can illustrate this as: a b 31 b = a = a ·b a b = b a Lecture #4: Boolean Algebra and Combinational Digital Logic a+b © N. B. Dodge 9/16 Erik Jonsson School of Engineering and Computer Science The University of Texas at Dallas Distributivity • The AND and OR functions are both distributive: x·(y+z) = (x·y) + (x·z), and x + (y·z) = (x+y) · (x+z) • We can illustrate the AND version of this relation as: x y z x·(y+z) = x y (x·y)+(x·z) x z • The OR version can be illustrated similarly. If you don’t believe these assertions, make up the two AND truth tables and prove it to yourself! 32 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Other Fundamental Boolean Theorems • The following Boolean theorems are often useful: OR Form AND Form • x+0=x • x·1 = x 1 0 • x+x = • x⋅ x = • x+x=x • x·x=x • x+1=1 • x·0=0 • And, finally, we note that: • x=x 33 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science DeMorgan’s Laws • One other useful relationship in manipulating Boolean expressions is DeMorgan’s Law. There are OR and AND versions of the law. • The OR version of DeMorgan’s law states that the complement of (x OR y) is equal to x-complement AND y-complement, or: x + y = x⋅ y (This may also be stated as: x + y = x ⋅ y .) • Likewise, the AND version states that the complement of (x AND y) is equal to x-complement OR y-complement, or: x⋅ y = x + y (This may also be stated as: x ⋅ 34 y = x + y .) Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Simplifying a Boolean Expression • Consider the following Boolean expression:= f abc + abc . • Is this the simplest possible POS expression? Clearly, the expression is in proper SOP form. However, as stated earlier, even a proper SOP function may not be in the simplest form. • Since Boolean expressions are distributive ([ab+ac]=a[b+c]), we can express the above as: = f ab( c + c ) . • Now, from the Boolean identity list, we know that c + c = 1. Substituting, f = ab( c + c ) = ab ⋅ (1) = ab . • Clearly this second Boolean expression, which is equivalent, is much the simpler and therefore, easier and cheaper to build. 35 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science A More Complicated Example • Assume the following expression: = f ( (( abc + ab + bc ) ⋅ a + b ) ⋅ c ) + abc • This expression is certainly NOT in proper SOP or POS form. • However, we can input its values in the truth table at the right. Using the truth table, the equivalent SOP f abc + abc . expression is= • Using Boolean identity x + x = 1 , f = abc + abc = ( a + a ) ⋅ bc . 1 , then f = bc is the • Since ( a + a ) = a b c f 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 simplified SOP term. 36 Lecture #4: Boolean Algebra and Combinational Digital Logic AND abc abc © N. B. Dodge 9/16 Erik Jonsson School of Engineering and Computer Science The University of Texas at Dallas Implementation of Three Forms a b f c Original circuit a f b Proper SOP Form 37 b c f Simplified SOP Form c Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Exercise 4 • A Boolean expression f has two inputs, x and y. • The output is 1 when x and y are both 1 or when x = 0 and y = 1. • Construct a truth table. • Develop an SOP expression. • Simplify if possible. • Draw the circuit. 38 x 0 0 1 1 Lecture #4: Boolean Algebra and Combinational Digital Logic y 0 1 0 1 f © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Summary • Digital circuits are electronic implementations of Boolean expressions. • Computer circuits are all composed of logic gates such as we have discussed: AND, OR, NOT, NAND, NOR, etc. • Logic circuits whose outputs only depend on their inputs are called combinational logic. • Combinational logic with more than two levels of logic may always be simplified into sum of products (SOP) or product of sums (POS) form using a truth table. • An SOP (or POS) expression may not always be in the simplest possible form. We can use De Morgan’s Law or other Boolean identities to simplify an expression, if simplification is possible. • The actual electronic devices that make up logic circuits will not be discussed in EE 2310, but will be covered in future courses. 39 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16 The University of Texas at Dallas Erik Jonsson School of Engineering and Computer Science Design Problem • You have now seen how to go from a requirement to a truth table to a Boolean Expression to a circuit (and even how to simplify the circuit). • You now get to do a design. Do a first try by yourself. Then you may review and complete your design with your EE 2310 lab partner. • Here is the requirement (“spec”): A circuit has three input variables, x, y, and z. Its output is 1 for the conditions x, y, z = 0, x, y = 0; z = 1, and x = 0; y, z = 1. Do the following: – Make a truth table from the requirements. – Devise an SOP Boolean expression from the truth table. Simplify it using the relationships discussed today, but keep in SOP form. (Do not use a Karnaugh map!) – In EE 2310 Lab. 1, build your design (see Lab. 1 instructions). – Using all combinations of the 8 input variables, demonstrate with your partner to the lab TA that your real circuit obeys your truth table. 40 Lecture #4: Boolean Algebra and Combinational Digital Logic © N. B. Dodge 9/16
© Copyright 2025 Paperzz