svt_xactor Class Reference

Inheritance diagram for class svt_xactor:

List of all members.


Detailed Description

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



Public Member Functions

function string  get_instance ( )
function bit  get_is_started ( )
function string  get_object_hiername ( )
function svt_timer  get_recycled_timer ( string inst, svt_err_check check = null, vmm_log log = null )
function string  get_suite_name ( )
function void  get_xactor_cfg ( ref svt_configuration cfg )
function void  inform_notify_cb_exec ( string name, svt_notify notify )
function bit  is_cov_complete ( int kind, ref string report )
virtual function void  monitor_xactor_chan ( int chan_id, bit display_as_note = 0 )
function void  new ( string suite_name, string class_name, svt_configuration cfg = null )
function void  reconfigure ( svt_configuration cfg )
function void  recycle_timer ( ref svt_timer timer )
function void  reset_xactor ( vmm_xactor :: reset_e rst_typ = SOFT_RST )
function void  set_instance ( string inst )
function void  start_xactor ( )
function void  stop_xactor ( )

Public Attributes

vmm_log  data_log 
svt_err_check  err_check = null; 
svt_logger  logger = null; 
static svt_err_check  shared_err_check = null; 

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 )
function bit  is_valid_chan ( int chan_id )
function bit  is_valid_xact_type ( int chan_id, svt_data xact )
task   main ( )
function void  monitor_chan ( vmm_channel chan, string xact_type, string chan_name, bit display_as_note = 0 )
function void  monitor_chan_activity ( vmm_channel chan, string xact_type, string chan_name, vmm_channel :: notifications_e chan_activity, bit display_as_note = 0 )
function void  start_cb_exec ( )
function void  stop_cb_exec ( )

Protected Attributes

protected bit  is_started 
protected int  mcd_cb_number = 0; 
protected int  mcd_id_constructor = 0; 
protected int  mcd_id_get_xactor_cfg = 0; 
protected int  mcd_id_reconfigure = 0; 
protected int  mcd_id_reset_xactor = 0; 
protected int  mcd_id_start_xactor = 0; 
protected int  mcd_id_stop_xactor = 0; 
protected bit  mcd_logging_input_objects_only = 1'b1; 
protected bit  mcd_logging_on = 1'b0; 
protected int  mcd_log_file 
protected int  mcd_n_number = 0; 
protected bit  mcd_notification_described = 0; 
protected int  mcd_task_number = 0; 


Member Function Documentation

 protected function void
 svt_xactor::change_dynamic_cfg

 (  svt_configuration cfg  ) 


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

 protected function void
 svt_xactor::change_static_cfg

 (  svt_configuration cfg  ) 


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

 protected virtual function void
 svt_xactor::get_dynamic_cfg

 (  ref svt_configuration cfg  ) 


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

  function string
 svt_xactor::get_instance

 (   ) 


Returns the instance name associated with this transactor.

 Superseded functions 
 vmm_xactor :: get_instance 

  function bit
 svt_xactor::get_is_started

 (   ) 


Returns the current setting of is_started, indicating whether the transactor has been started.

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

  function string
 svt_xactor::get_object_hiername

 (   ) 


Method which returns a string for the instance path of the svt_xactor instance for VMM 1.1.

  function svt_timer
 svt_xactor::get_recycled_timer

 (  string inst , svt_err_check check = null, vmm_log log = null  ) 


Method to obtain a previously used timer from recycled_timer for reuse.

inst - The inst name provided to the timer.

check - The checker package to be used by the timer, if desired.

log - Used to replace the timer's default message report object.

Return values - The previously used or newly created timer, ready for use.

 protected virtual function void
 svt_xactor::get_static_cfg

 (  ref svt_configuration cfg  ) 


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

  function string
 svt_xactor::get_suite_name

 (   ) 


Returns the model suite name associated with an object.

  function void
 svt_xactor::get_xactor_cfg

 (  ref svt_configuration cfg  ) 


Returns a copy of the transactor's configuration object, including the current configuration settings. If cfg is null, creates configuration object of appropriate type.

  function void
 svt_xactor::inform_notify_cb_exec

 (  string name , svt_notify notify  ) 


Callback issued for every svt_notify which supports callback based notification tracking, as well as for the vmm_xactor :: notify field.

This method issues the inform_notify callback.

Overriding implementations in extended classes must call the super version of this method.

name - Name identifying the svt_notify if provided, or identifying the transactor if the inform_notify is being issued for the 'notify' field on the transactor.

notify - The svt_notify instance that is being provided for use. This field is set to null if the inform_notify is being issued for the 'notify' field on the transactor.

  function bit
 svt_xactor::is_cov_complete

 (  int kind , ref string report  ) 


Check on the coverage status as recognized by the coverage callbacks.

kind - The kind of report being requested. -1 reserved for 'generic' report.

report - Short textual report describing coverage status.

 protected function bit
 svt_xactor::is_valid_cfg_type

 (  svt_configuration cfg  ) 


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

 protected function bit
 svt_xactor::is_valid_chan

 (  int chan_id  ) 


Returns a 1 if the specified channel ID is within the range used by the transactor.

 protected function bit
 svt_xactor::is_valid_xact_type

 (  int chan_id , svt_data xact  ) 


Returns a 1 if the supplied transaction object is of the correct type for the channel with the specified ID.

 protected task
 svt_xactor::main

 (   ) 


VMM main method.

 Superseded tasks 
 vmm_xactor :: main 

 protected function void
 svt_xactor::monitor_chan

 (  vmm_channel chan , string xact_type , string chan_name , bit display_as_note = 0  ) 


Monitors the provided channel, reporting all PUT and GOT activity.

chan - Channel that is to be monitored.

xact_type - String representing the channel transaction type.

chan_name - String indicating the channel name.

display_as_note - Bit indicating whether reporting should occur as a NOTE (display_as_note = 1) or VERBOSE (display_as_note = 0) vmm message.

 protected function void
 svt_xactor::monitor_chan_activity

 (  vmm_channel chan , string xact_type , string chan_name , vmm_channel :: notifications_e chan_activity , bit display_as_note = 0  ) 


Monitors the provided channel, reporting all channel activity of the type indicated by chan_activity.

chan - Channel that is to be monitored.

xact_type - String representing the channel transaction type.

chan_name - String indicating the channel name.

chan_activity - vmm_channel enum value indicating which channel activity is to be tracked. Currently only supports monitoring of PUT and GOT activity.

display_as_note - Bit indicating whether reporting should occur as a NOTE (display_as_note = 1) or VERBOSE (display_as_note = 0) vmm message.

 virtual function void
 svt_xactor::monitor_xactor_chan

 (  int chan_id , bit display_as_note = 0  ) 


Monitors the indicated transactor channel, reporting all PUT and GOT activity.

chan_id - Channel identifier within the range used by the transactor.

display_as_note - Bit indicating whether reporting should occur as a NOTE (display_as_note = 1) or VERBOSE (display_as_note = 0) vmm message.

  function void
 svt_xactor::new

 (  string suite_name , string class_name , svt_configuration cfg = null  ) 


CONSTRUCTOR: Create a new transactor instance, passing the appropriate argument values to the vmm_xactor parent class.

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

class_name - Sets the class name, which will be returned by the get_name function (provided by vmm_xactor).

cfg - A configuration data object that specifies the initial configuration in use by a derived transactor. At a minimum the inst and stream_id properties of this argument are used in the call to super.new (i.e. in the call that this class makes to vmm_xactor :: new).

  function void
 svt_xactor::reconfigure

 (  svt_configuration cfg  ) 


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

  function void
 svt_xactor::recycle_timer

 (  ref svt_timer timer  ) 


Method to add this timer to recycled_timer, which is a queue of recycled timers. Timers should only be recycled if the client is sure that the timer is no longer in use, and only if the timer was created via a call to get_recycled_timer.

timer - The timer to be recycled. Passed as a ref so it can be set to null before return.

  function void
 svt_xactor::reset_xactor

 (  vmm_xactor :: reset_e rst_typ = SOFT_RST  ) 


VMM reset method.

 Superseded functions 
 vmm_xactor :: reset_xactor 

  function void
 svt_xactor::set_instance

 (  string inst  ) 


Sets the instance name associated with this transactor.

inst - The new instance name to be associated with this subenv.

 protected function void
 svt_xactor::start_cb_exec

 (   ) 


Called by main to allow callbacks to initiate activities. This callback is issued during main so that any processes initiated by this callback will be torn down if reset_xactor is called.

This method issues the start callback.

Overriding implementations in extended classes must call the super version of this method.

  function void
 svt_xactor::start_xactor

 (   ) 


VMM start_xactor method

 Superseded functions 
 vmm_xactor :: start_xactor 

 protected function void
 svt_xactor::stop_cb_exec

 (   ) 


Called to allow callbacks to suspend activities.

This method issues the stop callback.

Overriding implementations in extended classes must call the super version of this method.

  function void
 svt_xactor::stop_xactor

 (   ) 


VMM stop_xactor method

 Superseded functions 
 vmm_xactor :: stop_xactor 


Member Attribute Documentation

 vmm_log  attribute
 svt_xactor::data_log


Shared log instance used for internally generated data objects.

 svt_err_check  attribute
 svt_xactor::err_check = null


Local svt_err_check instance that may be specific to the transactor, or otherwise shared across a subeystem (e.g., subenv).

 protected bit  attribute
 svt_xactor::is_started


Flag that indicates the transactor has been started.

 svt_logger  attribute
 svt_xactor::logger = null

 protected int  attribute
 svt_xactor::mcd_cb_number = 0

 protected int  attribute
 svt_xactor::mcd_id_constructor = 0

 protected int  attribute
 svt_xactor::mcd_id_get_xactor_cfg = 0

 protected int  attribute
 svt_xactor::mcd_id_reconfigure = 0

 protected int  attribute
 svt_xactor::mcd_id_reset_xactor = 0

 protected int  attribute
 svt_xactor::mcd_id_start_xactor = 0

 protected int  attribute
 svt_xactor::mcd_id_stop_xactor = 0

 protected bit  attribute
 svt_xactor::mcd_logging_input_objects_only = 1'b1

 protected bit  attribute
 svt_xactor::mcd_logging_on = 1'b0

 protected int  attribute
 svt_xactor::mcd_log_file

 protected int  attribute
 svt_xactor::mcd_n_number = 0

 protected bit  attribute
 svt_xactor::mcd_notification_described = 0

 protected int  attribute
 svt_xactor::mcd_task_number = 0

 static svt_err_check  attribute
 svt_xactor::shared_err_check = null


Common svt_err_check instance shared by all SVT-based transactors. Individual transactors may alternatively choose to store svt_err_check_stats in a local svt_err_check instance, check_mgr, that may be specific to the transactor, or otherwise shared across a subeystem (e.g., subenv).