Dumpfile And Dumpvars
Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası. Ders 76 / 90.
Waveform'lar zaman içindeki sinyal değişikliklerinin görsel gösterimidir. Bir waveform, simulation sırasında sinyallerin (clk, a, b, out gibi) nasıl değiştiğini gösterir. Yatay eksen zamanı, dikey eksen ise sinyal değerlerini (0, 1, X, Z) gösterir.
$dumpfile ve $dumpvars, GTKWave gibi bir waveform viewer'da görüntüleyebileceğin bir waveform file (VCD file) oluşturmak için kullanılan sistem görevleridir. VCD, Value Change Dump anlamına gelir. Bu, simülasyon sırasında gerçekleşen tüm signal değişikliklerini kaydeden bir file'dır. signal'ları görsel olarak görmek için bu file'ı bir waveform viewer'da açabilirsin.
$dumpfile
$dumpfile oluşturulacak dalga biçimi dosyasının adını belirtir.
Sözdizimi:
$dumpfile("filename.vcd");Örnek:
$dumpfile("my_waveform.vcd");Bu, my_waveform.vcd adlı bir dosya oluşturur.
$dumpvars
$dumpvars, waveform dosyasında hangi sinyallerin kaydedileceğini belirtir.
Sözdizimi:
$dumpvars(level, module_name);| Parametre | Anlamı |
|---|---|
level | Dump edilecek hiyerarşi düzeyi sayısı (0 = tüm düzeyler) |
module_name | Sinyallerin hangi modülden dump edileceği |
Not: Hiyerarşi, diğer modüllerin içindeki modüller anlamına gelir. 0 kullanıldığında üst modüldeki ve onun içindeki her modüldeki tüm signals dökülürken, 1 kullanıldığında yalnızca üst modüldeki signals dökülür.
Yaygın Kullanım
initial begin
$dumpfile("dump.vcd");
$dumpvars(0, testbench);
end$dumpfile("dump.vcd")→dump.vcdadlı dosyayı oluşturur$dumpvars(0, testbench)→testbenchmodülündeki ve tüm alt modüllerdeki sinyalleri döker
Testbench ile Örnek
module or_gate (
input x,
input y,
output z
);
assign z = x | y;
endmodule
module testbench;
reg x, y;
wire z;
or_gate dut (
.x(x),
.y(y),
.z(z)
);
initial begin
$dumpfile("dump.vcd");
$dumpvars(0, testbench);
$display("Creating waveform file...");
x = 0; y = 0; #10;
x = 0; y = 1; #10;
x = 1; y = 0; #10;
x = 1; y = 1; #10;
$finish;
end
endmoduleDumpvars Seviyesi Örnekleri
| Seviye | Ne Dökülür |
|---|---|
0 | Modüldeki ve tüm alt modüllerdeki tüm sinyaller |
1 | Yalnızca belirtilen modüldeki sinyaller (alt modüller değil) |
Görev
Bir waveform file oluşturmak için eksik $dumpfile ve $dumpvars ifadelerini Add.
Yapılacaklar:
- waveform.vcd adlı bir file oluşturmak için
$dumpfileAdd - testbench module içindeki all signals değerlerini dump etmek için
$dumpvarsAdd
Kendin dene
module and_gate (
input a,
input b,
output c
);
assign c = a & b;
endmodule
module testbench;
reg a, b;
wire c;
and_gate dut (
.a(a),
.b(b),
.c(c)
);
initial begin
// TODO: "waveform.vcd" oluşturmak için $dumpfile ekle
// TODO: testbench'teki tüm sinyalleri dökmek için $dumpvars ekle
// İpucu: $dumpvars(0, testbench);
if ($test$plusargs("vcd")) begin
$display("VCD file created successfully");
end
$display("Simulation running...");
a = 0; b = 0; #10;
a = 0; b = 1; #10;
a = 1; b = 0; #10;
a = 1; b = 1; #10;
$display("Simulation complete. Open waveform.vcd");
$finish;
end
endmoduleBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
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 LogicKendi başına pratik yap: Online Verilog derleyicisi