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

ملخص - Testbench كامل

جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 78 من 90.

challenge icon

التحدي

يختبر هذا التحدي كل ما تعلمته حول منصات الاختبار (testbenches): المحفزات (stimulus)، والعرض (display)، والمراقبة (monitor)، وملف التفريغ (dumpfile)، ومتغيرات التفريغ (dumpvars)، ومهام النظام. لقد تم إعطاؤك وحدة بوابة XOR لاختبارها.
ما يجب القيام به:

قم بإنشاء منصة اختبار كاملة تقوم بما يلي:

  1. تعلن عن الإشارات (reg للمدخلات، و wire للمخرجات)
  2. تنشئ نسخة من بوابة XOR بالاسم dut
  3. تنشئ ملف شكل موجي باسم "xor_waveform.vcd"
  4. تقوم بتفريغ جميع الإشارات في منصة الاختبار
  5. تطبع ترويسة: "Testing XOR Gate"
  6. تستخدم $monitor لتتبع الوقت، و x، و y، و z
  7. تختبر جميع تركيبات المدخلات الأربعة (00، 01، 10، 11) مع تأخير #10 بين كل منها
  8. تطبع "Test complete" في النهاية
  9. تنهي المحاكاة باستخدام $finish

جرّب بنفسك

module xor_gate (
  input x,
  input y,
  output z
);
  assign z = x ^ y;
endmodule

module testbench;
  // TODO: x و y لـ reg قم بتعريف
  
  // TODO: z لـ wire قم بتعريف
  

  // TODO: dut بالاسم xor_gate قم بإنشاء نسخة من
  // Connect .x(x), .y(y), .z(z)


  initial begin
    // TODO: "xor_waveform.vcd" لـ $dumpfile أضف
    
    // TODO: (0, testbench) لـ $dumpvars أضف
    
    // TODO: "Testing XOR Gate" لـ $display أضف
    
    // TODO: z و y و x و الوقت لـ $monitor أضف
    // Format: "Time %0t: x=%b, y=%b, z=%b"
    
    // TODO: أضف المحفزات لجميع المجموعات الأربع
    // 00, 01, 10, 11 مع تأخير #10
    
    // TODO: "Test complete" لـ $display أضف
    
    // TODO: $finish أضف
    
  end
endmodule

جميع دروس الأساسيات