Jump to content
Sign in to follow this  
dipling

handle to uvm_component in uvm_object

Recommended Posts

Hi,

 

Is there a way to avoid the "complex type usage" error when needing to feed a uvm_object a handle to an uvm_component?

What I need to do is access within a sequence a method of one component in the environment.

uvm_component:

@build_phase
uvm_config_db#(comp_type)::set(this, "*", comp_handle_name", this)


uvm_sequence:

@body:
comp_type comp_inst;
 uvm_config_db #(comp_type)::get(this, "*", "comp_handle_name", comp_inst)

 comp_inst.my_method();
 

Share this post


Link to post
Share on other sites

You could use uvm_root in the 'set' and 'get' methods for the context argument.  You could also use uvm_root or uvm_top in the set method and use m_sequencer as the context to get the handle.  Also, the handle to the component could be placed in the configuration object that is scoped to m_sequencer.  

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×