Najlepszy sposób na dostęp do uvm_config_db z testbench?
Chcę utworzyć zegar w moim testbench najwyższego poziomu, którego okres można kontrolować za pomocą testu. To, co zrobiłem, to ustawienie okresu na uvm_config_db i odzyskanie go w testbench. Musiałem umieścić # 1, aby upewnić się, że faza kompilacji została zakończona, w przeciwnym razie get zwróci błędną wartość:
module testbench_top;
int clk_period;
bit clk = 0;
initial begin
#1;
void'(uvm_config_db #(int) ::get(null, "uvm_test_top.env", "clk_period", clk_period));
// Create clk
forever begin
#(clk_period/2) clk = !clk;
end
end
Jestem zirytowany # 1. Czy jest lepszy sposób na sprawdzenie, czy konfiguracja została ustawiona? Czy mogę jakoś zablokować do start_of_simulation_phase?