Recap - Full Testbench
CoddyのVerilogジャーニー「基礎」セクションの一部。レッスン 78/90。
チャレンジ
このチャレンジでは、テストベンチについて学んだすべての内容(stimulus、display、monitor、dumpfile、dumpvars、システムタスク)をテストします。テスト対象として XOR ゲートモジュールが与えられます。
行うこと:
次の要件を満たす完全なテストベンチを作成してください:
- 信号を宣言する(入力には
reg、出力にはwire) - 名前
dutで XOR ゲートをインスタンス化する xor_waveform.vcdという名前の波形ファイルを作成する- テストベンチ内のすべての信号をダンプする
- ヘッダー「Testing XOR Gate」を出力する
$monitorを使用して、time、x、y、z を追跡する- 4つすべての入力の組み合わせ(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: x と y の reg を宣言する
// TODO: z の wire を宣言する
// TODO: 名前 dut で xor_gate をインスタンス化する
// .x(x), .y(y), .z(z) を接続する
initial begin
// TODO: $dumpfile "xor_waveform.vcd" を追加する
// TODO: $dumpvars (0, testbench) を追加する
// TODO: $display "Testing XOR Gate" を追加する
// TODO: time、x、y、z の $monitor を追加する
// フォーマット: "Time %0t: x=%b, y=%b, z=%b"
// TODO: 4つの組み合わせすべての刺激を追加する
// 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オンラインコンパイラ