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_atb_transaction:
This is the base transaction type which contains all the physical attributes of the transaction like id, data, burst length, etc. It also provides the timing information of the transaction to the master & slave transactors, that is, delays for valid and ready signals with respect to some reference events.
The svt_atb_transaction also contains a handle to configuration object of type svt_atb_port_configuration , which provides the configuration of the port on which this transaction would be applied. The port configuration is used during randomizing the transaction.
Class Member Groupings | |
| Miscellaneous attributes | This group contains miscellaneous attributes which do not fall under any of the categories above. |
| ATB transaction status attributes | This group contains attributes which report the status of ATB transaction. |
| ATB timing attributes | This group contains attributes which are used to capture various timing details. |
| ATB delay attributes | This group contains attributes which can be used to control delays in ATB signals. |
| ATB protocol attributes | This group contains attributes which are relevant to ATB protocol. |
Public Member Functions | |
| function void | add_databeat ( bit [SVT_ATB_MAX_DATA_WIDTH-1:0] databeat ) |
| function void | add_databeat_array ( bit [SVT_ATB_MAX_DATA_WIDTH-1:0] databeat[] ) |
| 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 void | do_copy ( uvm_object rhs ) |
| 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 int | get_burst_length ( ) |
| function int | get_byte_count ( ) |
| function bit [SVT_ATB_MAX_DATA_WIDTH-1:0] | get_databeat ( int curr_beat = -1 ) |
| 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 bit | is_trigger ( ) |
| function void | new ( string name = "svt_atb_transaction", svt_atb_port_configuration port_cfg_handle = null ) |
| function void | pack_data_to_byte_stream ( input bit [SVT_ATB_MAX_DATA_WIDTH-1:0] data_to_pack[], output bit [7:0] packed_data[] ) |
| function string | psdisplay_short ( string prefix = "", bit hdr_only = 0 ) |
| function int | reasonable_constraint_mode ( bit on_off ) |
| function void | set_cfg ( svt_atb_port_configuration cfg ) |
| function void | set_databeat ( int curr_beat = -1, bit [SVT_ATB_MAX_DATA_WIDTH-1:0] databeat ) |
| function bit | set_prop_val ( string prop_name, bit [1023:0] prop_val, int array_ix ) |
| function void | unpack_byte_stream_to_data ( input bit [7:0] data_to_unpack[], output bit [SVT_ATB_MAX_DATA_WIDTH-1:0] unpacked_data[] ) |
Public Attributes | |
| rand int unsigned | burst_length = 1; |
| int | current_data_beat_num = 0; |
| bit | current_flush_ready = 0; |
| bit | current_flush_valid = 0; |
| rand bit [7:0] | data_byte [] |
| int | data_ready_assertion_cycle [] |
| real | data_ready_assertion_time [] |
| rand int unsigned | data_ready_delay [] |
| int | data_valid_assertion_cycle [] |
| real | data_valid_assertion_time [] |
| rand bit [SVT_ATB_MAX_DATA_VALID_BYTES_WIDTH-1:0] | data_valid_bytes [] |
| rand int unsigned | data_valid_delay [] |
| int | flush_ready_assertion_cycle |
| real | flush_ready_assertion_time |
| int | flush_valid_assertion_cycle |
| real | flush_valid_assertion_time |
| rand bit [SVT_ATB_MAX_ID_WIDTH-1:0] | id = 0; |
| int | LONG_BURST_wt = 400; |
| int | LONG_DELAY_wt = 1; |
| int | object_id = -1; |
| string | pa_object_type = ""; |
| svt_atb_port_configuration | port_cfg |
| int | port_id |
| rand svt_atb_transaction :: reference_event_for_data_ready_delay_enum | reference_event_data_ready_delay |
| rand svt_atb_transaction :: reference_event_for_data_valid_delay_enum | reference_event_data_valid_delay |
| int | SHORT_BURST_wt = 500; |
| int | SHORT_DELAY_wt = 500; |
| svt_atb_transaction :: status_enum | xact_status |
| rand svt_atb_transaction :: xact_type_enum | xact_type |
| int | ZERO_BURST_wt = 100; |
| int | ZERO_DELAY_wt = 100; |
Member Typedefs | |
| typedef enum | reference_event_for_data_ready_delay_enum |
| typedef enum | reference_event_for_data_valid_delay_enum |
| typedef enum | status_enum |
| typedef enum | xact_type_enum |
Class Member Groupings | |
Group: Miscellaneous attributes | |
| This group contains miscellaneous attributes which do not fall under any of the categories above. | |
| int | object_id = -1; |
| svt_atb_port_configuration | port_cfg |
| int | port_id |
Group: ATB transaction status attributes | |
| This group contains attributes which report the status of ATB transaction. | |
| int | current_data_beat_num = 0; |
| bit | current_flush_ready = 0; |
| bit | current_flush_valid = 0; |
| svt_atb_transaction :: status_enum | xact_status |
Group: ATB timing attributes | |
| This group contains attributes which are used to capture various timing details. | |
| int | data_ready_assertion_cycle [] |
| real | data_ready_assertion_time [] |
| int | data_valid_assertion_cycle [] |
| real | data_valid_assertion_time [] |
| int | flush_ready_assertion_cycle |
| real | flush_ready_assertion_time |
| int | flush_valid_assertion_cycle |
| real | flush_valid_assertion_time |
Group: ATB delay attributes | |
| This group contains attributes which can be used to control delays in ATB signals. | |
| rand int unsigned | data_ready_delay [] |
| rand int unsigned | data_valid_delay [] |
| int | LONG_DELAY_wt = 1; |
| rand svt_atb_transaction :: reference_event_for_data_ready_delay_enum | reference_event_data_ready_delay |
| rand svt_atb_transaction :: reference_event_for_data_valid_delay_enum | reference_event_data_valid_delay |
| int | SHORT_DELAY_wt = 500; |
| int | ZERO_DELAY_wt = 100; |
Group: ATB protocol attributes | |
| This group contains attributes which are relevant to ATB protocol. | |
| rand int unsigned | burst_length = 1; |
| rand bit [7:0] | data_byte [] |
| rand bit [SVT_ATB_MAX_DATA_VALID_BYTES_WIDTH-1:0] | data_valid_bytes [] |
| rand bit [SVT_ATB_MAX_ID_WIDTH-1:0] | id = 0; |
| int | LONG_BURST_wt = 400; |
| int | SHORT_BURST_wt = 500; |
| rand svt_atb_transaction :: xact_type_enum | xact_type |
| int | ZERO_BURST_wt = 100; |
|
||
adds this databeat as data bytes to current data_byte array. databeat - Data beat that needs to be added to current transaction |
|
||
adds array of databeats as data bytes to current data_byte array. databeat - Array containing set of databeats |
|
||||||
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. | ||||||||||||
|
|
||||||||||||||
|
|
||||||||||||||||
Extend the copy method to take care of the transaction fields and cleanup the exception xact pointers.
rhs - Source object to be copied. | ||||||||||||||||
|
|
||||||||||||
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. | ||||||
|
|
||
Gets the number of beats of data to be sent.
|
|
||
Returns the total number of bytes transferred in this transaction Return values - The total number of bytes transferred in this transaction |
|
||
This method returns complete data-beat based on databus width specified in port-configuration, from data_byte array. While returning data-beat it considers current_data_beat_num to choose which bytes from data_byte array will be packed. However, if this method is called with a non-negative value then it uses that value as current data beat number and chooses data bytes from data_byte accordingly. It places bytes with lowest index to LSB postion of returning databeat. curr_beat - Specifies beat number for which data need to be returned. |
|
||||||||||
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.
| ||||||||||||
|
|
||
Returns 1 if current Transaction carries Trigger message from Trace Source
|
|
||||||
CONSTUCTOR: Create a new transaction instance, passing the appropriate argument values to the parent class.
name - Instance name of the transaction | ||||||
|
|
||
Returns the data in the data_to_pack[] field as a byte stream based on the burst_type. The assumption is that either data[] or cache_write_data[] fields of this class have been passed as arguments to data_to_pack[] field. In the case of WRAP bursts the data is returned such that packed_data[0] corresponds to the data for the wrap boundary. In the case of INCR bursts, the data as passed in data_to_pack[] is directly packed to packed_data[]. data_to_pack - Data to be packed packed_data - [] Output byte stream with packed data |
|
||||||||
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.
| ||||||||||
|
|
||||
Sets the configuration property
| ||||
|
|
||
This method returns complete data-beat to corresponding data_byte array locations. It starts populating associated data_byte array locations from lowest indices with LSB bytes of databeat.
curr_beat - Specifies beat number for which data need to be stored. |
|
||||||||||||
HDL Support: For write access to public data members of this class.
| ||||||||||||
|
|
||
Unpacks the data in data_to_unpack[] into utemp_datanpacked_data. For an INCR burst, the data is directly unpacked into unpacked_data For a WRAP burst, the data is unpacked such that unpacked_data[0] corresponds to the starting address. The assumption here is that data_to_unpack[] has a byte stream whose data starts from the address corresponding to the wrap boundary data_to_unpack - The data to unpack. unpacked_data - The unpacked data. |
|
|
The variable represents the actual length of the burst. For eg. burst_length = 1 means a burst of length 1.
|
|
|
This is a counter which is incremented for every dataword transfer specified as part of the burst. Useful when user would try to access the transaction class to know its current state. This represents the beat number for which the status is reflected in member xact_status.
|
|
|
This attribute represents the value of afready signal for the current beat. This attribute is populated with the afready signal value at the end of each beat. User after getting the transaction object from the analysis port can identify if the data associated with current beat is flush data or not by checking the value of current_flush_valid and current_flush_ready attribute. If the value of current_flush_valid is 1 and current_flush_ready is 0 then only the data will be flush data. Applicable only when svt_atb_port_configuration :: flush_request_enable is set.
|
|
|
This attribute represents the value of afvalid signal for the current beat. This attribute is populated with the afvalid signal value at the end of each beat. User after getting the transaction object from the analysis port can identify if the data associated with current beat is flush data or not by checking the value of current_flush_valid and current_flush_ready attribute. If the value of current_flush_valid is 1 and current_flush_ready is 0 then only the data will be flush data. Applicable only when svt_atb_port_configuration :: flush_request_enable is set.
|
|
|
Represents all the data bytes that will be placed onto databus as a data-word or byte(s). It is stored in byte-wise format and accessible as a collection of bytes. While placing these data bytes onto databus, Driver will align first byte i.e. data[0] to LSB of dataword. parameter svt_atb_port_configuration :: data_width. |
|
|
This variable stores the cycle information when data ready is asserted VIP updates the value of this variable, user does not need to program.
|
|
|
This variable stores the timestamp information when data valid is asserted VIP updates the value of this variable, user does not need to program.
|
|
|
If configuration parameter svt_atb_port_configuration :: default_atready is FALSE, this member defines the ATREADY signal delay in number of clock cycles. The reference event for this delay is reference_event_for_data_ready_delay_enum
If configuration parameter svt_atb_port_configuration :: default_atready is TRUE, this member defines the number of clock cycles for which ATREADY signal should be deasserted after each handshake, before pulling it up again to its default value. Applicable for ACTIVE SLAVE only. |
|
|
This variable stores the cycle information when data valid is asserted VIP updates the value of this variable, user does not need to program.
|
|
|
This variable stores the timestamp information when data valid is asserted VIP updates the value of this variable, user does not need to program.
|
|
|
Represents all the data valid bytes that will be placed onto databus to indicate how many data bytes from ATDATA bus should be captured. Data bytes that need to be captured should be counted from LSB bytes. |
|
|
Defines the delay in number of cycles for ATVALID signal. The reference event for this delay is:
|
|
|
This variable stores the cycle information when flush ready is asserted VIP updates the value of this variable, user does not need to program.
|
|
|
This variable stores the timestamp information when flush valid is asserted VIP updates the value of this variable, user does not need to program.
|
|
|
This variable stores the cycle information when flush valid is asserted VIP updates the value of this variable, user does not need to program.
|
|
|
This variable stores the timestamp information when flush valid is asserted VIP updates the value of this variable, user does not need to program.
|
|
|
The variable holds the value of ATB Transaction ID associated with each transfer. parameter svt_atb_port_configuration :: id_width. |
|
|
Weight used to control distribution of longer bursts within transaction generation.
This controls the distribution of the length of the bursts using burst_length field |
|
|
Weight used to control distribution of long delays within transaction generation.
This controls the distribution of delays for the 'delay' fields (e.g., delays for asserting the ready signals). |
|
|
Variable that holds the object_id of this transaction
|
|
|
|
The port configuration corresponding to this transaction
|
|
|
Represents port ID. Not currently supported.
|
|
|
Defines the reference events to delay ATREADY signal. Following are the different events under this category:
PREV_DATA_VALID: Reference event for ATREADY is assertion of the ATVALID signal MANUAL_RREADY: (Not supported currently) Currently only positive delay to assert ATREADY is supported. |
|
|
Defines the reference events to delay ATVALID signal. Following are the different events under this category:
PREV_DATA_VALID: Reference event for ATVALID is assertion of previous ATVALID signal PREV_DATA_HANDSHAKE: Reference event for ATVALID is completion of previous ATVALID/ATREADY handshake For very first transaction in the simulation after reset, driver will use this delay to wait first before asserting first ATVALID. For first ATVALID of a particular transaction driver checks if the delay specified has already been elapsed from the mentioned reference point. If it is greater that or equal to specified delay then it will assert ATVALID immediately otherwise it will wait for rest of the delay before assertint ATVALID. Currently only positive delay to assert ATVALID is supported. |
|
|
Weight used to control distribution of short bursts within transaction generation.
This controls the distribution of the length of the bursts using burst_length field |
|
|
Weight used to control distribution of short delays within transaction generation.
This controls the distribution of delays for the 'delay' fields (e.g., delays for asserting the ready signals). |
|
|
Represents the status of the ATB Transfer. Following are the possible status types:
|
|
|
Represents the transaction type. Following are the possible transaction types:
|
|
|
Weight used to control distribution of burst length to 1 within transaction generation.
This controls the distribution of the length of the bursts using burst_length field |
|
|
Weight used to control distribution of zero delay within transaction generation.
This controls the distribution of delays for the 'delay' fields (e.g., delays for asserting the ready signals). |
|
|
|
|