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 void  build_phase ( uvm_phase phase )
function void  extract_phase ( uvm_phase phase )
function string  get_instance ( )
function bit  get_is_started ( )
function svt_timer  get_recycled_timer ( string inst, svt_err_check check = null, uvm_report_object reporter = 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 name = "svt_xactor_inst", uvm_component parent = null )
function void  pre_abort ( )
function void  reconfigure ( svt_configuration cfg )
function void  recycle_timer ( ref svt_timer timer )
function void  set_instance ( string inst )

Public Attributes

svt_non_abstract_report_object  data_reporter 
svt_err_check  err_check = null; 
svt_event_pool  event_pool 
svt_logger  logger = null; 
uvm_report_object  reporter 
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_sequence_item_base xact )
task   main ( )
function void  monitor_chan ( svt_channel chan, string xact_type, string chan_name, bit display_as_note = 0 )
function void  monitor_chan_activity ( svt_channel chan, string xact_type, string chan_name, svt_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 Typedefs

 typedef enum  notifications_e 
 typedef enum  reset_e 


Member Function Documentation

  function void
 svt_xactor::build_phase

 (  uvm_phase phase  ) 


UVM build phase

 Superseded functions 
 uvm_component :: build_phase 

 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.

  function void
 svt_xactor::extract_phase

 (  uvm_phase phase  ) 


UVM extract phase

 Superseded functions 
 uvm_component :: extract_phase 

 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.

  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 svt_timer
 svt_xactor::get_recycled_timer

 (  string inst , svt_err_check check = null, uvm_report_object reporter = 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.

reporter - 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.

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_sequence_item_base 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.

 Superseding tasks 
 svt_broadcast :: main 

 protected function void
 svt_xactor::monitor_chan

 (  svt_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

 (  svt_channel chan , string xact_type , string chan_name , svt_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 name = "svt_xactor_inst", uvm_component parent = null  ) 


CONSTRUCTOR: Creates a new instance of the svt_xactor class.

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

name - Instance name of this object.

parent - Parent for this object.

  function void
 svt_xactor::pre_abort

 (   ) 


UVM pre_abort callback

 Superseded functions 
 uvm_component :: pre_abort 

  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::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.

 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.


Member Attribute Documentation

 svt_non_abstract_report_object  attribute
 svt_xactor::data_reporter


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).

 svt_event_pool  attribute
 svt_xactor::event_pool


Event pool associated with this agent

 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

 uvm_report_object  attribute
 svt_xactor::reporter


SVT message macros route messages through this reference

 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).

Member Typedef Documentation

 typedef enum  svt_xactor::notifications_e
XACTOR_IDLE(999999)
XACTOR_BUSY(999998)
XACTOR_STARTED(999997)
XACTOR_STOPPED(999996)
XACTOR_RESET(999995)
XACTOR_STOPPING(999994)
XACTOR_IS_STOPPED(999993)

 typedef enum  svt_xactor::reset_e

Enum used to provide compatibility layer for supporting VMM reset types in O/UVM.

SOFT_RST
PROTOCOL_RST
FIRM_RST
HARD_RST