Question on configuration of UVM sequences

Hello,
I am not clear about how sequences are configured. The UVM cookbook gives following code for configuring sequences on page 139:


class my_bus_seq extends uvm_sequence #( my_bus_sequence_item );
  string scope_name = "";
  task body();
    my_bus_config m_config;
    if( scope_name == "" ) begin
      scope_name = get_full_name(); // this is { sequencer.get_full_name() , get_name() }
    end
    if( !uvm_config_db #( my_bus_config )::get( null , scope_name , "my_bus_config" , m_config ) ) begin
      `uvm_error(...)
    end
  endtask
endclass


Suppose that we have a sequence called “initialization_sequence” running on the sequencer on
“uvm_test_top.env.sub_env.agent1.sequencer”. This scope_name in the code above by default is
“uvm_test_top.env.sub_env.agent1.sequencer.initialization_sequence”
.

In above code, how does the function get_full_name() return the full hierarchical name? since sequence is a uvm_object and not uvm_component, how is the full hierarchical name “uvm_test_top.env.sub_env.agent1.sequencer.initialization_sequence” returned by the get_full_name() call. Or the get_full_name() is overridden in case of sequences to return sequencer name and sequence name combined.
Can someone explain this please.
regards,
-sunil puranik

In reply to puranik.sunil@tcs.com:

Please visit the UVM Reference Manual get_full_hierarchy for uvm objects.
It says:
Returns the full hierarchical name of this object. The default implementation is the same as get_name, as uvm_objects do not inherently possess hierarchy.

Objects possessing hierarchy, such as uvm_components, override the default implementation. Other objects might be associated with component hierarchy but are not themselves components. For example, uvm_sequence #(REQ,RSP) classes are typically associated with a uvm_sequencer #(REQ,RSP). In this case, it is useful to override get_full_name to return the sequencer’s full name concatenated with the sequence’s name. This provides the sequence a full context, which is useful when debugging.

In reply to puranik.sunil@tcs.com:

https://verificationacademy.com/cookbook/config/configuringsequences

In reply to chr_sue:
Hi Chr_sue,
Thanks for the reply.

“Please visit the UVM Reference Manual get_full_hierarchy for uvm objects.”

Referring to above statement in your response, there is no function like get_full_hierarchy in UVM_reference 1.1. Are you referring to get_full_name() instead?
I have already referred the description you have given above. It says it is useful to override the get_full_name to return the sequencer’s full name concatenated with the sequence’s name. My question was exactly same - in case of sequences, is get_full_name() virtual method overridden to provide the full name of sequence i.e. sequencer name concatenated with sequence name?

It is not mentioned anywhere in the reference manual that UVM overrides get_full_name() method for sequences.

regards,
-sunil puranik

In reply to puranik.sunil@tcs.com:

Sorry this was my fault. I meant get_full_name().

You can do the following.

uvm_config_db #(my_bus_config)::get( this.get_sequencer(), this.get_sequence_path(), "my_bus_config", m_config);

https://verificationacademy.com/forums/uvm/configuration-sequences-started-virtual-sequence

get_full_name() is for uvm_component not for uvm_object/sequence.