From Switches to Transistors and Gates Prof. Sirer CS 316 Cornell University
Origins The most amazing and likely to be most long- lived invention of the 1800’s was…
Origins The most amazing and likely to be most long- lived invention of the 1800’s was… The steam engine? The lightning rod? The carbonated beverage?
Origins The most amazing and likely to be most long- lived invention of the 1800’s was… THE ELECTRIC SWITCH
A switch A switch is a simple device that can act as a conductor or isolator Can be used for amazing things…
Switches Either (OR) Both (AND) One can build basic devices, but operation requires mechanical force
Transistors What happens when switches are replaced with solid-state devices The most amazing invention of the 1900s Can be used for purposes other than switching (e.g. radios) Two types, PNP and NPN base collector emitter N PP collectoremitter -+ PNP base collector P NN emitter + - NPN
NPN Transistor Connect E to C when base = 1 P and N Transistors PNP Transistor Connect E to C when base = 0 E C E C B B Can be used to build primitives from which electronic machines can be constructed
Then and Now The first transistor, on a workbench at AT&T Bell Laboratories in 1947 An Intel Pentium has approximately 125 million transistors
Inverter in out + gnd InOut Function: NOT Called an inverter Symbol: Useful for taking the inverse of an input in out Truth table
NAND Gate a out + gnd b ABout Function: NAND Symbol: b a out
NOR Gate a out + gnd b ABout Function: NOR Symbol:
Building Functions NOT: AND: OR: NAND and NOR are universal, can implement any function using just NAND or just NOR gates useful for manufacturing Can specify functions by describing gates, truth tables or logic equations b a b a
Logic Equations AND out = ab OR out = a + b NOT out = a
Identities Identities are useful for manipulating logic equations For purposes of optimization & ease of implementation a + a = 1 a + 0 = a a + 1 = 1 aa = 0 a0 = 0 a1 = a a(b+c) = ab + ac (a + b) = a b (a b) = a + b a + a b = a + b
Logic Manipulation abca+ba+cLHSbcRHS Can manipulate logic equations algebraically Can also use a truth table to prove equivalence Example: (a+b)(a+c) = a + bc (a+b)(a+c) = aa + ab + ac + bc = a + a(b+c) + bc = a(1 + (b+c)) + bc = a + bc
Logic Minimization A common problem is how to implement a desired function most efficiently One can derive the equation from the truth table How does one find the most efficient equation? Manipulate algebraically until satisfied Use Karnaugh maps abcminterm 000abc for all outputs that are 1, take the corresponding minterm, OR the minterms to obtain the result in “sum of products” form
Karnaugh maps Encoding of the truth table where adjacent cells differ in only one bit about truth table for AND Corresponding Karnaugh map ab
Bigger Karnaugh Maps 3-input func a b c y ab c 4-input func a b c y ab cd d 11 10
Minimization with Karnaugh maps (1) abcout Sum of minterms yields abc + abc + abc + abc
Minimization with Karnaugh maps (2) abcout Sum of minterms yields abc + abc + abc + abc Karnaugh maps identify which inputs are (ir)relevant to the output c ab
Minimization with Karnaugh maps (2) abcout Sum of minterms yields abc + abc + abc + abc Karnaugh map minimization Cover all 1’s Group adjacent blocks of 2 n 1’s that yield a rectangular shape Encode the common features of the rectangle out = ab + ac c ab
Karnaugh Minimization Tricks (1) Minterms can overlap out = bc + ac + ab Minterms can span 2, 4, 8 or more cells out = c + ab c ab c ab
Karnaugh Minimization Tricks (2) The map wraps around out = bd ab cd ab cd 11 10
Karnaugh Minimization Tricks (3) “Don’t care” values can be interpreted individually in whatever way is convenient assume all x’s = 1 out = d assume middle x’s = 0 assume 4 th column x = 1 out = bd 100x 0xx0 0xx ab cd xxx 1xx ab cd 11 10
Multiplexors A multiplexor selects between multiple inputs out = a, if d = 0 out = b, if d = 1 Build truth table Build Karnaugh map Derive logic diagram a b d 0
Multiplexor Implementation abdout Build a truth table a b d 0
Multiplexor Implementation abdout Build the Karnaugh map a b d d ab
Multiplexor Implementation abdout Derive minimal logic equation out = ad + bd a b d d ab
Multiplexor Implementation abdout Draw the circuit out = ad + bd a b d d ab d out b a
Summary We can now implement any logic circuit Can do it efficiently, using Karnaugh maps to find the minimal terms required Can use either NAND or NOR gates to implement the logic circuit Can use P- and N-transistors to implement NAND or NOR gates