b0010 Boolean Logic ENGR xD52 Eric VanWyk Fall 2012 Acknowledgements • Mark L. Chang lecture notes for Computer Architecture (Olin ENGR3410) • Patterson & Hennessy: Book & Lecture Notes • Patterson’s 1997 course notes (U.C. Berkeley CS 152, 1997) • Tom Fountain 2000 course notes (Stanford EE182) • Michael Wahl 2000 lecture notes (U. of Siegen CS 3339) • Ben Dugan 2001 lecture notes (UW-CSE 378) • Professor Scott Hauck lecture notes (UW EE 471) • Mark L. Chang lecture notes for Digital Logic (NWU B01) Today: • Review Feedback from last class • Review HW0 • Finish Boolean Logic Most Favoritest Processors • “whatever I have in my laptop” – Second was “what?” • • • • • • • • Apple A4 – ARM Cortex A8 w/ PowerVR GPU ARM Snapdragon / Tegra Atmega / AVR AEMB GPU The Babbage Engine(s) Microsoft Word/Food Processor I want to learn: • • • • • • • • • • • • • Why NAND/NOR is ‘universal’ How math happens How memory is organized, stored, accessed Assembly / How C becomes Assembly Data busses, setup / hold times, clocking How GPUs process triangles History of Comp Arch What up with Raspberry Pi? Verilog / FPGAs Multi-threading Peripherals Fix the K’nex’ulator Build a computer in Minecraft Basic Logic Gates Basic Logic Gates AND NAND OR NOR XOR (exclusive or) XNOR NOT Boolean Equations • AND: AB • OR: A+B • NOT: A̅ A&B ~A Basic Boolean Identities: • X+0= X*1= • X+1= X*0= • X+X= X*X= • X + X̅ = X * X̅ = • X̅ = 9 Basic Laws • Commutative Law: X+Y=Y+X XY = YX • Associative Law: X+(Y+Z) = (X+Y)+Z X(YZ)=(XY)Z • Distributive Law: X(Y+Z) = XY + XZ X+YZ = (X+Y)(X+Z) 10 Advanced Laws 11 Karnaugh Map Review • Moving one square changes only one input. • Cover all 1s with boxes. • Boxes must be power of 2 sized. • Create Sum of Products • Boxes can “wrap around” the edges of the map. – Toroidal mapping Karnaugh Map Review AB A̅ B A̅ B̅ AB̅ CD ABCD A̅ BCD A̅ B̅CD AB̅ CD C̅D ABC̅D A̅ BC̅D A̅ B̅CD ̅ AB̅ CD ̅ C̅D̅ ABC̅D̅ A̅ BC̅D̅ A̅ B̅CD ̅ ̅ AB̅ CD ̅ ̅ CD̅ ABCD̅ A̅ BCD̅ A̅ B̅CD̅ AB̅ CD̅ Karnaugh Map Review AB A̅ B A̅ B̅ AB̅ CD ABCD A̅ BCD A̅ B̅CD AB̅ CD C̅D ABC̅D A̅ BC̅D A̅ B̅CD ̅ AB̅ CD ̅ C̅D̅ ABC̅D̅ A̅ BC̅D̅ A̅ B̅CD ̅ ̅ AB̅ CD ̅ ̅ CD̅ ABCD̅ A̅ BCD̅ A̅ B̅CD̅ AB̅ CD̅ Which “advanced” law allows us to combine boxes? Why Karnaugh? • “Mechanical” method guaranteed to get something that works. • Result is only two layers deep – Fast! Why not Karnaugh? • Confusing visually for more than 4 variables – But it still works if you squint • Optimizes for speed, not space. To the Boards! • F = (X+Y̅+XY̅)(XY+X̅ Z+YZ) • Evaluate Truth Table – Pro Tip: Build in Layers • Simplify with Karnaugh • Simplify with Boolean Law DeMorgan’s Law (X + Y) = X * Y (X * Y) = X + Y X 0 0 1 1 Y 0 1 0 1 X 1 1 0 0 Y 1 0 1 0 X 0 0 1 1 Y 0 1 0 1 X 1 1 0 0 Y 1 0 1 0 X +Y X•Y X•Y X +Y Example: Z=ABC + ABC + ABC + ABC Z = (A + B + C) * (A + B + C) * (A + B + C) * (A + B + C) 18 DeMorgan’s Law example 19 The Universal Gates • Karnaugh maps can frame any boolean equation in sum of products (OR of ANDs) • DeMorgan can frame any AND/OR in NAND/NORs • NAND and NOR can represent any combinatorial boolean equation. Boolean Equations to Circuit Diagrams 21