svt_sequence Class Reference

Inheritance diagram for class svt_sequence:

List of all members.


Detailed Description

Class that provides the basic infrastructure common to all SVT sequences.



Public Member Functions

function void  drop_phase_objection ( )
function bit  get_do_not_randomize ( )
function string  get_phase_name ( )
function string  get_suite_name ( )
function bit  is_supported ( svt_configuration cfg, bit silent = 0 )
function void  new ( string name = "svt_sequence", string suite_name = "" )
task   post_body ( )
task   pre_body ( )
task   priority_finish ( uvm_sequence_base parent_sequence = null, int set_priority = -1 )
task   priority_start ( uvm_sequence_base parent_sequence = null, int set_priority = -1 )
function void  raise_phase_objection ( )
function uvm_phase  svt_get_starting_phase ( )

Class Parameters

type  REQ = uvm_sequence_item
type  RSP 

Public Attributes

bit  manage_objection = 0; 
static uvm_report_object  reporter = uvm_root; 

Protected Attributes

protected string  suite_name = ""; 


Member Function Documentation

  function void
 svt_sequence::drop_phase_objection

 (   ) 


Drop the previously-raised objection for the run-time phase

  function bit
 svt_sequence::get_do_not_randomize

 (   ) 


Utility method to get the do_not_randomize value for the sequence.

Return values - The current do_not_randomize setting.

  function string
 svt_sequence::get_phase_name

 (   ) 


Returns the phase name that this sequence is executing in. If the sequence is not configured as the default sequence for a phase then this method returns a null string. This can be used to retrieve information from the configuration database like this:

void'(`SVT_XVM(config_db) #(int unsigned)::get(m_sequencer, get_phase_name, "default_sequence.sequence_length", sequence_length));

  function string
 svt_sequence::get_suite_name

 (   ) 


Returns the model suite name associated with an object.

  function bit
 svt_sequence::is_supported

 (  svt_configuration cfg , bit silent = 0  ) 


Determines if this sequence can reasonably be expected to function correctly on the supplied cfg object.

cfg - The svt_configuration to examine for supportability.

silent - Indicates whether issues with the configuration should be reported.

Return values - Returns '1' if sequence is supported by the configuration, '0' otherwise.

  function void
 svt_sequence::new

 (  string name = "svt_sequence", string suite_name = ""  ) 


CONSTRUCTOR: Create a new SVT sequence object

 Superseding functions 
 svt_broadcast_sequence :: new 
 svt_reactive_sequence :: new 
 svt_mem_sequence :: new 
 svt_mem_ram_sequence :: new 

  task
 svt_sequence::post_body

 (   ) 


callback implementation to drop an objection

 Superseded tasks 
 uvm_sequence_base :: post_body 
 Superseding tasks 
 svt_reactive_sequence :: post_body 

  task
 svt_sequence::pre_body

 (   ) 


callback implementation to raise an objection

 Superseded tasks 
 uvm_sequence_base :: pre_body 
 Superseding tasks 
 svt_reactive_sequence :: pre_body 

  task
 svt_sequence::priority_finish

 (  uvm_sequence_base parent_sequence = null, int set_priority = -1  ) 


Utility method used to finish a sequence based on the provided priority.

parent_sequence - Containing sequence which is executing this sequence.

set_priority - The priority provided to the sequencer for this sequence.

  task
 svt_sequence::priority_start

 (  uvm_sequence_base parent_sequence = null, int set_priority = -1  ) 


Utility method used to start a sequence based on the provided priority.

parent_sequence - Containing sequence which is executing this sequence.

set_priority - The priority provided to the sequencer for this sequence.

  function void
 svt_sequence::raise_phase_objection

 (   ) 


Raise the objection for the current run-time phase

  function uvm_phase
 svt_sequence::svt_get_starting_phase

 (   ) 


Obtains the starting_phase property from the uvm_sequence_base class.

Class Parameters Documentation

 type  attribute
 svt_sequence::REQ = uvm_sequence_item

 type  attribute
 svt_sequence::RSP


Member Attribute Documentation

 bit  attribute
 svt_sequence::manage_objection = 0


A flag that enables automatic objection management. If this is set to 1 in an extended sequence class then an objection will be raised when the pre_body is called and dropped when the post_body method is called. Can be set explicitley or via a bit-type configuration entry named ".manage_objection" or implicitly by setting the sequencer manage_objection value to something other than the sequencer default value of 1.

For backwards compatibility reasons the sequence default value is '0' while the sequencer default value is '1'. So by default the sequencer will manage objections, but the sequence will not.

This does not, however, reflect what happens if any client VIP or testbench sets the manage_objection value on the sequence or the sequencer.

If the manage_objection value is set locally, then it replaces the default. It can, however, be overridden by configuration settings.

If a manage_objection value is provided for the sequence in the configuration then it will replace the locally specified value.

If a manage_objection value is provided for the sequencer in the configuration and there was not a manage_objection value provided for the sequence in the configuration then the sequencer setting will replace the locally specified value.

If a non-default value (i.e., 0) is set on the sequencer, it will be propagated into the configuration to be accessed by the sequence. This will force the manage_objection value of '0' for all svt_sequence sequences on the sequencer. This will have no impact on sequences which have a manage_objection value provided for them in the configuration, but should override the manage_objection value in all other situations.

 static uvm_report_object  attribute
 svt_sequence::reporter = uvm_root


All messages originating from data objects are routed through this reporter

 protected string  attribute
 svt_sequence::suite_name = ""


Identifies the product suite with which a derivative class is associated. Can be accessed through 'get_suite_name', but cannot be altered after object creation.