23 / 37 · अवधारणा
तरंगरूप में नमूना समय और कारण-परिणाम
संयोजन स्थिरीकरण, क्लॉक कैप्चर और घटनाक्रम अलग करके तरंगरूप पढ़ें।
पाठ पढ़ना मुफ़्त है। प्रगति सेव करने के लिए नामांकन करें।
एक समय मान के भीतर भी क्रम है
तरंगरूप में संकेत एक टाइमस्टैम्प पर बदलते दिखें, तो वे बिना कारण एक साथ नहीं बदले। घटना-आधारित RTL सिम्युलेटर में सक्रिय घटनाएँ और nonblockingnonblocking अनुक्रमिक RTL में <= द्वारा असाइनमेंट। दाईं ओर का मूल्यांकन कर अद्यतन निर्धारित करता है, जिससे उसी एज के रजिस्टर पुरानी अवस्था के आधार पर गणना करते हैं। विस्तार से पढ़ें अद्यतन संसाधित होने के बाद मान स्थिर होते हैं। वास्तविक अवयव clock-to-Q और संयोजन प्रसार विलंबप्रसार विलंब इनपुट बदलने के बाद आउटपुट सही मान पर स्थिर होने तक का समय। तार्किक समतुल्यता और समय-संबंधी गुण अलग हैं। विस्तार से पढ़ें के बाद बदलता है। दोनों मॉडलों की व्याख्या अलग करें।
इस अभ्यास में इनपुट लागू करना → संयोजन मूल्यांकन → उदयी किनारेउदयी किनारा (rising edge) क्लॉक के 0 से 1 होने का क्षण। यह CLK=1 के पूरे स्तर-अंतराल से अलग है। विस्तार से पढ़ें पर कैप्चर → अवस्था अद्यतन के क्रम से अनुमान सारणी बनाएँ। उपकरण में इनपुट लगने और परिणाम दर्ज होने का समय भी जाँचें।
वास्तविक सिम्युलेटर की घटना समय-सारणी और आउटपुट दर्ज करने का समय देखें। नीचे अनुमान सारणी के चार अलग चरण हैं; उनका अर्थ चार क्लॉक चक्र नहीं है।
- इनपुट ड्राइव: a, b और sel बदलें
- संयोजन मूल्यांकन: y = sel ? b : a
- उदयी किनारा: एज से ठीक पहले y कैप्चर करें
- अद्यतन के बाद देखें: sampled_y की तुलना करें
पहले स्वतंत्र अपेक्षित मान निकालें
हर इनपुट समूह का y निकालें और वह किस एज पर q में आएगा, अलग स्तंभ में लिखें। वास्तविक और अपेक्षित परिणाम पहली बार जहाँ अलग हों, वह पंक्ति इनपुट लागू करने, चयन फलन या संग्रहण में कारण खोजने का दायरा घटाती है।
संक्रमण और स्थिर अवस्था अलग करें
चयन बदलते समय दोनों डेटा समान हों तो अंतिम आउटपुट समान रहना चाहिए, लेकिन अंदर के पथ विलंबों में अंतर से छोटा glitch आ सकता है। उलटे, परिणाम बदलने वाले हर सामान्य संक्रमण को glitch न कहें। तार्किक तरंगरूप की तुलना और भौतिक टाइमिंग विश्लेषण अलग प्रश्नों का उत्तर देते हैं।
सामान्य टेस्टबेंच में DUT की ही उदयी एज पर उद्दीपन बदलकर तुरंत परिणाम पढ़ने से race हो सकती है। ड्राइव और अवलोकन समय अलग रखें या clocking block जैसी स्पष्ट समकालिक विधि अपनाएँ। दिए DDS अभ्यास इनपुट JSON और उपकरण के एकल-क्लॉक नियम उपयोग करते हैं, इसलिए मनमाना #delay टेस्टबेंच न जोड़ें।
खुद आज़माएँ
अंतिम y और sampled_y दोनों 1 हों तो क्या बीच के चक्र भी सही थे, यह कह सकते हैं?
व्याख्या पढ़ें
नहीं। चयन उलटा जोड़ने या एक चक्र देर से संग्रहित करने पर भी अंतिम a=b=1 हो तो वही अंतिम मान आ सकता है। हर एज पर अपेक्षित मान मिलाएँ और a तथा b अलग होने पर sel बदलने वाला अंतराल अवश्य रखें।