Я хочу создать часы в своем тестовом банке верхнего уровня, чей период можно контролировать из теста. То, что я сделал, было установлено на период времени в uvm_config_db и вернуть его в testbench. Мне пришлось поставить # 1, чтобы убедиться, что этап сборки был завершен, иначе get вернул неправильное значение:
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
Меня раздражает # 1. Есть ли лучший способ проверить настройку конфигурации? Могу ли я как-то блокировать до start_of_simulation_phase?