Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

النماذج المرجعية ودرجات التقييم

جزء من قسم تصميم RTL والتحقق منه في رحلة Verilog على Coddy. الدرس 28 من 38.

تحسب بيئة اختبار ذاتية التحقق السلوك المتوقع بشكل مستقل عن مخرجات التصميم. يمكن أن يستخدم النموذج المرجعي حسابًا مباشرًا حتى عندما يستخدم التنفيذ بنية مختلفة. تسجّل لوحة النتائج الملاحظات وحالات عدم التطابق. هيّئ عدّاداتها مرة واحدة لكل سيناريو، وقارن فقط بعد استقرار مخرجات التصميم.

مقتطف ذو صلة؛ تم توفير التصريحات والاتصالات المحيطة في التحدي.

expected = {1'b0,a} + {1'b0,b};
checked = checked + 1;
if(actual !== expected) errors = errors + 1;

تأتي القيمة المتوقعة من سلوك الإدخال المحدد، وليس من نسخ actual.

احسب القيم المتوقعة بشكل مستقل، وخذ عينة في وقت محدد، وتتبع كل نتيجة تم التحقق منها.

challenge icon

التحدي

متوسط

نفّذ فحصًا مرجعيًا لجامع غير موقّع من أربع بتات. احسب القيمة الرياضية الكاملة ذات الخمس بتات لـ a+b، ثم أعد ok=1 فقط إذا تطابقت actual مع تلك النتيجة تمامًا باستخدام مقارنة الحالات الأربع. تحتوي هذه الوحدة على task مخصّصة للمحاكاة فقط، ويستدعيها مخبر الاختبار المقفَل. أعمدة الإخراج: ok.

أكمل design.v وحافظ على أسماء الوحدات ومنافذها. يوفّر testbench.v المقفَل تغييرات الإدخال ويطبع المخرجات بعد استقرارها. ويختار سيناريو باستخدام وسيط للمحاكي مثل +CASE=1؛ ولا يلزم إدخال قياسي. أبقِ الطباعة والتحكم في السيناريو داخل مخبر الاختبار المقفَل؛ ونفّذ جسم task فقط. يجب أن يكون الإخراج المتوقع صفًا واحدًا من القيم العشرية لكل ملاحظة، تفصل بينها مسافة واحدة وتنتهي بسطر جديد.

جرّب بنفسك

module dut;
    task check_sum;
        input [3:0] a,b;
        input [4:0] actual;
        output ok;
        reg [4:0] expected;
        begin
            // أكمل مهمة المدقق.
            ok=0;
        end
    endtask
endmodule
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس تصميم RTL والتحقق منه

تدرّب بنفسك: مترجم Verilog عبر الإنترنت