Logic Gates Informatics INFO I101 February 3, 2003 John C. Paolillo, Instructor
Items for Today Last week –Digitization –Graphic, audio and video data sizes This time –Digital logic, Boolean algebra, and circuits –Logic gates and truth tables
A Fundamental Unity Set Theory &Logic Union Intersection Complement Boolean Algebra OR AND NOT Electric Circuits Parallel Series Inversion Binary Arithmetic Addition Multiplication Twos Complement
Electric Circuits +offon off on offon off onoffon Parallel Series
Binary Arithmetic Means zero, carry 1 (two distinct outputs)
Boolean Algebra OR AND Exclusive OR Binary addition: ExOR (for one’s place) plus AND (for carry)
A Fundamental Unity Any logical or mathematical problem may be formulated in set theoretic terms Boolean logic may be used to represent any set- theoretic operation The fundamental elements of Boolean logic may be implemented in electric circuits Therefore, any logical or mathematical problem may be implemented in electrical circuits!
Logic Gates
What are Logic Gates? Logic gates are conventional arrangements of switches that are treated as units They abstract away from the details of individual switches –They may be implemented in any number of ways –Only their function is important
Symbols for Logic Gates AND ORXOR NotBuff
Functions of Logic Gates and or xor nand nor xnor A¬A ABuff 11 00
Boolean Logic Hints AND: if you know that one input is 0, it doesn’t matter what the other input is, the output will be 0 OR: if you know that one input is 1, it doesn’t matter what the other input is, the output will always be 1 XOR: if you know that the inputs are the same, then the output will always be 0
Some Example Circuits
XOR E A0101A0101 B0011B0011 C0111C0111 D1110D1110 E0110E0110 D A C B
De Morgan’s Law (1) E A0101A0101 B0011B0011 C1010C1010 D1100D1100 E0111E0111 A C B D
De Morgan’s Law (2) A0101A0101 B0011B0011 C1010C1010 D1100D1100 E0001E0001 E B D A C
Encoding Position in a 2-by-2 Board r1 r2 c1c2 row col black red
r1 r2 c1c2 col row Decoding Position to a 2-by-2 Board
4-line multiplexer d c b a C A0101A0101 B0011B0011 CabcdCabcd AB
4-line demultiplexer AB A0101A0101 B0011B0011 a IN 0 b 0 IN 0 c 0 IN 0 d 0 IN d c b a
Other Applications of Boolean Logic
Graphic Paint/Copy Modes COPYORXOR
Database Search Queries A keyword represents the set of documents containing it Boolean AND represents the intersection of the sets corresponding to two (or more) search terms Boolean OR represents the union of the sets corresponding to two (or more) search terms
Addition: Half Adder S A B xor and C The half adder sends a carry, but can’t accept one +
Addition: Truth Tables CI 0 1 A A B B SCO S S
Addition: Full Adder A B S CO CI
More Digits Full Adder ci co s abab a0 s0 b0 Full Adder ci co s abab a1 s1 b1 Full Adder ci co s abab a2 s2 b2 Full Adder ci co s abab a3 s3 b3 Full adders can be cascaded
Subtraction Complement Representations
Subtraction – –0100 Subtraction is asymmetrical That makes it harder We have to borrow sometimes
Solution: “Easy Subtraction” 456 – – Subtraction is easy if you don’t have to borrow i.e. if all the digits of the minuend are greater than (or equal to) all those of the subtrahend This will always be true if the minuend is all 9’s: 999, or , or etc.
How can we use easy subtraction? Subtract the subtrahend from 999 (or whatever we need) (easy) Add the result to the minuend (easy enough) Add 1 (easy) Subtract 1000 (not too hard) Difference = Minuend – Subtrahend + 1 – 1000 This works for binary as well as decimal
Subtraction Example – ????????? – This is the same as inverting each bit – Regular addition Add one Now drop the highest bit (easy: it’s out of range)
Subtraction Procedure Invert each bit Regular addition Add one Now drop the highest bit (easy: it’s out of range) Each of these steps is a simple operation we can perform using our logic circuits Bitwise XOR Cascaded Adders Add carry bit Drop the highest bit (overflows)
Negative Numbers Invert each bit Add one These steps make the negative of a number in twos-complement notation Twos complements can be added to other numbers normally Positive numbers cannot use the highest bit (the sign bit) This is the normal representation of negative numbers in binary
Counting etc – – – – – – – – – –10 etc.
Representations The number representation you use (encoding) affects the way you need to do arithmetic (procedure) This is true of all codes: encoding (representation) affects procedure (algorithm) Good binary codes make use of properties of binary numbers and digital logic