[بوين] اختيار من كبار UVM الاستخدام المزدوج

في UVM، ونحن عموما استخدام نموذج واحد على مستوى أعلى. التي ليست سوى قمة uvm_test_top، ثم أدناه الحياة الفطرية، الحياة الفطرية أدناه وكيل وهلم جرا. كما هو مبين أدناه:

حسب الوظيفة uvm_top.print_topology، طوبولوجيا طباعة UVM. على سبيل المثال، باعتبارها واحدة من البيئة UVM بلدي، طوبولوجيا الطباعة هي كما يلي:

إذا كان لدي البيئة UVM آخر، ثم كيف يمكن بسيطة، وهما البيئة UVM لدمج معا، والتحقق بشكل عام؟

في هذه الحالة، فمن الضروري استخدام مزدوج هيكل رأس UVM.

A، UVM تحقيق قمة مزدوجة

في الواقع UVM، وليس هناك حد تحت uvm_top، فقط عقدة ورقة واحدة، وهو uvm_test، هل يمكن أن يكون متعددة رقة العقد، الذي هو أكثر uvm_test. ولكن، لا يمكن أن يطلق عليه اسم العقدة كلمة، uvm_test_top.

إذا كان اسم كلمة عقدة، هو نفسه، مثل uvm_test_top المكالمة، ثم في المرة محاكاة ستعطى:

باستخدام اثنين من uvm_test أعلى، والبنية التالية:

فوق، وهناك نوعان uvm_test أعلى، وهو اسم المستوى الأعلى هو uvm_test uvm_test_top، اسم آخر هو uvm_test أعلى uvm_test_top1.

في هذه الحالة، كل uvm_test أدناه، يمكن أن يكون بيئة UVM الخاصة بهم. بهذه الطريقة، يمكن بسهولة اثنين، أو أكثر من بيئة UVM، لدمج معا.

وقال التالية حول كيفية دمج:

على سبيل المثال، هناك بيئة UVM أخرى تسمى UVM الخاص بك، ثم قبل كل شيء أن هذه البيئة UVM، وتعبئتها وحدة نمطية المجمع على مستوى أعلى، بحيث غيرها من بيئة UVM UVM تستخدم هذه البيئة، يمكنك فقط مثيل المجمع على مستوى أعلى إلى بيئته التي هي يمكن.

كما هو مبين أدناه، والبيئة RTL تحتاج إشارة UVM الخاص بك، يتم تعريف إشارة في قائمة وحدة المنفذ، متصلة واجهة البيئة الداخلية للUVM الخاص بك.

وحدة test_bfm_top ( CLK ، rstn ، شفرة التشغيل

مساهمة CLK .

مساهمة rstn .

مساهمة < 8 : 0 > شفرة التشغيل .

test_bfm_if test_bfm_intf .

إسناد test_bfm_intf . CLK = CLK .

إسناد test_bfm_intf . rstn = rstn .

إسناد test_bfm_intf . شفرة التشغيل = شفرة التشغيل .

هنا هو مفتاح الشفرة:

أول بدأ

uvm_config_db # (الظاهري test_bfm_if ) :: مجموعة ( uvm_root :: الحصول على ، "*" ، "Test_bfm_vif" ، test_bfm_intf

`Ifndef USER_RUN

run_test ( "Test_bfm_base_test"

`شيء آخر

بدأ

سلسلة testname = "Test_bfm_base_test" .

`Ifdef UVM_1_1

حقيقة uvm_factory = uvm_factory :: الحصول على .

`شيء آخر

uvm_coreservice_t coreservice = uvm_coreservice_t :: الحصول على .

حقيقة uvm_factory = coreservice . get_factory .

`ENDIF

إذا ( $ دولار قيمة plusargs ( "+ UVM_YOUR_TESTNAME" ، testname ))

$ العرض ( "وجدت testname الخاص بك: ليالي" testname

آخر

$ العرض ( "استخدام testname الافتراضي: test_bfm_base_teset"

حقيقة . create_component_by_name ( testname ، " ، "Bfm_test_top" ، uvm_top

$ العرض ( "Init_test_bfm_teset: الجذر لديها د أطفال" ، uvm_top . get_num_children

نهاية

`ENDIF

نهاية

أول آلية استخدام uvm_config_db، واجهة، وتمريرها إلى عنصر البيئة UVM الخاص بك، والحاجة إلى واجهة استخدام للذهاب.

زيادة USER_RUN يستخدم هذا الماكرو لتحديد والبيئة UVM الخاص بك، يتم تشغيل على حدة، أو لوضع UVM أخرى تعمل في البيئة.

إذا كنت تقوم بتشغيل وحده، ثم run_test ظيفة الدعوة المباشرة، يمكنك البدء في البيئة UVM الخاص بك.

إذا كنت في UVM أخرى تعمل في البيئة، ثم لا يمكنك استدعاء run_test، لأن البيئة UVM، run_test لا يمكن استدعاء مرتين. في هذا الوقت، سوف تحتاج إلى إنشاء مثيل بك UVM البيئة uvm_test، دليل، ومعطلا لuvm_top أقل.

رمز المفتاح في fact.create_component_by_name هذا سطر من التعليمات البرمجية. إنشاء مثيل مكون باستخدام مصنع آلية، وفقا لtestname واردة، وإنشاء مثيل bfm_test_top اسمه ،، وتحديد uvm_top العقدة الأصل. بعد وبالتالي خلق، في uvm_top، وسيكون هذا أكثر من عقدة تابعة bfm_test_top، بحيث البيئة UVM بأكملها، بل هو أكثر من uvm_test أعلى.

لجعل هذا bfm_test_top uvm_test أعلى، من خلال المعلمات المحاكاة، وتحتاج التغيرات الدينامية لتشغيل testcase، بزيادة قدرها + UVM_YOUR_TESTNAME هذه المعلمات محاكاة لتكون محددة.

في طبقة أعلى، أعلى طبقة بيئة مباشرة عبر تجسيد UVM من المجمع الحزمة، والاتصال إلى ميناء على حدة الإشارة. هذا يكمل دمج اثنين البيئة UVM.

وحدة tb_top .

ريج CLK .

ريج rstn .

hw_wrapper u_hw_wrapper (

. CLK ( CLK

. rstn ( rstn )

أول بدأ

CLK = 1'b0 .

إلى الأبد # 10 CLK = ~ CLK .

نهاية

أول بدأ

rstn = 1'n0 .

تكرار ( 100 ) @ (Posedge CLK

rstn = 1'b1 .

نهاية

// اختباري UVM

أول بدأ

uvm_config_db # (الظاهري sync_if ) :: مجموعة ( uvm_root :: الحصول على ،

"*" ،

"Sync_intf" ،

tb_top . u_hw_wrapper . sync_intf

نهاية

// اختبار UVM الخاص بك

الأسلاك < 8 : 0 > شفرة التشغيل = u_hw_wrapper . شفرة التشغيل .

test_bfm_top u_test_bfm_top ( CLK ، rstn ، شفرة التشغيل

endmodule

وبطبيعة الحال، في وقت الترجمة، إضافة إلى + تعريف + USER_RUN هذا الماكرو.

بواسطة uvm_top.print_topology وظيفة يمكن أن تكون مطبوعة في هذا الوقت طوبولوجيا UVM من:

كما يمكن أن يرى من طباعة والبيئة UVM، وهناك نوعان أعلى UVM اختبار كل من طبقة أعلى لديها بيئة UVM الخاصة بها.

من خلال ما سبق، سيكون من اثنين البيئة UVM، ودمجها في بيئة UVM معينة، ويمكن أن تكون المعلمات المحاكاة، و+ UVM_TESTNAME و+ UVM_YOUR_TESTNAME، تحديد اثنين البيئة UVM، الحاجة إلى تشغيل testcase مضاهاة.

الثانية، فوائد مضاعفة رأس

هذه ليست سوى مثال بسيط لتوضيح، جنبا إلى جنب، ثم ما هو جيد قمة مزدوجة في كيفية البيئة اثنين UVM لدمج؟

أعتقد أننا يمكن أن تعزز فوائد بيئة إعادة استخدام UVM. في مستوى وحدة، والتحقق من بيئة بناء UVM، عندما يرتفع مستوى الوحدة النمطية، ومستوى الملكية الفكرية، فإن هذا رفات البيئة UVM لا يزال من الممكن استخدامها. من المستوى الملكية الفكرية إلى مستوى أعلى، يمكنك الاستمرار في استخدام هذه البيئة UVM.

وسيتم وصف المثال التالي المقبل. على سبيل المثال، IP، وينقسم إلى وحدتين A و B. تدفق البيانات من الألف إلى B.

وحدة التحقق من صحة مسؤولة المشار A، B المشار حدة التحقق B المسؤول.

التحقق يبدأ، واختبار UVM بيئة البناء، وحدة التوثيق A. تحقق من الهياكل B UVM التوثيق، وحدة التوثيق B.

عندما التحقق والتوثيق الميثيل خلات، وتم التحقق، وهذه المرة للتحقق من مستوى IP، ثم المصادقة IP-متكاملة الوقت، يمكن استخدام فوق الطبقة العليا بطريقة مزدوجة، وUVM UVM بيئة تحقق وحدة وحدة نمطية B بيئة تحقق على الاندماج معا، وعلى مستوى التحقق من IP، وبالتالي تحقيق بيئة إعادة UVM.

وبطبيعة الحال، في هذه الحالة، والبيئة التحقق uvm_driver وحدة لإزالة B، حيث يتم اشتقاق وحدة الإدخال من A، ولكن الشاشة وما شابه ذلك يمكن أن يكون كل المتنوعة scoreboar.

عندما يتم التحقق IP، ضرورة أن تكون متكاملة في الجزء العلوي للتحقق من أن أعلى يمكن إعادة استخدام هذا IP UVM التحقق البيئة.

لذلك، أي أكثر من ضعف طبقة أعلى أو الطبقة العليا، ويمكن تحسين بيئة إعادة استخدام UVM. دعونا التحقق المستوى الأعلى يصبح سهلا.

AI 500 شركة محلية البيانات الكبيرة تحليل: التوزيع الصناعي ووضع الاستثمار المالي

كيف السائدة تيغوان L / كودي JAK / انج Kewei / صناعة التنقيب في مشروع مشترك المتوسط SUV إلى الانتخابات

طباعة الصور في أي وقت، والهواتف المحمولة في أي مكان، اللون حظة PV-123 كانون تقييم تجربة

فاز 80 مليون قلوب الذكور على التوالي من زوجته، يوي يوي مع "الحب الأرجوحة" الممثلة

رغبة يلتقي الشباب على شراء 100،000 يوان مشروع مشترك هاتشباك أوصت

لقد حان فرشاة وجه الدفع، والتسوق محادثة صوتية تكون بعيدة وراء؟

[الأحداث] الكثير من المال تبحث عن القطاع الإلكترونية، "الكابتن المعجزة" قصة رائعة

حزمة ماو شريحة عالية السرعة Youyang، جنوب الطريق عالية السرعة وسرعة عالية في جسر قويتشو نعمة تجميد خطير

"نهاية SIMEI العالم" البالغ من العمر 39 عاما يان ييكوان ترقية عندما بابا، قبل دونغ شوان شهر يكمن طويلة تكشف سر

[صناعة] الساخن كوالكوم تناول ما لا يقل عن "NXP" سامسونج أو النظر إلى اكتساب 44400000000 $

محرك السيارات الاسطوانة هو أفضل لشراء عدد قليل؟

فايرفوكس (فايرفوكس) مستخدمي متصفح، كلمة المرور الخاصة بك قد تم اختراق