CS150 Week 8, lecture 2 Covers: 1) 1) Adders Adders 1-bit full adder P Ai Bi Ci tAS = 26 tAG = 1 tAP = 1 tCS = 1 tCP = 0 t?? = 0 G Not connected A0 B0 @9 Si A1 B1 Full Adder @7 @8 Full Adder A0 B0 A2 B2 @5 Full Adder @3 Full Adder @4 @6 S0 Can you find Cout before sum? Yes. 1010 1000 0010 Generates carry before sum is known. 1010 1010 1111 Will propagate a carry 1010 0001 1011 Won’t propagate or generate C0 A0 B0 A1 B1 A2 B2 C0 C1 C2 S0 P0 G0 S1 P1 G1 C3 = G2 + G1 P2 + P2 P1 G0 + P2 P1 P0 C0 C4 = G3 + G2 P3 + P3 P2 G1 + P3 P2 P1 G0 + P3 P2 P1 P0 C0 Now look at G & P properties of a 4-bit adder: C0 P3-0 G3-0 Will generate a carry if G3 + G2 P3 + P3 P2 G1 + P3 P2 P1 G0 + P3 P2 P1 P0 C0 Will propagate if P3P2P1P0 A B P G @1 P G @1 P G P G @1 Carry Lookahead Cicuitry All P & G are generated at 1 delay. @1 C0 Now, a new circuit (Inputs are 4-bit adders): 4 4 4 P G @1 A B 4 4 P G 4 P @1 4 G 4 P G @1 C0 @1 Carry Lookahead Cicuitry Cin ROM based adder: A 2 2 B 2 S A1 A0 B1 B0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 1 Cin 0 1 0 1 0 A B 1 Cout S1 0 0 0 0 0 0 0 1 0 1 S0 0 1 1 0 0 1 0 1 Cout Carry select adder: Compute both answers (carry = 0, carry = 1): A B 1 0 SL SH CI CI CO A B A ROM B A B ROM ROM ALU A B Control C0 Flags ALU Cin What to implement: A+B, A-B, B-A A S1 B S0 A 0 0 1 1 S0 S1 + If S0 S1 = S0 = 1 B B 0 1 0 1 Function A+B _ A–B (B+A+1) B–A (A+B+1) A+B+1 (-A-B-1) Not very useful So replace with -A or A S0 S1 A S1 A 0 0 1 1 S0 S1 + A S1 S0 B M C0 C0 M B 0 1 0 1 Function A+B A-B B–A_ -A or A
© Copyright 2024 Paperzz