यूनिवर्सल वेरिफिकेशन मेथडोलॉजी (UVM) SystemVerilog डिज़ाइन को सत्यापित करने में मदद करने का एक लोकप्रिय तरीका है, और इसमें शामिल है विन्यास प्रणाली दुर्भाग्य से इसमें गति और उपयोग संबंधी कुछ समस्याएं हैं। सीमेंस ईडीए के रिच एडेलमैन ने इन मुद्दों से कैसे बचा जाए इस विषय पर एक विस्तृत 20 पेज का पेपर लिखा है, और मैंने आपके लिए मुख्य बिंदुओं को संक्षेप में प्रस्तुत किया है। सत्यापन इंजीनियर मान निर्धारित करने के लिए, फिर बाद में अपने UVM परीक्षण में मान प्राप्त करने के लिए UVM कॉन्फ़िगरेशन डेटाबेस का उपयोग करते हैं। 'T' मान सेट करने और प्राप्त करने का एक उदाहरण है:
uvm_config#(T)::सेट(स्कोप, इंस्टेंस_पाथ_नाम, फ़ील्ड_नाम, वैल्यू); uvm_config#(T)::get(स्कोप, इंस्टेंस_पाथ_नाम, फ़ील्ड_नाम, वैल्यू);
यूवीएम टेस्टबेंच को परीक्षण के तहत डिवाइस से कनेक्ट करने पर वर्चुअल इंटरफेस को पास करने के लिए कॉन्फ़िगरेशन डेटाबेस का उपयोग किया जाता है। UVM कॉन्फ़िगरेशन का उपयोग करने में तीन समस्याएं हैं:
- बड़ा कोड, कोड की लगभग 2,600 पंक्तियाँ
- सटीक प्रकार मिलान की आवश्यकता है, इसलिए 'int' और 'बिट' समान नहीं हैं
- धीमा कोड
धीमे कोड के मामले पर विचार करें, क्योंकि वाइल्डकार्ड वाले नामों का उपयोग करके सेट() पर हजारों कॉल के साथ 'सेट' और 'गेट' चरण को पूरा करने में 30 मिनट तक का समय लग सकता है।
रिच यूवीएम कॉन्फ़िगरेशन के लिए एक नया समाधान प्रस्तावित करता है जिसकी गति बहुत तेज़ है, इसकी तुलना में केवल कुछ सेकंड लगते हैं।
यदि आपका यूवीएम कोड वाइल्डकार्ड का उपयोग करने से बचता है और इसमें कुछ 'सेट' कमांड हैं, तो आपका कोड तेजी से चलेगा।
UVM कॉन्फ़िगरेशन समस्याओं के संभावित समाधान हैं:
- इसके बजाय एक वैश्विक चर का प्रयोग करें
- एक सेट के साथ UVM कॉन्फ़िगरेशन का उपयोग करें()
- कुछ सेट के साथ UVM कॉन्फ़िगरेशन का उपयोग करें()
- कॉन्फ़िगरेशन ट्री का उपयोग करें
- कुछ अलग करने की कोशिश करो
कुछ अलग करने की कोशिश करने का आखिरी तरीका नया समाधान है, और यह सेट() और गेट() एपीआई का उपयोग करना जारी रखता है, फिर कॉन्फ़िगरेशन के पैरामीटराइजेशन को हटाकर सरल बनाता है, प्राथमिकता को हटा देता है, और लुकअप एल्गोरिदम परिवर्तन को हटा देता है। इस नए दृष्टिकोण के परिणाम तेज़ गति हैं।
आपका नया कॉन्फ़िगरेशन आइटम 'config_item' से व्युत्पन्न वर्ग में परिभाषित किया गया है, और नीचे दिया गया उदाहरण सेट की जा रही संपत्ति के रूप में 'int value' दिखाता है। डिबग उद्देश्यों के लिए आप प्रीटी-प्रिंट फ़ंक्शन जोड़ते हैं।
वर्ग my_special_config_item config_item का विस्तार करता है; फ़ंक्शन नया (स्ट्रिंग नाम = "my_special_config_item"); सुपर.न्यू(नाम); एंडफ़ंक्शन पूर्णांक मान; वर्चुअल फ़ंक्शन स्ट्रिंग Convert2string(); वापसी $sformatf("%s - value=%0d <%s>", get_name(), value, super.convert2string()); एंडफ़ंक्शन एंडक्लास
'Config_item' में एक नाम विशेषता है, और इस नाम को देखा जाता है, साथ ही उदाहरण का नाम भी। कॉन्फ़िगरेशन ऑब्जेक्ट में नाम वापस करने के लिए get_name() फ़ंक्शन भी है। किसी भी "instance_name.field_name" को खोजने के लिए कॉन्फ़िगरेशन डेटाबेस तेज़ लुकअप और निर्माण गति के लिए एक सहयोगी सरणी का उपयोग करता है।
पता लगाने की क्षमता के लिए आप पता लगा सकते हैं कि किसने सेट किया या किसने गेट कहा, क्योंकि फ़ाइल नाम और लाइन नंबर सेट() और गेट() फ़ंक्शन कॉल में फ़ील्ड हैं।
सेट (शून्य, "top.ab*", "स्पीड", my_speed_config, `__FILE__, `__LINE__) प्राप्त करें (शून्य, "top.abcdmonitor1", "स्पीड", स्पीडकॉन्फिग, `__FILE__, `__LINE__)
एक्सेसर कतार को डिबग के दौरान मुद्रित किया जा सकता है यह देखने के लिए कि सेट() और गेट() को किसने कॉल किया है।
वाइल्डकार्ड का समर्थन करने के लिए कंटेनरों का उपयोग करके एक लुकअप तंत्र जोड़ना आवश्यक है। उदाहरण के नाम 'top.abcd*_0' पर विचार करें।
इंस्टेंस नाम के वाइल्डकार्ड भाग को एसोसिएटिव ऐरे के बजाय कंटेनर ट्री का उपयोग करके नियंत्रित किया जाता है।
सारांश
यूवीएम टेस्टबेंच में मॉड्यूल/इंस्टेंस और क्लास-आधारित दुनिया के बीच डेटा साझा करना यूवीएम कॉन्फ़िगरेशन डेटाबेस का उपयोग करके किया जा सकता है, बस गति धीमी होने के प्रति सचेत रहें। यदि आपकी कार्यप्रणाली बहुत सारे कॉन्फ़िगरेशन का उपयोग करती है, तो पेश किए गए नए दृष्टिकोण का उपयोग करने पर विचार करें जिसमें यूवीएम कॉन्फ़िगरेशन डेटाबेस फ़ाइल में कोड की 300 लाइनों के बजाय लगभग 2,600 लाइनों का उपयोग करने वाला पैकेज है।
पूरा 20 पेज का पेपर पढ़ें, कॉन्फ़िगरेशन पागलपन से बचने का आसान तरीका सीमेंस ईडीए में।
संबंधित ब्लॉग
इस पोस्ट को इसके माध्यम से साझा करें:
- एसईओ संचालित सामग्री और पीआर वितरण। आज ही प्रवर्धित हो जाओ।
- प्लेटोडेटा.नेटवर्क वर्टिकल जेनरेटिव एआई। स्वयं को शक्तिवान बनाएं। यहां पहुंचें।
- प्लेटोआईस्ट्रीम। Web3 इंटेलिजेंस। ज्ञान प्रवर्धित। यहां पहुंचें।
- प्लेटोईएसजी. कार्बन, क्लीनटेक, ऊर्जा, पर्यावरण, सौर, कचरा प्रबंधन। यहां पहुंचें।
- प्लेटोहेल्थ। बायोटेक और क्लिनिकल परीक्षण इंटेलिजेंस। यहां पहुंचें।
- स्रोत: https://semiwiki.com/eda/339885-making-uvm-faster-through-a-new-configuration-system/
- :हैस
- :है
- :नहीं
- $यूपी
- 30
- 300
- 600
- a
- About
- जोड़ना
- जोड़ने
- कलन विधि
- भी
- an
- और
- कोई
- एपीआई
- दृष्टिकोण
- हैं
- ऐरे
- AS
- At
- से बचने
- जागरूक
- b
- BE
- क्योंकि
- जा रहा है
- नीचे
- के बीच
- by
- बुलाया
- कॉल
- कर सकते हैं
- मामला
- परिवर्तन
- कक्षा
- कोड
- तुलना
- पूरा
- विन्यास
- विचार करना
- कंटेनर
- कंटेनरों
- जारी
- निर्माण
- तिथि
- डाटाबेस
- परिभाषित
- निकाली गई
- डिजाइन
- विस्तृत
- युक्ति
- विभिन्न
- किया
- दौरान
- आसान
- इंजीनियर्स
- ईथर (ईटीएच)
- उदाहरण
- फैली
- फास्ट
- और तेज
- कुछ
- फ़ील्ड
- पट्टिका
- खोज
- के लिए
- से
- पूर्ण
- समारोह
- मिल
- मिल रहा
- वैश्विक
- चला गया
- मदद
- हाइलाइट
- कैसे
- How To
- HTTPS
- if
- in
- शामिल
- उदाहरण
- बजाय
- इंटरफेस
- शुरू की
- मुद्दों
- IT
- जेपीजी
- केवल
- पिछली बार
- बाद में
- लाइन
- पंक्तियां
- देखा
- लुकअप
- बहुत सारे
- निर्माण
- मिलान
- अधिकतम-चौड़ाई
- तंत्र
- क्रियाविधि
- मिनट
- मिनट
- बहुत
- नाम
- नामों
- नया
- नया समाधान
- संख्या
- वस्तु
- of
- on
- ONE
- केवल
- or
- आउट
- पैकेज
- काग़ज़
- भाग
- पास
- चरण
- प्लेटो
- प्लेटो डेटा इंटेलिजेंस
- प्लेटोडाटा
- प्लस
- लोकप्रिय
- पद
- प्रधानता
- समस्याओं
- संपत्ति
- का प्रस्ताव
- प्रयोजनों
- हटा देगा
- हटाने
- अपेक्षित
- परिणाम
- वापसी
- धनी
- रन
- क्षेत्र
- सेकंड
- देखना
- सेट
- की स्थापना
- दिखाता है
- सीमेंस
- सरल
- धीमा
- मंदी
- So
- समाधान
- समाधान ढूंढे
- कुछ
- कुछ
- गति
- गति
- तार
- संक्षेप में प्रस्तुत करना
- सुपर
- समर्थन
- प्रणाली
- T
- लेना
- ले जा
- परीक्षण
- कि
- RSI
- लेकिन हाल ही
- फिर
- वहाँ।
- इन
- इसका
- हजारों
- तीन
- यहाँ
- पहर
- सेवा मेरे
- ऊपर का
- विषय
- सुराग लग सकना
- पेड़
- की कोशिश कर रहा
- टाइप
- के अंतर्गत
- दुर्भाग्य से
- सार्वभौम
- प्रयोग
- उपयोग
- का उपयोग करता है
- का उपयोग
- मूल्य
- मान
- परिवर्तनशील
- सत्यापन
- सत्यापित
- के माध्यम से
- वास्तविक
- मार्ग..
- कौन कौन से
- कौन
- मर्जी
- साथ में
- विश्व
- लिखा था
- इसलिए आप
- आपका
- जेफिरनेट