svt_sequencer Class Reference

Inheritance diagram for class svt_sequencer:

List of all members.


Detailed Description

Base class for all SVT model sequencers. As functionality commonly needed for sequencers for SVT models is defined, it will be implemented (or at least prototyped) in this class.



Public Member Functions

function void  build_phase ( uvm_phase phase )
function uvm_agent  find_first_agent ( uvm_sequence_item seq )
function void  get_cfg ( ref svt_configuration cfg )
function bit  get_is_debug_enabled ( )
function bit  get_is_running ( )
task   get_next_item ( output REQ t )
function string  get_suite_name ( )
function void  new ( string name, uvm_component parent, string suite_name = "" )
function void  reconfigure ( svt_configuration cfg )
task   run_phase ( uvm_phase phase )

Class Parameters

type  REQ = uvm_sequence_item
type  RSP 

Public Attributes

bit  manage_objection = 1; 
uvm_report_object  reporter = this; 

Protected Member Functions

function void  change_dynamic_cfg ( svt_configuration cfg )
function void  change_static_cfg ( svt_configuration cfg )
virtual function void  get_dynamic_cfg ( ref svt_configuration cfg )
virtual function void  get_static_cfg ( ref svt_configuration cfg )
function bit  is_valid_cfg_type ( svt_configuration cfg )

Protected Attributes

static protected svt_dropping_response_report_catcher  dropping_response_catcher 
protected bit  is_running 


Member Function Documentation

  function void
 svt_sequencer::build_phase

 (  uvm_phase phase  ) 


Build phase

 Superseded functions 
 uvm_component :: build_phase 
 uvm_sequencer_base :: build_phase 
 uvm_sequencer_param_base :: build_phase 
 Superseding functions 
 svt_mem_sequencer :: build_phase 

 protected function void
 svt_sequencer::change_dynamic_cfg

 (  svt_configuration cfg  ) 


Copies (deep) the dynamic configuration properties from the argument into the configuration object stored in the sequencer. Used internally by reconfigure; not to be called directly.

 protected function void
 svt_sequencer::change_static_cfg

 (  svt_configuration cfg  ) 


Copies (deep) the static configuration properties from the argument into the configuration object stored in the sequencer. Used internally by reconfigure; not to be called directly.

  function uvm_agent
 svt_sequencer::find_first_agent

 (  uvm_sequence_item seq  ) 


Finds the first sequencer that has a `SVT_XVM(agent) for its parent. If p_sequencer parent is a `SVT_XVM(agent), returns that `SVT_XVM(agent). Otherwise continues looking up the sequence's parent sequence chain looking for a p_sequencer which has a `SVT_XVM(agent) as its parent.

seq - The sequence that needs to find its agent.

Return values - The first agent found by looking through the parent sequence chain.

  function void
 svt_sequencer::get_cfg

 (  ref svt_configuration cfg  ) 


Returns a reference of the sequencer's configuration object. NOTE: This operation is different than the get_cfg methods for svt_driver and svt_monitor classes. This method returns a reference to the configuration rather than a copy.

 Superseding functions 
 svt_mem_sequencer :: get_cfg 

 protected virtual function void
 svt_sequencer::get_dynamic_cfg

 (  ref svt_configuration cfg  ) 


Copies (deep) the dynamic configuration properties from the configuration object stored in the agent into the argument. If cfg is null, creates configuration object of appropriate type. Used internally by get_cfg; not to be called directly.

  function bit
 svt_sequencer::get_is_debug_enabled

 (   ) 


Function looks up whether debug is enabled for this component. This mainly acts as a front for svt_debug_opts, caching and reusing the information after the first lookup.

  function bit
 svt_sequencer::get_is_running

 (   ) 


Returns the current setting of is_running, indicating whether the sequencer has been entered the run phase.

Return values - 1 indicates that the sequencer has been started, 0 indicates it has not.

  task
 svt_sequencer::get_next_item

 (  output REQ t  ) 


Implementation of port method declared in the `SVT_XVM(seq_item_pull_imp) class. This method is extended in order to write sequence items to FSDB.

t - Sequence item supplied by this sequencer


 Superseded tasks 
 uvm_sequencer :: get_next_item 

 protected virtual function void
 svt_sequencer::get_static_cfg

 (  ref svt_configuration cfg  ) 


Copies (deep) the static configuration properties from the configuration object stored in the agent into the argument. If cfg is null, creates config object of appropriate type. Used internally by get_cfg; not to be called directly.

  function string
 svt_sequencer::get_suite_name

 (   ) 


Returns the model suite name associated with an object.

 protected function bit
 svt_sequencer::is_valid_cfg_type

 (  svt_configuration cfg  ) 


Expected to return a 1 if the supplied configuration object is of the correct type for the sequencer. Extended classes implementing specific sequencers will provide an extended version of this method and call it directly.

  function void
 svt_sequencer::new

 (  string name , uvm_component parent , string suite_name = ""  ) 


CONSTRUCTOR: Create a new sequencer instance, passing the appropriate argument values to the `SVT_XVM(sequencer) parent class.

name - Instance name

parent - Handle to the hierarchical parent

suite_name - Identifies the product suite to which the sequencer object belongs.


 Superseding functions 
 svt_reactive_sequencer :: new 
 svt_mem_sequencer :: new 

  function void
 svt_sequencer::reconfigure

 (  svt_configuration cfg  ) 


Updates the sequencer's configuration with data from the supplied object. This method always results in a call to change_dynamic_cfg. If the sequencer has not been started calling this method also results in a call to change_static_cfg.

 Superseding functions 
 svt_mem_sequencer :: reconfigure 

  task
 svt_sequencer::run_phase

 (  uvm_phase phase  ) 


Run phase

 Superseded tasks 
 uvm_component :: run_phase 
 uvm_sequencer_base :: run_phase 


Class Parameters Documentation

 type  attribute
 svt_sequencer::REQ = uvm_sequence_item

 type  attribute
 svt_sequencer::RSP


Member Attribute Documentation

 static protected svt_dropping_response_report_catcher  attribute
 svt_sequencer::dropping_response_catcher


UVM/OVM report catcher used to filter the 'Dropping response...sequence not found' message.

 protected bit  attribute
 svt_sequencer::is_running


Flag that indicates the driver has entered the run phase.

 bit  attribute
 svt_sequencer::manage_objection = 1


A flag that enables automatic objection management. If this is set to 1 in an extended sequencer class then an objection will be raised when the Run phase is started and dropped when the Run phase is ended. It can be set explicitly or via a bit-type configuration entry on the sequencer named "manage_objection".

If the VIP or testbench provides an override value of '0' then this setting will also be propagated to the contained svt_sequence sequences via the configuration.

 uvm_report_object  attribute
 svt_sequencer::reporter = this


SVT message macros route messages through this reference