VIP Smartsearch

X
  • VIP Smartsearch is a framework that supports search within VIP reference documents using query in natural language. It facilitates reordering of search results and keeps record of user’s decision for the ordering of result display and applies that in search of same query on subsequent usage.
  • How to download VIP smartsearch?

    1. Get VIP Smartsearch (Available as a seperate run file).
    2. Set environment variable
      DESIGNWARE_HOME
      to required designware home location where VIP Smartsearch should be downloaded.
    3. Run
      vip_smartsearch_<version>.run
      file.
      VIP Smartsearch will be downloaded to the location
      $DESIGNWARE_HOME/vip/svt/vip_smartsearch/<version>
  • How to install VIP Smartsearch?

    Please refer to the file
    VIP_Smartsearch_installation_and_usage_guide.pdf
    in
    $DESIGNWARE_HOME/vip/svt/vip_smartsearch/<version>
    for installation steps.
  • Customer Support

    For more details about VIP smartsearch tool, contact support_center@synopsys.com.
    Mention your queries along with below details and send email to above email id.
    Product: Verification IP
    Sub Product: <vip_title>
    Tool: VIP Smartsearch

svt_apb_transaction Class Reference

Inheritance diagram for class svt_apb_transaction:

List of all members.


Detailed Description

This is the transaction class which contains all the physical attributes of the transaction like address and data. It also provides the wait state information of the transaction.



Class Member Groupings

APB5 protocol attributes  This group contains attributes which are relevant to APB5 protocol. As of now User signaling is added.

Public Member Functions

function svt_pattern  allocate_xml_pattern ( )
function bit  decode_prop_val ( string prop_name, bit [1023:0] prop_val, ref string prop_val_string, input svt_pattern_data :: type_enum typ )
function svt_pattern  do_allocate_pattern ( )
function bit  do_compare ( ovm_object rhs, ovm_comparer comparer )
function bit  do_is_valid ( bit silent = 1, int kind = RELEVANT )
function bit  encode_prop_val ( string prop_name, string prop_val_string, ref bit [1023:0] prop_val, input svt_pattern_data :: type_enum typ )
function void  generate_pstrb ( input int data_width )
function bit [SVT_APB_MAX_ADDR_WIDTH-1:0]  get_aligned_addr ( bit [SVT_APB_MAX_ADDR_WIDTH-1:0] addr, int data_wdth )
function bit [SVT_APB_MAX_DATA_WIDTH/8-1:0]  get_byteen_for_unaligned_addr ( bit [SVT_APB_MAX_ADDR_WIDTH-1:0] aligned_addr, int data_wdth )
function string  get_mcd_class_name ( )
function svt_pa_object_data  get_pa_obj_data ( string uid = "", string typ = "", string parent_uid = "", string channel = "" )
function bit  get_prop_val ( string prop_name, ref bit [1023:0] prop_val, input int array_ix, ref svt_sequence_item_base data_obj )
function string  get_uid ( )
function void  new ( string name = "svt_apb_transaction" )
function string  psdisplay_short ( string prefix = "", bit hdr_only = 0 )
function int  reasonable_constraint_mode ( bit on_off )
function bit  set_prop_val ( string prop_name, bit [1023:0] prop_val, int array_ix )

Public Attributes

rand bit [SVT_APB_MAX_ADDR_WIDTH-1:0]  address = 0; 
rand bit [SVT_APB_MAX_CONTROL_PUSER_WIDTH-1:0]  control_puser = 0; 
svt_apb_transaction :: xact_state_enum  curr_state 
rand bit [SVT_APB_MAX_DATA_WIDTH-1:0]  data = 0; 
rand int  num_idle_cycles = 1; 
rand int  num_wait_cycles = 0; 
rand svt_apb_transaction :: physical_mem_region_enum  physical_mem_region 
rand svt_apb_transaction :: pprot0_enum  pprot0 
rand svt_apb_transaction :: pprot1_enum  pprot1 
rand svt_apb_transaction :: pprot2_enum  pprot2 
rand bit  pslverr_enable = 0; 
rand bit [SVT_APB_MAX_DATA_WIDTH/8-1:0]  pstrb = 'hf; 
int  slave_id 
rand svt_apb_transaction :: xact_type_enum  xact_type 

Member Typedefs

 typedef enum  physical_mem_region_enum 
 typedef enum  pprot0_enum 
 typedef enum  pprot1_enum 
 typedef enum  pprot2_enum 
 typedef enum  xact_state_enum 
 typedef enum  xact_type_enum 

Constraints

constraint  valid_ranges  ( )

Class Member Groupings



Group: APB5 protocol attributes

This group contains attributes which are relevant to APB5 protocol. As of now User signaling is added.


Member Function Documentation

  function svt_pattern
 svt_apb_transaction::allocate_xml_pattern

 (   ) 


allocate_xml_pattern method collects all the fields which are primitive data fields of the transaction and filters the filelds to get only the fileds to be displayed in the PA.

Return values - An svt_pattern instance containing entries for required fields to be dispalyed in PA


 Superseded functions 
 svt_sequence_item_base :: allocate_xml_pattern 
 Superseding functions 
 svt_apb_slave_transaction :: allocate_xml_pattern 

  function bit
 svt_apb_transaction::decode_prop_val

 (  string prop_name , bit [1023:0] prop_val , ref string prop_val_string , input svt_pattern_data :: type_enum typ  ) 


Simple utility used to convert 'bit [1023:0]' property value representation into its equivalent string property value representation. Extended to support decoding of enum values.

prop_name - The name of the property being encoded.

prop_val_string - The string describing the value to be encoded.

prop_val - The bit vector encoding of prop_val_string.

typ - Optional field type used to help in the encode effort.

Return values - The enum value corresponding to the desc.


 Superseded functions 
 svt_sequence_item_base :: decode_prop_val 
 svt_sequence_item :: decode_prop_val 

  function svt_pattern
 svt_apb_transaction::do_allocate_pattern

 (   ) 


This method allocates a pattern containing svt_pattern_data instances for all of the primitive data fields in the object. The name is set to the corresponding field name, the value is set to 0.

Return values - An svt_pattern instance containing entries for all of the data fields.


 Superseded functions 
 svt_sequence_item_base :: do_allocate_pattern 
 svt_sequence_item :: do_allocate_pattern 
 Superseding functions 
 svt_apb_master_transaction :: do_allocate_pattern 
 svt_apb_slave_transaction :: do_allocate_pattern 

  function bit
 svt_apb_transaction::do_compare

 (  ovm_object rhs , ovm_comparer comparer  ) 


Compares the object with rhs..

rhs - Object to be compared against.

comparer - TBD


 Superseded functions 
 ovm_object :: do_compare 
 svt_sequence_item_base :: do_compare 
 svt_sequence_item :: do_compare 
 Superseding functions 
 svt_apb_master_transaction :: do_compare 
 svt_apb_slave_transaction :: do_compare 

  function bit
 svt_apb_transaction::do_is_valid

 (  bit silent = 1, int kind = RELEVANT  ) 


Does a basic validation of this transaction object

 Superseded functions 
 svt_sequence_item_base :: do_is_valid 
 svt_sequence_item :: do_is_valid 
 Superseding functions 
 svt_apb_master_transaction :: do_is_valid 
 svt_apb_slave_transaction :: do_is_valid 

  function bit
 svt_apb_transaction::encode_prop_val

 (  string prop_name , string prop_val_string , ref bit [1023:0] prop_val , input svt_pattern_data :: type_enum typ  ) 


Simple utility used to convert string property value representation into its equivalent 'bit [1023:0]' property value representation. Extended to support encoding of enum values.

prop_name - The name of the property being encoded.

prop_val_string - The string describing the value to be encoded.

prop_val - The bit vector encoding of prop_val_string.

typ - Optional field type used to help in the encode effort.

Return values - The enum value corresponding to the desc.


 Superseded functions 
 svt_sequence_item_base :: encode_prop_val 
 svt_sequence_item :: encode_prop_val 

  function void
 svt_apb_transaction::generate_pstrb

 (  input int data_width  ) 


Generate PSTRB (Write Strobes) for the address with respect to the data width. Applicable for APB4 only.

  function bit [SVT_APB_MAX_ADDR_WIDTH-1:0]
 svt_apb_transaction::get_aligned_addr

 (  bit [SVT_APB_MAX_ADDR_WIDTH-1:0] addr , int data_wdth  ) 


Calculate the aligned address for the provided unaligned address with respect to the data width.

  function bit [SVT_APB_MAX_DATA_WIDTH/8-1:0]
 svt_apb_transaction::get_byteen_for_unaligned_addr

 (  bit [SVT_APB_MAX_ADDR_WIDTH-1:0] aligned_addr , int data_wdth  ) 


Generate byteen for write transactions based on the unaligend address for slave memory updates.

  function string
 svt_apb_transaction::get_mcd_class_name

 (   ) 


Returns the class name for the object used for logging.

 Superseded functions 
 svt_sequence_item_base :: get_mcd_class_name 
 Superseding functions 
 svt_apb_master_transaction :: get_mcd_class_name 
 svt_apb_slave_transaction :: get_mcd_class_name 

  function svt_pa_object_data
 svt_apb_transaction::get_pa_obj_data

 (  string uid = "", string typ = "", string parent_uid = "", string channel = ""  ) 


This method returns PA object which contains the PA header information for XML or FSDB.

uid - Optional string indicating the unique identification value for object. If not provided uses the 'get_uid' method to retrieve the value.

typ - Optional string indicating the 'type' of the object. If not provided uses the type name for the class.

parent_uid - Optional string indicating the UID of the object's parent. If not provided the method assumes there is no parent.

channel - Optional string indicating an object channel. If not provided the method assumes there is no channel.

Return values - The requested object block description.


 Superseded functions 
 svt_sequence_item_base :: get_pa_obj_data 
 svt_sequence_item :: get_pa_obj_data 
 Superseding functions 
 svt_apb_master_transaction :: get_pa_obj_data 
 svt_apb_slave_transaction :: get_pa_obj_data 

  function bit
 svt_apb_transaction::get_prop_val

 (  string prop_name , ref bit [1023:0] prop_val , input int array_ix , ref svt_sequence_item_base data_obj  ) 


HDL Support: For read access to public data members of this class.

 Superseded functions 
 svt_sequence_item_base :: get_prop_val 
 svt_sequence_item :: get_prop_val 
 Superseding functions 
 svt_apb_master_transaction :: get_prop_val 
 svt_apb_slave_transaction :: get_prop_val 

  function string
 svt_apb_transaction::get_uid

 (   ) 


This method returns a string indication unique identification value for object .

 Superseded functions 
 svt_sequence_item_base :: get_uid 
 Superseding functions 
 svt_apb_master_transaction :: get_uid 
 svt_apb_slave_transaction :: get_uid 

  function void
 svt_apb_transaction::new

 (  string name = "svt_apb_transaction"  ) 


CONSTUCTOR: Create a new transaction instance, passing the appropriate argument values to the parent class.

name - Instance name of the transaction


 Superseded functions 
 ovm_object :: new 
 Superseding functions 
 svt_apb_master_transaction :: new 
 svt_apb_slave_transaction :: new 

  function string
 svt_apb_transaction::psdisplay_short

 (  string prefix = "", bit hdr_only = 0  ) 


Returns a string (with no line feeds) that reports the essential contents of the packet generally necessary to uniquely identify that packet.

prefix - (Optional: default = "") The string given in this argument becomes the first item listed in the value returned. It is intended to be used to identify the transactor (or other source) that requested this string. This argument should be limited to 8 characters or less (to accommodate the fixed column widths in the returned string). If more than 8 characters are supplied, only the first 8 characters are used.

hdr_only - (Optional: default = 0) If this argument is supplied, and is '1', the function returns a 3-line table header string, which indicates which packet data appears in the subsequent columns. If this argument is '1', the prefix argument becomes the column label for the first header column (still subject to the 8 character limit).


 Superseded functions 
 svt_sequence_item :: psdisplay_short 
 Superseding functions 
 svt_apb_master_transaction :: psdisplay_short 
 svt_apb_slave_transaction :: psdisplay_short 

  function int
 svt_apb_transaction::reasonable_constraint_mode

 (  bit on_off  ) 


Method to turn reasonable constraints on/off as a block.

 Superseded functions 
 svt_sequence_item_base :: reasonable_constraint_mode 
 Superseding functions 
 svt_apb_master_transaction :: reasonable_constraint_mode 
 svt_apb_slave_transaction :: reasonable_constraint_mode 

  function bit
 svt_apb_transaction::set_prop_val

 (  string prop_name , bit [1023:0] prop_val , int array_ix  ) 


HDL Support: For write access to public data members of this class.

 Superseded functions 
 svt_sequence_item_base :: set_prop_val 
 svt_sequence_item :: set_prop_val 
 Superseding functions 
 svt_apb_master_transaction :: set_prop_val 
 svt_apb_slave_transaction :: set_prop_val 


Member Attribute Documentation

 rand bit [SVT_APB_MAX_ADDR_WIDTH-1:0]  attribute
 svt_apb_transaction::address = 0


Payload address.

This property is non-rand for slave transactions.

 rand bit [SVT_APB_MAX_CONTROL_PUSER_WIDTH-1:0]  attribute
 svt_apb_transaction::control_puser = 0


This property allows user to send sideband information on APB interface signal control_puser

 svt_apb_transaction :: xact_state_enum  attribute
 svt_apb_transaction::curr_state


This member reflects the current state of the transaction. This member is updated by the VIP. After user gets access to the transaction object handle, user can track the transaction progress using this member. This member reflects whether transaction is in IDLE state, SETUP state, ACCESS state or ABORTED state.

 rand bit [SVT_APB_MAX_DATA_WIDTH-1:0]  attribute
 svt_apb_transaction::data = 0


Payload data.

This property is rand for both master and slave transactions.

 rand int  attribute
 svt_apb_transaction::num_idle_cycles = 1


If this is an idle transaction, define the number of cycles idle.

This property is non-rand for slave transactions.

 rand int  attribute
 svt_apb_transaction::num_wait_cycles = 0


Number of wait cycles that the slave injects

This property is non-rand for master transactions.

Only applicable when svt_apb_system_configuration :: apb3_enable or svt_apb_system_configuration :: apb4_enable is set.

 rand svt_apb_transaction :: physical_mem_region_enum  attribute
 svt_apb_transaction::physical_mem_region = APB_SECURE


This variable represents targeted physical memory region, and determines pnse/pprot1 values. APB_SECURE: pnse=0, pprot=0, applicable in APB4 APB_NON_SECURE: pnse=0, pprot=1, applicable in APB4 APB_ROOT: pnse=1, pprot=0, only applicable in APB5 APB_REALM: pnse=1, pprot=1, only applicable in APB5 Only applicable when svt_apb_system_configuration :: apb4_enable, or svt_apb_system_configuration :: apb4_enable and svt_apb_system_configuration:apb5_enable and svt_apb_configuration:rme_support are set.

 rand svt_apb_transaction :: pprot0_enum  attribute
 svt_apb_transaction::pprot0 = NORMAL


prot[0] value

This property is non-rand for slave transactions.

Only applicable when svt_apb_system_configuration :: apb4_enable is set.

 rand svt_apb_transaction :: pprot1_enum  attribute
 svt_apb_transaction::pprot1 = SECURE


prot[1] value

This property is non-rand for slave transactions. This variable is determined by svt_apb_transaction :: physical_mem_region.

Only applicable when svt_apb_system_configuration :: apb4_enable is set.

 rand svt_apb_transaction :: pprot2_enum  attribute
 svt_apb_transaction::pprot2 = DATA


prot[2] value

This property is non-rand for slave transactions.

Only applicable when svt_apb_system_configuration :: apb4_enable is set.

 rand bit  attribute
 svt_apb_transaction::pslverr_enable = 0


On Slave side, this member is used to inject slave error response.

APB Slave VIP drives error response when this member is set to 1 in APB Slave transaction.

On Master side, this member is used to report whether master received error response. If APB Master VIP receives error response from slave, this member is set to 1 in APB Master transaction.

This property is non-rand in APB Master transaction.

Only applicable when svt_apb_system_configuration :: apb3_enable or svt_apb_system_configuration :: apb4_enable is set.

 rand bit [SVT_APB_MAX_DATA_WIDTH/8-1:0]  attribute
 svt_apb_transaction::pstrb = 'hf


Write strobe values

This property controls which bytes are written to memory.

This property is non-rand for slave transactions.

Only applicable when svt_apb_system_configuration :: apb4_enable is set.

 int  attribute
 svt_apb_transaction::slave_id


Value identifies which slave index this transaction was received on

 rand svt_apb_transaction :: xact_type_enum  attribute
 svt_apb_transaction::xact_type = IDLE


Defines whether this is a write or read transaction, or an idle transaction.

This property is rand for master transactions, and non-rand for slave transactions.


Member Typedef Documentation

 typedef enum  svt_apb_transaction::physical_mem_region_enum

Enumerated type to specify for APB5 physical memory region.

APB_SECURE(0)
APB_NON_SECURE(1)

 typedef enum  svt_apb_transaction::pprot0_enum

Enum to represent prot[0]

NORMAL(SVT_APB_TRANSACTION_PPROT0_NORMAL)
PRIVILEGED(SVT_APB_TRANSACTION_PPROT0_PRIVILEGED)

 typedef enum  svt_apb_transaction::pprot1_enum

Enum to represent prot[0]

SECURE(SVT_APB_TRANSACTION_PPROT1_SECURE)
NON_SECURE(SVT_APB_TRANSACTION_PPROT1_NON_SECURE)

 typedef enum  svt_apb_transaction::pprot2_enum

Enum to represent prot[0]

DATA(SVT_APB_TRANSACTION_PPROT2_DATA)
INSTRUCTION(SVT_APB_TRANSACTION_PPROT2_INSTRUCTION)

 typedef enum  svt_apb_transaction::xact_state_enum

Enum to represent FSM State

IDLE_STATE(SVT_APB_TRANSACTION_STATE_IDLE)
SETUP_STATE(SVT_APB_TRANSACTION_STATE_SETUP)
ACCESS_STATE(SVT_APB_TRANSACTION_STATE_ENABLE)
UNKNOWN_STATE(SVT_APB_TRANSACTION_STATE_UNKNOWN)
ABORT_STATE(SVT_APB_TRANSACTION_STATE_ABORTED)

 typedef enum  svt_apb_transaction::xact_type_enum

Enum to represent transaction type

READ(SVT_APB_TRANSACTION_TYPE_READ)
WRITE(SVT_APB_TRANSACTION_TYPE_WRITE)
IDLE(SVT_APB_TRANSACTION_TYPE_IDLE)


Member Constraint Documentation

  constraint
 svt_apb_transaction::valid_ranges


constraint valid_ranges {
  }