Building block hai full adder (FA): ek circuit jo teen single bits a, b, cin ko add karta hai aur ek sum bit s aur ek carry-out bit cout output karta hai.
Hum teen bits add karna chahte hain: a, b, aur cin. Inka arithmetic sum 0 (sab zero) se 3 (sab one) tak hota hai. Binary mein, values 0..3 ke liye do output bits chahiye:
a+b+cin=2⋅cout+s
Yahan cout "twos place" hai aur s "ones place" hai. Chalo truth table banate hain aur har output derive karte hain.
a
b
cin
sum(dec)
cout
s
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
2
1
0
1
0
0
1
0
1
1
0
1
2
1
0
1
1
0
2
1
0
1
1
1
3
1
1
s derive karna (XOR KYUN?):s=1 tab exactly hota hai jab teen inputs mein se 1s ki sankhya odd ho. "Odd parity" precisely wahi hai jo XOR compute karta hai.
s=a⊕b⊕cin
cout derive karna (majority KYUN?):cout=1 tab hota hai jab sum ≥2 ho, yaani jab inputs mein se kam se kam do inputs 1 hon. Yahi majority function hai:
cout=ab+bcin+acin
Hum pehle se compute kiye gaye p=a⊕b ka use karke simplify kar sakte hain: carry produce hoti hai agar dono a,b 1 hain (generate), ya agar unme se exactly ek 1 hai aurcin=1 hai (propagate):
Maano ek full adder ke carry path mein delay tc hai. Kyunki carry saare n stages se ripple karta hai:
TRCA≈n⋅tc⇒O(n)delay
Hardware cost: n full adders ⇒O(n)gates — sasta aur regular, lekin bade n ke liye slow. Yahi slowness exact reason hai kyun faster schemes (carry-lookahead) exist karte hain.
Carry tab aata hai jab arithmetic sum ≥2 ho, yaani kam se kam do inputs 1 hon — yahi majority hai, odd-parity nahi.
Ek n-bit RCA ki worst-case delay kya hai?
O(n), approximately n⋅tc, kyunki carry har stage se serially ripple karna padta hai.
Ek n-bit RCA ki gate/area cost kya hai?
O(n) — har bit ke liye ek full adder; sasta aur regular.
RCA ko A−B ke liye subtractor mein kaise convert karte hain?
B ki har bit invert karo aur C0=1 set karo (two's complement of B add karta hai).
Two's complement mein signed overflow condition kya hai?
Cn⊕Cn−1 (carry into MSB = carry out of MSB).
"Generate" vs "propagate" kya hota hai?
Generate =ab (stage khud carry banata hai); propagate =a⊕b (stage incoming carry ko pass karta hai).
RCA ka main drawback kya hai?
Speed — linear carry-propagation delay ise wide words ke liye slow banata hai; carry-lookahead ko motivate karta hai.
Recall Feynman: 12-saal ke bache ko samjhao
Socho paper pe do lambe numbers add kar rahe ho. Tum right se start karte ho, har column add karte ho, aur jab bhi koi column 10 ya zyada add ho jaaye tum 1 carry karte ho agle column mein. Tum left wale columns finish nahi kar sakte jab tak carry right se travel karke aa na jaaye. Ek ripple-carry adder choti machines ki ek row hai, ek machine har digit (bit) ke liye. Har machine apne do bits plus jo bhi carry apne right wale neighbour se aayi hai add karti hai, aur apni carry left wale neighbour ko de deti hai. "Carry" left ki taraf ek wave ki tarah travel karti hai — isliye ise ripple kehte hain. Yeh simple aur sasta hai, lekin agar number bahut lamba hai, tum thodi der wait karte ho carry ke liye poore raste chalne ka.