FATAL_ERROR

Hello seniors please let me know about this fatal error,

UVM_FATAL verilog_src/uvm-1.1d/src/base/uvm_component.svh(1744) @ 0: fifo_wr[0] [CLDEXT] Name ‘fifo_wr[0]’ is not unique to other top-level instances. If parent is a module, build a unique name by combining the the module name and component name: $sformatf(“%m.%s”,“fifo_wr[0]”).

In reply to uvm_verification:

I’m recpmmending 2 things in the given order:
(1) read the error message
(2) post a piece of code related to the error message.

On each hierarchy level the instance names have to be unique. You are violating this rule.
Because you do not show any code I cannot give a deeper advice.

In reply to chr_sue:

In reply to uvm_verification:
I’m recpmmending 2 things in the given order:
(1) read the error message
(2) post a piece of code related to the error message.
On each hierarchy level the instance names have to be unique. You are violating this rule.
Because you do not show any code I cannot give a deeper advice.

ifndef w_agent define w_agent
import uvm_pkg::*;

include"uvm_macros.svh" include"w_config.sv"
include"w_driver.sv" include"w_sequencer.sv"
`include"w_monitor.sv"

class w_agent extends uvm_agent;
`uvm_component_utils(w_agent)

w_config wcfg;
w_driver wdr;
w_sequencer wsqr;
w_monitor wmon;

extern function new(string name=“w_agent”,uvm_component parent);
extern function void build_phase(uvm_phase phase);
extern function void connect_phase(uvm_phase phase);

endclass

// New construct

function w_agent::new(string name=“w_agent”, uvm_component parent);

super.new(name,parent);
endfunction

// BUILD Phase

function void w_agent::build_phase(uvm_phase phase);
super.build_phase(phase);

if(!uvm_config_db#(w_config)::get(this,“”,“w_config”,wcfg))
`uvm_fatal(“TB CONFIG”,“can not get() wcfg from uvm_config”)

wmon=w_monitor::type_id::create(“wmon”,this);

if(wcfg.is_active==UVM_ACTIVE)//***************************** LINE NO. 43
begin
wdr=w_driver::type_id::create(“wdr”,this);
wsqr=w_sequencer::type_id::create(“wsqr”,this);
end
endfunction

//////// Connect Phase

function void w_agent::connect_phase(uvm_phase phase);
if(wcfg.is_active==UVM_ACTIVE)
wdr.seq_item_port.connect(wsqr.seq_item_export);
endfunction

`endif

/////////////////// FATAL ERROR////////////////

** Fatal: (SIGSEGV) Bad handle or reference.

Time: 0 ns Iteration: 7 Process: /uvm_pkg::uvm_phase::m_run_phases/fork#1847_4f63c3e1 File: w_agent_top.sv

Fatal error in Function top_sv_unit/w_agent::build_phase at w_agent.sv line 43

dear chr_sue sir,

this is agent top module may be set/get problem please tell me what is wrong

///////////////////////////////////////////////////////////////////////////////////////////

ifndef w_agent_top define w_agent_top

import uvm_pkg::*;
include"uvm_macros.svh" include"w_agent.sv"
include"w_config.sv" include"env_config.sv"

class w_agent_top extends w_agent;

`uvm_component_utils(w_agent_top)

w_agent wagt;
env_config ecfg;
w_config wcfg;

extern function new(string name=“w_agent_top”, uvm_component parent);
extern function void build_phase(uvm_phase phase);

endclass

//New construct

function w_agent_top::new(string name=“w_agent_top”,uvm_component parent);

super.new(name,parent);
endfunction

//Build Phase

function void w_agent_top::build_phase(uvm_phase phase);
super.build_phase(phase);

if(!uvm_config_db#(env_config)::get(this,“”,“env_config”,ecfg))
`uvm_fatal(“TB_CONFIG”,“can not get() ecfg from uvm_config”)

if(ecfg.has_wagent)
begin
wagt=new[ecfg.no_wr_agent];

foreach(wagt[i])
begin
wagt[i]=w_agent::type_id::create($sformatf(“wagt[%0d]”,i),this);

// Set the w_config class
uvm_config_db#(w_config)::set(this,$sformatf(“wagt[%0d]*”,i),“w_config”,ecfg.wcfg[i]);

end

end
endfunction

`endif

In reply to uvm_verification:

How does your configuration object look like?

everything i post : SET in w_agent_top and GET in w_agent,
please check sir.

In reply to uvm_verification:

I’d like to see the file w_config.sv. It is not there.

In reply to chr_sue:

In reply to uvm_verification:
I’d like to see the file w_config.sv. It is not there.

sir in both w_agent_top & w_agent have:- `include"w_config.sv"

In reply to chr_sue:

In reply to uvm_verification:
I’d like to see the file w_config.sv. It is not there.

ifndef w_config define w_config

import uvm_pkg::*;
include"uvm_macros.svh" include"s_if.sv"

class w_config extends uvm_object;

`uvm_object_utils(w_config)

virtual s_if vif;

uvm_active_passive_enum is_active=UVM_ACTIVE;

static int mon_rcvd_xtn_cnt=0;
static int drv_data_sent_cnt=0;

extern function new(string name=“w_config”);

endclass

//New construct

function w_config::new(string name=“w_config”);
super.new(name);
endfunction
`endif