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_chi_transaction:
This class contains fields required for CHI RN and SN transaction. This class acts as a base class for RN and SN transaction classes.
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
|
||||||||||||||||
|
|
||
This method returns the time at which the compack flit is completed.
|
|
||
Returns the write data type observed for a write/atomic transaction. This function is internal to VIP and used only for coverage collection.
|
|
||
Used to get the byte_enable pattern of entire write data
|
|
||
Used to get the data pattern of entire write data
|
|
||||
Returns maximum byte address for the cacheline corresponding to current address
| ||||
|
|
||
Returns maximum byte inded for the cacheline corresponding to current address
|
|
||||
Returns minimum byte address for the cacheline corresponding to current address
| ||||
|
|
||
Returns minimum byte index for the cacheline corresponding to current address
|
|
||
Returns NS bit from the provided CHI tagged address.
|
|
||
Accessor method which returns the time at which the req is accepted as a realtime value.
|
|
||
This method is used to check for a particular response type provided as an argument to this method by traversing the data_resp_err_status array and checking the value in the response_resp_err_status attribute.
response_type - The response type to search. get_first_match - Flag to indicate whether to get the first match for the response_type or to match the response_type with all the values of data_resp_err_status array and response_resp_err_status attribute. In case this argument is set to 0, the method will return 1 only when the response_type matches with all the values of data_resp_err_status array and response_resp_err_status attribute based on transaction type. Default value is 1 for this argument which allows the method to return after the first matching occurance is found.
Return values - Returns 1 if the particular response type is found else returns 0. |
|
||
Accessor method which returns the time at which CompAck is observed as a realtime value.
|
|
||||||||||||||||
|
|
||
Returns number of byte whose byte_enable is '1'
|
|
||
Returns byte_enable of the transaction in wysiwyg format with all the bits corresponding to invalid byte lanes maksed as zeros.
|
|
||
Returns data of the transaction in wysiwyg format with all the bits corresponding to invalid byte lanes maksed as zeros.
|
|
||
Used to get the byte_enable pattern of write data flit
|
|
||
Returns category type for the current transaction object
|
|
||
This API gives out xacts to the same cache line that are started before this transaction.
|
|
||
Indicates if the copyback write transaction involves data response (compdbidresp -> copybackwritedata) or not (comp -> compack).
|
|
||
Determines if this transaction is a CMO transaction.
|
|
||
Determines if this transaction is a Copyback transaction (includes Combined CBWrite and (P)CMO type transactions).
|
|
||
Determines if this transaction is a DVM sync
|
|
||
Method which indicates if the completing flit of the transaction is sent or expected to be sent by the RN.
|
|
||
Determines if the transaction is an ordered read transaction.
|
|
||
Determines if the transaction's attribute for request ordering is asserted.
|
|
||||||||||||||||||||||
|
|
|
|
||
Returns the byte_enable in the byte_enable_to_pack[] field as a byte stream based on the address. The assumption is that byte_enable[] field of this class have been passed as arguments to byte_enable_to_pack[] field. The output has byte_enable packed with the first element corresponding to the address aligned to the data_size. byte_enable_to_pack - byte_enable to be packed packed_byte_enable - [] Output byte stream with packed byte_enable |
|
||
Returns the data in the data_to_pack[] field as a byte stream based on the address. The assumption is that data[] field of this class have been passed as arguments to data_to_pack[] field. The output has data packed with the first element corresponding to the address aligned to the data_size. data_to_pack - Data to be packed packed_data - [] Output byte stream with packed data |
|
||
This method is used to printh the information of Pending flits for a transaction at the point of transaction inactivity timeout
|
|
||||||||||||||||||||||||
|
|
||||||||||||||||
Method to turn reasonable constraints on/off as a block.
| ||||||||||||||||
|
|
||
Sets Combined response attributes:
|
|
||
Mark end of transaction. aborted - indicates that, tranaction is aborted. Currently this argument is not used for any functionality. |
|
||
Method setting the req_accept_time to the current simulation time.
|
|
||
Method setting the resp_status_accept_realtime to the current simulation time.
|
|
||||||||||||||||
|
|
||
Populates the byte_enable in the byte_enable_to_unpack[] field into unpacked_byte_enable based on the address. The first element in the byte_enable_to_unpack must correspond to the address aligned to data_size and subsequent elements must correspond to consecutive address locations. The size of this array must be equal to the number of bytes transferred based on data_size. byte_enable_to_unpack - byte_enable to be unpacked unpacked_byte_enable - [] Unpacked byte_enable |
|
||
Populates the data in the data_to_unpack[] field into unpacked_data based on the address. The first element in the data_to_unpack must correspond to the address aligned to data_size and subsequent elements must correspond to consecutive address locations. The size of this array must be equal to the number of bytes transferred based on data_size. data_to_unpack - Data to be unpacked unpacked_data - [] Unpacked data |
|
||||||||||||||||||||||
|
|
||||||||||||||||
CONSTRUCTOR: Create a new transaction instance.
log - VMM Log instance used for reporting. | ||||||||||||||||
|
|
||||||||||||||||
|
|
|
Indicates if the data as given in data field is to be allocated in cache. Currently applicable only for CLEANUNIQUE and MakeReadUnique transaction. . A CLEANUNIQUE transaction is used to write partial data into the cache when the requesting RN already has the cacheline, but the cache line is in a shared state. . If this bit is set, the data as given in data field will be written into cache according to the byte-enables set in the byte_enable field. Also, the cacheline will move to a UD state. In case of CleanUnique, if the cacheline gets deleted by an incoming snoop before this transaction completes, the cacheline moves to a UDP state. In case of MakeReadUnique, if the cacheline gets deleted by an incoming Snoop before the transaction completes, the cacheine will be updated with the transaction data, given by "makereadunique_read_data" and then overriden with the data and byte_enable programmed in the transaction handle. The cacheline will move to UD state. . If this bit is unset, the data given in the data field has no relevance. In case of CLeanUnique, if the cacheline gets deleted by an incoming snoop before this transaction completes, the cacheline moves to a UCE state. In case of MakeReadUnique, if the cacheline gets deleted by an incoming Snoop before the transaction completes, the cacheline moves to the state specified in the read data response.
|
|
|
This member points to a CHI transaction of barrier type (EOBarrier or ECBarrier) associated to this current transaction. When associated_barrier_xact is null, it indicates that this current transaction is not a post-barrier transaction. When associated_barrier_xact is non-null, this current transaction will wait for the response of the barrier transaction associated_barrier_xact, before this transaction can be transmitted.
Please refer to User Guide for more details on usage of this member. |
|
|
Indicates the reason for VIP to issue an auto-generated transaction. Applicable only for Active RN. Applicable only when is_auto_generated bit is set to 1. When this field is set to:
|
|
|
This field defines the byte enable. This field is applicable for write data, DVM payload. This field is not applicable for Atomic transactions and will be ignored. It consists of a bit for each data byte in the transaction data, which when set indicates that the corresponding data byte is valid. For DVM, this field is always right aligned. For other transaction types, the details are described below. When svt_chi_node_configuration :: wysiwyg_enable is set to 1: The byte_enable corresponds to all 64 bytes irrespective of data size of the transaction. When svt_chi_node_configuration :: wysiwyg_enable is set to 0: The byte_enable value is right aligned.
|
|
|
This is a flag that indicates whether the cache has been updated for the current transaction. Only applicable in case of allocation read and dataless transactions initiated from active RN-F. This will be set internally and must not be programmed by the user. Default value is 0. |
|
|
For a Write transaction when separate comp and dbidresp responses are observed, this attribute indicates the order in which COMP and DBIDRESP are observed.
|
|
|
Defines the delay in number of cycles between COMP and DBIDResp flit in the case when COMP is sent before DBIDResp. This is only applicable for WriteNoSnp* and WriteUnique* transactions when svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_COMP. The clock cycles are with respect to the TXRSPFLITV signal asserted for COMP Response.
The delay will have no effect in case the number of clock cycles programmed for this delay is already elapsed with respect to the reference event even before this delay is applied. If this delay is set to a non-zero value, the tx_flit_delay corresponding to DBID RSP Flit is enforced to 0 and tx_flit_delay corresponding to COMP RSP flit is randomized.If the tx_flit_delay corresponding to DBID RSP flit is not enforced to zero, we will not see the actual comp_to_dbid_dlit_delay getting applied. The reference event for this delay is reference_event_for_comp_to_dbid_flit_delay. Default value is 0. Applicable only for CHI ICN in Full-Slave mode |
|
|
This is a counter which is incremented for every DAT flit transmitted for a read transaction. Applicable for CHI ICN Full-Slave mode.
|
|
|
This field defines the data. This field is applicable for write data, read data and DVM payload of the transaction. This field is not applicable for Atomic transactions and will be ignored. For DVM, this field is always right aligned. For other transaction types, the details are described below. When svt_chi_node_configuration :: wysiwyg_enable is set to 1: The data corresponds to all 64 bytes irrespective of data size of the transaction. When svt_chi_node_configuration :: wysiwyg_enable is set to 0: The data value is right aligned.
|
|
|
This field defines the Reserved Value defined by the user for each of the Protocol Data VC Flits associated to the current transaction. The size of this array must be equal to the number of data VC flits associated. The array indices correspond to the order in which the flits are transmitted/received. Any value can be driven on this field. |
|
|
This field holds the resp_err_status defined by the user for each of the Protocol Data VC Flits associated to the current transaction. The size of this array must be equal to the number of data VC flits associated. The array indices correspond to the order in which the flits are transmitted/received. All valid values for Response Error status (NORMAL_OKAY, EXCLUSIVE_OKAY, DATA_ERROR and NON_DATA_ERROR) can be driven on this field. In case of WriteEvictorEvict transaction, as the data transfer depends on the response from the completer, this field values are used and populated in DAT flits only when there is write data transfer. |
|
|
The DBID policy used for DBID field value of certain RSP, DAT flit types of current transaction. Please refer to documentation of the svt_chi_common_transaction :: dbid_policy_enum for more details.
|
|
|
Defines the delay in number of cycles between DBIDResp and COMP flit in the case when DBIDResp is sent before COMP. This is only applicable for WriteNoSnp* and WriteUnique* transactions when svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_DBIDRESP. The clock cycles are with respect to the TXRSPFLITV signal asserted for DBIDRESP response.
The delay will have no effect in case the number of clock cycles programmed for this delay is already elapsed with respect to the reference event even before this delay is applied. If this delay is set to a non-zero value, the tx_flit_delay corresponding to COMP RSP Flit is enforced to 0 and tx_flit_delay corresponding to DBID RSP flit is randomized.If the tx_flit_delay corresponding to COMP RSP flit is not enforced to zero, we will not see the actual comp_to_dbid_dlit_delay getting applied The reference event for this delay is reference_event_for_dbid_to_comp_flit_delay. Default value is 0. Applicable only for CHI ICN in Full-Slave mode |
|
|
This variable controls enabling of interleaving for the current transaction. When set to 1, interleaving is enabled for current transaction. Currently, interleaving is not supported for Ordered transactions. Default value is 0
Applicable only for CHI ICN Full-Slave mode. |
|
|
Represents the status of an exclusive access. Following are the possible status types:
A combination of excl_access_status and excl_mon_status can be used to determine the reason for failure of exclusive store. This attribute is applicable to both exclusive load/read and store/write. excl_access_status is applicable to read/load transactions only if the exclusive load transaction get OK response instead of EXOK response which indicates the exclusive access fail and the sequence must be terminated and respective exclusive monitor needs to be reset. Please refer to the User Guide for more description. |
|
|
Represents the status of RN exclusive monitor. Following are the possible status types:
A combination of excl_access_status and excl_mon_status can be used to determine the reason for failure of exclusive store. This attribute is applicable to both read/load and write/store exclusive transactions. This attribute is programmed to 'EXCL_MON_RESET' on completion of the exclusive transactions. It is programmed to 'EXCL_MON_SET' only if the exclusive load/read is successful else it is marked as 'EXCL_MON_RESET'. Please refer to the User Guide for more description. |
|
|
Flag to indicate update cache for successfull excl store when the transaction is dropped and the cache line is already present in unique state at the RN.
|
|
|
This enum represents the value for conditions under which the RN coherent exclusive transactions are dropped. Conditions are based on the values of excl_mon_status and excl_access_status. Combination of these attributes causes the transaction to drop.
Following are the possible status types:
|
|
|
This field indicates the final state of the cache line for this transaction.
|
|
|
HN Node Index to which transactions need to be sent to. This variable is not used by the VIP, but can potentially be used by users in sequences.
|
|
|
This field indicates the initial state of the cache line for this transaction.
|
|
|
Variable that holds the interleaved_group_object_num of this transaction. VIP assigns a unique number to each transaction it generates from interleaved ports. Applicable for interleaved ports only. For normal ports it is same as obect_num. |
|
|
Represents the various interleave pattern for a read transaction. The interleave_pattern gives flexibility to program interleave blocks with different patterns as mentioned below.
A Block is group of DAT flits within a transaction. RANDOM_BLOCK : Drives the blocks programmed in random_interleave_array Applicable only for CHI ICN Full-Slave mode. |
|
|
Indicates if the transaction is auto generated by the VIP. Transactions are auto-generated when:
This is a read-only member, which VIP uses to indicate whether the transaction is auto generated. It should not be modified by the user. Applicable for ACTIVE RN only. |
|
|
Indicates if the transaction ended because the requested data was already available in the cache. This bit is set by the master, no action is taken if the user sets this bit. A transaction with this bit set was not sent out on the bus and therefore other components in the testbench will not detect this transaction.
This is a read-only member, which VIP uses to indicate whether the requested data was cached. It should not be modified by the user. Applicable for ACTIVE RN only. |
|
|
This bit is set by RN if a cache line is reserved for the transaction. Thie field is used by task which unreserves the cache line at the end of transaction to filtering. This is to ensure only command that reserved cache line should unreserve cache line.
Applicable for ACTIVE RN only |
|
|
This field indicates if the request is cancelled after receiving a retry response.
|
|
|
Indicates if COMP has been received
|
|
|
Indicates if DBID has been received
|
|
|
For a requester, this field indicates if the PcrdGrant is received. For a completer, this field indicates if the PcrdGrant is transmitted. |
|
|
For a requester, this field indicates if the PcrdGrant is received before the RetryAck. For a completer, this field indicates if the PcrdGrant is sent before the RetryAck. |
|
|
This bit is set by SN if the read is performed to a memory location that was not writtent to earlier. This should not be programmed by user. Applicable for SN only
|
|
|
Indicates if the transaction is retried with original qos of original request or not. In case of active RN, based on this field, RN driver decides to use original qos or any random qos for the retried transaction.
|
|
|
Indicates if the transaction is retried with original req_rsvdc of original request not. In case of active RN, based on this field, RN driver decides to use original req_rsvdc or any random req_rsdvc for the retried transaction. This is applicable only when svt_chi_node_configuration :: chi_spec_revision is not set to ISSUE_A.
|
|
|
Indicates if the transaction is retried with original tgt_id of original request or not. In case of active RN, based on this field, RN driver decides to use original tgt_id or the remapped tgt_id for the retried transaction, when svt_chi_system_configuration :: expect_target_id_remapping_by_interconnect is set to 1.
|
|
|
Indicates if the transaction is retried with original txn_id of original request or not. In case of active RN, based on this field, RN driver decides to use original txn_id or any random txn_id for the retried transaction. |
|
|
Indicates if the tgt_id is remapped by Interconnect, to a different value other than the tgt_id field sent in the request flit by RN.
|
|
|
Indicates if a transaction is dropped because the start state of the corresponding cache line is not as expected before transmitting the transaction. The expected start states for each of the transaction types are given in Table 6-1 of the specification. This will be set automatically by the RN driver based on the initial cache state validity check. If the user wishes to drop transactions based on any additional/custom rules or transaction fields, they can set this attribute to 1 in svt_chi_rn_protocol_callback :: post_initial_cache_state_check that is invoked before the request flit is scheduled for a given transaction. Applicable for ACTIVE RN only. |
|
|
For every instance of link deactivation that happens while the transaction is outstanding, indicates if the deactivation was initiated by the local or the remote node.
|
|
|
For every instance of link reactivation that happens while the transaction is outstanding, indicates if the reactivation was initiated by the local or the remote node.
|
|
|
This field indicates the number of data Flits required to transfer the data based on the data width of the interface and the data size attribute of the transaction. Consider the example that the data size is 64 Byte and data width of the interface is 16 Byte. In this case, the num_dat_flits will be 4. |
|
|
Captures the value of original_tgt_id, that is tgt_field of the associated request flit.
|
|
|
Defines the delay in number of cycles between RetryAck and PcrdGrant RSP flits in the case RetryAck is sent before PcrdGrant(svt_chi_transaction :: is_p_crd_grant_before_retry_ack = 0), when svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_RETRYACK. The clock cycles are with respect to the RSPFLITV signal asserted for RetryAck response.
The delay will have no effect in case the number of clock cycles programmed for this delay is already elapsed with respect to the reference event even before this delay is applied. If this delay is set to a non-zero value, the tx_flit_delay corresponding to PcrdGrant RSP Flit is enforced to 0. This is reqired to ensure that actual pcreditgrant_to_retryack_flit_delay getting applied. Note that tx_flit_delay corresponding to RetryAck RSP flit is still randomized. The reference event for this delay is reference_event_for_pcreditgrant_to_retryack_flit_delay. Default value is 0. Applicable only for CHI ICN in Full-Slave mode. |
|
|
When the interleave_pattern is set to RANDOM_BLOCK, the user would program this array with blocks. There are default constraints, which the user can override and set their own block patterns. Applicable only for CHI ICN Full-Slave mode.
|
|
|
Defines a reference event from which the comp_to_dbid_flit_delay should start. Following are the different reference events:
TXRSPFLITV_FOR_COMPTODBID_VALID: Reference event is TXRSPFLITV signal assertion for the current write request. |
|
|
Defines a reference event from which the dbid_to_comp_flit_delay should start. Following are the different reference events:
TXRSPFLITV_FOR_DBIDTOCOMP_VALID: Reference event is TXRSPFLITV signal assertion for the current write request. |
|
|
Defines a reference event from which the pcreditgrant_to_retryack_flit_delay should start. Following are the different reference events:
RSPFLITV_FOR_PCREDITGRANT_TO_RETRYACK_VALID: Reference event is RSPFLITV signal assertion for the current request. |
|
|
Defines a reference event from which the req_to_comp_flit_delay should start. Following are the different reference events:
TXREQFLITV_FOR_COMP_VALID: Reference event is TXREQFLITV signal assertion for the current write request. |
|
|
Defines a reference event from which the req_to_compdata_flit_delay should start. Following are the different reference events:
TXREQFLITV_FOR_COMPDATA_VALID: Reference event is TXREQFLITV signal assertion for the current write request. |
|
|
Defines a reference event from which the req_to_compdbid_flit_delay should start. Following are the different reference events:
TXREQFLITV_FOR_COMPDBID_VALID: Reference event is TXREQFLITV signal assertion for the current write request. |
|
|
Defines a reference event from which the req_to_dbid_flit_delay should start. Following are the different reference events:
TXREQFLITV_FOR_DBID_VALID: Reference event is TXREQFLITV signal assertion for the current write request. |
|
|
Defines a reference event from which the req_to_pcreditgrant_flit_delay should start. Following are the different reference events:
REQFLITV_FOR_PCREDITGRANT_VALID: Reference event is REQFLITV signal assertion for the current request. |
|
|
Defines a reference event from which the req_to_retryack_flit_delay should start. Following are the different reference events:
REQFLITV_FOR_RETRYACK_VALID: Reference event is REQFLITV signal assertion for the current request. |
|
|
Defines a reference event from which the retryack_to_pcreditgrant_flit_delay should start. Following are the different reference events:
RSPFLITV_FOR_RETRYACK_TO_PCREDITGRANT_VALID: Reference event is RSPFLITV signal assertion for the current request. |
|
|
Time at which this transaction was accepted by the completer recorded as a realtime value. This represents the timestamp at which a ReadReceipt/Comp/CompData response was seen for the transaction.
|
|
|
This member indicates the ID of the request order stream to which this transaction belongs to. Active RN agent orders the requests within a stream without any ordering dependency to the transaction that belong to other streams.
Applicable to only active RN agent. The value should be inside [0:(svt_chi_node_configuration :: num_req_order_streams-1)] |
|
|
Defines the delay in number of cycles between Write REQ flit and Comp flit. This is applicable for all write, CMO and other control (DVM,Barrier) transactions when svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_COMP. The clock cycles are with respect to the TXREQFLITV signal assertion for the current request.
This delay is applied after the response item is received by the interconnect from the IC SN xact sequencer before dispatching the RSP flit to the link layer. In case the response is suspended, the response item should reach the driver in 0 time, hence the delay is still applied once the response is resumed. The delay will have no effect in case the number of clock cycles programmed for this delay is already elapsed with respect to the reference event even before this delay is applied. If this delay is set to a non-zero value, the tx_flit_delay corresponding to COMP RSP Flit is enforced to 0. The reference event for this delay is reference_event_for_req_to_comp_flit_delay. Default value is 0. Applicable only for CHI ICN in Full-Slave mode. |
|
|
Defines the delay in number of cycles between Read REQ flit and COMPDATA flit. This is only applicable for ReadNoSnp and ReadOnce transactions when svt_chi_sn_transaction :: xact_rsp_msg_type is set to RSP_MSG_COMPDATA. The clock cycles are with respect to the TXREQFLITV signal assertion for the current request.
This delay is applied after the response item is received by the interconnect from the IC SN xact sequencer before dispatching the DAT flit to the link layer. In case the response is suspended, the response item should reach the driver in 0 time, hence the delay is still applied once the response is resumed. The delay will have no effect in case the number of clock cycles programmed for this delay is already elapsed with respect to the reference event even before this delay is applied. If this delay is set to a non-zero value, the tx_flit_delay corresponding to COMPDATA DAT Flit is enforced to 0. The reference event for this delay is reference_event_for_req_to_compdata_flit_delay. Default value is 0. Applicable only for CHI ICN in Full-Slave mode |
|
|
Defines the delay in number of cycles between Write REQ flit and COMPDBIDResp flit. This is only applicable for WriteNoSnp* and WriteUnique* transactions when svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_COMPDBIDRESP. The clock cycles are with respect to the TXREQFLITV signal assertion for the current request.
This delay is applied after the response item is received by the interconnect from the IC SN xact sequencer before dispatching the RSP flit to the link layer. In case the response is suspended, the response item should reach the driver in 0 time, hence the delay is still applied once the response is resumed. The delay will have no effect in case the number of clock cycles programmed for this delay is already elapsed with respect to the reference event even before this delay is applied. If this delay is set to a non-zero value, the tx_flit_delay corresponding to COMPDBIDRESP RSP Flit is enforced to 0. The reference event for this delay is reference_event_for_req_to_compdbid_flit_delay. Default value is 0. Applicable only for CHI ICN in Full-Slave mode |
|
|
Defines the delay in number of cycles between Write REQ flit and DBIDResp flit. This is only applicable for WriteNoSnp* and WriteUnique* transactions when svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_DBIDRESP. The clock cycles are with respect to the TXREQFLITV signal assertion for the current request.
This delay is applied after the response item is received by the interconnect from the IC SN xact sequencer before dispatching the RSP flit to the link layer. In case the response is suspended, the response item should reach the driver in 0 time, hence the delay is still applied once the response is resumed. The delay will have no effect in case the number of clock cycles programmed for this delay is already elapsed with respect to the reference event even before this delay is applied. If this delay is set to a non-zero value, the tx_flit_delay corresponding to DBIDRESP RSP Flit is enforced to 0. The reference event for this delay is reference_event_for_req_to_dbid_flit_delay. Default value is 0. Applicable only for CHI ICN in Full-Slave mode. |
|
|
Defines the delay in number of cycles between REQ flit and Pcrdgrant RSP flit, when PcrdGrant is sent ahead of RetryAck (svt_chi_transaction :: is_p_crd_grant_before_retry_ack = 1). This is only applicable for all request transactions that can have PcrdGrant as a valid response, that is, with svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_RETRYACK. The clock cycles are with respect to the REQFLITV signal assertion for the current request. This delay is applied after the response item is received by the interconnect from the IC SN xact sequencer before dispatching the Pcrdgrant RSP flit to the link layer. In case the response is suspended, the response item should reach the driver in 0 time, hence the delay is still applied once the response is resumed. The delay will have no effect in case the number of clock cycles programmed for this delay is already elapsed with respect to the reference event even before this delay is applied. If this delay is set to a non-zero value, the tx_flit_delay corresponding to Pcrdgrant RSP Flit is enforced to 0. The reference event for this delay is reference_event_for_req_to_pcreditgrant_flit_delay. Default value is 0. Applicable only for CHI ICN in Full-Slave mode. |
|
|
Defines the delay in number of cycles between REQ flit and RetryAck RSP flit, when RetryAck is sent ahead of PcrdGrant (svt_chi_transaction :: is_p_crd_grant_before_retry_ack = 0). This is only applicable for all request transactions that can have RetryAck as a valid response, that is, with svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_RETRYACK. The clock cycles are with respect to the REQFLITV signal assertion for the current request. This delay is applied after the response item is received by the interconnect from the IC SN xact sequencer before dispatching the RetryAck RSP flit to the link layer. In case the response is suspended, the response item should reach the driver in 0 time, hence the delay is still applied once the response is resumed. The delay will have no effect in case the number of clock cycles programmed for this delay is already elapsed with respect to the reference event even before this delay is applied. If this delay is set to a non-zero value, the tx_flit_delay corresponding to RetryAck RSP Flit is enforced to 0. The reference event for this delay is reference_event_for_req_to_retryack_flit_delay. Default value is 0. Applicable only for CHI ICN in Full-Slave mode. |
|
|
Time at which response was sent from the requester to the completer. This represents the timestamp at which a CompAck response was seen for the transaction.
|
|
|
Indicates the RespErr field of the Response flits associated to this transaction that can have a variable value for RespErr field. Even though there can be more than one RSP flit associated to a given CHI transaction, as per section “14.4 Error Response Use By Transaction Type” of CHI 4.0 specification, only one of the response flits can have a variable value {Okay/ExOkay, Data Error/Non-Data Error} for this field. Whereas, the remaining response flits need to be transmitted only with a fixed value as described in above mentioned reference. Consider the following example:
|
|
|
Defines the delay in number of cycles between RetryAck and PcrdGrant RSP flits in the case RetryAck is sent before PcrdGrant(svt_chi_transaction :: is_p_crd_grant_before_retry_ack = 0), when svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_RETRYACK. The clock cycles are with respect to the RSPFLITV signal asserted for RetryAck response.
The delay will have no effect in case the number of clock cycles programmed for this delay is already elapsed with respect to the reference event even before this delay is applied. If this delay is set to a non-zero value, the tx_flit_delay corresponding to PcrdGrant RSP Flit is enforced to 0. This is reqired to ensure that actual retryack_to_pcreditgrant_flit_delay getting applied. Note that tx_flit_delay corresponding to RetryAck RSP flit is still randomized. The reference event for this delay is reference_event_for_retryack_to_pcreditgrant_flit_delay. Default value is 0. Applicable only for CHI ICN in Full-Slave mode. |
|
|
Internal queue of snoop transactions which started after current transaction started
|
|
|
- This attribute captures the status of the transaction with respect to suspend_wr_data
|
|
|
Byte Enable pattern for DAT flits of a write transactions.
|
|
|
Data pattern for DAT flits of a write transactions.
|
|
|
This property indicates the order in which the flits are seen for the transaction. It is populated at the end of the transaction based on the order in which the associated flits are completed. When the CHI_E replicated channel feature is enabled it is possible that multiple flits are seen on the interface at the same point in time, in such a scenario this field reflect the order in which these flits are stored in the internal queues of the transaction class. This is a read only field and is internally populated by the VIP.
|
|
|
This field defines the Transaction type.
|
|
|
Internal queue of transactions which started before current transaction started, populated only in case of RN
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Valid ranges constraints insure that the transaction settings are supported by the chi components.
| |
constraint chi_transaction_valid_ranges {
solve xact_type before txn_id, qos, addr, is_non_secure_access, p_crd_type, data_size, is_likely_shared, is_dyn_p_crd, order_type, mem_attr_is_early_wr_ack_allowed, mem_attr_mem_type, mem_attr_is_cacheable, mem_attr_allocate_hint, snp_attr_is_snoopable, snp_attr_snp_domain_type, lpid, is_exclusive, exp_comp_ack; solve data_size before byte_enable; req_to_retryack_flit_delay inside {[ 0: 16]}; req_to_pcreditgrant_flit_delay inside {[ 0: 16]}; req_to_dbid_flit_delay inside {[ 0: 16]}; req_to_compdbid_flit_delay inside {[ 0: 16]}; req_to_comp_flit_delay inside {[ 0: 16]}; req_to_compdata_flit_delay inside {[ 0: 16]}; comp_to_dbid_flit_delay inside {[ 0: 16]}; dbid_to_comp_flit_delay inside {[ 0: 16]}; retryack_to_pcreditgrant_flit_delay inside {[ 0: 16]}; pcreditgrant_to_retryack_flit_delay inside {[ 0: 16]}; } |
|
|
constraint reasonable_comp_to_dbid_flit_delay {
comp_to_dbid_flit_delay dist { 0 := MIN_DELAY_wt, [ 0:( 16 >> 2)] :/ SHORT_DELAY_wt, [(( 16 >> 2)+1): 16] :/ LONG_DELAY_wt }; } |
|
|
constraint reasonable_dbid_to_comp_flit_delay {
dbid_to_comp_flit_delay dist { 0 := MIN_DELAY_wt, [ 0:( 16 >> 2)] :/ SHORT_DELAY_wt, [(( 16 >> 2)+1): 16] :/ LONG_DELAY_wt }; } |
|
|
constraint reasonable_pcreditgrant_to_retryack_flit_delay {
pcreditgrant_to_retryack_flit_delay dist { 0 := MIN_DELAY_wt, [ 0:( 16 >> 2)] :/ SHORT_DELAY_wt, [(( 16 >> 2)+1): 16] :/ LONG_DELAY_wt }; } |
|
|
constraint reasonable_req_to_comp_flit_delay {
req_to_comp_flit_delay dist { 0 := MIN_DELAY_wt, [ 0:( 16 >> 2)] :/ SHORT_DELAY_wt, [(( 16 >> 2)+1): 16] :/ LONG_DELAY_wt }; } |
|
|
constraint reasonable_req_to_compdata_flit_delay {
req_to_compdata_flit_delay dist { 0 := MIN_DELAY_wt, [ 0:( 16 >> 2)] :/ SHORT_DELAY_wt, [(( 16 >> 2)+1): 16] :/ LONG_DELAY_wt }; } |
|
|
constraint reasonable_req_to_compdbid_flit_delay {
req_to_compdbid_flit_delay dist { 0 := MIN_DELAY_wt, [ 0:( 16 >> 2)] :/ SHORT_DELAY_wt, [(( 16 >> 2)+1): 16] :/ LONG_DELAY_wt }; } |
|
|
constraint reasonable_req_to_dbid_flit_delay {
req_to_dbid_flit_delay dist { 0 := MIN_DELAY_wt, [ 0:( 16 >> 2)] :/ SHORT_DELAY_wt, [(( 16 >> 2)+1): 16] :/ LONG_DELAY_wt }; } |
|
|
constraint reasonable_req_to_pcreditgrant_flit_delay {
req_to_pcreditgrant_flit_delay dist { 0 := MIN_DELAY_wt, [ 0:( 16 >> 2)] :/ SHORT_DELAY_wt, [(( 16 >> 2)+1): 16] :/ LONG_DELAY_wt }; } |
|
|
constraint reasonable_req_to_retryack_flit_delay {
req_to_retryack_flit_delay dist { 0 := MIN_DELAY_wt, [ 0:( 16 >> 2)] :/ SHORT_DELAY_wt, [(( 16 >> 2)+1): 16] :/ LONG_DELAY_wt }; } |
|
|
constraint reasonable_retryack_to_pcreditgrant_flit_delay {
retryack_to_pcreditgrant_flit_delay dist { 0 := MIN_DELAY_wt, [ 0:( 16 >> 2)] :/ SHORT_DELAY_wt, [(( 16 >> 2)+1): 16] :/ LONG_DELAY_wt }; } |