ملخص - Testbench كامل
جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 78 من 90.
التحدي
يختبر هذا التحدي كل ما تعلمته عن لوحات الاختبار (testbenches): المحفزات (stimulus)، العرض (display)، المراقبة (monitor)، ملف التفريغ (dumpfile)، متغيرات التفريغ (dumpvars)، والمهام النظامية (system tasks). يُعطى لك وحدة بوابة XOR لاختبارها.
ما يجب عليك فعله:
قم بإنشاء testbench كامل يقدم ما يلي:
- يعلن عن الإشارات (
regللمدخلات، وwireللمخرجات) - يقوم بإنشاء كائن من بوابة
XORباسمdut - ينشئ ملف شكل موجة باسم
xor_waveform.vcd - يقوم بتفريغ جميع الإشارات في
testbench - يطبع الترويسة: "Testing XOR Gate"
- يستخدم
$monitorلتتبع الوقت، x، y، و z - يختبر جميع تركيبات المدخلات الأربعة (00، 01، 10، 11) مع تأخير
#10بين كل منها - يطبع "Test complete" في النهاية
- ينهي المحاكاة باستخدام
$finish
جرّب بنفسك
module xor_gate (
input x,
input y,
output z
);
assign z = x ^ y;
endmodule
module testbench;
// TODO: أعلن عن reg لـ x و y
// TODO: أعلن عن wire لـ z
// TODO: أنشئ مثيلاً من xor_gate بالاسم dut
// وصّل .x(x), .y(y), .z(z)
initial begin
// TODO: أضف $dumpfile "xor_waveform.vcd"
// TODO: أضف $dumpvars (0, testbench)
// TODO: أضف $display "Testing XOR Gate"
// TODO: أضف $monitor لـ time و x و y و z
// الصيغة: "Time %0t: x=%b, y=%b, z=%b"
// TODO: أضف محفزات لجميع التركيبات الأربع
// 00, 01, 10, 11 مع تأخير #10
// TODO: أضف $display "Test complete"
// TODO: أضف $finish
end
endmoduleجميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)معاملات المقارنةملخص - رياضيات بسيطةمعاملات Bitwise7التعيين والبوابات المنطقية
التعيين المستمرالتعيين باستخدام العملياتالبوابات الأساسية المدمجةبوابات AND و OR و NOTبوابات XOR و XNORمراجعة - دارة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الدمجالمعامل الشرطيمراجعة - تحدي المعاملات14أساسيات الـ Testbench
ما هو الـ Testbenchإنشاء المحفزاتالمهام Display و Monitorالمهام Dumpfile و Dumpvarsاستخدام مهام النظامملخص - Testbench كامل3أنظمة العد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ Inoutاستدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة