Uvm_config_db set and get error

In reply to chr_sue:

Hi
Thank you for your reply,

I am passing the virtual interface to my config db from tb_top module(which is my top module) below is the code:

module tb_top;
import uvm_pkg::;
import ml_uvm::
;

spi_if spi_if();

dut_top dut (
.reset spi_if.reset
.miso spi_if.miso
.mosi spi_if.mosi
.sclk spi_if.sclk
.ss spi_if.ss);

initial begin
uvm_config_db#(virtual spi_if)::set(null,“*”,“spi_if”,spi_if);
end
endmodule

I am creating an object to this config db in base_test(which is my test):

class base_test extends uvm_test;

virtual spi_if spi_if;
env_cfg env_config;

function void build_phase(uvm_phase phase);
super.build_phase(phase);
env_config = new;

if (!uvm_config_db #(virtual spi_if)::get(this,“”,“spi_if”,env_config.spi_if)) begin
`uvm_error(get_type_name,“Cannot find SPI_IF configuration!”)
end

assert(env_config.randomize()) else `uvm_error(“BASE_TEST”, “Randomization Failed”);

uvm_config_db #(env_cfg)::set(this,“*”,“env_config”,env_config );
endfunction

endclass

Thanks