
Architecture Lecture A3: Boolean Circuits Lecture A1 –A2. ■ TOY machine. Lecture A3 – A4. ■ Digital circuits. Lecture A5. ■ Putting it all together. George Boole Claude Shannon (1815 – 1864) (1916 – present) 2 Digital Circuits Switches What is a digital system? Abstract switch. ! Digital: signals only assume discrete values (0, 1). ■ Electrical (transistor). ! Analog: signals vary continuously. ■ Electro-mechanical (relay). ■ Hydraulic (water valve). Hydraulic OR Gate Why digital systems? ! Accuracy and reliability. Basic abstraction. ■ On, off. ■ Switch that can turn something on or off. Digital circuits and you. ■ Computer microprocessors. ■ Antilock brakes. ■ VCR. ■ Cell phone. 3 4 Logical Gates Multiway AND Gates Logical gates. AND(x0, x1, x2, x3, x4, x5, x6, x7). ■ Fundamental building blocks. ■ 1 if all inputs are 1. ■ 0 otherwise. x x x x' xy x + y y y 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 NOT AND OR 5 6 Multiway OR Gates Boolean Algebra OR(x0, x1, x2, x3, x4, x5, x6, x7). History. ■ 1 if at least one input is 1. ■ Developed by Boole to solve mathematical logic problems (1847). ■ 0 otherwise. ■ Shannon first applied to digital circuits (1939). Basics. ■ Boolean variable: value is 0 or 1. ■ Boolean function: function whose inputs and outputs are 0, 1. Relationship to circuits. ■ Boolean variables: signals. ■ Boolean functions: circuits. 7 8 Truth Table Truth Table Truth table. Truth table. ■ Systematic method to describe Boolean function. ■ 16 Boolean functions of 2 variables. ■ One row for each possible input combination. – every 4-bit value represents one N ■ N inputs ⇒ 2 rows. Truth Table for All Boolean Functions of 2 Variables 0 0 x y ZERO AND ??? X ??? Y XOR OR AND Truth Table 0 0 0 0 0 0 0 0 0 0 0 x y AND 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 Truth Table for All Boolean Functions of 2 Variables 1 1 1 1 1 x y NOR EQ Y' ??? X' ??? NAND ONE 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 AND 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 9 10 Truth Table Universality of AND, OR, NOT Truth table. Any Boolean function can be expressed using AND, OR, NOT. ■ 16 Boolean functions of 2 variables. ■ "Universal." – every 4-bit value represents one ■ XOR(x,y) = xy' + x'y ■ 256 Boolean functions of 3 variables. – every 8-bit value represents one Expressing XOR Using AND, OR, NOT ■ 2^2^N Boolean functions of N variables! x y x' y' x'y xy' x'y + xy' XOR 0 0 1 1 0 0 0 0 Some Functions of 3 Variables 0 1 1 0 1 0 1 1 x y z AND OR MAJ ODD MUX 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 Exercise: {AND, NOT}, {OR, NOT}, {NAND} are universal. 1 1 1 1 1 1 1 1 11 12 Sum-of-Products Translate Boolean Formula to Boolean Circuit Any Boolean function can be expressed using AND, OR, NOT. Use sum-of-products form. ■ Sum-of-products is systematic procedure. ■ XOR(x, y) = xy' + x'y. – form AND term for each 1 in Boolean function – OR terms together Expressing MAJ Using Sum-of-Products x y z MAJ x'yz xy'z xyz' xyz x'yz + xy'z + xyz' + xyz 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 13 14 Translate Boolean Formula to Boolean Circuit Simplification Using Boolean Algebra Use sum-of-products form. Many possible circuits for each Boolean function. ■ MAJ(x, y, z) = x'yz + xy'z + xyz' + xyz. ■ Sum-of-products not optimal. ! number of gates ! depth of circuit ■ MAJ(x, y, z) = x'yz + xy'z + xyz' + xyz = xy + yz + xz. size = 8, depth = 4 size = 4, depth = 3 15 16 Recipe for Making Combinational Circuit ODD Parity Circuit Ingredients. ODD(x, y, z). ■ AND White Chocolate Mousse ■ 1 if odd number of inputs are 1. ■ OR Cake, Balducci's ■ 0 otherwise. ■ NOT ■ wire Expressing ODD Using Sum-of-Products x y z ODD x'y'z x'yz' xy'z' xyz x'y'z + x'yz' + xy'z' + xyz 0 0 0 0 0 0 0 0 0 Instructions. 0 0 1 1 1 0 0 0 1 ■ Step 1: represent input and output signals with Boolean variables. 0 1 0 1 0 1 0 0 1 ■ Step 2: construct truth table to carry out computation. 0 1 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 ■ Step 3: derive (simplified) Boolean expression using sum-of products. 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 ■ Step 4: transform Boolean expression into circuit. 1 1 1 1 0 0 0 1 1 17 18 ODD Parity Circuit Let's Make an Adder Circuit ODD(x, y, z). Goal: x + y = z. ■ 1 if odd number of inputs are 1. ■ We build 4-bit adder: 8 inputs, 4 outputs. ■ 0 otherwise. (Same idea scales to 64-bit adder.) 1 1 1 2 4 8 7 Step 1. + 3 5 7 9 ■ Represent input and output in binary. 6 1 6 6 1 1 0 c3 c2 c1 0 0 1 0 x3 x2 x1 x0 + 0 1 1 1 + y3 y2 y1 y0 1 0 0 1 z3 z2 z1 z0 19 20 Let's Make an Adder Circuit Let's Make an Adder Circuit Goal: x + y = z. Goal: x + y = z. c3 c2 c1 c0 = 0 Step 2. x3 x2 x1 x0 Step 2. x3 x2 x1 x0 ■ Build truth table. + y3 y2 y1 y0 ■ Build truth table for carry bit. + y3 y2 y1 y0 z3 z2 z1 z0 ■ Build truth table for summand bit. z3 z2 z1 z0 Adder Truth Table Carry Bit Summand Bit x0 x1 x2 x3 y0 y1 y2 y3 z0 z1 z2 z3 xi yi ci ci+1 xi yi ci zi 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 28 = 256 rows! 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 1 1 0 1 0 . 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 21 22 Let's Make an Adder Circuit Let's Make an Adder Circuit Goal: x + y = z. Goal: x + y = z. c3 c2 c1 c0 = 0 Step 3. x3 x2 x1 x0 Step 4. ■ Derive (simplified) Boolean expression. + y3 y2 y1 y0 ■ Transform Boolean expression into circuit. z3 z2 z1 z0 Carry Bit Summand Bit xi yi ci ci+1 MAJ xi yi ci zi ODD 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 23 24 Let's Make an Adder Circuit Goal: x + y = z. Lecture A1: Extra Slides Step 4. ■ Transform Boolean expression into circuit. 25 Two Important Combinational Circuits Multiplexer Multiplexer. N-bit multiplexer. N ■ Selects an addressed input line. ■ N address inputs, 2 data inputs. ■ 1 output. Decoder. ■ Copies one data input to output. ■ Converts from binary to unary. ■ Which one? ! The one specified by the address inputs. Translates directly to circuit without sum-of-products. Ex. Useful to implement key computer components. ■ 2-bit multiplexer. s1 s0 x3 x2 x1 x0 ■ Address inputs: s0, s1. 1 1 1 0 0 1 ■ Data inputs: x0, x1, x2, x3. 11 = 3 ■ Output: Q. 2 10 Q 1 28 29 2-Bit Multiplexer Circuit Decoder MUX(x0, x1, x2, x3, s0, s1).
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages8 Page
-
File Size-