تعد منهجية التحقق العالمية (UVM) طريقة شائعة للمساعدة في التحقق من تصميمات SystemVerilog، وتتضمن نظام التكوين الذي للأسف لديه بعض مشاكل السرعة والاستخدام. كتب ريتش إيدلمان من Siemens EDA ورقة مفصلة مكونة من 20 صفحة حول موضوع كيفية تجنب هذه المشكلات، وقد قمت بمراجعتها لتلخيص أبرز النقاط لك. يستخدم مهندسو التحقق قاعدة بيانات تكوين UVM لتعيين القيم، ثم للحصول على القيم لاحقًا في اختبار UVM الخاص بهم. أحد الأمثلة على تعيين القيمة "T" والحصول عليها هو:
uvm_config#(T)::set(scope, example_path_name, field_name, value); uvm_config#(T)::get(scope, example_path_name, field_name, value);
يستخدم توصيل منصة اختبار UVM بالجهاز قيد الاختبار قاعدة بيانات التكوين لتمرير الواجهات الافتراضية. هناك ثلاث مشاكل في استخدام تكوين UVM:
- كود كبير، حوالي 2,600 سطر من الكود
- يتطلب مطابقة تامة للنوع، لذا فإن "int" و"bit" ليسا متماثلين
- رمز بطيء
خذ بعين الاعتبار حالة التعليمات البرمجية البطيئة، لأنه مع آلاف الاستدعاءات لـ set()، فإن استخدام الأسماء ذات أحرف البدل يمكن أن يستغرق ما يصل إلى 30 دقيقة لإكمال مرحلة "set" و"get".
يقترح ريتش حلاً جديدًا لتكوينات UVM يتميز بسرعات أعلى بكثير، ولا يستغرق سوى بضع ثوانٍ بالمقارنة.
إذا كان رمز UVM الخاص بك يتجنب استخدام أحرف البدل ويحتوي على عدد قليل من أوامر "الضبط"، فسيتم تشغيل التعليمات البرمجية الخاصة بك بشكل أسرع.
الحلول الممكنة لمشكلات تكوين UVM هي:
- استخدم متغيرًا عموميًا بدلاً من ذلك
- استخدم تكوين UVM مع مجموعة واحدة ()
- استخدم تكوين UVM مع مجموعة قليلة ()
- استخدم شجرة التكوين
- جرب شيئًا مختلفًا
هذا النهج الأخير لتجربة شيء مختلف هو الحل الجديد، ويستمر في استخدام set() وget() API، ثم يتم تبسيطه عن طريق إزالة معلمات التكوينات، وإزالة الأسبقية، وإزالة تغيير خوارزمية البحث. نتائج هذا النهج الجديد هي سرعات عالية.
تم تعريف عنصر التكوين الجديد الخاص بك في الفئة المشتقة من "config_item"، ويوضح المثال أدناه "قيمة int" باعتبارها الخاصية التي يتم تعيينها. لأغراض تصحيح الأخطاء، يمكنك إضافة وظيفة الطباعة الجميلة.
يمتد الفصل my_special_config_item إلى config_item؛ وظيفة جديدة (اسم السلسلة = "my_special_config_item")؛ super.new(name); القيمة النهائية للوظيفة النهائية؛ سلسلة الوظيفة الافتراضية Convert2string(); return $sformatf("%s - value=%0d <%s>"، get_name(), value, super.convert2string()); وظيفة نهاية الطبقة النهائية
يحتوي "config_item" على سمة اسم، ويتم البحث عن هذا الاسم، بالإضافة إلى اسم المثيل. يحتوي كائن التكوين أيضًا على وظيفة get_name() لإرجاع الاسم. للعثور على أي "instance_name.field_name"، تستخدم قاعدة بيانات التكوين مصفوفة ترابطية لسرعات البحث والإنشاء السريعة.
لإمكانية التتبع، يمكنك معرفة من قام بتعيين أو من اتصل بـ get، لأن اسم الملف ورقم السطر عبارة عن حقول في استدعاءات الدالة set() وget().
set(null, "top.ab*"، "SPEED"، my_speed_config، `__FILE__، `__LINE__) get(null, "top.abcdmonitor1"، "SPEED"، speedconfig، `__FILE__، `__LINE__)
يمكن طباعة قائمة انتظار الوصول أثناء التصحيح لمعرفة من اتصل بـ set() و get().
لدعم أحرف البدل المطلوبة إضافة آلية بحث باستخدام الحاويات. خذ بعين الاعتبار اسم المثيل "top.abcd*_0".
تتم معالجة جزء البدل من اسم المثيل باستخدام شجرة الحاوية، بدلاً من المصفوفة النقابية.
نبذة عامة
يمكن إجراء مشاركة البيانات بين الوحدة النمطية/المثيل والعالم القائم على الفئة في منصة اختبار UVM باستخدام قاعدة بيانات تكوين UVM، فقط كن على دراية بتباطؤ السرعة. إذا كانت منهجيتك تستخدم الكثير من التكوينات، ففكر في استخدام النهج الجديد الذي تم تقديمه والذي يحتوي على حزمة تستخدم حوالي 300 سطر من التعليمات البرمجية بدلاً من 2,600 سطر من التعليمات البرمجية في ملف قاعدة بيانات تكوين UVM.
إقرأ الورقة كاملة مكونة من 20 صفحة، تجنب جنون التكوين بالطريقة السهلة في شركة سيمنز EDA.
مدونات ذات الصلة
شارك هذا المنشور عبر:
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- PlatoData.Network Vertical Generative Ai. تمكين نفسك. الوصول هنا.
- أفلاطونايستريم. ذكاء Web3. تضخيم المعرفة. الوصول هنا.
- أفلاطون كربون، كلينتك ، الطاقة، بيئة، شمسي، إدارة المخلفات. الوصول هنا.
- أفلاطون هيلث. التكنولوجيا الحيوية وذكاء التجارب السريرية. الوصول هنا.
- المصدر https://semiwiki.com/eda/339885-making-uvm-faster-through-a-new-configuration-system/
- :لديها
- :يكون
- :ليس
- $ UP
- 30
- 300
- 600
- a
- من نحن
- تضيف
- مضيفا
- خوارزمية
- أيضا
- an
- و
- أي وقت
- API
- نهج
- هي
- مجموعة
- AS
- At
- تجنب
- علم
- b
- BE
- لان
- يجري
- أقل من
- ما بين
- by
- تسمى
- دعوات
- CAN
- حقيبة
- تغيير
- فئة
- الكود
- مقارنة
- إكمال
- الاعداد
- نظر
- وعاء
- حاويات
- تواصل
- خلق
- البيانات
- قاعدة البيانات
- تعريف
- مستمد
- تصاميم
- مفصلة
- جهاز
- مختلف
- فعل
- أثناء
- سهل
- المهندسين
- الأثير (ETH)
- مثال
- يمتد
- FAST
- أسرع
- قليل
- مجال
- قم بتقديم
- في حالة
- تبدأ من
- بالإضافة إلى
- وظيفة
- دولار فقط واحصل على خصم XNUMX% على جميع
- الحصول على
- العالمية
- ذهب
- مساعدة
- ويبرز
- كيفية
- كيفية
- HTTPS
- if
- in
- يشمل
- مثل
- بدلًا من ذلك
- واجهات
- أدخلت
- مسائل
- IT
- JPG
- م
- اسم العائلة
- الى وقت لاحق
- خط
- خطوط
- بدا
- بحث
- الكثير
- القيام ب
- مطابقة
- ماكس العرض
- آلية
- آلية العمل
- دقيقة
- دقائق
- كثيرا
- الاسم
- أسماء
- جديد
- حل جديد
- عدد
- موضوع
- of
- on
- ONE
- فقط
- or
- خارج
- صفقة
- ورق
- جزء
- pass
- مرحلة جديدة
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- المزيد
- الرائج
- منشور
- الأولوية
- مشاكل
- الملكية
- يقترح
- أغراض
- يزيل
- إزالة
- مطلوب
- النتائج
- عائد أعلى
- النوادي الثرية
- يجري
- نطاق
- ثواني
- انظر تعريف
- طقم
- ضبط
- يظهر
- سيمنز
- يبسط
- بطيء
- تباطؤ
- So
- حل
- الحلول
- بعض
- شيء
- سرعة
- بسرعة
- خيط
- تلخيص
- فائق
- الدعم
- نظام
- T
- أخذ
- مع الأخذ
- تجربه بالعربي
- أن
- •
- من مشاركة
- then
- هناك.
- تشبه
- الآلاف
- ثلاثة
- عبر
- الوقت
- إلى
- تيشرت
- موضوع
- التتبع
- شجرة
- يحاول
- نوع
- مع
- لسوء الحظ
- عالمي
- الأستعمال
- تستخدم
- يستخدم
- استخدام
- قيمنا
- القيم
- متغير
- التحقق
- تحقق من
- بواسطة
- افتراضي
- طريق..
- التي
- من الذى
- سوف
- مع
- العالم
- كتب
- لصحتك!
- حل متجر العقارات الشامل الخاص بك في جورجيا
- زفيرنت