EECS 150 - Components and Design Techniques for Digital Systems Lec 15 – Addition, Subtraction, and Negative Numbers David Culler Electrical Engineering.

Slides:



Advertisements
Similar presentations
Modular Combinational Logic
Advertisements

L10 – Transistors Logic Math 1 Comp 411 – Spring /22/07 Arithmetic Circuits Didn’t I learn how to do addition in the second grade?
Comparator.
Datorteknik ArithmeticCircuits bild 1 Computer arithmetic Somet things you should know about digital arithmetic: Principles Architecture Design.
ELEC353 S. al Zahir UBC Sign-Magnitude Representation High order bit is sign: 0 = positive (or zero), 1 = negative Low order bits represent the magnitude:
Henry Hexmoor1 Chapter 5 Arithmetic Functions Arithmetic functions –Operate on binary vectors –Use the same subfunction in each bit position Can design.
ECE 331 – Digital System Design
Contemporary Logic Design Multi-Level Logic © R.H. Katz Transparency No Chapter # 3: Multi-Level Combinational Logic 3.3 and Time Response.
EECS Components and Design Techniques for Digital Systems Lec 17 – Addition, Subtraction, and Negative Numbers David Culler Electrical Engineering.
EECS Components and Design Techniques for Digital Systems Lec 18 – Arithmetic II (Multiplication) David Culler Electrical Engineering and Computer.
Assembly Language and Computer Architecture Using C++ and Java
ECE C03 Lecture 61 Lecture 6 Arithmetic Logic Circuits Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
Assembly Language and Computer Architecture Using C++ and Java
Chapter # 5: Arithmetic Circuits Contemporary Logic Design Randy H
Lecture 8 Arithmetic Logic Circuits
Design of Arithmetic Circuits – Adders, Subtractors, BCD adders
1 COMP541 Arithmetic Circuits Montek Singh Mar 20, 2007.
ECE 301 – Digital Electronics
1  1998 Morgan Kaufmann Publishers Chapter Four Arithmetic for Computers.
Spring 2002EECS150 - Lec10-cl1 Page 1 EECS150 - Digital Design Lecture 10 - Combinational Logic Circuits Part 1 Feburary 26, 2002 John Wawrzynek.
Chapter 5 Arithmetic Logic Functions. Page 2 This Chapter..  We will be looking at multi-valued arithmetic and logic functions  Bitwise AND, OR, EXOR,
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 4 – Arithmetic Functions Logic and Computer.
Basic Arithmetic (adding and subtracting)
Digital Arithmetic and Arithmetic Circuits
IKI a-Combinatorial Components Bobby Nazief Semester-I The materials on these slides are adopted from those in CS231’s Lecture Notes.
Chapter 4 – Arithmetic Functions and HDLs Logic and Computer Design Fundamentals.
Fall 2004EE 3563 Digital Systems Design EE 3563 Comparators  Comparators determine if two binary inputs are equal  Some will signal greater than/less.
Chapter # 5: Arithmetic Circuits
Chapter 6-1 ALU, Adder and Subtractor
Topic: Arithmetic Circuits Course: Digital Systems Slide no. 1 Chapter # 5: Arithmetic Circuits.
5-1 Programmable and Steering Logic Chapter # 5: Arithmetic Circuits.
Basic Arithmetic (adding and subtracting)
Csci 136 Computer Architecture II – Constructing An Arithmetic Logic Unit Xiuzhen Cheng
EECS Components and Design Techniques for Digital Systems Lec 16 – Arithmetic II (Multiplication) David Culler Electrical Engineering and Computer.
Computing Systems Designing a basic ALU.
درس مدارهای منطقی دانشگاه قم مدارهای منطقی محاسباتی تهیه شده توسط حسین امیرخانی مبتنی بر اسلایدهای درس مدارهای منطقی دانشگاه.
Spring C:160/55:132 Page 1 Lecture 19 - Computer Arithmetic March 30, 2004 Sukumar Ghosh.
1 Lecture 12 Time/space trade offs Adders. 2 Time vs. speed: Linear chain 8-input OR function with 2-input gates Gates: 7 Max delay: 7.
COMP541 Arithmetic Circuits
Combinational Circuits
08 ARTH Page 1 ECEn/CS 224 Number Representation and Binary Arithmetic.
Topics covered: Arithmetic CSE243: Introduction to Computer Architecture and Hardware/Software Interface.
Kavita Bala CS 3410, Spring 2014 Computer Science Cornell University.
COMP541 Arithmetic Circuits
1 Carry Lookahead Logic Carry Generate Gi = Ai Bi must generate carry when A = B = 1 Carry Propagate Pi = Ai xor Bi carry in will equal carry out here.
1 IKI20210 Pengantar Organisasi Komputer Kuliah No. 23: Aritmatika 18 Desember 2002 Bobby Nazief Johny Moningka
CPEN Digital System Design
Addition, Subtraction, Logic Operations and ALU Design
Addition and multiplication Arithmetic is the most basic thing you can do with a computer, but it’s not as easy as you might expect! These next few lectures.
1 Lecture 14 Binary Adders and Subtractors. 2 Overview °Addition and subtraction of binary data is fundamental Need to determine hardware implementation.
Lecture #23: Arithmetic Circuits-1 Arithmetic Circuits (Part I) Randy H. Katz University of California, Berkeley Fall 2005.
ECE DIGITAL LOGIC LECTURE 15: COMBINATIONAL CIRCUITS Assistant Prof. Fareena Saqib Florida Institute of Technology Fall 2015, 10/20/2015.
President UniversityErwin SitompulDigital Systems 7/1 Lecture 7 Digital Systems Dr.-Ing. Erwin Sitompul President University
ETE 204 – Digital Electronics Combinational Logic Design Single-bit and Multiple-bit Adder Circuits [Lecture: 9] Instructor: Sajib Roy Lecturer, ETE,ULAB.
Arithmetic Circuits I. 2 Iterative Combinational Circuits Like a hierachy, except functional blocks per bit.
Addition and multiplication1 Arithmetic is the most basic thing you can do with a computer, but it’s not as easy as you might expect! These next few lectures.
1 Arithmetic Building Blocks Today: Signed ArithmeticFirst Hour: Signed Arithmetic –Section 5.1 of Katz’s Textbook –In-class Activity #1 Second Hour: Adder.
Digital Systems Section 8 Multiplexers. Digital Systems Section 8 Multiplexers.
ECE 331 – Digital System Design
CSE Winter 2001 – Arithmetic Unit - 1
King Fahd University of Petroleum and Minerals
Arithmetic Circuits (Part I) Randy H
Combinational logic design case studies
Digital Systems Section 12 Binary Adders. Digital Systems Section 12 Binary Adders.
Overview Part 1 – Design Procedure Part 2 – Combinational Logic
COMS 361 Computer Organization
Instructor: Mozafar Bag-Mohammadi University of Ilam
Addition and multiplication
ECE 352 Digital System Fundamentals
Number Representation
Presentation transcript:

EECS Components and Design Techniques for Digital Systems Lec 15 – Addition, Subtraction, and Negative Numbers David Culler Electrical Engineering and Computer Sciences University of California, Berkeley

10/16/2007EECS150-Fa07 L15 addition Overview Recall basic positional notation Binary Addition Full Adder (Boolean Logic Revisited) Ripple Carry Carry-select adder Carry lookahead adder Binary Number Representation Sign & Magnitude, Ones Complement, Twos Complement

10/16/2007EECS150-Fa07 L15 addition Manipulating representations of numbers Example (from 2 nd grade) Sequence of decimal digits (radix 10) Position represents significance (most -> least) Carry into next position 3-to-2 conversion at each step Results may be one digit longer, but assumed you could “make room” for it

10/16/2007EECS150-Fa07 L15 addition Positional Notation Sequence of digits: D k-1 D k-2 …D 0 represents the value D k-1 B k-1 + D k-2 B k-2 + …+ D 0 B 0 where D i  { 0, …, B-1 } B is the “base” or “radix” of the number system Example: , Can convert from any radix to any other – = = 0D 16 –1CE8 16 = 1· · · ·16 0 = –436 8 = 4· · ·8 0 =

10/16/2007EECS150-Fa07 L15 addition Computer Number Systems We all take positional notation for granted –D k-1 D k-2 …D 0 represents D k-1 B k-1 + D k-2 B k-2 + …+ D 0 B 0 where B  { 0, …, B-1 } We all understand how to compare, add, subtract these numbers –Add each position, write down the position bit and possibly carry to the next position Computers represent finite number systems –Generally radix 2 How do they efficiently compare, add, sub? –How do we reduce it to networks of gates and FFs? Where does it break down? –Manipulation of finite representations doesn’t behave like same operation on conceptual numbers

10/16/2007EECS150-Fa07 L15 addition Unsigned Numbers - Addition Example: = 5 Unsigned binary addition Is just addition, base 2 Add the bits in each position and carry How do we build a combinational logic circuit to perform addition? => Start with a truth table and go from there

10/16/2007EECS150-Fa07 L15 addition Binary Addition: Half Adder Ai Bi Sum Carry Ai Bi Sum = Ai Bi + Ai Bi = Ai + Bi Ai Bi Carry = Ai Bi Half-adder Schematic But each bit position may have a carry in…

10/16/2007EECS150-Fa07 L15 addition Full-Adder (derivation) S = CI xor A xor B CO = B CI + A CI + A B = CI (A + B) + A B A B S Cin Co A B CI SCO A B CI A B CI S CO FA 3 unary inputs 2 binary outputs 0

10/16/2007EECS150-Fa07 L15 addition Full Adder A A B B CICO A B CI S A B Ci S Co Now we can connect them up to do multiple bits…

10/16/2007EECS150-Fa07 L15 addition Ripple Carry + A0B0 S0C1 + A3B3 S3 + A2B2 S2 + A1B1 S1C2C3 S4 ?

10/16/2007EECS150-Fa07 L15 addition Full Adder from Half Adders (little aside) Alternative Implementation: 5 Gates A B + CI (A xor B) = A B + B CI + A CI Standard Approach: 6 Gates A A A B B B CI S CO Half Adder A B Half Adder A + B CI A + B + CI SS CO CI (A + B) A B S CO

10/16/2007EECS150-Fa07 L15 addition Delay in the Ripple Carry Adder Critical delay: the propagation of carry from low to high order stages late arriving signal two gate delays to compute CO 4 stage adder final sum and carry

10/16/2007EECS150-Fa07 L15 addition Ripple Carry Timing Critical delay: the propagation of carry from low to high order stages worst case addition T0: Inputs to the adder are valid T2: Stage 0 carry out (C1) T4: Stage 1 carry out (C2) T6: Stage 2 carry out (C3) T8: Stage 3 carry out (C4) 2 delays to compute sum but last carry not ready until 6 delays later

10/16/2007EECS150-Fa07 L15 addition Recall: Virtex-E CLB CLB = 4 logic cells (LC) in two slices LC: 4-input function generator, carry logic, storage ele’t 80 x 120 CLB array on 2000E 16x1 synchronous RAM FF or latch

10/16/2007EECS150-Fa07 L15 addition Adders (cont.) Ripple Adder Ripple adder is inherently slow because, in general s7 must wait for c7 which must wait for c6 … T  n, Cost  n How do we make it faster, perhaps with more cost? Or use a MUX !!! Classic approach: Carry Look-Ahead

10/16/2007EECS150-Fa07 L15 addition Carry Select Adder T = T ripple_adder / 2 + T MUX COST = 1.5 * COST ripple_adder + (n+1) * COST MUX 0 1 c8 FA 0 a4a5a6a7b7b6b5b4 c0 a0b0 s0 a1a2a3b3b2b1 s1s2s3 FA 1 a4a5a6a7b7b6b5b s4s5s6s7

10/16/2007EECS150-Fa07 L15 addition Extended Carry Select Adder What is the optimal # of blocks and # of bits/block? –If # blocks too large delay dominated by total mux delay –If # blocks too small delay dominated by adder delay per block T  sqrt(N), Cost  2*ripple + muxes

10/16/2007EECS150-Fa07 L15 addition Carry Select Adder Performance Compare to ripple adder delay: T total = 2 sqrt(N) T FA – T FA, assuming T FA = T MUX For ripple adder T total = N T FA “cross-over” at N=3, Carry select faster for any value of N>3. Is sqrt(N) really the optimum? –From right to left increase size of each block to better match delays –Ex: 64-bit adder, use block sizes [ ] How about recursively defined carry select?

10/16/2007EECS150-Fa07 L15 addition Announcements Reading Katz 5.6 and Appendix A Mid III will just stay put in final slot – no more fussing with it. Project demo at Lab Lecture friday Don’t hedge on lab workload reporting –It matters to us and is NOT a negative in your grade Lab5 | CP1 | CP2 crunch –It should lighten –Don’t hesitate to get guidance on the specifics of your approach from the TAs. They are there to help. –Lab5 solution walk-thru Friday after lab lecture

10/16/2007EECS150-Fa07 L15 addition What really happens with the carries A B Cout S Cin 0 1 Cin ~Cin 10 Cin ~Cin Cin Carry action kill Propagate propagate generate Carry Generate Gi = Ai Bi must generate carry when A = B = 1 Carry Propagate Pi = Ai xor Bi carry in will equal carry out here Ai Bi Gi Ai Bi Pi All generates and propagates in parallel at first stage. No ripple.

10/16/2007EECS150-Fa07 L15 addition Carry Kill / Prop / Gen example FA 0 s0 c2c3c4c5c6c7 s7s GPPKPGPK

10/16/2007EECS150-Fa07 L15 addition Carry Look Ahead Logic Carry Generate Gi = Ai Bi must generate carry when A = B = 1 Carry Propagate Pi = Ai xor Bi carry in will equal carry out here Si = Ai xor Bi xor Ci = Pi xor Ci Ci+1 = Ai Bi + Ai Ci + Bi Ci = Ai Bi + Ci (Ai + Bi) = Ai Bi + Ci (Ai xor Bi) = Gi + Ci Pi Sum and Carry can be re-expressed in terms of generate/propagate: Gi Ci Pi Ci Pi Si Ci+1

10/16/2007EECS150-Fa07 L15 addition All Carries in Parallel Re-express the carry logic for each of the bits: C1 = G0 + P0 C0 C2 = G1 + P1 C1 = G1 + P1 G0 + P1 P0 C0 C3 = G2 + P2 C2 = G2 + P2 G1 + P2 P1 G0 + P2 P1 P0 C0 C4 = G3 + P3 C3 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 G0 + P3 P2 P1 P0 C0 Each of the carry equations can be implemented in a two-level logic network Variables are the adder inputs and carry in to stage 0!

10/16/2007EECS150-Fa07 L15 addition CLA Implementation Adder with Propagate and Generate Outputs Increasingly complex logic

10/16/2007EECS150-Fa07 L15 addition How do we extend this to larger adders? Faster carry propagation –4 bits at a time But still linear Can we get to log? Compute propagate and generate for each adder BLOCK A 3-0 B 3-0 S A 7-4 B 7-4 S A 11-8 B 11-8 S A B S 15-12

10/16/2007EECS150-Fa07 L15 addition Cascaded Carry Lookahead 4 bit adders with internal carry lookahead second level carry lookahead unit, extends lookahead to 16 bits One more level to 64 bits

10/16/2007EECS150-Fa07 L15 addition Trade-offs in combinational logic design Time vs. Space Trade-offs Doing things fast requires more logic and thus more space Example: carry lookahead logic Simple with lots of gates vs complex with fewer Arithmetic Logic Units Critical component of processor datapath Inner-most "loop" of most computer instructions

10/16/2007EECS150-Fa07 L15 addition So what about subtraction? Develop subtraction circuit using the same process –Truth table for each bit slice –Borrow in from slice of lesser significance –Borrow out to slice of greater significance –Very much like carry chain Homework exercise

10/16/2007EECS150-Fa07 L15 addition Finite representation? What happens when A + B > 2 N - 1 ? –Overflow –Detect? »Carry out What happens when A - B < 0 ? –Negative numbers? –Borrow out?

10/16/2007EECS150-Fa07 L15 addition Number Systems Desirable properties: –Efficient encoding (2 n bit patterns. How many numbers?) –Positive and negative »Closure (almost) under addition and subtraction Except when overflow »Representation of positive numbers same in most systems »Major differences are in how negative numbers are represented –Efficient operations »Comparison: =, »Addition, Subtraction »Detection of overflow –Algebraic properties? »Closure under negation? »A == B iff A – B == 0 Three Major schemes: –sign and magnitude –ones complement –twos complement –(excess notation) Which one did you learn in 2 nd grade?

10/16/2007EECS150-Fa07 L15 addition Sign and Magnitude High order bit is sign: 0 = positive (or zero), 1 = negative Remaining low order bits is the magnitude: 0 (000) thru 7 (111) Number range for n bits = +/- 2 n Representations for 0? Operations: =,, +, - ??? Example: N = = =

10/16/2007EECS150-Fa07 L15 addition Ones Complement N is positive number, then N is its negative 1's complement N = (2 n - 1) - N Example: 1's complement of 7 -7 in 1's comp. Bit manipulation: simply complement each of the bits > Algebraically …

10/16/2007EECS150-Fa07 L15 addition Ones Complement on the number wheel Subtraction implemented by addition & 1's complement Sign is easy to determine Closure under negation. If A can be represented, so can -A Still two representations of 0! If A = B then is A – B == 0 ? Addition is almost clockwise advance, like unsigned

10/16/2007EECS150-Fa07 L15 addition Twos Complement number wheel Easy to determine sign (0?) Only one representation for 0 Addition and subtraction just as in unsigned case Simple comparison: A < B iff A – B < 0 One more negative number than positive number - one number has no additive inverse

10/16/2007EECS150-Fa07 L15 addition Twos Complement (algebraically) N* = 2 n - N Example: Twos complement of 7 2 = = = repr. of -7 Example: Twos complement of = = = repr. of 7 4 sub Bit manipulation: Twos complement: take bitwise complement and add one > > 1001 (representation of -7) > > 0111 (representation of 7)

10/16/2007EECS150-Fa07 L15 addition How is addition performed in each number system? Operands may be positive or negative

10/16/2007EECS150-Fa07 L15 addition Sign Magnitude Addition (-3) result sign bit is the same as the operands' sign Operand have same sign: unsigned addition of magnitudes Operands have different signs: subtract smaller from larger and keep sign of the larger

10/16/2007EECS150-Fa07 L15 addition Ones complement addition (-3) End around carry Perform unsigned addition, then add in the end-around carry

10/16/2007EECS150-Fa07 L15 addition When carry occurs M – N where M > N -M - N

10/16/2007EECS150-Fa07 L15 addition Why does end-around carry work? End-around carry work is equivalent to subtracting 2 n and adding 1 M - N = M + N = M + ( N) = (M - N) n n (when M > N) -M + (-N) = M + N = (2 - M - 1) + (2 - N - 1) = 2 + [ (M + N)] - 1 n n nn M + N < 2 n-1 after end around carry: = (M + N) n this is the correct form for representing -(M + N) in 1's comp! N = (2 n - 1) - N Recall:

10/16/2007EECS150-Fa07 L15 addition Twos Complement Addition (-3) Simpler addition scheme makes twos complement the most common choice for integer number systems within digital systems Perform unsigned addition and Discard the carry out. Overflow?

10/16/2007EECS150-Fa07 L15 addition Twos Complement number wheel -M + -N where N + M ≤ 2n-1 -M + N when N > M

10/16/2007EECS150-Fa07 L15 addition 2s Comp: ignore the carry out -M + N when N > M: M* + N = (2 - M) + N = 2 + (N - M) n n Ignoring carry-out is just like subtracting 2 n -M + -N where N + M ≤ 2 n-1 -M + (-N) = M* + N* = (2 - M) + (2 - N) = 2 - (M + N) + 2 n n After ignoring the carry, this is just the right twos compl. representation for -(M + N)! nn

10/16/2007EECS150-Fa07 L15 addition 2s Complement Overflow Add two positive numbers to get a negative number or two negative numbers to get a positive number = -8! = +7! How can you tell an overflow occurred ?

10/16/2007EECS150-Fa07 L15 addition 2s comp. Overflow Detection Overflow No overflow Overflow occurs when carry in to sign does not equal carry out

10/16/2007EECS150-Fa07 L15 addition 2s Complement Adder/Subtractor A - B = A + (-B) = A + B + 1

10/16/2007EECS150-Fa07 L15 addition Summary Circuit design for unsigned addition –Full adder per bit slice –Delay limited by Carry Propagation »Ripple is algorithmically slow, but wires are short Carry select –Simple, resource-intensive –Excellent layout Carry look-ahead –Excellent asymptotic behavior –Great at the board level, but wire length effects are significant on chip Digital number systems –How to represent negative numbers –Simple operations –Clean algorithmic properties 2s complement is most widely used –Circuit for unsigned arithmetic –Subtract by complement and carry in –Overflow when cin xor cout of sign-bit is 1