مراجعة - 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لتتبّع time وx وy وz - يختبر all four combinations of inputs (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العوامل الجزء 1
العوامل الحسابيةعامل باقي القسمةعوامل المقارنةمراجعة - الرياضيات البسيطةالعوامل على مستوى البتات7التعيين والبوابات
التعيين المستمرالتعيين باستخدام العواملالعناصر الأساسية المدمجة للبواباتبوابات AND وOR وNOTبوابات XOR وXNORمراجعة - دائرة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الربطالمعامل الشرطيمراجعة - تحدي المعاملات11الحلقات التكرارية
حلقة Forحلقة Whileحلقة التكرارحلقة لا نهائيةتعليمة التعطيلمراجعة - أنماط الحلقات التكرارية14أساسيات Testbench
ما هو Testbenchإنشاء Stimulusالعرض والمراقبةDumpfile وDumpvarsاستخدام مهام النظاممراجعة - Testbench كامل3نظام الأعداد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ الإدخال والإخراج ثنائية الاتجاهإنشاء مثيل للوحدةربط المنافذ حسب الاسمربط المنافذ حسب الترتيبمراجعة - بناء وحدة9الكتل الإجرائية
كتلة Alwaysكتلة Initialقائمة الحساسيةإسناد حاجزإسناد غير حاجزمراجعة - Always مقابل Initial15متحكّم إشارات المرور
تعريف الحالاتمنطق آلة الحالاتتدرّب بنفسك: مترجم Verilog عبر الإنترنت