Recap - Full 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جميع دروس الأساسيات
4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge14Testbench Basics
What Is A TestbenchCreating StimulusDisplay And MonitorDumpfile And DumpvarsUsing System TasksRecap - Full Testbench3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine Logicتدرّب بنفسك: مترجم Verilog عبر الإنترنت