How to download VIP smartsearch?
DESIGNWARE_HOMEto required designware home location where VIP Smartsearch should be downloaded.
vip_smartsearch_<version>.runfile.
$DESIGNWARE_HOME/vip/svt/vip_smartsearch/<version>
How to install VIP Smartsearch?
Please refer to the fileVIP_Smartsearch_installation_and_usage_guide.pdfin
$DESIGNWARE_HOME/vip/svt/vip_smartsearch/<version>for installation steps.
Customer Support
For more details about VIP smartsearch tool, contact support_center@synopsys.com.Inheritance diagram for class svt_apb_transaction:
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 | cal_parity_bit_from_data ( bit [3:0] data_granularity = 8, bit [7:0] data, bit odd_parity = 1 ) |
| 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 ( uvm_object rhs, uvm_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 | gen_parity_attribute_check ( string entry = "", bit perform_check, svt_apb_configuration cfg ) |
| 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 bit | is_user_inject_parity_value_enabled ( svt_apb_transaction :: user_inject_parity_signal_enum user_inject_parity_signal ) |
| 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; |
| bit | auto_parity_gen_enable = 1; |
| 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 bit [SVT_APB_MAX_ADDRCHK_WIDTH-1:0] | paddrchk |
| int | parity_failure_count = 0; |
| rand bit [SVT_APB5_MAX_PAUSER_WIDTH-1:0] | pauser = 0; |
| rand bit [SVT_APB5_MAX_PAUSERCHK_WIDTH-1:0] | pauserchk |
| rand bit [SVT_APB5_MAX_PBUSER_WIDTH-1:0] | pbuser = 0; |
| rand bit [SVT_APB5_MAX_PBUSERCHK_WIDTH-1:0] | pbuserchk |
| rand bit | pctrlchk |
| rand svt_apb_transaction :: physical_mem_region_enum | physical_mem_region |
| rand bit | pnse = 0; |
| 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 | pslverrchk |
| rand bit [SVT_APB_MAX_DATA_WIDTH/8-1:0] | pstrb = 'hf; |
| rand bit | pstrbchk |
| rand bit [SVT_APB5_MAX_PSUBSYSID_WIDTH-1:0] | psubsysid = 0; |
| rand bit | psubsysidchk |
| rand int unsigned | pwakeup_assert_delay = 0; |
| rand svt_apb_transaction :: pwakeup_assert_mode_enum | pwakeup_assert_mode |
| rand int unsigned | pwakeup_least_deassert_delay = 0; |
| rand bit [SVT_APB_MAX_DATACHK_WIDTH-1:0] | pwrdatachk |
| rand bit [SVT_APB5_MAX_PWRUSER_WIDTH-1:0] | pwruser = 0; |
| rand bit [SVT_APB5_MAX_PWRUSERCHK_WIDTH-1:0] | pwruserchk |
| int | slave_id |
| bit | user_inject_parity_signal_array [ user_inject_parity_signal_enum ] |
| 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 | pwakeup_assert_mode_enum |
| typedef enum | user_inject_parity_signal_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. | |
| bit | auto_parity_gen_enable = 1; |
| rand bit [SVT_APB_MAX_ADDRCHK_WIDTH-1:0] | paddrchk |
| int | parity_failure_count = 0; |
| rand bit [SVT_APB5_MAX_PAUSER_WIDTH-1:0] | pauser = 0; |
| rand bit [SVT_APB5_MAX_PAUSERCHK_WIDTH-1:0] | pauserchk |
| rand bit [SVT_APB5_MAX_PBUSER_WIDTH-1:0] | pbuser = 0; |
| rand bit [SVT_APB5_MAX_PBUSERCHK_WIDTH-1:0] | pbuserchk |
| rand bit | pctrlchk |
| rand bit | pnse = 0; |
| rand bit | pslverrchk |
| rand bit | pstrbchk |
| rand bit [SVT_APB5_MAX_PSUBSYSID_WIDTH-1:0] | psubsysid = 0; |
| rand bit | psubsysidchk |
| rand int unsigned | pwakeup_assert_delay = 0; |
| rand svt_apb_transaction :: pwakeup_assert_mode_enum | pwakeup_assert_mode |
| rand int unsigned | pwakeup_least_deassert_delay = 0; |
| rand bit [SVT_APB_MAX_DATACHK_WIDTH-1:0] | pwrdatachk |
| rand bit [SVT_APB5_MAX_PWRUSER_WIDTH-1:0] | pwruser = 0; |
| rand bit [SVT_APB5_MAX_PWRUSERCHK_WIDTH-1:0] | pwruserchk |
| bit | user_inject_parity_signal_array [ user_inject_parity_signal_enum ] |
|
||||||||
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 | ||||||||
|
|
||
Calculate parity bit for corresponding data, also used for check, odd_parity as received parity bit, return value = 1 means check passed.
|
|
||||||
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. | ||||||
|
|
||||||||||||
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. | ||||||||||||
|
|
||||||||||||||
|
|
||||||||||||
Does a basic validation of this transaction object
| ||||||||||||
|
|
||||||
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. | ||||||
|
|
||
Generate parity attributes, also used used for parity check With entry=“MASTER” and perform_check=0, generate P***CHK attributes sent by the master based on corresponding signals. With entry=“MASTER” and perform_check=1, perform parity checks for signals received by the master. With entry=“SLAVE” and perform_check=0, generate P***CHK attributes sent by the slave based on corresponding signals. With entry=“SLAVE” and perform_check=1, perform parity checks for signals received by the slave.
|
|
||
Generate PSTRB (Write Strobes) for the address with respect to the data width. Applicable for APB4 only.
|
|
||
Calculate the aligned address for the provided unaligned address with respect to the data width.
|
|
||
Generate byteen for write transactions based on the unaligend address for slave memory updates.
|
|
||||||||||
Returns the class name for the object used for logging.
| ||||||||||
|
|
||||||||||||
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. | ||||||||||||
|
|
||||||||||||
HDL Support: For read access to public data members of this class.
| ||||||||||||
|
|
||||||||||
This method returns a string indication unique identification value for object .
| ||||||||||
|
|
||
Returns 1, If the error injection configuration for given parity check signal in the svt_apb_transaction :: user_inject_parity_signal_array is enabled, else returns 0.
|
|
||||||||||||||
CONSTUCTOR: Create a new transaction instance, passing the appropriate argument values to the parent class.
name - Instance name of the transaction | ||||||||||||||
|
|
||||||||||
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). | ||||||||||
|
|
||||||||||
Method to turn reasonable constraints on/off as a block.
| ||||||||||
|
|
||||||||||||
HDL Support: For write access to public data members of this class.
| ||||||||||||
|
|
|
Payload address.
This property is non-rand for slave transactions. |
|
|
The variable represents configuration for parity value generation. When the value is set to '1', VIP generates the parity values for corresponding check signals and drives them. When the value is set to '0', and respective parity signal index is set to '1' in the svt_apb_transaction :: user_inject_parity_signal_array, VIP drives the parity values provided by the user. Default Value : 1.
|
|
|
This property allows user to send sideband information on APB interface signal control_puser
|
|
|
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.
|
|
|
Payload data.
This property is rand for both master and slave transactions. |
|
|
If this is an idle transaction, define the number of cycles idle.
This property is non-rand for slave transactions. |
|
|
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. |
|
|
This variable represents PADDRCHK value Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: check_type is set as ODD_PARITY_BYTE_ALL.
|
|
|
This variable represents the failure count of parity checks, observe the failure details in the error prints. Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: check_type is set as ODD_PARITY_BYTE_ALL.
|
|
|
This variable represents PAUSER value. Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: pauser_width are set.
|
|
|
This variable represents PAUSERCHK value Only present if PAUSER exists Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: check_type is set as ODD_PARITY_BYTE_ALL.
|
|
|
This variable represents PBUSER value. Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: pbuser_width are set.
|
|
|
This variable represents PBUSERCHK value Only present if PBUSER exists Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: check_type is set as ODD_PARITY_BYTE_ALL.
|
|
|
This variable represents PCTRLCHK value Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: check_type is set as ODD_PARITY_BYTE_ALL.
|
|
|
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.
|
|
|
This variable represents PNSE value, and is determined by svt_apb_transaction :: physical_mem_region. Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: rme_support are set.
|
|
|
prot[0] value
This property is non-rand for slave transactions. Only applicable when svt_apb_system_configuration :: apb4_enable is set. |
|
|
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. |
|
|
prot[2] value
This property is non-rand for slave transactions. Only applicable when svt_apb_system_configuration :: apb4_enable is set. |
|
|
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. |
|
|
This variable represents PSLVERRCHK value Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: check_type is set as ODD_PARITY_BYTE_ALL.
|
|
|
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. |
|
|
This variable represents PSTRBCHK value Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: check_type is set as ODD_PARITY_BYTE_ALL.
|
|
|
This variable represents PSUBSYSID value. Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: psubsysid_width are set.
|
|
|
This variable represents PSUBSYSIDCHK value Only present if PSUBSYSID exists Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: check_type is set as ODD_PARITY_BYTE_ALL.
|
|
|
This variable represents the delay clock cycles between PWAKEUP and PSEL assertions for svt_apb_transaction :: pwakeup_assert_mode. It’s constrained in range of svt_apb_configuration :: pwakeup_assert_min_delay (default 1) and svt_apb_configuration :: pwakeup_assert_max_delay (default 4). Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: pwakeup_signal are set, and svt_apb_transaction :: pwakeup_assert_mode is set to APB5_PWAKEUP_BEFORE_PSEL/APB5_PWAKEUP_AFTER_PSEL. Only applicable for IDLE transfers or the first transfer, reset when PSELx are all 0.
|
|
|
APB5_PWAKEUP_NONE indicates PWAKEUP is disabled. APB5_PWAKEUP_IDLE indicates PWAKEUP asserted for IDLE transfer. APB5_PWAKEUP_BEFORE_PSEL indicates PWAKEUP asserted before PSEL. APB5_PWAKEUP_DURING_PSEL indicates PWAKEUP asserted during PSEL. APB5_PWAKEUP_AFTER_PSEL indicates PWAKEUP asserted after PSEL, this option could risk the DUT completer to miss setup phase info. Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: pwakeup_signal are set. Only applicable for IDLE transfers or the first transfer, reset when PSELx are all 0.
|
|
|
Value of 0 means PWAKEUP will not de-assert until IDLE state, PSELx are all 0. Value of positive means the least delay clock cycles before de-asserting PWAKEUP, as PWAKEUP can only de-assert while transfer completion. It’s constrained in range of svt_apb_configuration :: pwakeup_least_deassert_min_delay (default 0) and svt_apb_configuration :: pwakeup_least_deassert_max_delay (default 5). Note the exception that PWAKEUP could de-assert in advance for IDLE state. Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: pwakeup_signal are set. Only applicable for IDLE transfers or the first transfer, reset when PSELx are all 0.
|
|
|
This variable represents PWDATACHK/PRDATACHK value Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: check_type is set as ODD_PARITY_BYTE_ALL.
|
|
|
This variable represents PWUSER/PRUSER value. Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: pwuser_width or svt_apb_configuration :: pruser_width are set.
|
|
|
This variable represents PWUSERCHK/PRUSERCHK value Only present if PWUSER/PRUSER exists Only applicable when svt_apb_system_configuration :: apb5_enable, and svt_apb_configuration :: check_type is set as ODD_PARITY_BYTE_ALL.
|
|
|
Value identifies which slave index this transaction was received on
|
|
|
The array holds the enable/disable configuration values for user inject parity support.
|
|
|
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. |
|
|
|
|
|
|
|
|