Binary Adder DesignSpring Binary Adders
Binary Adder DesignSpring n-bit Addition –Ripple Carry Adder –Conditional Sum Adder –(Carry Lookahead Adder)
Binary Adder DesignSpring Ripple Carry Adder
Binary Adder DesignSpring Ripple Carry Adder
Binary Adder DesignSpring Ripple Carry Adder
Binary Adder DesignSpring Ripple Carry Adder
Binary Adder DesignSpring Ripple Carry Adder
Binary Adder DesignSpring Ripple Carry Adder
Binary Adder DesignSpring Ripple Carry Adder
Binary Adder DesignSpring Ripple Carry Adder
Binary Adder DesignSpring Ripple Carry Adder
Binary Adder DesignSpring Ripple Carry Adder
Binary Adder DesignSpring Conditional Sum Adder Main principle: pre-computing upper sums for the cases: c[k]=1 and c[k]=0 Assume n is power of 2:
Binary Adder DesignSpring Conditional Sum Adder Main principle: pre-computing upper sums for the cases: c[k]=1 and c[k]=0 Assume n is power of 2:
Binary Adder DesignSpring Conditional Sum Adder Main principle: pre-computing upper sums for the cases: c[k]=1 and c[k]=0 Assume n is power of 2:
Binary Adder DesignSpring Conditional Sum Adder Main principle: pre-computing upper sums for the cases: c[k]=1 and c[k]=0 Assume n is power of 2:
Binary Adder DesignSpring Conditional Sum Adder Main principle: pre-computing upper sums for the cases: c[k]=1 and c[k]=0 Assume n is power of 2:
Binary Adder DesignSpring Conditional Sum Adder Main principle: pre-computing upper sums for the cases: c[k]=1 and c[k]=0 Assume n is power of 2:
Binary Adder DesignSpring Conditional Sum Adder Main principle: pre-computing upper sums for the cases: c[k]=1 and c[k]=0 Assume n is power of 2:
Binary Adder DesignSpring Conditional Sum Adder
Binary Adder DesignSpring Conditional Sum Adder full adder implements adder for n=1: CSA(1) = FA !!!!
Binary Adder DesignSpring Conditional Sum Adder full adder implements adder for n=1: CSA(1) = FA !!!!
Binary Adder DesignSpring Conditional Sum Adder full adder implements adder for n=1: CSA(1) = FA !!!!
Binary Adder DesignSpring Conditional Sum Adder full adder implements adder for n=1: CSA(1) = FA !!!!
Binary Adder DesignSpring Conditional Sum Adder full adder implements adder for n=1: CSA(1) = FA !!!!
Binary Adder DesignSpring Conditional Sum Adder full adder implements adder for n=1: CSA(1) = FA !!!!
Binary Adder DesignSpring Conditional Sum Adder full adder implements adder for n=1: CSA(1) = FA !!!!
Binary Adder DesignSpring Conditional Sum Adder full adder implements adder for n=1: CSA(1) = FA !!!!
Binary Adder DesignSpring Conditional Sum Adder full adder implements adder for n=1: CSA(1) = FA !!!!
Binary Adder DesignSpring Conditional Sum Adder full adder implements adder for n=1: CSA(1) = FA !!!!
Binary Adder DesignSpring Conditional Sum Adder full adder implements adder for n=1: CSA(1) = FA !!!!
Binary Adder DesignSpring Carry Lookahead Adder Main principle: combine carry computations of substrings Carry into bit position i: c[i] is computed from bits: a[i-1:0],b[i-1:0], cin condition:
Binary Adder DesignSpring Carry Lookahead Adder Main principle: combine carry computations of substrings Carry into bit position i: c[i] is computed from bits: a[i-1:0],b[i-1:0], cin condition: Definition propagate signals: Definition generate signals:
Binary Adder DesignSpring Carry Lookahead Adder Definition propagate signals: Definition generate signals: for i>0: for i=0: relation to carries: Computation of the signals, : for i>0: for i=0:
Binary Adder DesignSpring Carry Lookahead Adder Combination of carry and propagate signals:
Binary Adder DesignSpring Carry Lookahead Adder Combination of carry and propagate signals:
Binary Adder DesignSpring Carry Lookahead Adder Combination of carry and propagate signals:
Binary Adder DesignSpring Carry Lookahead Adder Combination of carry and propagate signals: Given two such pairs of generate and propagate signals and we define the operation :
Binary Adder DesignSpring Carry Lookahead Adder Carry computation based on computation of generate and propagate signals:
Binary Adder DesignSpring Carry Lookahead Adder Carry computation based on computation of generate and propagate signals:
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder Structure Implementation using Parallel Prefix Computation
Binary Adder DesignSpring Parallel Prefix Computation For associative operation o, we define Parallel Prefix Operation: n-bit INPUT: n-bit OUTPUT: Compute the operation o on all prefixes of X[n:1]
Binary Adder DesignSpring Carry Lookahead Adder Parallel Prefix Computation: n=1:n=2^k:
Binary Adder DesignSpring Carry Lookahead Adder Parallel Prefix Computation:
Binary Adder DesignSpring Carry Lookahead Adder Parallel Prefix Computation:
Binary Adder DesignSpring Carry Lookahead Adder Parallel Prefix Computation:
Binary Adder DesignSpring Carry Lookahead Adder Parallel Prefix Computation:
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder cost:
Binary Adder DesignSpring Carry Lookahead Adder delay:
Binary Adder DesignSpring Carry Lookahead Adder Example for n=8 –design –computation of
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Carry Lookahead Adder
Binary Adder DesignSpring Addition/Substraction Addition and Subtration for n-bit two’s complement inputs –bit op signals the case of subtraction (op=1):
Binary Adder DesignSpring Addition/Substraction Addition and Subtration for n-bit two’s complement inputs –bit op signals the case of subtraction (op=1):
Binary Adder DesignSpring Addition/Substraction Addition and Subtration for n-bit two’s complement inputs –bit op signals the case of subtraction (op=1):
Binary Adder DesignSpring Addition/Substraction Addition and Subtration for n-bit two’s complement inputs –bit op signals the case of subtraction (op=1):
Binary Adder DesignSpring Addition/Substraction Addition and Subtration for n-bit two’s complement inputs –bit op signals the case of subtraction (op=1):
Binary Adder DesignSpring Addition/Substraction Addition and Subtration for n-bit two’s complement inputs –bit op signals the case of subtraction (op=1): assumption: add/sub result is representable with n bits
Binary Adder DesignSpring Addition/Substraction Addition and Subtration for n-bit two’s complement inputs –bit op signals the case of subtraction (op=1): assumption: add/sub result is representable with n bits Detection of the case that the result can not be represented with n bits (overflow)
Binary Adder DesignSpring Overflow Overflow: result too large for finite computer word –e.g., adding two n-bit numbers does not yield an n-bit number note that overflow term is somewhat misleading, 1000 it does not mean a carry “overflowed” Detecting Overflow –No overflow when adding a positive and a negative number –No overflow when signs are the same for subtraction –Overflow occurs when the value affects the sign: overflow when adding two positives yields a negative or, adding two negatives gives a positive or, subtract a negative from a positive and get a negative or, subtract a positive from a negative and get a positive –Consider the operations A + B, and A – B Can overflow occur if B is 0 ? Can overflow occur if A is 0 ?
Binary Adder DesignSpring Effects of Overflow An exception (interrupt) occurs –Control jumps to predefined address for exception –Interrupted address is saved for possible resumption Details based on software system / language –example: flight control vs. homework assignment correct sign has to be computed even for overflows –branches should also work correctly after overflows –neg signal:
Binary Adder DesignSpring Overflow & Sign Overflow detection:
Binary Adder DesignSpring Overflow & Sign Overflow detection:
Binary Adder DesignSpring Overflow & Sign Overflow detection:
Binary Adder DesignSpring Overflow & Sign Overflow detection:
Binary Adder DesignSpring Overflow & Sign Overflow detection:
Binary Adder DesignSpring Overflow & Sign Overflow detection:
Binary Adder DesignSpring Overflow & Sign Overflow detection:
Binary Adder DesignSpring Overflow & Sign Overflow detection:
Binary Adder DesignSpring Overflow & Sign Sign condition:
Binary Adder DesignSpring Overflow & Sign Sign condition: consider sign extended sum:
Binary Adder DesignSpring Overflow & Sign Sign condition: consider sign extended sum: sign computation:
Binary Adder DesignSpring Overflow & Sign Sign condition: consider sign extended sum: sign computation:
Binary Adder DesignSpring Overflow & Sign Sign condition: consider sign extended sum: sign computation:
Binary Adder DesignSpring Overflow & Sign Sign condition: consider sign extended sum: sign computation:
Binary Adder DesignSpring Design of an Add/Subtract Unit
Binary Adder DesignSpring Design of an Add/Subtract Unit
Binary Adder DesignSpring Design of an Add/Subtract Unit
Binary Adder DesignSpring Design of an Add/Subtract Unit
Binary Adder DesignSpring Design of an Add/Subtract Unit
Binary Adder DesignSpring Design of an Add/Subtract Unit