लॉजिक गेट्स और डिजिटल सर्किट्स की व्याख्या
← Backमौलिक लॉजिक गेट्स
लॉजिक गेट्स डिजिटल इलेक्ट्रॉनिक्स के मौलिक निर्माण खंड हैं। ये भौतिक उपकरण हैं जो बूलियन फ़ंक्शन को लागू करते हैं, एक या अधिक बाइनरी इनपुट लेते हैं और एक ही बाइनरी आउटपुट उत्पन्न करते हैं। हर डिजिटल सर्किट, साधारण स्विच से लेकर जटिल माइक्रोप्रोसेसर तक, इन बुनियादी गेट्स के संयोजन से बना होता है। कंप्यूटर विज्ञान, इलेक्ट्रिकल इंजीनियरिंग, या डिजिटल इलेक्ट्रॉनिक्स में काम करने वाले किसी भी व्यक्ति के लिए लॉजिक गेट्स को समझना आवश्यक है।
AND गेट
AND गेट केवल तभी HIGH (1) आउटपुट उत्पन्न करता है जब इसके सभी इनपुट HIGH हों। यदि कोई भी इनपुट LOW (0) है, तो आउटपुट LOW है। यह तार्किक संयोजन संचालन को लागू करता है। दो-इनपुट AND गेट के लिए बूलियन व्यंजक Y = A ∧ B या Y = A · B है। AND गेट्स का उपयोग उन सर्किट्स में किया जाता है जहां कई शर्तों को एक साथ संतुष्ट किया जाना चाहिए, जैसे कि कई प्रमाणीकरण कारकों की आवश्यकता वाली सुरक्षा प्रणाली या नियंत्रण प्रणाली जहां सभी सुरक्षा शर्तों को पूरा किया जाना चाहिए।
OR गेट
OR गेट तब HIGH (1) आउटपुट उत्पन्न करता है जब इसके इनपुट में से कम से कम एक HIGH हो। आउटपुट केवल तभी LOW होता है जब सभी इनपुट LOW हों। यह तार्किक वियोजन संचालन को लागू करता है। दो-इनपुट OR गेट के लिए बूलियन व्यंजक Y = A ∨ B या Y = A + B है। OR गेट्स का उपयोग आम तौर पर अलार्म सिस्टम में किया जाता है जहां कई सेंसरों में से कोई भी एक अलर्ट ट्रिगर कर सकता है, या वोटिंग सर्किट में जहां किसी भी विकल्प के चयनित होने पर आउटपुट उत्पन्न होता है।
NOT गेट (इनवर्टर)
NOT गेट, जिसे इनवर्टर भी कहा जाता है, में एक ही इनपुट होता है और विपरीत आउटपुट उत्पन्न करता है। यदि इनपुट HIGH (1) है, तो आउटपुट LOW (0) है, और इसके विपरीत। यह तार्किक नकारात्मक संचालन को लागू करता है। बूलियन व्यंजक Y = ¬A या Y = A' है। NOT गेट सबसे सरल लॉजिक गेट है और पूरक संकेत बनाने, सक्रिय-निम्न लॉजिक लागू करने, और NAND और NOR जैसे अधिक जटिल गेट्स बनाने के लिए आवश्यक है।
NAND गेट (सार्वभौमिक गेट)
NAND (NOT-AND) गेट एक AND गेट है जिसके बाद NOT गेट है। यह केवल तभी LOW आउटपुट उत्पन्न करता है जब सभी इनपुट HIGH हों; अन्यथा, आउटपुट HIGH है। बूलियन व्यंजक Y = ¬(A ∧ B) है। NAND को सार्वभौमिक गेट कहा जाता है क्योंकि केवल NAND गेट्स का उपयोग करके किसी भी अन्य लॉजिक गेट या बूलियन फ़ंक्शन का निर्माण किया जा सकता है। यह गुण NAND गेट्स को व्यावहारिक सर्किट डिज़ाइन में अत्यंत महत्वपूर्ण बनाता है, क्योंकि पूरी प्रणालियों को एक ही गेट प्रकार से बनाया जा सकता है, जिससे विनिर्माण सरल हो जाता है और लागत कम हो जाती है।
NOR गेट (सार्वभौमिक गेट)
NOR (NOT-OR) गेट एक OR गेट है जिसके बाद NOT गेट है। यह केवल तभी HIGH आउटपुट उत्पन्न करता है जब सभी इनपुट LOW हों; अन्यथा, आउटपुट LOW है। बूलियन व्यंजक Y = ¬(A ∨ B) है। NAND की तरह, NOR भी एक सार्वभौमिक गेट है जो किसी भी बूलियन फ़ंक्शन को लागू करने में सक्षम है। NOR गेट्स विशेष रूप से कुछ प्रकार की मेमोरी सेल (SR लैच) और सर्किट में उपयोगी हैं जहां सक्रिय-निम्न लॉजिक को प्राथमिकता दी जाती है। NOR गेट्स की सार्वभौमिकता डिज़ाइनरों को सर्किट कार्यान्वयन में लचीलापन प्रदान करती है।
XOR गेट (विशिष्ट OR)
XOR (Exclusive OR) गेट तब HIGH आउटपुट उत्पन्न करता है जब विषम संख्या में इनपुट HIGH हों। दो इनपुट के लिए, यह तब HIGH आउटपुट करता है जब इनपुट भिन्न हों और LOW जब वे समान हों। बूलियन व्यंजक Y = A ⊕ B = (A ∧ ¬B) ∨ (¬A ∧ B) है। XOR गेट्स अंकगणितीय सर्किट (विशेष रूप से एडर्स में), त्रुटि पहचान और सुधार कोड (पैरिटी बिट्स), एन्क्रिप्शन एल्गोरिदम, और तुलना सर्किट में मौलिक हैं। XOR संचालन अपना स्वयं का विलोम भी है, जो इसे प्रतिवर्ती कंप्यूटिंग में उपयोगी बनाता है।
XNOR गेट (समतुल्यता गेट)
XNOR (Exclusive NOR) गेट, जिसे समतुल्यता गेट भी कहा जाता है, तब HIGH आउटपुट उत्पन्न करता है जब सभी इनपुट का मान समान हो (सभी HIGH या सभी LOW)। यह XOR का पूरक है। बूलियन व्यंजक Y = ¬(A ⊕ B) = (A ∧ B) ∨ (¬A ∧ ¬B) है। XNOR गेट्स का उपयोग समानता तुलना सर्किट, त्रुटि पहचान प्रणाली, और डिजिटल सिग्नल प्रोसेसिंग में किया जाता है। दो-इनपुट XNOR गेट में, आउटपुट यह संकेत देता है कि इनपुट बराबर हैं या नहीं, जो इसे मिलान और सत्यापन संचालन के लिए मूल्यवान बनाता है।
गेट प्रतिनिधित्व
लॉजिक गेट्स को कई तरीकों से प्रस्तुत किया जा सकता है, जिनमें से प्रत्येक उनके व्यवहार और कार्यान्वयन में विभिन्न अंतर्दृष्टि प्रदान करता है। डिजिटल सर्किट डिज़ाइन, विश्लेषण और समस्या निवारण के लिए इन विभिन्न प्रतिनिधित्वों को समझना महत्वपूर्ण है।
मानक लॉजिक गेट प्रतीक (ANSI/IEEE)
प्रत्येक लॉजिक गेट का एक मानकीकृत ग्राफिकल प्रतीक होता है जो ANSI (अमेरिकन नेशनल स्टैंडर्ड्स इंस्टीट्यूट) और IEEE (इंस्टीट्यूट ऑफ इलेक्ट्रिकल एंड इलेक्ट्रॉनिक्स इंजीनियर्स) द्वारा परिभाषित किया गया है। ये प्रतीक सर्किट आरेखों में सार्वभौमिक रूप से मान्यता प्राप्त हैं। उदाहरण के लिए, एक AND गेट को आमतौर पर D-आकार के प्रतीक के रूप में खींचा जाता है, जबकि OR गेट में एक घुमावदार इनपुट पक्ष होता है। आउटपुट पर एक छोटा वृत्त (बुलबुला) व्युत्क्रमण (NOT संचालन) को इंगित करता है, NAND को AND से और NOR को OR से अलग करता है। ये दृश्य प्रतिनिधित्व इंजीनियरों को एक नज़र में सर्किट फ़ंक्शन को जल्दी से समझने और भाषा बाधाओं के पार डिज़ाइन संवाद करने की अनुमति देते हैं।
प्रत्येक गेट के लिए सत्य तालिकाएं
सत्य तालिकाएं सभी संभावित इनपुट संयोजनों और उनके संबंधित आउटपुट की सूची बनाकर गेट के व्यवहार का पूर्ण विनिर्देश प्रदान करती हैं। n इनपुट वाले गेट के लिए, सत्य तालिका में 2^n पंक्तियां होती हैं। सत्य तालिकाएं गेट व्यवहार की पुष्टि, विनिर्देशों से सर्किट डिज़ाइन करने, और मौजूदा सर्किट को डीबग करने के लिए अमूल्य हैं। वे अमूर्त बूलियन बीजगणित और भौतिक सर्किट कार्यान्वयन के बीच पुल बनाती हैं। जटिल सर्किट की सत्य तालिका की उसके विनिर्देश से तुलना करके, इंजीनियर विनिर्माण से पहले शुद्धता की पुष्टि कर सकते हैं।
बूलियन व्यंजक
प्रत्येक लॉजिक गेट संचालन को बूलियन बीजगणितीय व्यंजक के रूप में व्यक्त किया जा सकता है। ये व्यंजक सर्किट डिज़ाइन के गणितीय हेरफेर की अनुमति देते हैं, सरलीकरण और अनुकूलन को सक्षम करते हैं। इन व्यंजकों का बीजगणित विशिष्ट नियमों (क्रमविनिमेय, साहचर्य, वितरण, डी मॉर्गन के नियम, आदि) का पालन करता है जो जटिल व्यंजकों को सरल समकक्ष रूपों में बदलने की अनुमति देते हैं। यह गणितीय प्रतिनिधित्व स्वचालित डिज़ाइन उपकरणों, सर्किट संश्लेषण सॉफ़्टवेयर, और औपचारिक सत्यापन प्रणालियों के लिए आवश्यक है जो सर्किट की शुद्धता को सिद्ध करती हैं।
समय आरेख और प्रसार विलंब
समय आरेख दिखाते हैं कि संकेत समय के साथ कैसे बदलते हैं, सर्किट के गतिशील व्यवहार को दर्शाते हैं। वे प्रसार विलंब को प्रकट करते हैं—इनपुट में बदलाव से संबंधित आउटपुट में बदलाव उत्पन्न करने में लगने वाला समय। यह विलंब, आमतौर पर नैनोसेकंड या पिकोसेकंड में मापा जाता है, ट्रांजिस्टर और इंटरकनेक्शन की भौतिक गुणों से उत्पन्न होता है। उच्च-गति सर्किट के लिए समय को समझना महत्वपूर्ण है, क्योंकि विलंब रेस स्थितियों, ग्लिच और समय उल्लंघन का कारण बन सकता है। डिज़ाइनरों को यह सुनिश्चित करने के लिए सबसे खराब स्थिति के विलंब का ध्यान रखना चाहिए कि सर्किट उनकी इच्छित घड़ी गति पर सही ढंग से काम करते हैं।
बूलियन बीजगणित से सर्किट
बूलियन बीजगणितीय व्यंजकों को भौतिक सर्किट में परिवर्तित करने की प्रक्रिया डिजिटल डिज़ाइन के लिए मौलिक है। यह परिवर्तन अमूर्त तर्क और ठोस हार्डवेयर कार्यान्वयन के बीच अंतर को पाटता है।
बूलियन व्यंजकों को सर्किट में परिवर्तित करना
बूलियन व्यंजक को सर्किट में परिवर्तित करने के लिए, व्यंजक में प्रत्येक ऑपरेटर एक संबंधित गेट बन जाता है। चर इनपुट हैं, और व्यंजक का परिणाम आउटपुट है। उदाहरण के लिए, व्यंजक Y = (A ∧ B) ∨ C एक AND गेट बन जाता है जिसमें इनपुट A और B हैं, जो एक OR गेट में फीड होता है जो इनपुट C भी प्राप्त करता है। कोष्ठक संचालन क्रम को दर्शाते हैं, सबसे भीतरी संचालन पहले लागू किए जाते हैं। यह सीधा पत्राचार किसी भी बूलियन फ़ंक्शन को सर्किट के रूप में लागू करना सरल बनाता है, हालांकि प्रारंभिक कार्यान्वयन इष्टतम नहीं हो सकता है।
सत्य तालिकाओं से सर्किट आरेख
सत्य तालिकाओं को उत्पादों के योग (SOP) या योगों के उत्पाद (POS) रूपों का उपयोग करके सर्किट में परिवर्तित किया जा सकता है। SOP में, प्रत्येक पंक्ति जहां आउटपुट 1 है, एक उत्पाद पद (इनपुट का AND) बन जाती है, और इन पदों को जोड़ा जाता है (OR किया जाता है)। POS में, प्रत्येक पंक्ति जहां आउटपुट 0 है, इसके बजाय उपयोग की जाती है। उदाहरण के लिए, यदि A=1, B=0, C=1 होने पर आउटपुट 1 है, तो एक उत्पाद पद A∧¬B∧C होगा। जबकि यह विधि हमेशा काम करती है और सही सर्किट उत्पन्न करती है, यह अक्सर अनावश्यक रूप से जटिल कार्यान्वयन में परिणत होती है जिसे बूलियन बीजगणित या कर्नाघ मानचित्रों का उपयोग करके सरल बनाया जा सकता है।
बहु-स्तरीय लॉजिक कार्यान्वयन
बहु-स्तरीय लॉजिक इनपुट और आउटपुट के बीच गेट की कई परतों वाले सर्किट को संदर्भित करता है, दो-स्तरीय लॉजिक के विपरीत (AND गेट्स का एक स्तर OR गेट्स के एक स्तर में फीड होता है, या इसके विपरीत)। बहु-स्तरीय कार्यान्वयन अक्सर कम गेट्स और कम क्षेत्र की आवश्यकता होती है लेकिन लंबे प्रसार विलंब हो सकते हैं। डिज़ाइनर आवश्यकताओं के आधार पर दो-स्तरीय और बहु-स्तरीय कार्यान्वयन के बीच चयन करते हैं: गति के लिए दो-स्तरीय (छोटे विलंब पथ) और क्षेत्र और शक्ति दक्षता के लिए बहु-स्तरीय। आधुनिक संश्लेषण उपकरण स्वचालित रूप से इन ट्रेड-ऑफ का पता लगाते हैं।
गेट गणना अनुकूलन
सर्किट में गेट्स की संख्या कम करने से लागत, बिजली की खपत और सर्किट क्षेत्र कम हो जाता है। अनुकूलन व्यंजकों को सरल बनाने के लिए बूलियन बीजगणित पहचानों का उपयोग करता है, न्यूनतम उत्पादों के योग रूपों को खोजने के लिए कर्नाघ मानचित्र, और कई चरों वाले फ़ंक्शन के लिए Quine-McCluskey जैसे एल्गोरिदम। सामान्य तकनीकों में सामान्य उप-व्यंजकों को फ़ैक्टर करना, अनावश्यक गेट्स को समाप्त करना, और गेट प्रकारों के बीच रूपांतरण के लिए डी मॉर्गन के नियमों का उपयोग करना शामिल है। आधुनिक IC डिज़ाइन में, स्वचालित उपकरण इन अनुकूलन को करते हैं, लेकिन सिद्धांतों को समझने से डिज़ाइनरों को बेहतर विनिर्देश लिखने और उपकरण आउटपुट को सत्यापित करने में मदद मिलती है।
संयोजन सर्किट
संयोजन सर्किट डिजिटल सर्किट हैं जहां आउटपुट केवल वर्तमान इनपुट पर निर्भर करता है, पिछली स्थितियों की कोई स्मृति नहीं होती। वे बूलियन फ़ंक्शन को लागू करते हैं और अधिक जटिल प्रणालियों के लिए निर्माण खंड हैं। मुख्य विशेषताओं में शामिल हैं: कोई फीडबैक लूप नहीं, कोई भंडारण तत्व नहीं, और इनपुट परिवर्तनों के लिए तत्काल प्रतिक्रिया (प्रसार विलंब के बाद)।
एडर्स (हाफ-एडर, फुल-एडर, रिपल-कैरी)
एडर्स मौलिक अंकगणितीय सर्किट हैं। एक हाफ-एडर दो एकल-बिट संख्याओं को जोड़ता है, एक योग और कैरी आउटपुट उत्पन्न करता है। एक फुल-एडर इसे एक कैरी इनपुट को स्वीकार करके भी विस्तारित करता है, बहु-बिट जोड़ को सक्षम करता है। फुल-एडर्स को बहु-बिट एडर्स बनाने के लिए एक साथ जंजीर किया जाता है। रिपल-कैरी एडर n-बिट संख्याओं को जोड़ने के लिए n फुल-एडर्स को जोड़ता है, कैरी कम से कम महत्वपूर्ण से सबसे महत्वपूर्ण बिट तक प्रचारित होता है। जबकि सरल, रिपल-कैरी एडर्स कैरी प्रसार विलंब के कारण बड़ी बिट चौड़ाई के लिए धीमे हैं। कैरी-लुकअहेड एडर्स जैसे तेज डिज़ाइन अधिक जटिल सर्किटरी की कीमत पर कैरी को समानांतर में गणना करते हैं।
सबट्रैक्टर
सबट्रैक्टर बाइनरी घटाव करते हैं। एडर्स की तरह, वे हाफ-सबट्रैक्टर और फुल-सबट्रैक्टर प्रकारों में आते हैं। हालांकि, घटाव को अधिक सामान्यतः जोड़ और दो के पूरक प्रतिनिधित्व का उपयोग करके लागू किया जाता है: A - B की गणना करने के लिए, A + (¬B + 1) की गणना करें। यह दृष्टिकोण जोड़ और घटाव दोनों के लिए एडर हार्डवेयर के पुन: उपयोग की अनुमति देता है, सर्किट जटिलता को कम करता है। अधिकांश आधुनिक प्रोसेसर इस तरह से घटाव को लागू करते हैं, एक नियंत्रण संकेत के आधार पर दोनों संचालनों को संभालने वाले एक एकल एडर सर्किट के साथ।
मल्टीप्लेक्सर (डेटा चयनकर्ता)
एक मल्टीप्लेक्सर (MUX) चयन नियंत्रण संकेतों के आधार पर एक एकल आउटपुट लाइन को अग्रेषित करने के लिए कई इनपुट संकेतों में से एक का चयन करता है। एक 2^n-टू-1 मल्टीप्लेक्सर में 2^n डेटा इनपुट और n चयन लाइनें होती हैं। मल्टीप्लेक्सर डेटा रूटिंग, सशर्त तर्क लागू करने, और प्रोग्रामयोग्य लॉजिक तत्व बनाने के लिए आवश्यक हैं। वे किसी भी बूलियन फ़ंक्शन को लागू कर सकते हैं: एक n-चर फ़ंक्शन के लिए, इनपुट के रूप में फ़ंक्शन की सत्य तालिका मानों के साथ 2^n-टू-1 MUX का उपयोग करें। मल्टीप्लेक्सर व्यापक रूप से CPU में विभिन्न डेटा स्रोतों के बीच चयन करने के लिए और संचार प्रणालियों में समय-विभाजन मल्टीप्लेक्सिंग के लिए उपयोग किए जाते हैं।
डीमल्टीप्लेक्सर (डेटा वितरक)
एक डीमल्टीप्लेक्सर (DEMUX) मल्टीप्लेक्सर का विपरीत संचालन करता है: यह एक एकल इनपुट लेता है और इसे नियंत्रण संकेतों द्वारा चयनित कई आउटपुट लाइनों में से एक को रूट करता है। एक 1-टू-2^n डीमल्टीप्लेक्सर में एक डेटा इनपुट, n चयन लाइनें, और 2^n आउटपुट होते हैं। डीमल्टीप्लेक्सर का उपयोग मेमोरी एड्रेसिंग में (कौन सी मेमोरी स्थान को एक्सेस करना है यह चयन करना), संचार प्रणालियों में संकेतों को वितरित करने के लिए, और नियंत्रण सर्किट में नियंत्रण संकेतों के आधार पर विशिष्ट घटकों को सक्षम करने के लिए किया जाता है।
एनकोडर और डीकोडर
एनकोडर लाइनों की संख्या को कम करके जानकारी को एक प्रारूप से दूसरे में परिवर्तित करते हैं। एक 2^n-टू-n एनकोडर में 2^n इनपुट और n आउटपुट होते हैं, एक वन-हॉट एनकोडेड इनपुट (बिल्कुल एक इनपुट 1 है) को बाइनरी कोड में परिवर्तित करता है। प्राथमिकता एनकोडर उन मामलों को संभालते हैं जहां कई इनपुट सक्रिय होते हैं। डीकोडर रिवर्स करते हैं: एक n-टू-2^n डीकोडर एक n-बिट बाइनरी इनपुट को एक वन-हॉट आउटपुट में परिवर्तित करता है, 2^n आउटपुट लाइनों में से बिल्कुल एक को सक्रिय करता है। डीकोडर मेमोरी सिस्टम (पते की डिकोडिंग), CPU में निर्देश डिकोडिंग, और सात-खंड डिस्प्ले को चलाने में महत्वपूर्ण हैं। एनकोडर का उपयोग इनपुट इंटरफेस और डेटा संपीड़न सर्किट में किया जाता है।
तुलनित्र (परिमाण तुलना)
तुलनित्र दो बाइनरी संख्याओं के बीच संबंध निर्धारित करते हैं, आउटपुट उत्पन्न करते हैं जो दर्शाते हैं कि A < B, A = B, या A > B। सरल समानता तुलनित्र प्रत्येक बिट जोड़ी के लिए XNOR गेट्स का उपयोग करते हैं, परिणामों को AND करते हैं। परिमाण तुलनित्र अधिक जटिल हैं, सबसे महत्वपूर्ण से कम से कम महत्वपूर्ण तक बिट्स की तुलना करते हैं। बिट्स की पहली जोड़ी जो भिन्न है, संबंध निर्धारित करती है। तुलनित्र छँटाई सर्किट, प्रोसेसर में सशर्त शाखाओं, और नियंत्रण प्रणालियों में आवश्यक हैं जो संख्यात्मक संबंधों के आधार पर निर्णय लेती हैं।
अनुक्रमिक सर्किट
अनुक्रमिक सर्किट में स्मृति होती है—उनके आउटपुट वर्तमान इनपुट और पिछले इतिहास दोनों पर निर्भर करते हैं। यह स्मृति लैच और फ्लिप-फ्लॉप जैसे फीडबैक और भंडारण तत्वों का उपयोग करके लागू की जाती है। अनुक्रमिक सर्किट राज्य मशीनों, काउंटरों, रजिस्टरों और सभी प्रकार की डिजिटल मेमोरी को सक्षम करते हैं।
लैच (SR, D, JK)
लैच स्तर-संवेदनशील भंडारण तत्व हैं जो जानकारी का एक बिट रख सकते हैं। SR (Set-Reset) लैच सबसे बुनियादी है, Set और Reset इनपुट के साथ। D (Data) लैच SR लैच को सरल बनाता है यह सुनिश्चित करके कि S और R दोनों कभी सक्रिय नहीं हैं, सक्षम होने पर D इनपुट को संग्रहीत करता है। लैच इनपुट स्तरों का जवाब देते हैं: जब सक्षम होते हैं, आउटपुट इनपुट का अनुसरण करता है; जब अक्षम होते हैं, आउटपुट अपने अंतिम मान को रखता है। लैच का उपयोग अस्थायी भंडारण, बस इंटरफेस, और फ्लिप-फ्लॉप के लिए निर्माण खंडों के रूप में किया जाता है। उनकी स्तर-संवेदनशील प्रकृति सिंक्रोनस सिस्टम में रेस स्थितियों जैसी समय समस्याओं का कारण बन सकती है।
फ्लिप-फ्लॉप (एज-ट्रिगर्ड)
फ्लिप-फ्लॉप एज-ट्रिगर्ड भंडारण तत्व हैं जो केवल घड़ी के किनारे (बढ़ते या गिरते) पर अपने आउटपुट को अपडेट करते हैं। यह एज-ट्रिगर्ड व्यवहार लैच को परेशान करने वाली समय समस्याओं को रोकता है। सामान्य प्रकारों में D फ्लिप-फ्लॉप (घड़ी के किनारे पर D इनपुट को संग्रहीत करता है), T फ्लिप-फ्लॉप (घड़ी के किनारे पर आउटपुट को टॉगल करता है), और JK फ्लिप-फ्लॉप (SR और T प्रकारों की सुविधाओं को जोड़ता है) शामिल हैं। फ्लिप-फ्लॉप सिंक्रोनस डिजिटल डिज़ाइन की नींव हैं, यह सुनिश्चित करते हुए कि सभी राज्य परिवर्तन ठीक परिभाषित क्षणों पर होते हैं। उनका उपयोग रजिस्टरों, राज्य मशीनों, और लगभग सभी अनुक्रमिक सर्किट में बुनियादी भंडारण तत्व के रूप में किया जाता है।
रजिस्टर (डेटा भंडारण)
रजिस्टर फ्लिप-फ्लॉप के समूह हैं जो बहु-बिट मानों को संग्रहीत करते हैं। एक n-बिट रजिस्टर में n फ्लिप-फ्लॉप होते हैं, प्रत्येक एक बिट को संग्रहीत करता है। रजिस्टर समानांतर-लोड (सभी बिट एक साथ लोड किए जाते हैं) या सीरियल-लोड (बिट्स एक समय में एक शिफ्ट किए जाते हैं) हो सकते हैं। वे प्रोसेसर डिज़ाइन के लिए मौलिक हैं, निर्देश ऑपरेंड, पते, और मध्यवर्ती गणना परिणामों को रखते हुए। विशेष रजिस्टरों में प्रोग्राम काउंटर (अगले निर्देश पते को रखता है), संचयक (अंकगणितीय परिणामों को संग्रहीत करता है), और स्थिति रजिस्टर (शर्त झंडे रखते हैं) शामिल हैं। रजिस्टर मुख्य मेमोरी तक पहुंचने से तेज उच्च-गति अस्थायी भंडारण प्रदान करते हैं।
काउंटर (बाइनरी, दशक, अप/डाउन)
काउंटर अनुक्रमिक सर्किट हैं जो राज्यों के एक पूर्व निर्धारित अनुक्रम के माध्यम से प्रगति करते हैं, आमतौर पर बाइनरी संख्याएं। बाइनरी काउंटर n बिट्स के लिए 0 से 2^n-1 तक गिनते हैं। दशक काउंटर 0-9 गिनते हैं, 9 के बाद रीसेट होते हैं। अप काउंटर वृद्धि करते हैं, डाउन काउंटर कमी करते हैं, और अप/डाउन काउंटर नियंत्रण इनपुट के आधार पर दोनों कर सकते हैं। काउंटरों को फीडबैक तर्क के साथ फ्लिप-फ्लॉप का उपयोग करके लागू किया जाता है। उनका उपयोग आवृत्ति विभाजन, घटना गिनती, समय संकेत उत्पन्न करने, अनुक्रम में मेमोरी को संबोधित करने, और विलंब बनाने के लिए किया जाता है। काउंटर असिंक्रोनस (रिपल काउंटर, जहां फ्लिप-फ्लॉप एक-दूसरे को ट्रिगर करते हैं) या सिंक्रोनस (सभी फ्लिप-फ्लॉप एक साथ क्लॉक किए जाते हैं, रिपल विलंब को समाप्त करते हुए) हो सकते हैं।
शिफ्ट रजिस्टर (SISO, SIPO, PISO, PIPO)
शिफ्ट रजिस्टर प्रति घड़ी चक्र एक स्थिति डेटा को पार्श्व रूप से स्थानांतरित करते हैं। उन्हें इनपुट/आउटपुट मोड द्वारा वर्गीकृत किया जाता है: Serial-In-Serial-Out (SISO) विलंब और डेटा संचरण के लिए, Serial-In-Parallel-Out (SIPO) सीरियल-टू-समानांतर रूपांतरण के लिए, Parallel-In-Serial-Out (PISO) समानांतर-टू-सीरियल रूपांतरण के लिए, और Parallel-In-Parallel-Out (PIPO) डेटा स्थानांतरण के लिए। शिफ्ट रजिस्टर सीरियल संचार (UART, SPI), संचरण के लिए डेटा सीरियलाइजेशन, विलंब लागू करने, छद्म-यादृच्छिक अनुक्रम बनाने (रैखिक फीडबैक शिफ्ट रजिस्टर), और डिजिटल सिग्नल प्रोसेसिंग में महत्वपूर्ण हैं। वे डिज़ाइन के आधार पर बाएं, दाएं, या द्विदिशात्मक रूप से शिफ्ट कर सकते हैं।
सर्किट सरलीकरण
डिजिटल सर्किट को सरल बनाना कार्यक्षमता को बनाए रखते हुए लागत, बिजली की खपत और क्षेत्र को कम करता है। व्यवस्थित सरलीकरण के लिए विभिन्न गणितीय और ग्राफिकल तकनीकें मौजूद हैं।
गेट्स को कम करने के लिए बूलियन नियमों का उपयोग
बूलियन बीजगणित व्यंजकों को सरल समकक्ष रूपों में बदलने के लिए नियम और पहचान प्रदान करता है। मुख्य नियमों में शामिल हैं: पहचान (A∧1=A, A∨0=A), शून्य/प्रभुत्व (A∧0=0, A∨1=1), समशक्ति (A∧A=A, A∨A=A), पूरक (A∧¬A=0, A∨¬A=1), क्रमविनिमेय, साहचर्य, वितरण, अवशोषण (A∨(A∧B)=A), और डी मॉर्गन के नियम (¬(A∧B)=¬A∨¬B, ¬(A∨B)=¬A∧¬B)। इन नियमों को व्यवस्थित रूप से लागू करने से सर्किट जटिलता को नाटकीय रूप से कम किया जा सकता है। उदाहरण के लिए, A∧B∧C + A∧B∧¬C को A∧B∧(C+¬C) = A∧B∧1 = A∧B में फ़ैक्टर किया जा सकता है, एक गेट को समाप्त करते हुए।
कर्नाघ मानचित्र कार्यान्वयन
कर्नाघ मानचित्र (K-maps) 2-4 चरों के साथ बूलियन व्यंजकों को न्यूनतम करने के लिए एक ग्राफिकल विधि प्रदान करते हैं। सत्य तालिका को एक ग्रिड में व्यवस्थित किया जाता है जहां आसन्न सेल बिल्कुल एक चर से भिन्न होते हैं। 2 की शक्तियों (1, 2, 4, 8 सेल) में आसन्न 1s को समूहीकृत करना न्यूनतम उत्पादों के योग व्यंजक में उत्पाद पदों की पहचान करता है। बड़े समूह कम शाब्दिक के साथ सरल पदों से मेल खाते हैं। K-maps निरीक्षण द्वारा न्यूनतम व्यंजक को देखना और खोजना आसान बनाते हैं। 4 से अधिक चरों वाले फ़ंक्शन के लिए, Quine-McCluskey जैसे एल्गोरिथमिक तरीकों का उपयोग किया जाता है, क्योंकि K-maps बेकाबू हो जाते हैं।
लागत मीट्रिक (गेट गणना, विलंब, शक्ति)
सर्किट गुणवत्ता को कई मीट्रिक द्वारा मापा जाता है। गेट गणना विनिर्माण लागत और चिप क्षेत्र को प्रभावित करती है—कम गेट्स का मतलब सस्ता उत्पादन है। प्रसार विलंब अधिकतम परिचालन गति निर्धारित करता है; लंबे पथ घड़ी आवृत्ति को सीमित करते हैं। बिजली की खपत मोबाइल उपकरणों में बैटरी जीवन और सर्वर में शीतलन आवश्यकताओं को प्रभावित करती है। ये मीट्रिक अक्सर संघर्ष करते हैं: गेट्स को कम करने से विलंब बढ़ सकता है, या एक सर्किट को तेज करने से बिजली बढ़ सकती है। डिज़ाइनरों को एप्लिकेशन आवश्यकताओं के आधार पर इन ट्रेड-ऑफ को संतुलित करना चाहिए। उच्च-प्रदर्शन प्रोसेसर गति को प्राथमिकता देते हैं, मोबाइल उपकरण बिजली को प्राथमिकता देते हैं, और लागत-संवेदनशील अनुप्रयोग क्षेत्र को प्राथमिकता देते हैं।
अनुकूलन में ट्रेड-ऑफ
सर्किट अनुकूलन अंतर्निहित ट्रेड-ऑफ शामिल करता है। गति बनाम क्षेत्र: तेज सर्किट (कैरी-लुकअहेड एडर्स) धीमे (रिपल-कैरी एडर्स) की तुलना में अधिक गेट्स का उपयोग करते हैं। गति बनाम शक्ति: उच्च गति बढ़ी हुई स्विचिंग आवृत्ति और संभावित वोल्टेज वृद्धि के कारण अधिक शक्ति की आवश्यकता होती है। दो-स्तरीय बनाम बहु-स्तरीय: दो-स्तरीय लॉजिक तेज है लेकिन अधिक गेट्स का उपयोग करता है; बहु-स्तरीय कम गेट्स का उपयोग करता है लेकिन लंबे विलंब है। इन ट्रेड-ऑफ को समझने से डिज़ाइनरों को एप्लिकेशन बाधाओं के आधार पर सूचित निर्णय लेने की अनुमति मिलती है। आधुनिक डिज़ाइन उपकरण प्रतिस्पर्धी आवश्यकताओं को संतुलित करने वाले पेरेटो-इष्टतम समाधान खोजने के लिए बहु-उद्देश्य अनुकूलन का उपयोग करते हैं।
वास्तविक दुनिया के अनुप्रयोग
लॉजिक गेट्स और डिजिटल सर्किट केवल सैद्धांतिक निर्माण नहीं हैं—वे सभी आधुनिक कंप्यूटिंग और डिजिटल प्रौद्योगिकी की नींव बनाते हैं।
अंकगणितीय तर्क इकाइयां (ALU) CPU में
ALU एक प्रोसेसर का कम्प्यूटेशनल हृदय है, अंकगणितीय संचालन (जोड़, घटाव, गुणा) और तार्किक संचालन (AND, OR, NOT, XOR) करता है। यह एडर्स, तुलनित्र, लॉजिक गेट्स, और संचालन चयन संकेतों द्वारा नियंत्रित मल्टीप्लेक्सर से बना है। ALU रजिस्टरों से ऑपरेंड प्राप्त करता है, चयनित संचालन करता है, और स्थिति झंडे (शून्य, नकारात्मक, कैरी, ओवरफ्लो) के साथ परिणाम आउटपुट करता है। आधुनिक ALU अत्यधिक अनुकूलित हैं, गति को अधिकतम करने के लिए कैरी-लुकअहेड जोड़ और समानांतर उपसर्ग एल्गोरिदम जैसी तकनीकों का उपयोग करते हुए। ALU का डिज़ाइन सीधे प्रोसेसर प्रदर्शन को प्रभावित करता है।
मेमोरी एड्रेसिंग और डिकोडिंग
मेमोरी सिस्टम विशिष्ट भंडारण स्थानों का चयन करने के लिए डीकोडर का उपयोग करते हैं। एक पता डीकोडर एक बाइनरी पते को एक वन-हॉट संकेत में परिवर्तित करता है जो बिल्कुल एक मेमोरी सेल या शब्द को सक्षम करता है। उदाहरण के लिए, 64KB मेमोरी में एक 16-बिट पते को 16-टू-65536 डीकोडर की आवश्यकता होती है (अक्सर पदानुक्रमित रूप से लागू किया जाता है)। RAM चिप में पंक्ति और स्तंभ डीकोडर व्यक्तिगत मेमोरी सेल का चयन करते हैं। पते की डिकोडिंग यह भी निर्धारित करती है कि कई मेमोरी बैंकों के साथ सिस्टम में कौन सी मेमोरी चिप जवाब देती है। कुशल डीकोडर डिज़ाइन मेमोरी एक्सेस गति और बिजली की खपत के लिए महत्वपूर्ण है।
प्रोसेसर में नियंत्रण इकाइयां
नियंत्रण इकाई प्रोसेसर संचालन को समन्वित करती है, नियंत्रण संकेत उत्पन्न करती है जो डेटा आंदोलन और ALU संचालन का समन्वय करते हैं। यह निर्देशों को डीकोड करता है, यह निर्धारित करता है कि क्या संचालन करना है और किन रजिस्टरों और मेमोरी स्थानों तक पहुंचना है। नियंत्रण इकाइयां हार्डवायर्ड (लॉजिक गेट्स और राज्य मशीनों के साथ लागू, तेज लेकिन कम लचीला) या माइक्रोप्रोग्राम्ड (नियंत्रण अनुक्रमों को संग्रहीत करने वाले ROM का उपयोग करते हुए, अधिक लचीला लेकिन संभावित रूप से धीमा) हो सकती हैं। नियंत्रण इकाई फेच-डिकोड-एक्जीक्यूट चक्र को लागू करती है, बाधाओं का प्रबंधन करती है, और अपवादों को संभालती है। इसका डिज़ाइन प्रोसेसर जटिलता और प्रदर्शन को गहराई से प्रभावित करता है।
I/O इंटरफेसिंग
इनपुट/आउटपुट इंटरफेसिंग सर्किट प्रोसेसर को कीबोर्ड, डिस्प्ले, सेंसर और नेटवर्क जैसे बाहरी उपकरणों से जोड़ते हैं। इन सर्किटों में पता डीकोडर (I/O उपकरणों का चयन), डेटा बफर (बस से डिवाइस संकेतों को अलग करना), स्थिति रजिस्टर (डिवाइस तत्परता का संकेत), और नियंत्रण तर्क (डेटा स्थानांतरण समय का प्रबंधन) शामिल हैं। I/O नियंत्रक प्रोटोकॉल रूपांतरण, डेटा बफरिंग, और बाधा उत्पादन को संभालते हैं। सीरियल इंटरफेस (UART, SPI, I2C) समानांतर और सीरियल डेटा के बीच रूपांतरण के लिए शिफ्ट रजिस्टर का उपयोग करते हैं। समानांतर इंटरफेस एक साथ बहु-बिट स्थानांतरण के लिए लैच और बफर का उपयोग करते हैं।
एम्बेडेड सिस्टम और माइक्रोकंट्रोलर
एम्बेडेड सिस्टम समर्पित अनुप्रयोगों के लिए विशेष डिजिटल सर्किट के साथ प्रोसेसर को एकीकृत करते हैं: ऑटोमोटिव नियंत्रक, चिकित्सा उपकरण, घरेलू उपकरण, औद्योगिक स्वचालन। माइक्रोकंट्रोलर एक ही चिप पर CPU, मेमोरी, टाइमर, काउंटर, ADC/DAC कन्वर्टर्स, और I/O इंटरफेस को जोड़ते हैं। ये सिस्टम डिवाइस व्यवहार को नियंत्रित करने वाली राज्य मशीनों के लिए अनुक्रमिक सर्किट, सिग्नल प्रोसेसिंग और निर्णय लेने के लिए संयोजन सर्किट, और PWM उत्पादन, संचार प्रोटोकॉल, और सेंसर इंटरफेस के लिए विशेष डिजिटल ब्लॉक का उपयोग करते हैं। डिजिटल सर्किट सिद्धांत सीधे इन सर्वव्यापी प्रणालियों को डिज़ाइन करने और समझने के लिए लागू होते हैं।
डिज़ाइन विचार
व्यावहारिक डिजिटल सर्किट डिज़ाइन को वास्तविक दुनिया की भौतिक बाधाओं और सीमाओं का ध्यान रखना चाहिए जो आदर्श बूलियन बीजगणित कैप्चर नहीं करता है।
प्रसार विलंब और समय
प्रसार विलंब इनपुट परिवर्तन और परिणामी आउटपुट परिवर्तन के बीच का समय है। यह ट्रांजिस्टर स्विचिंग समय और इंटरकनेक्शन के माध्यम से सिग्नल प्रसार से उत्पन्न होता है। सर्किट के माध्यम से विभिन्न पथों में विभिन्न विलंब होते हैं, समय तिरछापन बनाते हैं। सिंक्रोनस सिस्टम में, घड़ी अवधि को सबसे लंबे संयोजन विलंब (महत्वपूर्ण पथ) प्लस फ्लिप-फ्लॉप सेटअप और घड़ी तिरछापन समय से अधिक होना चाहिए। समय बाधाओं का उल्लंघन करने से तर्क त्रुटियां और सिस्टम विफलता होती है। डिज़ाइनर स्थिर समय विश्लेषण उपकरणों का उपयोग करते हैं यह सत्यापित करने के लिए कि सभी समय बाधाओं को प्रक्रिया, वोल्टेज और तापमान भिन्नताओं में पूरा किया जाता है।
फैन-इन और फैन-आउट सीमाएं
फैन-इन एक गेट के इनपुट की संख्या है; फैन-आउट एक एकल आउटपुट द्वारा संचालित गेट इनपुट की संख्या है। व्यावहारिक गेट्स में सीमित फैन-इन (आमतौर पर 2-4 इनपुट) होता है क्योंकि अतिरिक्त इनपुट विलंब और क्षेत्र बढ़ाते हैं। फैन-इन सीमाओं से अधिक होने के लिए कैस्केडेड छोटे गेट्स से बड़े फ़ंक्शन बनाने की आवश्यकता होती है। फैन-आउट आउटपुट ड्राइव शक्ति द्वारा सीमित है—प्रत्येक संचालित इनपुट आउटपुट को लोड करता है, संक्रमण को धीमा करता है। फैन-आउट से अधिक होने से सिग्नल गुणवत्ता खराब होती है और विलंब बढ़ता है। समाधानों में बफर सम्मिलन, मजबूत ड्राइवरों का उपयोग, या लोडिंग को कम करने के लिए सर्किट को फिर से डिज़ाइन करना शामिल है।
बिजली की खपत
डिजिटल सर्किट गतिशील स्विचिंग (क्षमताओं को चार्ज/डिस्चार्ज करना) और स्थिर रिसाव (जब नाममात्र रूप से बंद हो तो ट्रांजिस्टर के माध्यम से वर्तमान) के माध्यम से बिजली की खपत करते हैं। शक्ति = CV²f (क्षमता × वोल्टेज² × आवृत्ति) गतिशील शक्ति के लिए, प्लस रिसाव। बिजली को कम करने में वोल्टेज कम करना (वर्ग पद के कारण सबसे प्रभावी), आवृत्ति कम करना, क्षमता को न्यूनतम करना (छोटे ट्रांजिस्टर, छोटे तार), स्विचिंग गतिविधि को कम करना (घड़ी गेटिंग, बेहतर एल्गोरिदम), और कम-रिसाव ट्रांजिस्टर का उपयोग करना शामिल है। बैटरी-संचालित उपकरणों और उच्च-प्रदर्शन प्रोसेसर में बिजली प्रबंधन महत्वपूर्ण है जहां शक्ति घनत्व प्रदर्शन को सीमित करता है।
शोर मार्जिन और सिग्नल अखंडता
शोर मार्जिन शोर की मात्रा है जो एक सिग्नल तर्क त्रुटियों का कारण बनने से पहले सहन कर सकता है। यह लॉजिक हाई के लिए न्यूनतम आउटपुट वोल्टेज और हाई के रूप में मान्यता प्राप्त न्यूनतम इनपुट वोल्टेज (और इसी तरह निम्न के लिए) के बीच का अंतर है। बड़े शोर मार्जिन बेहतर विश्वसनीयता प्रदान करते हैं। सिग्नल अखंडता के मुद्दे क्रॉसस्टॉक (आसन्न तारों के बीच युग्मन), ग्राउंड बाउंस (एक साथ स्विचिंग के कारण आपूर्ति वोल्टेज उतार-चढ़ाव), प्रतिबिंब (लंबी लाइनों पर प्रतिबाधा बेमेल), और विद्युत चुम्बकीय हस्तक्षेप से उत्पन्न होते हैं। अच्छे डिज़ाइन प्रथाओं में उचित बिजली आपूर्ति डीकपलिंग, नियंत्रित प्रतिबाधा संचरण लाइनें, विभेदक संकेत, और युग्मन को कम करने के लिए सावधानीपूर्वक लेआउट शामिल हैं।
लॉजिक से कंप्यूटर आर्किटेक्चर
यह समझना कि व्यक्तिगत लॉजिक गेट्स कैसे पूर्ण कंप्यूटिंग सिस्टम बनाने के लिए संयोजित होते हैं, ट्रांजिस्टर से प्रोसेसर तक सुरुचिपूर्ण पदानुक्रम को प्रकट करता है।
प्रोसेसर के निर्माण खंड
प्रोसेसर लॉजिक गेट्स से पदानुक्रमित रूप से बनाए जाते हैं। सबसे निचले स्तर पर, गेट्स संयोजन सर्किट (ALU, डीकोडर, मल्टीप्लेक्सर) और अनुक्रमिक सर्किट (रजिस्टर, काउंटर) बनाते हैं। ये कार्यात्मक इकाइयों में संयोजित होते हैं: निर्देश फेच इकाइयां, निर्देश डिकोड इकाइयां, निष्पादन इकाइयां, और मेमोरी प्रबंधन इकाइयां। कई कार्यात्मक इकाइयां एक पूर्ण प्रोसेसर कोर बनाती हैं। आधुनिक प्रोसेसर में इस पदानुक्रम में संगठित अरबों ट्रांजिस्टर होते हैं, लेकिन मौलिक सिद्धांत बुनियादी लॉजिक गेट्स के समान रहते हैं। यह पदानुक्रमित अमूर्तता डिज़ाइनरों को जटिलता का प्रबंधन करने की अनुमति देती है, ट्रांजिस्टर-स्तर के विवरणों में खोए बिना उपयुक्त स्तरों पर सोचना।
निर्देश निष्पादन
निर्देश निष्पादन में फेच-डिकोड-एक्जीक्यूट चक्र के माध्यम से डिजिटल सर्किट का समन्वय शामिल है। फेच: प्रोग्राम काउंटर मान पता डीकोडर के माध्यम से मेमोरी को भेजा जाता है; निर्देश पढ़ा जाता है और लैच का उपयोग करके निर्देश रजिस्टर में लोड किया जाता है। डिकोड: निर्देश बिट्स डीकोडर सर्किट द्वारा व्याख्या किए जाते हैं, नियंत्रण संकेत उत्पन्न करते हैं। एक्जीक्यूट: नियंत्रण संकेत ऑपरेंड को रूट करने के लिए मल्टीप्लेक्सर को कॉन्फ़िगर करते हैं, ALU संचालन मोड सेट करते हैं, और गंतव्य रजिस्टरों को परिणाम निर्देशित करते हैं। यह सभी समन्वय घटक स्तर पर अध्ययन किए गए समान गेट्स, फ्लिप-फ्लॉप और सर्किट का उपयोग करता है। निर्देश निष्पादन को समझना स्पष्ट करता है कि सॉफ़्टवेयर हार्डवेयर संचालन में कैसे अनुवादित होता है।
डेटा पथ और नियंत्रण पथ
प्रोसेसर डेटा पथ (डेटा को हेरफेर करने वाले सर्किट) को नियंत्रण पथ (नियंत्रण संकेत उत्पन्न करने वाले सर्किट) से अलग करते हैं। डेटा पथ में ALU, रजिस्टर, ऑपरेंड चयन के लिए मल्टीप्लेक्सर, और डेटा स्थानांतरण के लिए बसें होती हैं। इसे सामान्य संचालन को कुशलता से निष्पादित करने के लिए डिज़ाइन किया गया है। नियंत्रण पथ में निर्देश डीकोडर, नियंत्रण राज्य मशीन, और नियंत्रण संकेत जनरेटर होते हैं। यह निर्धारित करता है कि डेटा पथ घटक कब और कैसे संचालित होते हैं। यह अलगाव मॉड्यूलर डिज़ाइन को सक्षम करता है: डेटा पथ को प्रदर्शन के लिए अनुकूलित किया जा सकता है जबकि नियंत्रण पथ अनुक्रमण तर्क को संभालते हैं। इस अलगाव को समझना कंप्यूटर आर्किटेक्चर की कुंजी है।
फेच-डिकोड-एक्जीक्यूट चक्र
फेच-डिकोड-एक्जीक्यूट चक्र प्रोसेसर का मौलिक संचालन लूप है, पूरी तरह से डिजिटल सर्किट के साथ लागू किया गया है। फेच: प्रोग्राम काउंटर से निर्देश पता मेमोरी का चयन करने के लिए डीकोड किया जाता है; निर्देश पढ़ा जाता है और निर्देश रजिस्टर में संग्रहीत किया जाता है; प्रोग्राम काउंटर वृद्धि की जाती है (एक एडर का उपयोग करके)। डिकोड: निर्देश बिट्स डीकोडर सर्किट पर लागू होते हैं जो नियंत्रण संकेत उत्पन्न करते हैं जो संचालन प्रकार, स्रोत रजिस्टर और गंतव्य की पहचान करते हैं। एक्जीक्यूट: नियंत्रण संकेत डेटा पथ को कॉन्फ़िगर करते हैं; ऑपरेंड रजिस्टरों से पढ़े जाते हैं; ALU संचालन करता है; परिणाम वापस लिखे जाते हैं। यह चक्र आधुनिक प्रोसेसर में प्रति सेकंड अरबों बार दोहराता है, सभी डिजिटल सर्किट द्वारा समन्वित जो हमने अध्ययन किया है।