390 likes | 440 Views
R. Johnsonbaugh Discrete Mathematics 5 th edition, 2001. Chapter 9 Boolean Algebras and Combinatorial Circuits. A bit is a 0 or a 1. Input x 1 , x 2 can be 0 or 1 ------------------------------------------- Conjunction: AND x 1 x 2 = 1 if x 1 = x 2 = 1
E N D
R. JohnsonbaughDiscrete Mathematics5th edition, 2001 Chapter 9 Boolean Algebras and Combinatorial Circuits
A bit is a 0 or a 1. Input x1, x2 can be 0 or 1 ------------------------------------------- Conjunction: AND x1 x2 = 1 if x1 = x2 = 1 0 otherwise Logical gates 9.1 Combinatorial circuits
Inclusive disjunction OR x1 v x2 = 1 if x1 = 1 or x2 = 1 0 otherwise
NOT ~ x = 1 if x = 0 0 if x = 1 Negation
A logic table of a combinatorial circuit is a table with all possible inputs and all its resulting outputs Logic Tables
A Boolean expression such as y = ~((x1^x2)vx3) is composed of literals like x1, x2, x3 and symbols like ^, v, ~, ) and ( We write y = y(x1, x2, x3) The value of a Boolean expression is the bit obtained when the literals are replaced by bits, e.g. y(0,1,0) = 1. Boolean expressions
The logic table corresponding to the Boolean expression y = ~((x1 ^ x2) v x3). Logic table
4. Identity laws av0 = a a^1 = a 5. Complement laws av(~a) = 1 a^(~a) = 0 For a, b, c {0, 1} 1. Associative laws av(bvc) = (avb)vc a^(b^c) = (a^b)^c 2. Commutative laws avb = bva a^b = b^a 3. Distributive laws a^(bvc) = (a^b) v (a^c) av(b^c) = (avb) ^ (avc) 9.2 Properties of Combinatorial Circuits
Boolean expressions Two Boolean expressions X = X(x1, x2,…,xn) and Y = Y(x1, x2,…, xn) are equal (write X = Y) if and only if X(a1,a2,…, an) = Y(a1, a2,…, an) for all ai{0, 1}, 1 < i < n. • Example: X(x1,x2, x3) = ~x1^(x2vx3) and Y(x1,x2, x3) = (~x1^x2) v (~x1^x3) are equal.
Equivalent combinatorial circuits • Two combinatorial circuits, each having inputs x1,…, xn and a single output for each set of inputs, are equivalent if, given the same inputs, the two circuits produce the same output. • Theorem 9.2.7: Let C and D be two combinatorial circuits with X and Y the Boolean expressions that represent C and D, respectively. C and D are equivalent if and only if X = Y,
Let A be a nonempty set containing distinct elements 0 and 1, endowed with two binary operations + and • and a unary operation ~ (complement) that satisfy properties 1 to 5. Then A is called a Boolean algebra. 1. Associative laws a + (b + c) = (a + b) + c a • (b • c) = (a • b) • c 2. Commutative laws a + b = b + a a • b = b • a 3. Distributive laws a • (b + c) = (a • b) + (a • c) a + (b • c) = (a + b) • (a + c) 4. Identity laws a + 0 = a a • 1 = a 5. Complement laws a + (~a) = 1 a • (~a) = 0 9.3 Boolean algebras
Example 1 of a Boolean algebra Example 1: Z2 = {0,1}, with the operations and defined by the tables below, is a Boolean algebra.
Let U be a universal set and S = P(U) = power set of U. For any elements X, Y S define X + Y = X Y X·Y = X Y ~X = U - X Let 0 = and 1 = U. Then properties 1-5 hold and S is a Boolean algebra. Example 2: Power set
Complement in a Boolean algebra • In a Boolean algebra A, given x A, an element x' such that x' + x = 1 and x' • x = 0 is called the complement of x. Theorem 9.3.4: The complement x' of each x in a Boolean algebra is unique. Specifically, if x + y = 1 and x • y = 0 then y = x'.
Equations in Boolean algebras come in pairs. For example, the identity laws x+0 = x and x•1 = x. These are called dual statements. The dual of a statement in Boolean algebras is obtained by making the following replacements: 0 replaced by 1, 1 replaced by 0, + replaced by •, • replaced by + Dual statements
A duality theorem The following is an important theorem about duality statements in a Boolean algebra: • Theorem 9.3.10: The dual of a theorem about Boolean algebras is also a theorem.
9.4 Boolean functions and synthesis of circuits Let X(x1,…, xn) be a Boolean expression. • A Boolean function is a function of the form f(x1,…, xn) = X(x1,…, xn) • Its domain is (Z2)n = {(x1, x2,…, xn) |xi {0, 1}, 1 < i < n} and its range is Z2 = {0, 1} X : (Z2)n Z2
Exclusive OR, in symbol The binary operation can be expressed as a Boolean function x1 x2 = X(x1 ,x2), with domain = {(1,1),(1,0),(0,1),(0,0)} = (Z2)2; and range = Z2 = {0, 1}. Example of a Boolean function
Minterm A minterm in the symbols x1,…, xn is a Boolean expression of the form m = y1^y2^…^yn where each yk is either xk or its complement xk', 1 < k < n.
Disjunctive normal form Theorem 9.4.6: Let f: (Z2)n Z2 be a Boolean function not identically zero. • Let A1, A2,…, Ak denote the elements of (Z2)n such that f(Ai) = 1. • For each Ai = (a1,…, an) set mi = y1^…^ yn • where yj = xj (if aj = 1) OR ~xj (if aj = 0). • Then f(x1,…, xn) = m1v…v mk. • The disjunctive normal form of a Boolean function is a representation of f as a disjunction of mk's as in the theorem.
Let f(x1, x2) = (~x1)vx2. Its truth table is A1 = (1,1) A2 = (0,1) A3 = (0,0) Then m1 = x1^ x2 m2 = (~x1)^x2 m3 = (~x1)^(~x2) It can be verified that f(x1, x2) = m1 v m2 v m3 Use of disjunctive normal form
Definition of functionally complete set of gates: A gate is a function f : (Z2)n Z2 , for n > 1 A set of gates S = {g1, g2,…, gk} is said to be functionally complete if given any positive integer n and a function f : (Z2)n Z2 , it is possible to construct a combinatorial circuit that computes f using only the set of gates S. 9.5 Applications
NAND • The NAND gate x1x2 is equivalent to ~(x1^x2), and is defined by the table and the diagram
NAND circuits • Using NAND we can write • x' = xx • x v y = (xx)(yy)
Functionally complete sets of gates Theorem 9.4.6: The set of gates {AND, OR, NOT} is functionally complete. Theorem 9.5.5: The sets of gates S1 = {AND, NOT} and S2 = {OR, NOT} are functionally complete. Theorem 9.5.7: The set {NAND} is functionally complete.
Minimization problem The minimization problem consists of finding the circuit that represents a Boolean function with the minimal number of gates. • Example: The following circuit represents the Boolean function f(x,y,z) = xyz v xyz' v xy'z' = x(y v z')
Input: two bits x and y Two outputs: binary sum cs, where c is the carry bit and s is the sum bit. Half adder
Half adder circuit Two outputs: • s = (x v y)^[~(x^y)] = x y • c = x^y
Full adder Full adder table