¿La mejor manera de acceder a uvm_config_db desde el banco de pruebas?

Quiero crear un reloj en mi banco de pruebas de nivel superior, cuyo período se puede controlar desde la prueba. Lo que hice fue establecer el período en uvm_config_db y recuperarlo en el banco de pruebas. Tuve que poner un # 1 para asegurarme de que la fase de construcción había finalizado, de lo contrario, obtuve el valor equivocado:

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

Me molesta el # 1. ¿Hay una mejor manera de comprobar que la configuración se ha establecido? ¿Puedo bloquear de alguna manera hasta start_of_simulation_phase?

Respuestas a la pregunta(2)

Su respuesta a la pregunta