🛠️ UVM Testbench Top#
🎯 Amaç#
Bu sayfa, Adder tasarımı için testbench’in top module‘ünü açıklar. Bu modül:
✅ Clock ve reset üretir ✅ Adder DUT’u örnekler ✅ UVM config database kullanarak virtual interface ayarlar ✅ UVM testini başlatır ✅ Waveform kayıt işlemlerini başlatır
📜 Kod Örneği#
module top;
import adder_pkg::*;
import uvm_pkg::*;
adder_if vif();
adder DUT (
.clk(vif.clk),
.rst(vif.rst),
.num1(vif.num1),
.num2(vif.num2),
.out(vif.out)
);
initial begin
uvm_config_db #(virtual adder_if)::set(null, "*", "vif", vif);
uvm_top.enable_print_topology = 1;
run_test("adder_test");
end
// Clock üretimi
always #5 vif.clk = ~vif.clk;
initial vif.clk = 0;
// Reset üretimi
initial begin
vif.rst = 1;
#20 vif.rst = 0;
end
endmodule
🔍 Açıklamalar#
✅ adder_if: Adder DUT’a veri süren ve virtual interface ile UVM testbench’ine bağlanan arayüz.
✅ uvm_config_db: Virtual interface’i UVM bileşenlerine atamak için kullanılır.
✅ run_test(“adder_test”): adder_test
isimli testi başlatır.
✅ $dumpfile() ve $dumpvars(): Simülasyon sırasında waveform kaydını etkinleştirir.
💡 Özet#
- Bu top module, UVM testbench’in giriş noktasıdır.
- Tüm sinyaller ve reset burada kontrol edilir.
- Virtual interface bağlantısı, driver ve monitor bileşenlerinin DUT ile iletişim kurmasını sağlar.
- Varsayılan test senaryosu
adder_test
‘tir. - Waveform kaydı, simülasyon analizini kolaylaştırır. 📈