Fundamentals of Computer Systems: Boolean Logic
Fundamentals of Computer Systems: Boolean Logic
Fall 2012
Boolean Logic
We will use the rst non-trivial Boolean Algebra: A = {0, 1}. This adds the law of excluded middle: if X = 0 then X = 1 and if X = 1 then X = 0.
X + (X Y)
X + (X Y) = (X + X) (X + Y)
X + (X Y) = (X + X) (X + Y) = 1 (X + Y)
X + (X Y) = (X + X) (X + Y) = 1 (X + Y) = X+Y
More properties
0+0 = 0 0+1 = 1 1+0 = 1 1+1 = 1 1+1++1 = 1 X+0 = X X+1 = 1 X+X = X X + XY = X X + XY = X + Y 00 = 0 01 = 0 10 = 0 11 = 1 111 = 1 X0 = 0 X1 = X XX = X X (X + Y) = X X (X + Y) = XY
More Examples
More Examples
XYZ + X(Y + Z) = XYZ + XY + XZ = X(YZ + Y + Z) = X(YZ + Y + YZ + Z) = X Y(Z + Z) + Y + Z = X(Y + Y + Z) = X(1 + Z) = X (X + Y + Z)(X + YZ) = XX + XYZ + YX + Y YZ + ZX + Z YZ = X + XYZ + XY + YZ + XZ = X + YZ
Sum-of-products form
Can always reduce a complex Boolean expression to a sum of product terms: XY + X X + Y(Z + XY) + Z = XY + X(X + YZ + YXY + Z) = XY + XX + XYZ + XYXY + X Z = XY + XYZ + X Z (can do better) = Y(X + XZ) + X Z = Y(X + Z) + X Z = YX Z + X Z = Y +XZ
Shannons MS Thesis
We shall limit our treatment to circuits containing only relay contacts and switches, and therefore at any given time the circuit between any two terminals must be either open (innite impedance) or closed (zero impedance).
Shannons MS Thesis
It is evident that with the above denitions the following postulates hold. 00=0 1+1=1 1+0=0+1=1 01=10=0 0+0=0 11=1 A closed circuit in parallel with a closed circuit is a closed circuit. An open circuit in series with an open circuit is an open circuit. An open circuit in series with a closed circuit in either order is an open circuit. A closed circuit in parallel with an open circuit in either order is an closed circuit. A closed circuit in series with a closed circuit is a closed circuit. An open circuit in parallel with an open circuit is an open circuit. At any give time either X = 0 or X = 1
Math x x xy xy
Engineer X X XY or X Y X+Y
Schematic
X
or
X
X Y
XY
X Y
X+Y
Denitions
Literal: a Boolean variable or its complement E.g., X X Y Y
Maxterm: A sum of literals with each variable once E.g., X + Y + Z X+Y +Z X+Y +Z
X Y = XY
Truth Tables
A truth table is a canonical representation of a Boolean function
X XY XY X + Y X + Y 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0
Each row has a unique minterm and maxterm The minterm is 1 for only its row maxterm is 0
The sum of the minterms where the function is 1: F = XY +XY The product of the maxterms where the function is 0: F = (X + Y)(X + Y)
Expressions to Schematics
F = XY +XY
X
Expressions to Schematics
F = XY +XY
X X
Expressions to Schematics
F = XY +XY
X X XY
Expressions to Schematics
F = XY +XY
X X XY
Y XY
Expressions to Schematics
F = XY +XY
X X XY XY +XY = F Y Y XY
Expressions to Schematics
F = X Y + X Y = (X + Y)(X + Y)
X X XY XY +XY = F Y Y XY
(X + Y)(X + Y) = F
The sum of the minterms where the function is 1: F = XY +XY +XY The product of the maxterms where the function is 0: F =X+Y
Expressions to Schematics 2
F = XY +XY +XY = X+Y
X
XY +XY +XY = F
X+Y =F
0 1
0 1
0 1
1 0
0 1
0 0 0
1 0 1
0 1
0 1 1
1 1 0
OR
NOR
XOR
XNOR
+ 0 1
0 0 1
1 1 1
+ 0 1
0 1 0
1 0 0
0 1
0 0 1
1 1 0
0 1
0 1 0
1 0 1
De Morgans Theorem
XY =X+Y
X+Y XY XY X+Y 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0
AB
= =
A+B
A+B
= =
AB
Bubble Pushing
A B F C D
Bubble Pushing
A B F C D
Apply De Morgans Theorem: Transform NAND into OR with inverted inputs Two bubbles on a wire cancel
Bubble Pushing
A B F C D
Apply De Morgans Theorem: Transform NAND into OR with inverted inputs Two bubbles on a wire cancel
PONG
PONG, Atari 1973 Built from TTL logic gates; no computer, no software Launched the video arcade game revolution
M 0 0 0 0 1 1 1 1
L 0 0 1 1 0 0 1 1
R 0 1 0 1 0 1 0 1
A X 0 0 X X 1 1 X
B X 1 1 X X 0 1 X
The ball moves either left or right. Part of the control circuit has three inputs: M (move), L (left), and R (right). It produces two outputs A and B. Here, X means I dont care what the output is; I never expect this input combination to occur.
M 0 0 0 0 1 1 1 1
L 0 0 1 1 0 0 1 1
R 0 1 0 1 0 1 0 1
A 0 0 0 0 0 1 1 0
B 0 1 1 0 0 0 1 0
E.g., assume all the Xs are 0s and use Minterms: A = MLR + MLR B = M LR + M LR + MLR 3 inv + 4 AND3 + 1 OR2 + 1 OR3
M 0 0 0 0 1 1 1 1
L 0 0 1 1 0 0 1 1
R 0 1 0 1 0 1 0 1
A 1 0 0 1 1 1 1 1
B 1 1 1 1 1 0 1 1
Assume all the Xs are 1s and use Maxterms: A = (M + L + R)(M + L + R) B=M+L+R 3 inv + 3 OR3 + 1 AND2
M 0 0 0 0 1 1 1 1
L 0 0 1 1 0 0 1 1
R 0 1 0 1 0 1 0 1
A 0 0 0 0 1 1 1 1
B 1 1 1 1 1 0 1 0
Choosing better values for the Xs and being much more clever: A=M B = MR 1 NAND2 (!)
Karnaugh Maps
Basic trick: put similar variable values near each other so simple functions are obvious M 0 0 0 0 1 1 1 1 L 0 0 1 1 0 0 1 1 R 0 1 0 1 0 1 0 1 A X 0 0 X X 1 1 X B X 1 1 X X 0 1 X The Ms are already arranged nicely
Karnaugh Maps
Basic trick: put similar variable values near each other so simple functions are obvious M 0 0 0 0 1 1 L 0 0 1 1 0 0 R 0 1 0 1 0 1 A X 0 0 X X 1 1 1 1 1 B X 1 1 X X 0 0 1 Lets rearrange the Ls by permuting two pairs of rows
1 X
1 X
Karnaugh Maps
Basic trick: put similar variable values near each other so simple functions are obvious M 0 0 0 0 1 1 L 0 0 1 1 0 0 R 0 1 0 1 0 1 A X 0 0 X X 1 B X 1 1 X X 0 1 1 Lets rearrange the Ls by permuting two pairs of rows
1 1
0 1
1 X
1 X
Karnaugh Maps
Basic trick: put similar variable values near each other so simple functions are obvious M 0 0 0 0 1 1 L 0 0 1 1 0 0 R 0 1 0 1 0 1 A X 0 0 X X 1 B X 1 1 X X 0 1 1 Lets rearrange the Ls by permuting two pairs of rows
1 1
0 1
1 X
1 X
Karnaugh Maps
Basic trick: put similar variable values near each other so simple functions are obvious M 0 0 0 0 1 1 L 0 0 1 1 0 0 R 0 1 0 1 0 1 A X 0 0 X X 1 B X 1 1 X 1 X 1 0 Lets rearrange the Ls by permuting two pairs of rows 1 1 0 1 1 X 1 X
Karnaugh Maps
Basic trick: put similar variable values near each other so simple functions are obvious M 0 0 0 0 L 0 0 1 1 R 0 1 0 1 A X 0 0 X B X 1 1 X 1 1 1 1 0 0 0 1 X 1 X 0 Lets rearrange the Ls by permuting two pairs of rows 1 1 0 1 1 X 1 X
Karnaugh Maps
Basic trick: put similar variable values near each other so simple functions are obvious M 0 0 0 0 L 0 0 1 1 R 0 1 0 1 A X 0 0 X 1 1 X 1 B X Lets rearrange the 1 Ls by permuting two 1 pairs of rows X 1 0 1 1 1 1 X X X 0
1 1
0 0
0 1
Karnaugh Maps
Basic trick: put similar variable values near each other so simple functions are obvious M 0 0 0 0 L 0 0 1 1 R A B X 1 1 X 1 X X 0 Lets rearrange the Ls by permuting two pairs of rows 1 X
1 1
0 X 1 0 0 0 1 X 1 1 0 1 1 1 0 0 X 0 1 1
Karnaugh Maps
Basic trick: put similar variable values near each other so simple functions are obvious M 0 0 0 0 1 1 1 1 L 0 0 1 1 1 1 0 0 R 0 1 0 1 0 1 0 1 A X 0 0 X 1 X X 1 B X 1 1 X 1 X X 0 Lets rearrange the Ls by permuting two pairs of rows
Karnaugh Maps
Basic trick: put similar variable values near each other so simple functions are obvious M 0 0 0 0 1 1 1 1 L 0 0 1 1 1 1 0 0 R 0 1 0 1 0 1 0 1 A X 0 0 X 1 X X 1 B X 1 1 X 1 X X 0 The Rs are really crazy; lets use the second dimension
Karnaugh Maps
Basic trick: put similar variable values near each other so simple functions are obvious M L R A X 0 0 X 1 X X 1 B X 1 1 X 1 X X 0 The Rs are really crazy; lets use the second dimension
0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 0 1
Karnaugh Maps
Basic trick: put similar variable values near each other so simple functions are obvious M L R A B The Rs are really crazy; lets use the second dimension
00 00 01 00 11 01 11 11 01 11 00 01
X 0 X1 0X 1 X 1X 1 X X 1 X0
Karnaugh Maps
Basic trick: put similar variable values near each other so simple functions are obvious M L R A B
00 00 01 00 11 01 11 11 01 11 00 01
X 0 X1 0X 1 X 1X 1 X X 1 X0 M MR
Z 1 0 X 1 0 1 X 1 1 1 0 X Y 1 1 X X
The Karnaugh Map Sum-of-Products Challenge Cover all the 1s and none of the 0s using as few literals (gate inputs) as possible. Few, large rectangles are good. Covering Xs is optional.
Z 1 0 X 1 0 1 X 1 1 1 0 X Y 1 1 X X
The minterm solution: cover each 1 with a single implicant. a = WXYZ+WXYZ+WXYZ+ WXYZ+WXYZ+WXYZ+ WXYZ+WXYZ 8 4 = 32 literals 4 inv + 8 AND4 + 1 OR8
Z 1 0 X 1 0 1 X 1 1 1 0 X Y 1 1 X X
Merging implicants helps Recall the distributive law: AB + AC = A(B + C) a = WXYZ+WY + WXZ+WXY 4 + 2 + 3 + 3 = 12 literals 4 inv + 1 AND4 + 2 AND3 + 1 AND2 + 1 OR4
Z 1 0 X 1 0 1 X 1 1 1 0 X Y 1 1 X X
Missed one: Remember this is actually a torus. a = XYZ+WY + WXZ+WXY 3 + 2 + 3 + 3 = 11 literals 4 inv + 3 AND3 + 1 AND2 + 1 OR4
Z 1 0 X 1 0 1 X 1 1 1 0 X Y 1 1 X X
Taking dont-cares into account, we can enlarge two implicants: a = XZ+WY + WXZ+WX 2 + 2 + 3 + 2 = 9 literals 3 inv + 1 AND3 + 3 AND2 + 1 OR4
Z 1 0 X 1 0 1 X 1 1 1 0 X Y 1 1 X X
Can also compute the complement of the function and invert the result. Covering the 0s instead of the 1s: a = WXYZ+XYZ+WY 4 + 3 + 2 = 9 literals 5 inv + 1 AND4 + 1 AND3 + 1 AND2 + 1 OR3
Z 1 0 X 1 0 1 X 1 1 1 0 X Y 1 1 X X
To display the score, PONG used a TTL chip with this solution in it:
(13) OUTPUT a
(12) OUTPUT b