Dumpfile ve Dumpvars
Coddy'nin Verilog Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 76 / 90.
Dalga biçimleri, sinyal değişikliklerinin zaman içindeki görsel temsilidir. Bir dalga biçimi, simülasyon 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 dalga biçimi görüntüleyicide görüntüleyebileceğin bir dalga biçimi dosyası (VCD dosyası) oluşturmak için kullanılan sistem görevleridir. VCD, Value Change Dump ifadesinin kısaltmasıdır. Simülasyon sırasında gerçekleşen tüm sinyal değişikliklerini kaydeden bir dosyadır. Sinyalleri görsel olarak görmek için bu dosyayı bir dalga biçimi görüntüleyicide 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, dalga biçimi dosyasına hangi sinyallerin kaydedileceğini belirtir.
Sözdizimi:
$dumpvars(level, module_name);| Parametre | Anlamı |
|---|---|
level | Aktarılacak hiyerarşi düzeyi sayısı (0 = tüm düzeyler) |
module_name | Sinyallerin aktarılacağı modül |
Not: Hiyerarşi, diğer modüllerin içindeki modüller anlamına gelir. 0 kullanmak, üst modüldeki ve onun içindeki her modüldeki tüm sinyalleri dökerken 1 kullanmak yalnızca üst modüldeki sinyalleri döker.
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 Düzeyi Örnekleri
| Düzey | Hangi Veriler Dökülür |
|---|---|
0 | Modüldeki ve tüm alt modüllerdeki bütün sinyaller |
1 | Yalnızca belirtilen modüldeki sinyaller (alt modüller değil) |
Görev
Bir dalga biçimi dosyası oluşturmak için eksik $dumpfile ve $dumpvars ifadelerini ekleyin.
Yapılacaklar:
-
waveform.vcdadlı bir dosya oluşturmak için$dumpfileekleyin testbenchmodülündeki tüm sinyalleri dökmek için$dumpvarsekleyin
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.
Temel Bilgiler bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerMod Alma OperatörüKarşılaştırma OperatörleriTekrar - Basit MatematikBit Düzeyi Operatörleri7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND, OR ve NOT KapılarıXOR ve XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Verme
If İfadesiIf - ElseTekrar - Basit KarşılaştırıcıCase İfadesiCasex ve CasezTekrar - ALU Tasarımı2Veri Türleri
Wire TürüReg TürüTamsayı ve GerçelVektörlerDizilerParametrelerÖzet - Sinyalleri Tanımlama5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörTekrar - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüTekrar DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiTekrar - Döngü Kalıpları14Testbench Temelleri
Testbench NedirUyarıcı OluşturmaGörüntüleme ve İzlemeDumpfile ve DumpvarsSystem Task'lerini KullanmaTekrar - Tam Testbench3Sayı Sistemi
İkili GösterimBoyutlu SayılarBoyutsuz SayılarNegatif SayılarÖzel X ve Z DeğerleriTekrar - Sayı Biçimleri6Modüller
Modül YapısıGiriş ve Çıkış PortlarıÇift Yönlü PortlarModül ÖrneklendirmeAda Göre Port EşlemeSıraya Göre Port EşlemeTekrar - Bir Modül Oluşturma9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiBloklayıcı AtamaBloklamayan AtamaTekrar - Always ve Initial Karşılaştırması15Trafik Işığı Denetleyicisi
Durumları TanımlamaDurum Makinesi MantığıKendi başına pratik yap: Online Verilog derleyicisi