UVM_FATAL : send_request failed to cast sequence item

Hi ,
can u please help me in figuring out this error

UVM_INFO @ 500000: uvm_test_top.env_h.e_apb_agent_h.sequencer@@reg_seq [STARTING_SEQ]

Starting reg_seq sequence…

entered into seq

entered into mirror seq

UVM_INFO …/sequences/dotara_reset_reg_seq.svh(68) @ 500000: uvm_test_top.env_h.e_apb_agent_h.sequencer@@reg_seq [uvm_reg_hw_rst_seq] Verif reset value of register reg_model.ADCC_SCH_SLOT_INTR_EN in map “reg_model.reg_map”…

UVM_INFO verilog_src/uvm-1.1d/src/base/uvm_resource_db.svh(121) @ 500000: reporter [CFGDB/GET] Configuration ‘uvm_test_top.env_h.e_dma_agent_h.seq_h.post_shutdown_phase.default_sequence’ (type class uvm_pkg::uvm_sequence_base) read by uvm_test_top.env_h.e_dma_agent_h.seq_h = null (failed lookup)

UVM_INFO verilog_src/uvm-1.1d/src/base/uvm_resource_db.svh(121) @ 500000: reporter [CFGDB/GET] Configuration ‘uvm_test_top.env_h.e_dma_agent_h.seq_h.post_shutdown_phase.default_sequence’ (type class uvm_pkg::uvm_object_wrapper) read by uvm_test_top.env_h.e_dma_agent_h.seq_h = null (failed lookup)

UVM_INFO verilog_src/uvm-1.1d/src/base/uvm_resource_db.svh(121) @ 500000: reporter [CFGDB/GET] Configuration ‘uvm_test_top.env_h.e_apb_agent_h.sequencer.post_shutdown_phase.default_sequence’ (type class uvm_pkg::uvm_sequence_base) read by uvm_test_top.env_h.e_apb_agent_h.sequencer = null (failed lookup)

UVM_INFO verilog_src/uvm-1.1d/src/base/uvm_resource_db.svh(121) @ 500000: reporter [CFGDB/GET] Configuration ‘uvm_test_top.env_h.e_apb_agent_h.sequencer.post_shutdown_phase.default_sequence’ (type class uvm_pkg::uvm_object_wrapper) read by uvm_test_top.env_h.e_apb_agent_h.sequencer = null (failed lookup)

UVM_INFO verilog_src/uvm-1.1d/src/base/uvm_resource_db.svh(121) @ 500000: reporter [CFGDB/GET] Configuration ‘uvm_test_top.env_h.e_adc_agent_h.sequencer_h.post_shutdown_phase.default_sequence’ (type class uvm_pkg::uvm_sequence_base) read by uvm_test_top.env_h.e_adc_agent_h.sequencer_h = null (failed lookup)

UVM_INFO verilog_src/uvm-1.1d/src/base/uvm_resource_db.svh(121) @ 500000: reporter [CFGDB/GET] Configuration ‘uvm_test_top.env_h.e_adc_agent_h.sequencer_h.post_shutdown_phase.default_sequence’ (type class uvm_pkg::uvm_object_wrapper) read by uvm_test_top.env_h.e_adc_agent_h.sequencer_h = null (failed lookup)

@2500000:: hw reset:: before Mirror

entered into mirror seq

UVM_INFO …/vip/apb/agent/apb_driver1.sv(30) @ 3000000: uvm_test_top.env_h.e_apb_agent_h.driver [uvm_test_top.env_h.e_apb_agent_h.driver::run_phase] waiting for next seq_item

at monitor p_write=x

UVM_FATAL @ 3000000: uvm_test_top.env_h.e_apb_agent_h.sequencer [sequencer] send_request failed to cast sequence item

— UVM Report Summary —

** Report counts by severity

UVM_INFO : 353

UVM_WARNING : 0

UVM_ERROR : 0

UVM_FATAL : 1

** Report counts by id

[CFGDB/GET] 332

[CFGDB/SET] 13

[DRIVER] 2

[Questa UVM] 2

[RNTST] 1

[STARTING_SEQ] 1

[sequencer] 1

[uvm_reg_hw_rst_seq] 1

[uvm_test_top.env_h.e_apb_agent_h.driver::run_phase] 1

** Note: $finish : C:/questasim64_10.4e/win64/…/verilog_src/uvm-1.1d/src/base/uvm_report_object.svh(292)

Time: 3 us Iteration: 3 Region: /uvm_pkg::uvm_sequence_base::start

////////////////////////////////////////////////this is the summary of the environment ////////////////////////////////////////////////////////////////

here is the environment which i have connected my reg_model to it:

class adc_env extends uvm_env;
`uvm_component_utils(adc_env)

adc_agent e_adc_agent_h;
apb_agent e_apb_agent_h;

a_reg_env reg_env;

adc_config_obj adc_config;
apb_config_obj config_obj;

adc_sb e_sb_h;
adc_cov e_cov_h;
unction new (string name =“adc_env”, uvm_component parent);
super.new(name,parent);
endfunction

virtual function void build_phase(uvm_phase phase);

super.build_phase(phase);
e_apb_agent_h = apb_agent::type_id::create(“e_apb_agent_h”,this);
e_adc_agent_h = adc_agent::type_id::create(“e_adc_agent_h”,this);
e_cov_h = adc_cov::type_id::create("e_cov_h ",this) ;
e_sb_h = adc_sb::type_id::create(“e_sb_h”,this) ;
reg_env = a_reg_env::type_id::create(“reg_env”,this);

if(!(uvm_config_db#(apb_config_obj)::get(this,“”,“apb_config”,config_obj))) begin //get apb configuration
`uvm_fatal({get_full_name(),“::build_phase”},“CONFIG OBJ GET FAILED”)
end
uvm_config_db#(apb_config_obj)::set(this,“*”,“apb_agent_config”,config_obj) ;

if(!(uvm_config_db#(adc_config_obj)::get(this,“”,“adc_v_config”,adc_config))) begin
`uvm_fatal({get_full_name(),“::build_phase”},“CONFIG OBJ GET FAILED”)
end
uvm_config_db#(adc_config_obj)::set(this,“*”,“adc_agent_config”,adc_config);

endfunction

virtual function void connect_phase(uvm_phase phase);

e_adc_agent_h.adc_agent_ap.connect(e_sb_h.adc_export);
e_apb_agent_h.aport_a.connect(e_sb_h.apb_export)

reg_env.bus_agent=e_apb_agent_h;
e_apb_agent_h.monitor_m.items_collected_port.connect(reg_env.reg_predictor.bus_in);
reg_env.m_ral_model.reg_map.set_sequencer(e_apb_agent_h.sequencer,reg_env.reg_adapter);
reg_env.m_ral_model.reg_map.set_auto_predict(.on(0));
endfunction

endclass: adc_env

In reply to GR_verif:

Looks like your sequencers in the dma_agent and the apb_gent are not constructed or could not be found:
uvm_test_top.env_h…dma_agent_h.seq_h = null (failed lookup)
uvm_test_top.env_h.e_adc_agent_h.sequencer_h = null (failed lookup)

In reply to chr_sue:
Hi,
they are created actually !!

In reply to GR_verif:

Then the path might be wrong. Check also for typos, because the error message is saying the sequencer object does not exist.
For debugging print the topology.