योजक (इलेक्ट्रॉनिक्स)

एडर ऐसा डिजिटल सर्किट है जो संख्याओं को जोड़ने का कार्य करता है। कई कंप्यूटरों और अन्य प्रकार के प्रोसेसरों में एयरथमैटिक लॉजिक यूनिट्स (एएलयू) में एडर का उपयोग किया जाता है। उनका उपयोग प्रोसेसर के अन्य भागों में भी किया जाता है, जहां उनका उपयोग एड्रेस, टेबल इंडेक्स, इन्क्रीमेंट और डीक्रिमेंट ऑपरेटरों और इसी प्रकार के ऑपरेशन को कैलकुलेट करने के लिए किया जाता है।

चूँकि कई संख्याओं के प्रतिनिधित्व के लिए एडर का निर्माण किया जा सकता है, जैसे बाइनरी-कोडित डेसीमल या एक्सेस-3, सबसे सरल एडर बाइनरी संख्याओं पर कार्य करते हैं। ऐसे स्तिथि में जहां दो के पूरक या एक के पूरक का उपयोग नेगेटिव संख्याओं को रिप्रेजेंट करने के लिए किया जा रहा है, एडर को एडर-सब्ट्रैक्टर में मॉडिफाई करना सरल है। अन्य साइंड संख्या रिप्रेजेंटेशन के लिए मूल एडर के निकट अधिक लॉजिक की आवश्यकता होती है।

हाफ एडर
हाफ एडर दो एकल बाइनरी अंक A और B जोड़ता है। इसके दो आउटपुट सम (S) और कैरी (C) हैं। कैरी सिग्नल बहु-अंकीय जोड़ के अगले अंक में पूर्णांक ओवरफ्लो का प्रतिनिधित्व करता है। योग का मान  सबसे सरल हाफ एडर डिजाइन, दाईं ओर चित्रित, S के लिए XOR गेट और C के लिए गेट सम्मिलित करता है। योग के लिए बूलियन लॉजिक (इस स्तिथि में S)  होगा, जबकि कैरी के लिए (C ) होगा। अपने कैरी आउटपुट को संयोजित करने के लिए OR गेट के अतिरिक्त के साथ, फुल एडर बनाने के लिए दो हाफ एडरों को जोड़ा जा सकता है। हाफ एडर दो इनपुट बिट्स जोड़ता है कैरी और योग उत्पन्न करता है, जो हाफ एडर के दो आउटपुट हैं। हाफ ऐडर के इनपुट वेरिएबल (कंप्यूटर साइंस) को ऑगेंड और एडेंड बिट कहा जाता है। आउटपुट वैरिएबल योग और कैरी हैं।

हाफ एडर के लिए सत्य तालिका है:


 * {| class="wikitable" style="text-align:center"

! colspan="2" | इनपुट || colspan="2" | आउटपुट
 * - style="background:#def; text-align:center;"
 * A || B || C || S
 * - style="background:#dfd; text-align:center;"
 * 0 || 0 || 0 || 0
 * - style="background:#dfd; text-align:center;"
 * 0 || 1 || 0 || 1
 * - style="background:#dfd; text-align:center;"
 * 1 || 0 || 0 || 1
 * - style="background:#dfd; text-align:center;"
 * 1 || 1 || 1 || 0
 * }
 * }

फुल एडर






फुल एडर बाइनरी नंबर जोड़ता है और मानों के साथ-साथ बाहर भी ले जाता है। बिट फुल एडर तीन एक-बिट संख्याएँ जोड़ता है, जिसे प्रायः A, B, और Cin के रूप में लिखा जाता है। A, B और Cin ऑपरेंड हैं, पिछले कम-महत्वपूर्ण चरण से थोड़ा आगे बढ़ाया गया है। फुल एडर सामान्यतः एडरों के कैस्केड में घटक होता है, जो 8, 16, 32, आदि बिट बाइनरी संख्याओं को जोड़ता है। सर्किट दो-बिट आउटपुट उत्पन्न करता है। आउटपुट कैरी और योग सामान्यतः सिग्नल Cout द्वारा दर्शाया जाता है जहाँ S, 2Cout + S के योग समान है।

फुल एडर को कई भिन्न-भिन्न विधियों से कार्यान्वित किया जा सकता है जैसे कस्टम ट्रांजिस्टर-लेवल सर्किट या अन्य गेट्स से बना है। सबसे सरल कार्यान्वयन इसके साथ है:

तथा

.

इस कार्यान्वयन में, कैरी-आउट आउटपुट से पहले अंतिम OR गेट को परिणामी लॉजिक में परिवर्तित किए बिना XOR गेट द्वारा प्रतिस्थापित किया जा सकता है। ऐसा इसलिए है क्योंकि जब A और B दोनों 1 हैं, तो पद (A ⊕ B) सदैव 0 होता है, और इसलिए (Cin ⋅ (A ⊕ B)) केवल 0 हो सकता है। इस प्रकार, अंतिम OR गेट के इनपुट कभी भी दोनों 1 नहीं हो सकते (यह मात्र संयोजन है जिसके लिए OR और XOR आउटपुट भिन्न होते हैं)।

यदि सर्किट को सरल एकीकृत सर्किट चिप्स का उपयोग करके कार्यान्वित किया जा रहा है, जिसमें प्रति चिप केवल गेट टाइप होता है, तो केवल दो प्रकार के गेटों का उपयोग करना सुविधाजनक होता है। A और B को हाफ एडर के इनपुट से जोड़कर दो हाफ एडरों से फुल एडर का निर्माण भी किया जा सकता है, फिर इसके योग-आउटपुट S को दूसरे हाफ एडर और Cin के इनपुट के रूप में लिया जा सकता है। इसके अन्य इनपुट के रूप में, और अंत में दो हाफ एडरों से कैरी आउटपुट OR गेट से जुड़े होते हैं। दूसरे हाफ एडर से योग-आउटपुट फुल एडर का अंतिम योग आउटपुट (S) है OR गेट से आउटपुट अंतिम कैरी आउटपुट (Cout) है) फुल एडर का महत्वपूर्ण पथ दोनों XOR गेट के माध्यम से चलता है और योग बिट S पर समाप्त होता है। यह मानते हुए कि XOR गेट को पूर्ण होने में 1 डिले होती है, फुल एडर के महत्वपूर्ण पथ द्वारा लगाए गए विलंब के समान है:
 * $$T_\text{FA} = 2 \cdot T_\text{XOR} = 2 D.$$

कैरी का महत्वपूर्ण पथ ऐडर में XOR गेट से और कैरी-ब्लॉक में 2 गेट (AND और OR) से होकर निकलता है और इसलिए, यदि AND या OR गेट को पूर्ण करने में 1 डिले होता है, तो इसमें डिले होता है
 * $$T_\text{c} = T_\text{XOR} + T_\text{AND} + T_\text{OR} = D + D + D = 3D.$$

फुल एडर के लिए सत्य तालिका है:


 * {| class="wikitable" style="text-align:center"

!colspan="3"| Inputs || colspan="2"| Outputs फुल एडर के सभी इनपुटों को इन्वर्ट करने से इसके सभी आउटपुट भी इन्वर्ट हो जाते हैं, जिसका उपयोग फ़ास्ट रिपल-कैरी एडरों के डिज़ाइन में किया जा सकता है, क्योंकि कैरी को इन्वर्ट करने की कोई आवश्यकता नहीं है।
 * - style="background:#def; text-align:center;"
 * - style="background:#def; text-align:center;"
 * A || B || Cin || Cout || S
 * - style="background:#dfd; text-align:center;"
 * 0 || 0 || 0 || 0 || 0
 * - style="background:#dfd; text-align:center;"
 * 0 || 0 || 1 || 0 || 1
 * - style="background:#dfd; text-align:center;"
 * 0 || 1 || 0 || 0 || 1
 * - style="background:#dfd; text-align:center;"
 * 0 || 1 || 1 || 1 || 0
 * - style="background:#dfd; text-align:center;"
 * 1 || 0 || 0 || 0 || 1
 * - style="background:#dfd; text-align:center;"
 * 1 || 0 || 1 || 1 || 0
 * - style="background:#dfd; text-align:center;"
 * 1 || 1 || 0 || 1 || 0
 * - style="background:#dfd; text-align:center;"
 * 1 || 1 || 1 || 1 || 1
 * }
 * }

रिप्पल-कैर्री एडर


N-बिट संख्याओं को जोड़ने के लिए कई फुल एडरों का उपयोग करके लॉजिक सर्किट बनाना संभव है। प्रत्येक फुल एडर Cin इनपुट करता है, जो कि Cout पूर्व एडर के इस प्रकार के एडर को रिपल-कैरी एडर (RCA) कहा जाता है, क्योंकि प्रत्येक बिट रिपल्स को अगले फुल एडर तक ले जाता है। ध्यान दें कि पहले (और केवल पहले) फुल एडर को हाफ एडर द्वारा प्रतिस्थापित किया जा सकता है (यह मानते हुए कि Cin = 0) पूर्व एडर (Cout n-1) का आउटपुट अगले एडर (Cin) के इनपुट के रूप में पारित हुआ।

रिपल-कैरी एडर का लेआउट सरल है, जो तीव्रता से डिजाइन समय की अनुमति देता है; चूँकि, रिपल-कैरी एडर अपेक्षाकृत स्लो है, क्योंकि प्रत्येक फुल एडर को पूर्व फुल एडर से गणना करने के लिए कैरी बिट की प्रतीक्षा करनी चाहिए। फुल एडर सर्किट के निरीक्षण से गेट विलंब की सरलता से गणना की जा सकती है। प्रत्येक फुल एडर को लॉजिक के तीन स्तरों की आवश्यकता होती है। 32-बिट रिपल-कैरी एडर में, 32 फुल एडर होते हैं, इसलिए महत्वपूर्ण पथ (सबसे व्यर्थ स्थिति) डिले 3 है (इनपुट से पहले एडर में ले जाने के लिए) + 31 × 2 (पश्चात के एडर में प्रसार के लिए) = 65 गेट डिले है। N-बिट कैर्री-रिपल एडर के लिए सबसे व्यर्थ स्थिति डिले के लिए सामान्य समीकरण, योग और कैरी बिट्स दोनों के लिए लेखांकन है$$T_\text{CRA}(n) = T_\text{HA} + (n-1) \cdot T_\text{c} + T_\text{s} = T_\text{FA} + (n-1) \cdot T_c = 3 D + (n-1) \cdot 2 D = (2n+1) \cdot D.$$

अल्टरनेटिंग कैरी पोलारिटीज़ और अनुकूलित AND-OR-इनवर्ट गेट्स वाला डिज़ाइन लगभग दोगुना तीव्र हो सकता है।

कैरी-लुकहेड एडर
कम्प्यूटेशन समय को कम करने के लिए, इंजीनियरों ने कैरी-लुकहेड एडर (सीएलए) का उपयोग करके दो बाइनरी नंबर जोड़ने के लिए तीव्र विधि तैयार की गई है। वे प्रत्येक बिट स्थिति के लिए दो सिग्नल (P और G) इस पर आधारित है कि क्या कैरी को कम महत्वपूर्ण बिट स्थिति (कम से कम इनपुट 1 है) से प्रचारित किया जाता है, उस बिट स्थिति में उत्पन्न होता है (दोनों इनपुट 1 हैं) ), या उस बिट स्थिति में समाप्त कर (दोनों इनपुट 0 हैं) दिया जाता है। अधिकतम स्थितियों में, P केवल हाफ एडर का योग आउटपुट है और G उसी एडर का आउटपुट है। P और G उत्पन्न होने के पश्चात, प्रत्येक बिट स्थिति के लिए वहन किया जाता है। कुछ उन्नत कैरी-लुकहेड आर्किटेक्चर मैनचेस्टर कैरी चेन, ब्रेंट-कुंग एडर (बीकेए) और कोग्गे-स्टोन एडर (केएसए) हैं।

कुछ अन्य मल्टी-बिट एडर आर्किटेक्चर एडर को ब्लॉक में विभक्त करते हैं। कम्प्यूटेशन समय को अनुकूलित करने के लिए सर्किट के प्रसार विलंब के आधार पर इन ब्लॉकों की लंबाई को भिन्न-भिन्न करना संभव है। इन ब्लॉक आधारित एडरों में कैरी-स्किप एडर (या कैरी-बायपास) सम्मिलित है जो प्रत्येक बिट के अतिरिक्त प्रत्येक ब्लॉक के लिए P और G मान निर्धारित करेगा, और कैरी-सेलेक्ट ऐडर जो योग और कैरी को पूर्व-उत्पन्न करता है ब्लॉक में संभावित कैरी इनपुट (0 या 1) के लिए मान, मल्टीप्लेक्सर्स का उपयोग करके उचित परिणाम का चयन करने के लिए जब कैरी बिट ज्ञात हो।

कई कैरी-लुकहेड एडरों को मिलाकर, और भी बड़े एडर बनाए जा सकते हैं। इसे और भी बड़े एडर बनाने के लिए कई स्तरों पर उपयोग किया जा सकता है। उदाहरण के लिए, 64-बिट एडर है जो चार 16-बिट सीएलए का उपयोग करता है जिसमें दो स्तरों के लुकहेड केरी यूनिट हैं।

अन्य एडर डिज़ाइनों में कैरी-सिलेक्ट एडर, कंडीशनल सम एडर, कैरी-स्किप एडर और कैरी-फुल एडर सम्मिलित हैं।

कैरी-सेव एडर्स
यदि एडर सर्किट तीन या अधिक संख्याओं के योग की गणना करना है, तो कैरी परिणाम का प्रचार न करने से लाभ हो सकता है। इसके अतिरिक्त, तीन-इनपुट एडर का उपयोग किया जाता है, जिससे दो परिणाम उत्पन्न होते हैं: सम और कैरी। कैरी सिग्नल के प्रसार की प्रतीक्षा किए बिना योग और कैरी को पश्चात के 3-नंबर एडर के दो इनपुट में फीड किया जा सकता है। एडर के सभी चरणों के पश्चात, चूँकि, पारंपरिक एडर (जैसे रिपल-कैरी या लुकहेड) का उपयोग अंतिम योग को संयोजित करने और परिणाम ले जाने के लिए किया जाना चाहिए।

3:2 कम्प्रेसर
फुल एडर को 3:2 लॉस कंप्रेसर के रूप में देखा जा सकता है: यह तीन बिट इनपुट का योग करता है और परिणाम को दो-बिट संख्या के रूप में रिटर्न होता है; अर्थात्, यह 8 इनपुट मानों को 4 आउटपुट मानों में मैप करता है। इस प्रकार, उदाहरण के लिए, 101 के बाइनरी इनपुट के परिणामस्वरूप आउटपुट 1 + 0 + 1 = 10 होता है (डेसीमल संख्या 2)। कैरी-आउट परिणाम के बिट का प्रतिनिधित्व करता है, जबकि योग बिट शून्य का प्रतिनिधित्व करता है। इसी प्रकार, हाफ एडर को 2: 2 लॉस कंप्रेसर के रूप में उपयोग किया जा सकता है, चार संभावित इनपुट को तीन संभावित आउटपुट में कंप्रेसर कर सकता है।

ऐसे कंप्रेशर्स का उपयोग तीन या अधिक योगों के योग को गति देने के लिए किया जा सकता है। यदि एडर तीन हैं, तो लेआउट को कैरी-सेव एडर के रूप में जाना जाता है। यदि एडर चार या अधिक हैं, तो कंप्रेशर्स की अधिक लेयर आवश्यक है, और सर्किट के लिए विभिन्न संभावित डिज़ाइन हैं: सबसे सरल दद्दा ट्री और वालेस ट्री हैं। इस प्रकार के सर्किट का उपयोग बाइनरी मल्टीप्लायर में सबसे अधिक किया जाता है, यही कारण है कि इन सर्किट को दद्दा और वालेस मल्टीप्लायर के रूप में भी जाना जाता है।

क्वांटम एडर
केवल टोफोली गेट और सीएनओटी क्वांटम लॉजिक गेट का उपयोग करके, क्वांटम फुल और हाफ-एडर्स का उत्पादन संभव है।  क्लासिकल रिवेर्सिबल कम्प्यूटेशन में समान सर्किट भी प्रारम्भ किए जा सकते हैं, क्योंकि सीएनओटी और टॉफोली दोनों क्लासिकल लॉजिक गेट भी हैं।

चूंकि क्वांटम फौरिएर ट्रांसफॉर्म में कम सर्किट कॉम्प्लेक्सिटी होती है, इसलिए इसे कुशलता से संख्याओं को जोड़ने के लिए भी उपयोग किया जा सकता है।

एनालॉग एडर
जैसे बाइनरी एडर्स में, दो इनपुट करंट के संयोजन से प्रभावी रूप से उन कर्रेंटस को साथ जोड़ा जाता है। हार्डवेयर की बाधाओं के अंदर, नॉन-बाइनरी सिग्नल (अर्थात 2 से अधिक हायर) के सम को कैलकुलेट करने के लिए जोड़ा जा सकता है। समिंग एम्प्लीफायर के रूप में भी जाना जाता है, इस टेक्निक का उपयोग अतिरिक्त सर्किट में ट्रांजिस्टर की संख्या को कम करने के लिए किया जा सकता है।

यह भी देखें

 * बाइनरी मल्टीप्लायर
 * सब्ट्रैक्टर
 * इलेक्ट्रॉनिक मिक्सर- एनालॉग सिग्नल जोड़ने के लिए

बाहरी संबंध

 * Hardware algorithms for arithmetic modules, includes description of several adder layouts with figures.
 * 8-bit Full Adder and Subtractor, a demonstration of an interactive Full Adder built in JavaScript solely for learning purposes.
 * Interactive Full Adder Simulation (requires Java), Interactive Full Adder circuit constructed with Teahlab's online circuit simulator.
 * Interactive Half Adder Simulation (requires Java), Half Adder circuit built  with Teahlab's circuit simulator.
 * 4-bit Full Adder Simulation built in Verilog, and the accompanying Ripple Carry Full Adder Video Tutorial