Créer une présentation
Télécharger la présentation

Télécharger la présentation
## IKI10201 03a-Boolean Algebra

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**IKI1020103a-Boolean Algebra**Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC, which is derived from Howard Huang’s work and developed by Jeff Carlyle.**Road Map**Logic Gates &Flip-flops 3 Boolean Algebra 3 6 Finite-StateMachines 6 4 Logic DesignTechniques Sequential DesignTechniques CombinatorialComponents StorageComponents 2 Binary Systems& Data Represent. 7 5 8 Register-TransferDesign 8 Generalized FSM ProcessorComponents 9**Boolean values**• Earlier, we used electrical voltages to representtwo discrete values 1 and 0, from which binary numberscan be formed. • It’s also possible to think of voltages as representingtwo logical values, true and false. • For simplicity, we often still write digits instead: • 1 (high) is true • 0 (low) is false • We will use these values 1 and 0 as the elements of our Boolean System.**Basic boolean operations**• There are two basic operations for logical values. AND (product) of two inputs OR (sum) of two inputs Operation: Expression: xy, or xy x + y Truth table:**Axiomatic definition of Boolean Algebra**• A Boolean algebra requires • A set of elements B, consisting of two elements (0 and 1) • Two binary operations OR and AND • The axioms below must always be true • Based on axiom #5, we can develop a unary (one-argument) operation NOT**Basic theorems of Boolean Algebra**• In addition to the axioms, additional laws can be derived; they are called theorems of Boolean Algebra • These theorems are useful in performing algebraic manipulations of Boolean expressions**Proofing the theorems using axioms**• Idempotency: x + x = x Proof: x + x = (x + x) 1 by identity = (x + x) (x + x’) by complement = x + x x’ by distributivity = x + 0 by complement = x by identity • Idempotency: x x = x Proof: x x = (x x) + 0 by identity = (x x) + (x x’) by complement = x (x + x’) by distributivity = x 1 by complement = x by identity**Duality principle**• The left and right columns of axioms are duals • exchange all ANDs with ORs, and 0s with 1s • So are the theorems:**An expression is**finite but not unique A function table is unique but infinite f(x,y) = 2x + y = x + x + y = 2(x + y/2) = ... Boolean Functions • Computers take inputs and produce outputs, just like functions in math! • Mathematical functions can be expressed in two ways: • We can represent logical functions in two analogous ways too: • A finite, but non-unique Boolean expression. • A truth table, which will turn out to be unique and finite.**Boolean expressions**• We can use these basic operations to form more complex expressions: f(x,y,z) = (x + y’)z + x’ • Some terminology and notation: • f is the name of the function. • (x,y,z) are the input variables, each representing 1 or 0. Listing the inputs is optional, but sometimes helpful. • A literal is any occurrence of an input variable or its complement. The function above has four literals: x, y’, z, and x’. • Precedence is important, but not too difficult. • NOT has the highest precedence, followed by AND, and then OR. • Fully parenthesized, the function above would be kind of messy: f(x,y,z) = (((x +(y’))z) + x’)**f(x,y,z) = (x + y’)z + x’**f(0,0,0) = (0 + 1)0 + 1 = 1 f(0,0,1) = (0 + 1)1 + 1 = 1 f(0,1,0) = (0 + 0)0 + 1 = 1 f(0,1,1) = (0 + 0)1 + 1 = 1 f(1,0,0) = (1 + 1)0 + 0 = 0 f(1,0,1) = (1 + 1)1 + 0 = 1 f(1,1,0) = (1 + 0)0 + 0 = 0 f(1,1,1) = (1 + 0)1 + 0 = 1 Truth tables • A truth table shows all possible inputs and outputs of a function. • Remember that each input variable represents either 1 or 0. • Because there are only a finite number of values (1 and 0), truth tables themselves are finite. • A function with n variables has 2n possible combinations of inputs. • Inputs are listed in binary order—in this example, from 000 to 111.**Complement of a function**• The complement of a function always outputs 0 where the original function outputted 1, and 1 where the original produced 0. • In a truth table, we can just exchange 0s and 1s in the output column(s) f(x,y,z) = x(y’z’ + yz)**Complementing a function algebraically**• You can use DeMorgan’s law to keep “pushing” the complements inwards • You can also take the dual of the function, and then complement each literal • If f(x,y,z) = x(y’z’ + yz)… • …the dual of f is x + (y’ + z’)(y + z)… • …then complementing each literal gives x’ + (y + z)(y’ + z’)… • …so f’(x,y,z) = x’ + (y + z)(y’ + z’) f(x,y,z) = x(y’z’ + yz) f’(x,y,z) = ( x(y’z’ + yz) )’ [ complement both sides ] = x’ + (y’z’ + yz)’ [ because (xy)’ = x’ + y’ ] = x’ + (y’z’)’ (yz)’ [ because (x + y)’ = x’ y’ ] = x’ + (y + z)(y’ + z’) [ because (xy)’ = x’ + y’, twice]**Algebraic manipulation**• We can now start doing some simplifications x’y’ + xyz + x’y = x’(y’ + y) + xyz [ Distributive; x’y’ + x’y = x’(y’ + y) ] = x’1 + xyz [ Axiom 5; y’ + y = 1 ] = x’ + xyz [ Axiom 2; x’1 = x’ ] = (x’ + x)(x’ + yz) [ Distributive ] = 1 (x’ + yz) [ Axiom 5; x’ + x = 1 ] = x’ + yz [ Axiom 2 ; x’1 = x’]**Canonical Forms**• Any boolean function that is expressed as a sum of minterms or as a product of maxterms is said to be in its canonical form.**Minterms**• A minterm is a special product of literals, in which each input variable appears exactly once. • A function with n variables has 2n minterms (since each variable can appear complemented or not) • A three-variable function, such as f(x,y,z), has 23 = 8 minterms: • Each minterm is true for exactly one combination of inputs: x’y’z’ x’y’z x’yz’ x’yz xy’z’ xy’z xyz’ xyz Minterm Is true when… Shorthand x’y’z’ x=0, y=0, z=0 m0 x’y’z x=0, y=0, z=1 m1 x’yz’ x=0, y=1, z=0 m2 x’yz x=0, y=1, z=1 m3 xy’z’ x=1, y=0, z=0 m4 xy’z x=1, y=0, z=1 m5 xyz’ x=1, y=1, z=0 m6 xyz x=1, y=1, z=1 m7**Sum of minterms form**• Every function can be written as a sum of minterms, which is a special kind of sum of products form • The sum of minterms form for any function is unique • If you have a truth table for a function, you can write a sum of minterms expression just by picking out the rows of the table where the function output is 1 (1-minterm). f = x’y’z’ + x’y’z + x’yz’ + x’yz + xyz’ = m0 + m1 + m2 + m3 + m6 = (0,1,2,3,6) f’ = xy’z’ + xy’z + xyz = m4 + m5 + m7 = (4,5,7) f’ contains all the minterms not in f**Sum of minterms: practise**• F = x + yz, how to express this in the sum of minterms? = x(y + y’)(z + z’) + (x + x’)yz = xyz + xyz’ + xy’z + xy’z’ + xyz + x’yz = x’yz + xy’z’ + xy’z + xyz’ + xyz = (3,4,5,6,7) or, convert the expression into truth-table and then read the minterms from the table**Maxterms**• A maxterm is a sum of literals, in which each input variable appears exactly once. • A function with n variables has 2n maxterms • The maxterms for a three-variable function f(x,y,z): • Each maxterm is false for exactly one combination of inputs: x’ + y’ + z’ x’ + y’ + z x’ + y + z’ x’+ y + z x + y’ + z’ x + y’ + z x + y + z’ x + y + z Maxterm Is false when… Shorthand x + y + z x=0, y=0, z=0 M0 x + y + z’ x=0, y=0, z=1 M1 x + y’ + z x=0, y=1, z=0 M2 x + y’ + z’ x=0, y=1, z=1 M3 x’ + y + z x=1, y=0, z=0 M4 x’ + y + z’ x=1, y=0, z=1 M5 x’ + y’ + z x=1, y=1, z=0 M6 x’ + y’ + z’ x=1, y=1, z=1 M7**Product of maxterms form**• Every function can be written as a uniqueproduct of maxterms • If you have a truth table for a function, you can write a product of maxterms expression by picking out the rows of the table where the function output is 0 (0-maxterm). f = (x’ + y + z)(x’ + y + z’)(x’ + y’ + z’) = M4 M5 M7 = ∏(4,5,7) f’ = (x + y + z)(x + y + z’)(x + y’ + z) (x + y’ + z’)(x’ + y’ + z) = M0 M1 M2 M3 M6 = ∏(0,1,2,3,6) f’ contains all the maxterms not in f**Product of maxterms: practise**• F = x’y’ + xz, how to express this in the product of maxterms? = (x’y’ + x)(x’y’ + z) = (x’ + x)(y’ + x)(x’ + z)(y’ + z) = (x + y’)(x’ + z)(y’ + z) = (x + y’ + zz’)(x’ + z + yy’)(xx’ + y’ + z) = (x + y’ + z)(x + y’ + z’)(x’ + y + z)(x’ + y’ + z)(x + y’ + z)(x’ + y’ + z) = (x + y’ + z)(x + y’ + z’)(x’ + y + z)(x’ + y’ + z) = ∏(2,3,4,6) or, convert the expression into truth-table and then read the minterms from the table**Minterms and maxterms are related**• Any minterm mi is the complement of the corresponding maxterm Mi • For example, m4’ = M4 because (xy’z’)’ = x’ + y + z Minterm Shorthand x’y’z’ m0 x’y’z m1 x’yz’ m2 x’yz m3 xy’z’ m4 xy’z m5 xyz’ m6 xyz m7 Maxterm Shorthand x + y + z M0 x + y + z’ M1 x + y’ + z M2 x + y’ + z’ M3 x’ + y + z M4 x’ + y + z’ M5 x’ + y’ + z M6 x’ + y’ + z’ M7**Converting between canonical forms**• We can convert a sum of minterms to a product of maxterms • In general, just replace the minterms with maxterms, using maxterm numbers that don’t appear in the sum of minterms: • The same thing works for converting from a product of maxterms to a sum of minterms From before f = (0,1,2,3,6) and f’ = (4,5,7) = m4 + m5 + m7 complementing (f’)’ = (m4 + m5 + m7)’ so f = m4’ m5’ m7’ [ DeMorgan’s law ] = M4 M5 M7 [ By the previous page ] = ∏(4,5,7) f = (0,1,2,3,6) = ∏(4,5,7)**Standard Forms**• Any boolean function that is expressed as a sum of products (SOP) or as a product of sums (POS), where each product-term or sum-term may require fewer than (n-1) operations, is said to be in its standard form. • Standard forms are not unique, there can be several different SOPs and POSs for a given function. • A SOP expression contains: • Only OR (sum) operations at the “outermost” level • Each term (implicant) must be a product of literals • A POS expression contains: • Only AND (product) operations at the “outermost” level • Each term (implicate) must be a sum of literals f(x,y,z) = xy + x’yz + xy’z f(x,y,z) = (x’ + y’)(x + y’ + z’)(x’ + y + z’)**Other Logic Operations**• We’ve already seen all the basic Boolean operations and the associated primitive logic gates. • There is a few additional gates that are often used in logic design. • They are all equivalent to some combination of primitive gates. • But they have some interesting properties in their own right. NAND (NOT-AND) NOR (NOT-OR) XOR (eXclusive OR) Operation: Expressions: (xy)’ = x’ + y’ (x + y)’ = x’ y’ x y = x’y + xy’ Truth table: