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.
|
||
Returns maximum byte address for the cacheline corresponding to current address for an atomic transaction
|
|
||
Returns maximum byte inded for the cacheline corresponding to current address for an atomic transaction
|
|
||
Returns minimum byte address for the cacheline corresponding to current address for an atomic transaction
|
|
||
Returns minimum byte index for the cacheline corresponding to current address for an atomic transaction
|
|
||
This method returns the time at which the compack flit is completed.
|
|
||
This method returns the src_id of the compdata flit when DCT flow is used. Returns -1 If Compdata is not sent by any Peer RN.
|
|
||
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
|
|
||
Indicates if the MakereadUnique transaction involves data or not.
|
|
||
Returns NS bit from the provided CHI tagged address.
|
|
||
This method returns the time at which readreceipt is sent for an optimized DMT. readreceipt_end_time: The simulation time when the READRECEIPT FLIT completes is captured in this member. This is applicable only for Slave Transaction. Returns 1, if the READRECEIPT Flit exists, else return 0.
|
|
||
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 this transaction is a Range based DVM TLBI
|
|
||
Determines if the transaction's attribute for request ordering is asserted.
|
|
||
This API checks if a SnpQuery transaction was seen at the RN while the current transaction was ongoing. If a SnpQuery was seen and it completed before the end of the current transaction, the API returns the handle of the SnpQuery transaction
|
|
||
Indicates if the transaction can support DWT DWT is permitted only in writes that are Non-CopyBack. DWT is not permitted in Non-CopyBack writes that are OWO writes
|
|
||||||||||||||||||||
CONSTRUCTOR: Create a new sequence item instance.
name - Instance name of the sequence item. | ||||||||||||||||||||
|
|
||
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 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 |
|
||
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 |
|
|
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 field defines the data that must be written onto the RN cache at the end of a ReadUnique transaction with TagOp in the request (req_tag_op) set to fetch (TAG_FETCH_MATCH). This field is only applicable for active RN VIP configured in CHI-E or later mode. This field is not applicable for transaction types other than ReadUnique. This field must be programmed by the user only if TagOp in the ReadUnique is Fetch The data corresponds to all 64 bytes.
|
|
|
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. |
|
|
Data that must be sent as Compare Data in AtomicCompare transactions. Only applicable when xact_type is set to ATOMICCOMPARE. User must program the bits corresponding to (outbound data size/2), which should be one of 1, 2, 4, 8 or 16 bytes. |
|
|
This field defines the valid Tags corresponding to the Compare data that is passed in the Write data response for an AtomicCompare transaction. Only the nibbles corresponding to the inbound data size of the AtomicCompare transaction will be considered. There will be one Tag nibble for every 16 Bytes of data. As the inbound data size for an Atomic Compare transaction cannot exceed 16B, there can only be one valid Tag value. The value of this field must be the same as atomic_swap_tag when the transaction type is AtomicCompare. This field is not applicable for transaction types other than AtomicCompare. |
|
|
Captures the RespErr field seen in the Comp or CompDBID response for an AtomicStore transaction.
|
|
|
Datacheck that must be sent as Compare datacheck in AtomicCompare transactions. Only applicable when xact_type is set to ATOMICCOMPARE. Need not be set by the user as the currupted bit within the data window will be asserted when corresponding 1 data byte has been previously been corrupted. The bits corresponding to (outbound data size/2), which should be one of 1, 2, 4, 8 or 16 bytes, will be asserted. |
|
|
Poison that must be sent as Compare poison in AtomicCompare transactions. Only applicable when xact_type is set to ATOMICCOMPARE. Need not be set by the user as the poison bit within the data window will be asserted when set of corresponding 8 data bytes have been previously been corrupted. The bits corresponding to (outbound data size/2), which should be one of 1, 2, 4, 8 or 16 bytes, will be asserted. |
|
|
Captures the RespErr field seen in the DBID Resp for an Atomic transaction. For AtomicStore transactions that receive a combined CompDBID response, this field will not be populated.
|
|
|
Defines the tag_op field in the Read data of an AtomicOp transaction This field is automatically populated by the VIP and must not be programmed by the users. This field is applicable only when svt_chi_node_configuration :: chi_spec_revision is set to ISSUE_E or later.
|
|
|
Datacheck is sent out along with CompData in Atomic transactions. Only applicable when xact_type is set to ATOMICLOAD*, ATOMICSWAP or ATOMICCOMPARE. User must not program this field as it is automatically populated based on the received CompData flits and later unpacked to the atomic_returned_initial_data field. |
|
|
Poison is sent out along with CompData in Atomic transactions. Only applicable when xact_type is set to ATOMICLOAD*, ATOMICSWAP or ATOMICCOMPARE. User must not program this field as it is automatically populated based on the received CompData flits and later unpacked to the atomic_returned_initial_data field. |
|
|
Data containing the original value of the addressed location that is returned by the Completer for Atomic transactions. Only applicable when xact_type is set to ATOMICLOAD, ATOMICCOMPARE or ATOMICSWAP. User must not program this field. This field will be populated by the agent after all CompData flits corresponding to the Atomic transaction are received. Only the bits corresponding to the inbound data size must be considered.
|
|
|
Datacheck containing the original value of the addressed location that is returned by the Completer for Atomic transactions. Only applicable when xact_type is set to ATOMICLOAD, ATOMICCOMPARE or ATOMICSWAP. User must not program this field. This field will be populated by the agent after all CompData flits corresponding to the Atomic transaction are received. Only the bits corresponding to the inbound data size must be considered.
|
|
|
Poison containing the original value of the addressed location that is returned by the Completer for Atomic transactions. Only applicable when xact_type is set to ATOMICLOAD, ATOMICCOMPARE or ATOMICSWAP. User must not program this field. This field will be populated by the agent after all CompData flits corresponding to the Atomic transaction are received. Only the bits corresponding to the inbound data size must be considered.
|
|
|
This field defines the valid Tags corresponding to the Read data that is seen for an AtomicLoad, AtomicSwap or AtomicCompare transaction. Only the nibbles corresponding to the inbound data size of the Atomic transaction will be considered. There will be one Tag nibble for every 16 Bytes of data. As the data size for an Atomic Load/Swap transaction cannot exceed 8B, there can only be one valid Tag value. As the inbound data size for an Atomic Compare transaction cannot exceed 16B, there can only be one valid Tag value. This field is not applicable for transaction types other than AtomicLoad/Swap/Compare. |
|
|
Datacheck must be sent along with Write Data in AtomicStore and AtomicLoad transactions. Only applicable when xact_type is set to ATOMICSTORE_* or ATOMICLOAD_*. User must program the bits appropriately based on the data size, which should be one of 1, 2, 4, or 8 bytes. The bits corresponding to the data size field will be copied over to the write datacheck field in data (NCBWrData) field. |
|
|
Poison must be sent along with Write Data in AtomicStore and AtomicLoad transactions. Only applicable when xact_type is set to ATOMICSTORE_* or ATOMICLOAD_*. User must program the bits appropriately based on the data size, which should be one of 1, 2, 4, or 8 bytes. The bits corresponding to the data size field will be copied over to the write poison field in data (NCBWrData) field. |
|
|
Data that must be sent as Write Data in AtomicStore and AtomicLoad transactions. Only applicable when xact_type is set to ATOMICSTORE_* or ATOMICLOAD_*. User must program the bits appropriately based on the data size, which should be one of 1, 2, 4, or 8 bytes. The bits corresponding to the data size field will be copied over to the write data (NCBWrData) field. |
|
|
This field defines the valid Tags that are passed in the Write data response for an AtomicStore or AtomicLoad transaction. Only the nibbles corresponding to the data size of the Atomic transaction will be considered. There will be one Tag nibble for every 16 Bytes of data. As the data size for an Atomic Store or Load cannot exceed 8B, there can only be one valid Tag value. This field is not applicable for transaction types other than AtomicStore/Load. |
|
|
Data that must be sent as Swap Data in AtomicSwap and AtomicCompare transactions. Only applicable when xact_type is set to ATOMICSWAP or ATOMICCOMPARE. For AtomicSwap, user must program the bits corresponding to the outbound data size, which should be one of 1, 2, 4, or 8 bytes. For AtomicCompare, user must program the bits corresponding to (outbound data size/2), which should be one of 1, 2, 4, 8 or 16 bytes. Therefore, for AtomicSwap only the least significant 8 bytes ([63:0]) of atomic_swap_data will be considered while for AtomicCompare all 16 bytes will be considered. |
|
|
Datacheck that must be sent along with Swap Data in AtomicSwap and AtomicCompare transactions. Only applicable when xact_type is set to ATOMICSWAP or ATOMICCOMPARE. Need not be set by the user as the currupted bits within the data window will be asserted when corresponding 1 data byte has been previously been corrupted. Therefore, for AtomicSwap only the least significant 8 bytes ([63:0]) of atomic_swap_data will be considered while for AtomicCompare all 16 bytes will be considered. |
|
|
Poison that must be sent as Swap poison in AtomicSwap and AtomicCompare transactions. Only applicable when xact_type is set to ATOMICSWAP or ATOMICCOMPARE. Need not be set by the user as the poison bit within the data window will be asserted when set of corresponding 8 data bytes have been previously been corrupted. For AtomicSwap, user must program the bits corresponding to the outbound data size, which should be one of 1, 2, 4, or 8 bytes. For AtomicCompare, user must program the bits corresponding to (outbound data size/2), which should be one of 1, 2, 4, 8 or 16 bytes. Therefore, for AtomicSwap only the least significant 8 bytes ([63:0]) of atomic_swap_data will be considered while for AtomicCompare all 16 bytes will be considered. |
|
|
This field defines the valid Tags corresponding to the Swap data that is passed in the Write data response for an AtomicSwap or AtomicCompare transaction. Only the nibbles corresponding to the inbound data size of the Atomic transaction will be considered. There will be one Tag nibble for every 16 Bytes of data. As the data size for an Atomic Swap transaction cannot exceed 8B, there can only be one valid Tag value. As the inbound data size for an Atomic Compare transaction cannot exceed 16B, there can only be one valid Tag value. This field is not applicable for transaction types other than AtomicSwap/Compare. |
|
|
Defines the tag_op field in the Write data of an AtomicOp transaction. This field must be set to the same value as the TagOp field in the Atomic request (represented by req_tag_op). This field can only be set when svt_chi_node_configuration :: chi_spec_revision is set to ISSUE_E or later.
|
|
|
Datacheck is sent out along with NonCopyBackWrData in Atomic transactions. Only applicable when xact_type is set to ATOMICSTORE*, ATOMICLOAD*, ATOMICSWAP or ATOMICCOMPARE. User must not program this field as it is automatically populated based on the programmed Atomic Store/Load/Compare/Swap data fields. |
|
|
Poison is sent out along with NonCopyBackWrData in Atomic transactions. Only applicable when xact_type is set to ATOMICSTORE*, ATOMICLOAD*, ATOMICSWAP or ATOMICCOMPARE. User must not program this field as it is automatically populated based on the programmed Atomic Store/Load/Compare/Swap data fields. |
|
|
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. |
|
|
Indicates the completion of (P)CMO flow in Combined Write and CMO transactions. Captures for a Combined Write and CMO transaction whether the completion response COMPCMO of (P)CMO observed before/after the completion response COMP/COMPDBIDRESP of Write. Applicable only for Combined Write and CMO transactions.
|
|
|
For a Write transaction when separate comp and dbidresp responses are observed, this attribute indicates the order in which COMP and DBIDRESP are observed.
|
|
|
For a *persistsep transaction when separate comp and persist responses are observed, this attribute indicates the order in which COMP and PERSIST are observed.
|
|
|
For a *stashsep transaction when separate comp and stashdone responses are observed, this attribute indicates the order in which COMP and STASHDONE are observed.
|
|
|
Defines the delay in number of cycles between COMP and DBIDRespOrd flit in the case when COMP is sent before DBIDRespOrd. 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_ORD 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_ORD flit is not enforced to zero, we will not see the actual comp_to_dbidrespord_flit_delay getting applied. The reference event for this delay is reference_event_for_comp_to_dbidrespord_flit_delay. Default value is 0. Applicable only for CHI ICN in Full-Slave mode |
|
|
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 |
|
|
Defines the delay in number of cycles between COMP and STASHDONE flit in the case when COMP is sent before STASHDONE. This is only applicable for StashOnceSep* transactions when svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_COMP_STASHDONE. 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 STASH Flit is enforced to 0 and tx_flit_delay corresponding to COMP RSP flit is randomized.If the tx_flit_delay corresponding to STASHDONE flit is not enforced to zero, we will not see the actual comp_to_stashdone_flit_delay getting applied. The reference event for this delay is reference_event_for_comp_to_stashdone_flit_delay. Default value is 0. Applicable only for CHI ICN in Full-Slave mode |
|
|
Indicates if WriteData cancellation rules for CopyBack specified in the ISSUE_B or later spec are applied to this transaction. Can be set to 1 only when the compile macro SVT_CHI_ISSUE_B_ENABLE or SVT_CHI_ISSUE_C_ENABLE is defined and svt_chi_node_configuration :: chi_spec_revision is set to ISSUE_B or later. For Active RN : When set, indicates that the CopyBack is cancelled by zeroing Byte Enable and data byte lanes in the CopyBackWrData flits, in case there's an intervening Snoop that changes the cache state to I or SC. For Passive RN : Wen set, indicates that the CopyBack transaction was cancelled by the active RN through the de-assertion of Byte Enable bits and zeroing of data byte lanes in the CopyBackWrData flits before the WriteData is initiated for the CopyBack.
|
|
|
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 state in which the Tag is cached at the requester at the point of transmission or reception of transaction data. Only applicable in case of active RN-F.
|
|
|
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 holds the cbusy value of the Protocol Data VC Flits associated to this transaction.
|
|
|
Defines the tag_op field in the transaction data. This field is applicable for the following :
|
|
|
This field defines the datacheck. 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. It consists of a bit for each data byte in the transaction data, which when set indicates that the corresponding data byte is corrupted. 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.
Active RN.
Active SN.
Passive components.
|
|
|
Indicates Datacheck computed on the received data
|
|
|
Indicates Datacheckerror computed on the received data and Datacheck passed
|
|
|
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. |
|
|
Defines the delay in number of cycles between DBIDRespOrd and COMP flit in the case when DBIDRespOrd 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_DBIDRESPORD. The clock cycles are with respect to the TXRSPFLITV signal asserted for DBIDRESPORD 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_ORD 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_dbidrespord_flit_delay getting applied The reference event for this delay is reference_event_for_dbidrespord_to_comp_flit_delay. Default value is 0. Applicable only for CHI ICN in Full-Slave mode |
|
|
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.
|
|
|
This field defines the state in which the Tag is cached at the requester at the end of a transaction. Only applicable in case of active RN-F.
|
|
|
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.
|
|
|
This field defines the state in which the Tag is cached at the requester at the point of transmission of the transaction request. Only applicable in case of active RN-F.
|
|
|
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.
|
|
|
- Applicable for RN configured with svt_chi_node_configuration :: chi_spec_revision >= svt_chi_node_configuration :: ISSUE_C.
|
|
|
- Applicable for RN configured with svt_chi_node_configuration :: chi_spec_revision >= svt_chi_node_configuration :: ISSUE_C.
|
|
|
Indicates if COMP has been received
|
|
|
Indicates if COMPCMO has been received. Only applicable for Combined Write and (P)CMO type transactions. This is a Read only status attribute and should not be programmed by the user.
|
|
|
Indicates if COMPPERSIST response has been received
|
|
|
Indicates if DBID has been received
|
|
|
Indicates if DBIDRespOrd has been received
|
|
|
This field indicates whether Direct cache transfer is used or not This should not be programmed by user. Applicable for RN.
|
|
|
This field indicates whether Direct memory transfer is used or not This should not be programmed by user. Applicable for both RN and SN.
|
|
|
This field indicates whether Direct Write transfer is used or not This should not be programmed by user. Applicable for both RN and SN.
|
|
|
This field indicates that NCBWRDATACOMPACK shall be transmitted over DAT channel instead of independent NCBWRDATA and CompAck in response to the write type transactions when this flag is asserted. Applicable for WriteUnique transactions with ExpCompAck asserted. Applicable for WriteNoSnp transactions with ExpCompAck asserted when svt_chi_node_configuration :: chi_spec_revision is ISSUE_D or later. If svt_chi_node_configuration :: chi_spec_revision is ISSUE_C and DBIDResp is received first, this field will be overriden to zero and the Write Data and CompAck flits will be transmitted separately. If svt_chi_node_configuration :: chi_spec_revision is ISSUE_C, the combined flit NCBWRDATACOMPACK will be send out if the order of responses for write transactions are Comp followed by DBIRESP or COMPDBIDRESP and the fields is_ncbwrdatacompack_used_for_write_xact, is_writedatacancel_used_for_write_xact are set to 1 and 0 respectively. If svt_chi_node_configuration :: chi_spec_revision is ISSUE_D or later, the combined flit NCBWRDATACOMPACK will be send out if the fields is_ncbwrdatacompack_used_for_write_xact and is_writedatacancel_used_for_write_xact are set to 1 and 0 respectively. If svt_chi_node_configuration :: chi_spec_revision is ISSUE_D or later, if DBIDResp response is received first and at that time Compack timing rules or not met then NCBWRDATA and CompAck are sent independently and is_ncbwrdatacompack_used_for_write_xact if set to 1 then overriden to zero. |
|
|
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 variable when set to 1 indicates that SN sent PERSIST response directly to RN provided SNs are present in CHI system. This variable will set be 0 when PERSIST response was issued from ICN full slave or interconnect VIP to RN Applicable for : CleanSharedPersistSep transaction when SVT_CHI_ISSUE_D_ENABLE macro is defined and chi_spec_revision >= ISSUE_D. svt_chi_node_configuration cleansharedpersistsep_xact_enable is set to 1. RN only. This is a Read only status attribute and should not be programmed by the user.
|
|
|
Indicates if PERSIST response has been received
|
|
|
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
|
|
|
- This field indicates whether Seperate Data and Separe Home Response flow is used or not
|
|
|
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 slcrephint_replacement of original request or not. In case of active RN, based on this field, RN driver decides to use original slcrephint_replacement or any random slcrephint_replacement for the retried transaction. when svt_chi_node_configuration :: slcrephint_mode is set to SLC_REP_HINT_DISABLED, this field should be constraint to 1.
|
|
|
Indicates if the transaction is retried with original slcrephint_unusedprefetch of original request or not. In case of active RN, based on this field, RN driver decides to use original slcrephint_unusedprefetch or any random slcrephint_unusedprefetch for the retried transaction. when svt_chi_node_configuration :: slcrephint_mode is set to SLC_REP_HINT_DISABLED, this field should be constraint to 1.
|
|
|
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 trace_tag of original request or not. In case of active RN, based on this field, RN driver decides to use original trace_tag or any random trace_tag for the retried transaction.
|
|
|
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 STASHDONE has been received. Only applicable for StashOnceSep* transaction. This is a Read only status attribute and should not be programmed by the user.
|
|
|
Indicates if TagMatch result has been computed in the SN memory. Only applicable for Active SN_F VIP. This is a Read only status attribute and should not be programmed by the user.
|
|
|
Indicates if TagMatch response has been received. Only applicable for Write transactions with TagOp set to MATCH. This is a Read only status attribute and should not be programmed by the user.
|
|
|
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.
|
|
|
This transaction attribute indicates if WriteDataCancel flits are to be sent in place of NCBWrData flits corresponding to a WriteUniquePtl or Normal type WriteNoSnpPtl transaction. This field is defined only when the compile time macro SVT_CHI_ISSUE_B_ENABLE is set. This field can be programmed to 1 only when svt_chi_node_configuration :: chi_spec_revision is set to ISSUE_B. When set to 1, byte_enable and data fields are post-randomized to all zeroes for WriteUniquePtl and Normal WriteNoSnpPtl transactions in the RN transaction handle and the active RN drives WriteDataCancel flits instead of NCBWrData. For all transaction types other than WriteUniquePtl and Normal WriteNoSnpPtl, this attribute is not applicable and must be set to 0.
|
|
|
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 defines the data that is received for a MakeReadUnique transaction. This field is not applicable for transaction types other than MakeReadUnique. As read data is optional for MakeReadUnique, this field must be considered only if data_status is not INITIAL. The data corresponds to all 64 bytes.
|
|
|
This field defines the datacheck that is received for a MakeReadUnique transaction. This field is not applicable for transaction types other than MakeReadUnique. As read data is optional for MakeReadUnique, this field must be considered only if data_status is not INITIAL. The datacheck corresponds to all 64 bytes.
|
|
|
This field defines the Poison that is received for a MakeReadUnique transaction. This field is not applicable for transaction types other than MakeReadUnique. As read data is optional for MakeReadUnique, this field must be considered only if data_status is not INITIAL. The Poison corresponds to all 64 bytes.
|
|
|
This field defines the Tag that is received for a MakeReadUnique transaction. This field is not applicable for transaction types other than MakeReadUnique. As read data is optional for MakeReadUnique, this field must be considered only if data_status is not INITIAL. The Tag corresponds to all 64 bytes. |
|
|
|
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.
|
|
|
Indicates if there are any outstanding transaction with the same tag_group_id. Only applicable for Write transactions with TagOp set to MATCH. Will be set to 1 for all the outstanding transactions with the same tag_group_id. This is a Read only status attribute and should not be programmed by the user.
|
|
|
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. |
|
|
This field defines the Poison. This field is applicable for write data, read data and DVM payload. This field is not applicable for Atomic transactions and will be ignored. It consists of a bit for each 8 data byte in the transaction data, which when set indicates that set of corresponding 8 data bytes have been previously been corrupted. 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 Poison corresponds to all 64 bytes irrespective of data size of the transaction. When svt_chi_node_configuration :: wysiwyg_enable is set to 0: The Poison value is right aligned.
Active RN.
Active SN.
Passive components.
|
|
|
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 comp_to_dbidrespord_flit_delay should start. Following are the different reference events:
TXRSPFLITV_FOR_COMPTODBIDRESPORD_VALID: Reference event is TXRSPFLITV signal assertion for the current write request. |
|
|
Defines a reference event from which the comp_to_stashdone_flit_delay should start. Following are the different reference events: TXRSPFLITV_FOR_COMPTOSTASHDONE_VALID: Reference event is TXRSPFLITV signal assertion for the current 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 dbidrespord_to_comp_flit_delay should start. Following are the different reference events:
TXRSPFLITV_FOR_DBIDRESPORDTOCOMP_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_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_compstashdone_flit_delay should start. Following are the different reference events: TXREQFLITV_FOR_COMPSTASHDONE_VALID: Reference event is TXREQFLITV 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_comppersist_flit_delay should start. Following are the different reference events:
TXREQFLITV_FOR_COMPPERSIST_VALID: Reference event is TXREQFLITV signal assertion for the current CleanSharedPersistep 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_dbidrespord_flit_delay should start. Following are the different reference events:
TXREQFLITV_FOR_DBIDRESPORD_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_persist_flit_delay should start. Following are the different reference events:
TXREQFLITV_FOR_PERSIST_VALID: Reference event is TXREQFLITV signal assertion for the current CleanSharedPersistSep 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 req_to_stashdone_flit_delay should start. Following are the different reference events: TXREQFLITV_FOR_STASHDONE_VALID: Reference event is TXREQFLITV 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. |
|
|
Defines a reference event from which the stashdone_to_comp_flit_delay should start. Following are the different reference events: TXRSPFLITV_FOR_STASHDONETOCOMP_VALID: Reference event is TXRSPFLITV 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 tag_op field in the transaction request. This field is applicable for the following:
|
|
|
Defines the delay in number of cycles between REQ flit and COMPSTASHDONE flit. This is only applicable for StashOnceSep* transactions when svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_COMPSTASHDONE. 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 COMPSTASHDONE RSP Flit is enforced to 0. The reference event for this delay is reference_event_for_req_to_compstashdone_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 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 COMPPERSIST flit. This is applicable for CLEANSHAREDPERSISTSEP transaction when svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_COMPPERSIST. 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 COMPPERSIST Flit is enforced to 0. The reference event for this delay is reference_event_for_req_to_persist_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 Write REQ flit and DBIDRespOrd flit. This is only applicable for WriteNoSnp*, WriteUnique*, Combined writes and CMO transactions when svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_DBIDRESPORD. 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 DBIDRESPORD RSP Flit is enforced to 0. The reference event for this delay is reference_event_for_req_to_dbidrespord_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 Write REQ flit and PERSIST flit. This is applicable for CLEANSHAREDPERSISTSEP transaction when svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_PERSIST_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 PERSIST Flit is enforced to 0. The reference event for this delay is reference_event_for_req_to_persist_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. |
|
|
Defines the delay in number of cycles between REQ flit and STASHDONE flit. This is only applicable for StashOnceSep* transactions when svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_STASHDONE_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 STASHDONE RSP Flit is enforced to 0. The reference event for this delay is reference_event_for_req_to_stashdone_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.
|
|
|
- This field holds the cbusy value of the Response Flits associated to this 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. |
|
|
Defines the tag_op field in the Comp response seen for a transaction. This field can be set to a value other than TAG_INVALID only in case of a MakeReadUnique transaction. This field is applicable only when svt_chi_node_configuration :: chi_spec_revision is set to ISSUE_E or later.
|
|
|
This field defines the Snoop filter accuracy info for MakeReadUnique. This field is only applicable for RN-F in active mode and must not be programmed by the users. It will be set by the RN-F agent at the end of MakeReadUnique transactions. Following are the valid values:
|
|
|
Internal queue of snoop transactions which started after current transaction started
|
|
|
Defines the delay in number of cycles between STASHDONE and COMP flit in the case when STASHDONE is sent before COMP. This is only applicable for StashOnceSep* transactions when svt_chi_ic_sn_transaction:: xact_rsp_msg_type is set to RSP_MSG_STASHDONE_COMP. The clock cycles are with respect to the TXRSPFLITV signal asserted for STASHDONE 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 STASHDONE flit is randomized.If the tx_flit_delay corresponding to COMP RSP flit is not enforced to zero, we will not see the actual stashdone_to_comp_flit_delay getting applied The reference event for this delay is reference_event_for_stashdone_to_comp_flit_delay. Default value is 0. Applicable only for CHI ICN in Full-Slave mode |
|
|
- This attribute captures the status of the transaction with respect to suspend_wr_data
|
|
|
Represents the Tag field in the transaction. This field is applicable in the following cases:
|
|
|
Represents the ‘Resp’ field in the TagMatch response. This field is only applicable for Write and Atomic transactions with TagOp in the request set to Match (TAG_FETCH_MATCH). This field will be populated by the VIP and must not be set by the users.
|
|
|
Captures the RespErr field of the TagMatch RSP flit corresponding to a Tag Match Write transaction.
|
|
|
Represents the Tag Update field in the transaction. This field is only applicable in the following cases:
|
|
|
Byte Enable pattern for DAT flits of a write transactions.
|
|
|
Data pattern for DAT flits of a write transactions.
|
|
|
Captures the RespErr field of the CompCMO/CompPresist RSP flits corresponding to a Combined Write with CMO transaction.
|
|
|
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]}; req_to_comppersist_flit_delay inside{[ 0: 16]}; req_to_persist_flit_delay inside{[ 0: 16]}; req_to_dbidrespord_flit_delay inside {[ 0: 16]}; req_to_stashdone_flit_delay inside {[ 0: 16]}; req_to_compstashdone_flit_delay inside {[ 0: 16]}; comp_to_dbidrespord_flit_delay inside {[ 0: 16]}; dbidrespord_to_comp_flit_delay inside {[ 0: 16]}; comp_to_stashdone_flit_delay inside {[ 0: 16]}; stashdone_to_comp_flit_delay inside {[ 0: 16]}; } |
|
|
constraint reasonable_comp_to_dbidrespord_flit_delay {
comp_to_dbidrespord_flit_delay dist { 0 := MIN_DELAY_wt, [ 0:( 16 >> 2)] :/ SHORT_DELAY_wt, [(( 16 >> 2)+1): 16] :/ LONG_DELAY_wt }; } |
|
|
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_comp_to_stashdone_flit_delay {
comp_to_stashdone_flit_delay dist { 0 := MIN_DELAY_wt, [ 0:( 16 >> 2)] :/ SHORT_DELAY_wt, [(( 16 >> 2)+1): 16] :/ LONG_DELAY_wt }; } |
|
|
constraint reasonable_dbidrespord_to_comp_flit_delay {
dbidrespord_to_comp_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_compstashdone_flit_delay {
req_to_compstashdone_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_comppersist_flit_delay {
req_to_comppersist_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_dbidrespord_flit_delay {
req_to_dbidrespord_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_persist_flit_delay {
req_to_persist_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_req_to_stashdone_flit_delay {
req_to_stashdone_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 }; } |
|
|
constraint reasonable_stashdone_to_comp_flit_delay {
stashdone_to_comp_flit_delay dist { 0 := MIN_DELAY_wt, [ 0:( 16 >> 2)] :/ SHORT_DELAY_wt, [(( 16 >> 2)+1): 16] :/ LONG_DELAY_wt }; } |