880 likes | 902 Views
EEL 3705 / 3705L Digital Logic Design. Fall 2006 Instructor: Dr. Michael Frank Lecture Module #5: Radix Number Systems & Arithmetic. Topics for Today (Fri. 1/19). Administrative announcements: Example of a design document handed out Textbook due date pushed back to next Tue.
E N D
EEL 3705 / 3705LDigital Logic Design Fall 2006Instructor: Dr. Michael Frank Lecture Module #5:Radix Number Systems & Arithmetic M. Frank, EEL3705 Digital Logic, Fall 2006
Topics for Today (Fri. 1/19) • Administrative announcements: • Example of a design document handed out • Textbook due date pushed back to next Tue. • Lab #2 pushed back a week – • Next week’s labs are to catch up & get started • Topic: Arbitrary-radix (base-b) number systems • Base-b number representations • Commonly used bases in digital logic: 2, 8, 16 • Arithmetic in base-b number systems • Conversion between different bases M. Frank, EEL3705 Digital Logic, Fall 2006
Logic Review / Preview Basic logic gates: NOT, OR, AND, XOR M. Frank, EEL3705 Digital Logic, Fall 2006
Why Bits (Binary Digits)? • As we’ll learn, computers represent all information using bits. • A bit means a binary (i.e., base 2) digit, 0 or 1. • This is done for several reasons: • Two states (digit values) is all that is really needed. • Any desired information can be represented using sequences of bits. • Encoding information using 2-state systems offers the best noise immunity for a given energy/information ratio. • Computers based on bits tend to be the most energy-efficient. • A bit conveniently can represent the truth value of any given proposition in Boolean logic. • That is, “true” (1) or “false” (0). • Bits can be simply and easily manipulated by simple hardware elements called “logic gates.” • These implementing the basic operators of Boolean logic. M. Frank, EEL3705 Digital Logic, Fall 2006
Boolean Logic: Review • For reasoning about whether propositions (statements) are true (T) or false (F). • The truth value of the proposition. • The important functional operators of Boolean logic include: • NOT(x) = {T iff x=F (otherwise F)} • AND(x,y) = {T iff both x=T and y=T} • OR(x,y) = {T iff either x=T or y=T, or both} • XOR(x,y) = {T iff either x=T or y=T, but not both} George Boole1815-1864 iff = “ifand only if” “exclusive OR” M. Frank, EEL3705 Digital Logic, Fall 2006
Boolean Logic Notations • You should be aware that any given expression of Boolean logic could be written in several styles: • Writing operators as functions: • XOR(OR(AND(a,b),NOT(c)),d) • Using operator names “infix” (between their operands): • ((a AND b) OR (NOT c)) XOR d • Using mathematical logic operator symbols: • [(a b) ¬c] d • Using C programming language operators: • ((a & b) | ~c) ^ d • Using Boolean algebra notation: Preferred in this course M. Frank, EEL3705 Digital Logic, Fall 2006
Logic Gate Icons • Inverter • Logical NOT,Boolean complement • AND gate • Boolean product • OR gate • Boolean sum • XOR gate • exclusive-OR, sum mod 2 x x x·y y x+y x y x xy y M. Frank, EEL3705 Digital Logic, Fall 2006
Multi-input AND, OR, XOR • Can extend these gates to arbitrarilymany inputs. • Two commonlyseen drawing styles: • Note that the second style keeps the gate icon relatively small. x1 x1x2x3 x2 x3 x1⋮ x5 x1…x5 M. Frank, EEL3705 Digital Logic, Fall 2006
NAND, NOR, XNOR • Just like the earlier icons,but with a small circle onthe gate’s output. • Denotes that the output is complemented. • Circles could also be placed on inputs. • Means, input is complementedbefore being used. x y x y x y M. Frank, EEL3705 Digital Logic, Fall 2006
CMOS NAND gate implementation • A NAND gate is particularly easyto implement in CMOS: • Simple 4-transistor circuit • A NOR gate is equally simple, • but slower, • due to series pFETs • If we wanted to, we could buildany computer using nothingbut NAND gates and wires! Vdd x y xy Vss = GND M. Frank, EEL3705 Digital Logic, Fall 2006
Topic #1 Base-b Number Systems(with emphasis on bases 2, 8, 16) M. Frank, EEL3705 Digital Logic, Fall 2006
1. Base-b Number Systems • List of subtopics: 1.1. Integers in base-b number systems 1.2. Arithmetic in alternative bases 1.3. Methods for converting between different bases 1.4. Fixed-width binary arithmetic and overflow 1.5. Signed number representations & overflow 1.6. Fixed-point representation of fractional numbers M. Frank, EEL3705 Digital Logic, Fall 2006
Base-b Number Systems • Our ordinary decimal (base ten) number system can be used to represent any number while using only ten different digits: • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 • But, there’s nothing special about the number ten! • We only use base ten because we have ten fingers! • Given any integer b > 1, we can describe an alternative base b (or radixb) number system, in which: • There are exactly b different digit symbols • The values of the digits are 0, 1, …, b1 • An arbitrary integer N > 0 can be written uniquely as a sequence of k digits like (dk1dk2…d2d1d0)b, • where 0 ≤ di < b and the first digit dk1 > 0. • This is called the base b expansion of N. • The value of N is given by the expression: M. Frank, EEL3705 Digital Logic, Fall 2006
Alternate Bases Most Widely Used in Computer Engineering • Base 2 (binary): • The only digit values are 0 and 1 • Used internally in all modern computers • Base 8 (octal): • Digits are 0, 1, 2, 3, 4, 5, 6, 7 • Each octal digit represents a sequence of 3 bits • Base 16 (hexadecimal or just “hex”): • Digits are 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F • Where A=ten, B=eleven, …, F=fifteen. • Each hex digit represents a sequence of 4 bits M. Frank, EEL3705 Digital Logic, Fall 2006
Four Representations of The First Sixteen Non-negative Integers M. Frank, EEL3705 Digital Logic, Fall 2006
Subtopic #1.2 Arithmetic in Alternative Bases M. Frank, EEL3705 Digital Logic, Fall 2006
Arithmetic in Alternative Bases • Procedures for doing arithmetic in any arbitrary base are essentially identical to those you already know for doing arithmetic in base ten… • Only the number of digit values is different! • This affects the basic addition/multiplication tables, but not much else… M. Frank, EEL3705 Digital Logic, Fall 2006
Binary Addition/Multiplication Tables Note that here, “+” means ordinary addition, not logical OR. Note: Read this digit sequence as “one-zero” or “one-zero base two” or “binary 2”Don’tcall this a “ten!” The English word ten refers to the number 1+1+1+1+1+1+1+1+1+1. In binary, that number is written 1010. M. Frank, EEL3705 Digital Logic, Fall 2006
Topics for Today (Mon. 9/11) • Administrivia: HW#1 is posted. • Topic #1: Base-b number systems (cont.) • Finish arithmetic in base-b number systems • Conversion between different bases • Fixed-width and signed arithmetic and overflows • And, time permitting: • Demonstration of the design & programming of a simple circuit to display the word “HI.” on the MAX 7000’s 7-segment LED display. M. Frank, EEL3705 Digital Logic, Fall 2006
Binary Addition Example • Here we will use the facts that 1+1 = 2 = 102 and 1+1+1 = 3 = 112. Check work in decimal: Carry bits 1 1 1 1 1 0 12 + 1 1 12 = 8 + 4 + 1 = 1310 = 4 + 2 + 1 = 710 1 0 1 0 02 = 1610 + 4 = 2010 = 1310 + 710 M. Frank, EEL3705 Digital Logic, Fall 2006
Binary Subtraction Example • Here we use the fact that 102 1 = 2 1 = 1. 1 0 0 1 1 1 0 12 − 1 1 12 13 7 1 1 02 6 M. Frank, EEL3705 Digital Logic, Fall 2006
Binary Multiplication Example • Very easy, since all rows are either ×0 or ×1: 1 1 0 1 × 1 0 1 13 5 1 1 0 1 Partial Products 0 0 0 0 + 1 1 0 1 1 0 0 0 0 0 1 65 M. Frank, EEL3705 Digital Logic, Fall 2006
Binary Division Example • Subtract the divisor at each position, if possible… 1 1 0 Quotient 1 0 1 1 0 1 Divisor Dividend − 1 0 1 0 − 1 0 0 1 Check:13/2 = 6 r 1 − 0 1 Remainder M. Frank, EEL3705 Digital Logic, Fall 2006
Octal Addition/Multiplication Tables M. Frank, EEL3705 Digital Logic, Fall 2006
Hexadecimal Addition Table M. Frank, EEL3705 Digital Logic, Fall 2006
Hexadecimal Multiplication Table • Exercise for the student: • Figure out and fill in the rest of this table! M. Frank, EEL3705 Digital Logic, Fall 2006
Hexadecimal Arithmetic Examples • Hex addition and multiplication: 1 3E42× D86 3E42+ D86 1758C 4 C B 8 1F210 + 3295A 349F08C M. Frank, EEL3705 Digital Logic, Fall 2006
Base Powers to Memorize • For base conversion and checking of results, as well as many other purposes, you should try to memorize the following: • Powers of 2 up to at least 216: • 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536 • Powers of 8 up to at least 85: • 1, 8, 64, 512, 4096, 32768 • Powers of 16 up to 168: • 1; 16; 256; 4,096; 65,536; 1,048,576; 16,777,216; 268,435,456; 4,294,967,296 One “K” (kibi) One “Meg” (mebi) Four “Gigs” (gibis) M. Frank, EEL3705 Digital Logic, Fall 2006
Subtopic #1.3 Base Conversion Methods M. Frank, EEL3705 Digital Logic, Fall 2006
Base Conversions • Some procedures for converting a number N from an old base b to a new base B: • Method 0: If one of the bases is a power of the other, can do direct substitution of (groups of) digits. • E.g., octal ↔ binary↔ hex conversions work like this • Otherwise: • Two methods for conversion using arithmetic in the new base B: • Method 1: Directly evaluate the polynomial expression for Nb. • Method 2: (Horner’s rule) Repeatedly multiply by b and add digits of N, reading from left to right. • Two methods for conversion using arithmetic in the old base b: • Method 3: Repeatedly divide N by B, the remainders are the new digits, reading from right to left. • Method 4: Repeatedly divide N by the largest power of B less than N; the quotients are the new digits, reading from left to right. Naturalif new baseis 10 Naturalif old baseis 10 M. Frank, EEL3705 Digital Logic, Fall 2006
Example of Method 0 • Convert 3F616 to octal. • We’ll first convert to binary, then binaryoctal. • Hex to binary groups of 4 bits: • 3 00112, F 11112, 6 01102. • The complete binary representation is: • 11111101102 • Binary groups of 3 bits to octal: • 1 1, 111 7, 110 6, 110 6 • The complete octal representation is: • 17668 M. Frank, EEL3705 Digital Logic, Fall 2006
Examples of Method 1 • Convert 1011010112 to base 10. • 1011010112 = (taking the sum from right to left) = 1×20 + 1×21 + 0×22 + 1×23 + 0×24 + 1×25 + 1×26 + 0×27 + 1×28 = 1·1 + 1·2 + 0·4 + 1·8 + 0·16 + 1·32 + 1·64 + 0·128 + 1·256 = 1 + 2 + 8 + 32 + 64 + 256 = 36310. • Convert 3D9616 to base 10. • 3D9616 = 3×163 + 13×162 + 9×161 + 6×160 = 3×4,096 + 13×256 + 9×16 + 6×1 = 12,288 + 3,328 + 144 + 6 = 15,76610 M. Frank, EEL3705 Digital Logic, Fall 2006
Examples of Method 2 • Convert 1011010112 to base 10. • 1×2 + 0 = 2, ×2 + 1 = 5, ×2 + 1 = 11,×2 + 0 = 22, ×2 + 1 = 45, ×2 + 0 = 90,×2 + 1 = 181, ×2 + 1 = 36310. • Convert 3D9616 to base 10. • 3×16 = 48; +13 = 61;×16 = 976; +9 = 985;×16 = 15,760; +6 = 15,76610. M. Frank, EEL3705 Digital Logic, Fall 2006
Example of Method 3 (Dec. Binary) • Convert 36310 to binary. • 363 ÷ 2 = 181 r 1181 ÷ 2 = 90 r 190 ÷ 2 = 45 r 045 ÷ 2 = 22 r 122 ÷ 2 = 11 r 011 ÷ 2 = 5 r 15 ÷ 2 = 2 r 12 ÷ 2 = 1 r 01 ÷ 2 = 0 r 1. 1011010112 M. Frank, EEL3705 Digital Logic, Fall 2006
Method 3 Variation: Tower Drawing Style • Same algorithm,but withoutrewriting ofquotients: 1011010112 0 r 1 2 1 r 0 2 2 r 1 2 5 r 1 2 11 r 0 2 22 r 1 2 45 r 0 2 90 r 1 2 181 r 1 2 363 M. Frank, EEL3705 Digital Logic, Fall 2006
Example of Method 3 (Dec. Hex) • Convert 15,76610 to hexadecimal. • 15,766 ÷ 16 = 985 r 6;985 ÷ 16 = 61 r 9;61 ÷ 16 = 3 r 13;3 ÷ 16 = 0 r 3. 3D9616 M. Frank, EEL3705 Digital Logic, Fall 2006
Example of Method 4 (Dec. Binary) • Convert 36310 to binary. • 363 ÷ 256 = 1 r 107107 ÷ 128 = 0 r 107107 ÷ 64 = 1 r 4343 ÷ 32 = 1 r 1111 ÷ 16 = 0 r 1111 ÷ 8 = 1 r 33 ÷ 4 = 0 r 33 ÷ 2 = 1 r 11 ÷ 1 = 1 r 0 1011010112 M. Frank, EEL3705 Digital Logic, Fall 2006
Method 4 Variation • When converting from binary, the divides in method 4 can be replaced by simple subtraction of the powers of 2. Example: • Convert 36310 to binary. • 363 256 = 107 • 107 64 = 43 • 43 32 = 11 • 11 8 = 3 • 3 2 = 1 • 1 1 = 0 256 128 64 32 16 8 4 2 1 1 0 1 0 1 1 1 0 1 M. Frank, EEL3705 Digital Logic, Fall 2006
Example Where Neither Base is 10 or a Power of the Other • Convert 2103 ___5 using each of methods 1-4. • Method 1: • N = 2·32 + 1·31 + 0·30 = 2·145 + 1·3 + 0 • 2·145 = 2·105 + 2·4 = 205 + 135 = 335 • N = 335 + 3 = 305 + 115 = 415. • Method 2: • 2 · 3 = 115, + 1 = 125, · 3 = 305 + 115 = 415. • Method 3: • 2103 / 123 = 113 r 1, 113 / 123 = 0 r 113 415 • Method 4: • 2103 / 123 = 113 r 1, 1 / 1 = 1 r 0 415 Doing additionand multiplicationin base 5 1112 21012020121 Doing division in base 3 M. Frank, EEL3705 Digital Logic, Fall 2006
Another Way (Method 5) • When converting between two bases neither of which is base 10 or a power of the other, you might find the following strategy easier than using any of methods 1-4 directly: • First, convert from the old base to base 10 using either method 1 or 2 • Next, convert from base 10 to the new base using either method 3 or 4. M. Frank, EEL3705 Digital Logic, Fall 2006
Example of Method 5 • Convert 2103 ___5 using method 5. • First use method 1 to convert to base 10: • 2103 = 2·32 + 1·31 + 0·30 = 2·9 + 3 + 0 =18+3= 2110 • Next use method 4 to convert to base 5: • 2110 ÷ 5 = 4 r 1 415 M. Frank, EEL3705 Digital Logic, Fall 2006
Topics for Today (Fri. 9/15) • Administrivia: HW#1 is due Monday. • Topic #1: Base-b number systems (finish) • Fixed-width and signed arithmetic and overflows • Fixed-point and floating-point binary fractions • Topic #2, Miscellaneous Codes • BCD, ASCII, Parity codes, Gray codes, Hamming codes • And, time permitting: • Demonstration of the design & programming of a simple circuit to display the word “HI.” on the MAX 7000’s 7-segment LED display. M. Frank, EEL3705 Digital Logic, Fall 2006
Subtopic #1.4 Fixed-Width Binary Arithmetic and Overflow M. Frank, EEL3705 Digital Logic, Fall 2006
Fixed-Width Binary Arithmetic • In digital systems, usually there is only a fixed number n of bits of storage immediately available to represent a given arithmetic result. • What happens if the numeric value of the desired result doesn’t fit in the given number of bits? • The usual behavior of hardware is just to truncate the result, in other words to discard some of the extra bits, usually on the left… • This is equivalent to using “modulo 2n” arithmetic. • We should be aware of when this procedure will lead to a different numeric result than regular arithmetic. • In other words, we should know the overflow conditions. M. Frank, EEL3705 Digital Logic, Fall 2006
Modulo-m arithmetic • In modulo-m arithmetic, all numeric results are projected onto a value in the range [0,m). • Namely, the remainder when dividing by m. • Example: 4+3 = 7 ≡ 2 (mod 5) • Since 7/5 = 1 r 2. • We can visualize the ordinary number line as laid out along a spiral straddling lines representing the different possible mod-m values. ≡ 0(mod 5) 20 15 ≡ 1(mod 5) 10 ≡ 4(mod 5) 21 19 5 14 16 9 11 0 4 6 1 3 2 8 7 13 12 18 17 22 ≡ 2(mod 5) ≡ 3(mod 5) Visualization of number line in modulo-5 arithmetic M. Frank, EEL3705 Digital Logic, Fall 2006
Modulo 2n arithmetic • Fixed-width binary arithmetic with n bits is equivalent to modulo 2n arithmetic. • Discarding the leftmost bits projects us onto one of the arms of the spiral. • An “overflow” happens when we wrap around and leave the innermost arm of the spiral. • Crossing the dotted red line… • It’s like how your car odometer rolls over after 100,000 miles. 00 100 00 11 111 11 01 101 01 10 110 10 2-bit truncation spiral M. Frank, EEL3705 Digital Logic, Fall 2006
Number Wheel Diagrams • We can represent modulo arithmetic using a “number wheel” picture • Think of this as similar to a roulette wheel, or the face of a clock • As you wrap around past the overflow marker, you start repeating the same numbers over again. overflowmarker 0 1 7 000 111 001 6 2 110 010 011 101 3 5 100 4 M. Frank, EEL3705 Digital Logic, Fall 2006
Unsigned Overflow Example • Suppose we are doing fixed-width, unsigned binary arithmetic in three bits, and we add the numbers 5 and 3. What is the result, and is there an overflow? • Expressed in 3 bits, 5 = 1012, 3 = 0112. • Carry out the addition shown at right. • The result is 10002 = 8, which does not fit in 3 bits. • The leftmost 1 gets truncated away, leaving 000 as the result. • So yes, there is an overflow! • Addition causes an overflow whenever there is a carry out of the highest-order bit position. 1 1 1 101+ 0111000 M. Frank, EEL3705 Digital Logic, Fall 2006
Subtopic #1.5 Signed Number Representations,Signed Arithmetic, & Signed Overflow Conditions M. Frank, EEL3705 Digital Logic, Fall 2006
Signed Number Representations • In digital systems, we often need to represent signed (positive or negative) numbers. • On paper, a signed base-b number can of course be denoted by just writing down a + or sign in front of it. • But, how are signed numbers to be coded using bits? • There are many possible methods. We’ll discuss: • Sign-magnitude representations • Biased representations • One’s-complement representations • Two’s-complement representations • This is the one that is most commonly used today in digital systems, due to the simplicity of its implementation M. Frank, EEL3705 Digital Logic, Fall 2006