16 / 63 · अवधारणा
योजक और carry प्रसार संरचना
पूर्ण योजक के सूत्र निकालें और ripple carry के कार्य, चौड़ाई तथा विलंब का संयुक्त विश्लेषण करें।
पाठ पढ़ना मुफ़्त है। प्रगति सेव करने के लिए नामांकन करें।
एक बिट के योग को दो बिट में दर्शाना
का योग 0 से 3 तक है, इसलिए योग बिट और अगले स्थान का carry चाहिए। तीनों में विषम संख्या में 1 हों तो योग बिट 1; कम से कम दो 1 हों तो carry 1 है।
को generate और को propagate कहें तो । यहाँ OR है। अर्ध योजक carry इनपुट के बिना विशेष मामला है: योग XOR और carry AND है।
तीनों इनपुट बदलकर जाँचें कि a+b+cin = sum+2×cout हमेशा सत्य है। carry अगले स्थान का इनपुट है और उसका भार sum के समान नहीं है।
a + b + cin = sum + 2 × cout
carry कहाँ तक जाता है
चार-बिट 1111 + 0001 लें। bit 0 में carry बनकर बाकी तीन स्थानों तक जाता है। संग्रहित योग 0000 और सर्वोच्च carry 1 है। ripple-carry संरचना में निचले स्थान का carry ऊपरी स्थान की गणना को प्रतीक्षा करा सकता है।
सूत्र इस तरह खोलने से carry की समानांतर गणना की संभावना दिखती है। वास्तविक तेज़ योजक समूह propagate/generate जोड़ते हैं, लेकिन fan-in, तार और सेल लाइब्रेरी के कारण क्षेत्रफल-विलंब का समझौता होता है। RTL का + अनिवार्यतः एक ripple-carry परिपथ में नहीं बदलता।
योग की चौड़ाई डिज़ाइन में स्पष्ट रखें
logic [3:0] a, b, sum;
logic cin, cout;
logic [4:0] wide_sum;
assign wide_sum = {1'b0, a} + {1'b0, b} + {4'b0000, cin};
assign sum = wide_sum[3:0];
assign cout = wide_sum[4];तक दर्शाने के लिए पाँच बिट पर्याप्त हैं। पहले तय करें कि केवल निचला योग चाहिए, carry अगले चरण में जाएगा, या संतृप्ति चाहिए। नीचे का अभ्यास एक पूर्ण योजक की सत्य सारणीसत्य सारणी हर संभव इनपुट संयोजन और उसके आउटपुट की पूरी सूची। समय के साथ बदलाव अलग तरंगरूप में जाँचे जाते हैं। विस्तार से पढ़ें जाँचता है; वास्तविक संश्लेषित परिपथ का विलंब नहीं मापता।
इनपुट बदलें
खुद आज़माएँ
चार-बिट unsigned में , , के लिए पूरा योग, चार-बिट योग और carry निकालें। उसी परिपथ को signed जोड़ मानें तो क्या केवल carry से overflow पता चलेगा?
व्याख्या पढ़ें
पूरा योग 16, बिट अनुक्रम 10000, इसलिए sum=0000, carry=1। signed व्याख्या में 1001 −7 है, इसलिए , जो सीमा के भीतर है। carry और signed overflow अलग शर्तें हैं।