2 / 24 · अवधारणा
बिट चौड़ाई, चिह्न विस्तार और ओवरफ़्लो
संख्यात्मक उदाहरणों से व्याख्या, विस्तार और चौड़ाई घटाने में अंतर समझें।
पाठ पढ़ना मुफ़्त है। प्रगति सेव करने के लिए नामांकन करें।
बिट पैटर्न और उसके अर्थ को अलग रखें
आठ बिट का पैटर्न 1111_1101 चिह्नरहित 253 या चिह्नयुक्त टूज़ कॉम्प्लीमेंट -3 को दर्शाता है। संग्रहीत बिट समान हैं, लेकिन तुलना और विस्तार अलग होते हैं। आठ बिट का चिह्नयुक्त मान -128 से 127 तक होता है; चिह्नरहित मान 0 से 255 तक होता है। चौड़ाई दर्शाए जा सकने वाले पैटर्नों की संख्या तय करती है, जबकि चिह्नयुक्तता उनकी संख्यात्मक व्याख्या तय करती है।
चिह्नरहित 253 को सोलह बिट में ले जाते समय शून्य विस्तार करें। -3 का चिह्न विस्तार करने के लिए उसके मूल सबसे महत्वपूर्ण बिट को दोहराएँ; परिणाम 1111_1111_1111_1101 होगा। शून्य विस्तार -3 को 253 में बदल देगा। SystemVerilog में गणना से पहले ऑपरैंड के प्रकार और चौड़ाई स्पष्ट तय करें; यह न मानें कि संयोजन या बिट खंड चयन आपकी इच्छित चिह्नयुक्त व्याख्या बनाए रखेगा।
logic [7:0] ua, ub;
logic [8:0] usum;
logic signed [7:0] sa, sb;
logic signed [8:0] sax, sbx, ssum;
assign usum = {1'b0, ua} + {1'b0, ub};
assign sax = {sa[7], sa};
assign sbx = {sb[7], sb};
assign ssum = sax + sbx;यहाँ जोड़ से पहले दोनों इनपुट नौ बिट के बनते हैं। चिह्नरहित 255+1 का परिणाम 256 है, जिसके निचले आठ बिट शून्य हैं। चिह्नयुक्त 127+1 का गणितीय मान भी 128 है, लेकिन चिह्नयुक्त आठ बिट में चौड़ाई घटाने पर -128 मिलता है। कैरी चिह्नरहित सीमा बताता है; चिह्नयुक्त ओवरफ़्लो चिह्नयुक्त सीमा बताता है। समान चिह्न वाले ऑपरैंड जोड़ने पर परिणाम का चिह्न बदलना चिह्नयुक्त ओवरफ़्लो दर्शाता है। -1 और 1 जोड़ने से चिह्नयुक्त ओवरफ़्लो के बिना कैरी आ सकता है।
मध्यवर्ती चौड़ाई भी तय करें। आठ बिट के चिह्नरहित मानों का सबसे बड़ा गुणनफल 65025 है और उसे सोलह बिट चाहिए। चार चिह्नरहित आठ बिट मानों का योग 1020 तक हो सकता है, जिसके लिए दस बिट चाहिए। हर आंशिक योग को आठ बिट में काटने से ऐसी जानकारी खो जाती है जिसे चौड़ा अंतिम रजिस्टर वापस नहीं ला सकता।
| ऑपरेशन | चौड़ा परिणाम | संकुचित व्याख्या |
|---|---|---|
| चिह्नरहित 255+1 | 256 | कैरी के साथ 0 |
| चिह्नयुक्त 127+1 | 128 | ओवरफ़्लो के साथ -128 |
| चिह्नयुक्त -3+2 | -1 | ओवरफ़्लो के बिना -1 |
अनचाहे आकार परिवर्तनों की जाँच के लिए Verilator की WIDTH चेतावनियाँ देखें। इस पाठ्यक्रम की Node जाँचें संख्यात्मक मॉडल चलाती हैं, ये HDL अंश नहीं। सामान्य धनात्मक उदाहरणों को शुद्धता का प्रमाण मानने से पहले शून्य, चरम मान और मिले-जुले चिह्न जाँचें।
खुद आज़माएँ
आठ बिट के -3 और 2 का नौ बिट में चिह्न विस्तार करके जोड़ने का परिणाम निकालें। साथ ही 255 के चार चिह्नरहित मानों के सटीक योग की न्यूनतम चौड़ाई निकालें।
व्याख्या पढ़ें
नौ बिट के ऑपरैंड 111111101 और 000000010 हैं। उनका योग 111111111, अर्थात -1 है। 255 के चार मानों का योग 1020 है; नौ चिह्नरहित बिट 511 तक ही पहुँचते हैं, इसलिए दस बिट चाहिए।