svt_dispatch_sequence Class Reference

Inheritance diagram for class svt_dispatch_sequence:

List of all members.


Detailed Description

Sequence used to queue up and dispatch seqeunce items. This sequence supports two basic use models, controlled by the continuous_dispatch field.

The client can initially create a 'non-continuous' svt_dispatch_sequence, but once continuous_dispatch gets set to '1', the svt_dispatch_sequence will continue to be a continuous sequence until it is deleted. It is not possible move back and forth between continuous and non-continuous dispatch with an individual svt_dispatch_sequence instance.

If Sequence dispatched in continuous, it also supports multiple transactions to be dispatched concurrently, without blocking, controlled by enable_multiple_tr_dispatch method.



Public Member Functions

task   body ( )
function uvm_object  create ( string name = "" )
function void  delete_reqs ( )
task   dispatch ( uvm_sequencer seqr, REQ req, bit continuous_dispatch = 1 )
function void  enable_multiple_tr_dispatch ( )
virtual function uvm_object_wrapper  get_object_type ( )
static function type_id  get_type ( )
virtual function void  m_set_p_sequencer ( )
function void  new ( string name = "svt_dispatch_sequence" )
function void  response_handler ( uvm_sequence_item response )
task   send_forever ( )
task   send_one ( )

Class Parameters

type  REQ = uvm_sequence_item
type  RSP 

Public Attributes

uvm_sequencer  p_sequencer 
static uvm_report_object  reporter = uvm_root; 

Member Typedefs

 typedef class  type_id 


Member Function Documentation

  task
 svt_dispatch_sequence::body

 (   ) 


Sequence body implemeentation, basically sends 'req' on the sequencer.

 Superseded tasks 
 uvm_sequence_base :: body 

  function uvm_object
 svt_dispatch_sequence::create

 (  string name = ""  ) 


 Superseded functions 
 uvm_object :: create 

  function void
 svt_dispatch_sequence::delete_reqs

 (   ) 


Method used to remove all the elements from the queue which are pushed for dispatch.

  task
 svt_dispatch_sequence::dispatch

 (  uvm_sequencer seqr , REQ req , bit continuous_dispatch = 1  ) 


Method used to dispatch the request on the sequencer. The dispatch sequence can move from 'single' dispatch to 'continuous' dispatch between calls. It can also move between sequencers between calls while using 'single' dispatch, or when moving from 'single' dispatch to 'continuous' dispatch. But once 'continuous' dispatch is established, attempting to move back to 'single' dispatch, or changing the sequencer, will result in a fatal error.

seqr - Sequencer the request is to be dispatched on.

req - Request that is to be dispatched.

continuous_dispatch - Indicates whether the dispatch process should be continuous.

  function void
 svt_dispatch_sequence::enable_multiple_tr_dispatch

 (   ) 


Method used to enable dispatch of multiple non blocking concurrent transactions.

 virtual function uvm_object_wrapper
 svt_dispatch_sequence::get_object_type

 (   ) 


 Superseded functions 
 uvm_object :: get_object_type 
 uvm_sequence_item :: get_object_type 

 static function type_id
 svt_dispatch_sequence::get_type

 (   ) 


Factory Registration.

 Superseded functions 
 uvm_object :: get_type 
 uvm_sequence_item :: get_type 

 virtual function void
 svt_dispatch_sequence::m_set_p_sequencer

 (   ) 


 Superseded functions 
 uvm_sequence_item :: m_set_p_sequencer 

  function void
 svt_dispatch_sequence::new

 (  string name = "svt_dispatch_sequence"  ) 


CONSTRUCTOR: Creates a new instance of the svt_dispatch_sequence class.

name - The sequence name.


 Superseded functions 
 uvm_object :: new 
 uvm_sequence_item :: new 
 uvm_sequence_base :: new 
 uvm_sequence :: new 

  function void
 svt_dispatch_sequence::response_handler

 (  uvm_sequence_item response  ) 


No-op which can be used to avoid clogging things up with responses and response messages.

 Superseded functions 
 uvm_sequence_base :: response_handler 

  task
 svt_dispatch_sequence::send_forever

 (   ) 


Method used to create a forever loop to take care of the dispatch.

  task
 svt_dispatch_sequence::send_one

 (   ) 


Method used to do a single dispatch.

Class Parameters Documentation

 type  attribute
 svt_dispatch_sequence::REQ = uvm_sequence_item

 type  attribute
 svt_dispatch_sequence::RSP


Member Attribute Documentation

 uvm_sequencer  attribute
 svt_dispatch_sequence::p_sequencer


Parent Sequencer Declaration.

 static uvm_report_object  attribute
 svt_dispatch_sequence::reporter = uvm_root


All messages originating from data objects are routed through `SVT_XVM(root)

Member Typedef Documentation

 typedef class  svt_dispatch_sequence::type_id
 Typedefe'd string ==>   uvm_object_registry#(svt_dispatch_sequence)