📉 VCD – Değer Değişim Dosyası (Value Change Dump)#
VCD, Verilog simülasyonu sırasında üretilen ve zaman içindeki sinyal değişimlerini kaydeden standart bir dalga formu dosya formatıdır. GTKWave gibi araçlarla görüntülenebilir.
✅ VCD Dosyası Nasıl Üretilir?#
Testbench içinde:
initial begin
$dumpfile("wave.vcd"); // Çıktı dosyası adı
$dumpvars(0, tb_top); // tb_top hiyerarşisindeki tüm sinyalleri kaydeder
end
$dumpfile
: dosya adını ayarlar$dumpvars(seviye, kapsam)
: hangi sinyallerin kaydedileceğini belirler
📊 GTKWave ile Görüntüleme:#
gtkwave wave.vcd
💡 Ek VCD Görevleri#
Görev | Açıklama |
---|---|
$dumpfile | VCD dosyasının adını belirler |
$dumpvars | Değişim kaydını başlatır |
$dumpoff | Geçici olarak kaydı durdurur |
$dumpon | Kaydı yeniden başlatır |
$dumpall | Tüm mevcut değerleri anında kaydeder |
$dumpflush | Verileri dosyaya anında yazar |
$dumpports | Sadece port seviyesindeki sinyalleri kaydeder |
✅ Özet#
Kavram | Amacı | Kullanım Alanı |
---|---|---|
İsim Alanı | Tanımlayıcı kapsamını sınırlar | Modüller |
VCD | Dalga formu görüntüleme için sinyal kaydı | Testbench |
$dumpfile | VCD çıktısı dosyasını ayarlar | Simülasyon |
$dumpvars | Sinyal değişimlerinin kaydını başlatır | Simülasyon |
module tb_vcd_demo;
reg clk = 0;
reg rst = 1;
reg [3:0] counter = 0;
// Clock generation
always #5 clk = ~clk;
// Simple counter logic
always @(posedge clk) begin
if (rst)
counter <= 0;
else
counter <= counter + 1;
end
// VCD dump setup
initial begin
$dumpfile("wave.vcd");
$dumpvars(0, tb_vcd_demo);
#10 rst = 0;
#100 $finish;
end
endmodule