Does using type_id::create(..) in build_phase creates the instance in that phase?

In reply to chr_sue:

Hi,
I still didn’t understand it that well.Below is the full class. You can see that adc_dac_env is the instance that has num_tx_lanes and num_rx_lanes. I called create to build it and then I am trying to read these variables.

class er_j204_example_tb extends uvm_test;

  `uvm_component_utils(er_j204_example_tb)

  // UVC environment
  er_j204_env adc_dac_env;

  // Constructor
  function new(string name = "er_j204_example_tb",
    uvm_component parent=null);
    super.new(name,parent);
  endfunction : new

  virtual function void build_phase(uvm_phase phase);
    super.build_phase(phase);
    uvm_config_db#(int)::set(this,"adc_dac_env",
                               "num_tx_lanes", 3);
    uvm_config_db#(int)::set(this,"adc_dac_env",
                               "num_rx_lanes", 5);
    $display("NUMBER of tx and rx lanes are set here HELLO");
    // create UVC top environment
    adc_dac_env = er_j204_env::type_id::create("adc_dac_env", this);
    $display("Num of tx lanes %0d", adc_dac_env.num_tx_lanes);
    $display("Num of rx lanes %0d", adc_dac_env.num_rx_lanes);
  endfunction : build_phase

endclass : er_j204_example_tb