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_flit:
Class Member Groupings | |
| Delays related flit data class parameters | This group contains attributes which are used to control various delays related to a flit. |
Public Member Functions | |
| virtual function vmm_data | allocate ( ) |
| virtual function unsigned int | byte_pack ( ref logic [7:0] bytes[], input int unsigned offset, input int kind ) |
| virtual function unsigned int | byte_unpack ( const ref logic [7:0] bytes[], input int unsigned offset, input int len, input int kind ) |
| virtual function bit | compare ( vmm_data to, output string diff, input int kind ) |
| virtual function vmm_data | copy ( vmm_data to = null ) |
| static function svt_chi_flit | create_instance ( vmm_object parent, string name, string fname = "", int lineno = 0 ) |
| virtual function string | get_typename ( ) |
| function bit | is_critical_chunk_data_flit ( ) |
| function bit | is_link_flit ( ) |
| virtual function bit | is_valid ( bit silent = 1, int kind = -1 ) |
| static function void | override_with_copy ( string name, svt_chi_flit factory, vmm_log log, string fname = "", int lineno = 0 ) |
| static function void | override_with_new ( string name, svt_chi_flit factory, vmm_log log, string fname = "", int lineno = 0 ) |
| virtual function string | psdisplay ( string prefix = "" ) |
| static function svt_chi_flit | this_type ( ) |
| function void | do_all ( vmm_data :: do_what_e do_what, ref logic [7:0] pack[], const ref logic [7:0] unpack[] ) |
| function void | new ( vmm_log log = null ) |
| static function void | Xadd_patternX ( vmm_factory_pattern_info fact ) |
Public Attributes | |
| rand bit [(SVT_CHI_XACT_DAT_FLIT_MAX_BE_WIDTH-1):0] | byte_enable = 0; |
| int | channel_id = 0; |
| int | curr_cycle = 0; |
| int | curr_tx_flitpend_flitv_delay = -1; |
| int | curr_tx_flit_delay = -1; |
| rand svt_chi_common_transaction :: dat_msg_type_enum | dat_vc_flit_opcode |
| rand bit [(SVT_CHI_XACT_DAT_FLIT_MAX_DATA_WIDTH-1):0] | data = 0; |
| rand bit [(SVT_CHI_XACT_DAT_RSVDC_WIDTH-1):0] | dat_rsvdc = 0; |
| bit [(SVT_CHI_DATA_ID_WIDTH-1):0] | flit_data_id = 0; |
| rand svt_chi_common_transaction :: flit_type_enum | flit_type |
| rand svt_chi_common_transaction :: xact_type_enum | req_vc_flit_opcode |
| svt_chi_common_transaction :: resp_err_status_enum | resp_err_status |
| rand svt_chi_common_transaction :: rsp_msg_type_enum | rsp_vc_flit_opcode |
| rand svt_chi_common_transaction :: snp_req_msg_type_enum | snp_vc_flit_opcode |
| rand int | tx_flitpend_flitv_delay = 1; |
| rand int | tx_flit_delay = 0; |
Protected Attributes | |
| static protected svt_chi_flit | __vmm_rhs |
Member Typedefs | |
| typedef class | _factory_base |
Constraints | |
| constraint | chi_flit_valid_ranges ( ) |
| constraint | chi_reasonable_tx_flitpend_flitv_delay ( ) |
| constraint | chi_reasonable_tx_flit_delay ( ) |
Class Member Groupings | |
Group: Delays related flit data class parameters | |
| This group contains attributes which are used to control various delays related to a flit. | |
| rand int | tx_flitpend_flitv_delay = 1; |
| rand int | tx_flit_delay = 0; |
|
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
|
||||||
|
|
||||||
|
|
||
This function checks the ccid and dataid field and returns "1" if:
|
|
||
Indicates whether this is a link flit or not
|
|
||||||||||||
|
|
|
|
||||||||||||||
|
|
||||||
|
|
||||||||||||
|
|
||||||
CONSTRUCTOR: Create a new transaction instance.
log - VMM Log instance used for reporting. | ||||||
|
|
||||||
|
|
|
This field defines the byte enable for a Flit. This field is applicable for write data, DVM payload and snoop response data Flit transfers. It consists of a bit for each data byte in the DAT flit, which when set indicates that the corresponding data byte is valid. |
|
|
- Indicates the replicated channel ID on which the flit is sent or received.
|
|
|
- Indicates the current clock cycle count.
|
|
|
- Current value of tx_flitpend_flitv_delay
|
|
|
- Current value of tx_flit_delay
|
|
|
This field defines the Opcode for Data VC Flit.
|
|
|
This field defines the data for a DAT flit. This field is applicable for write data, read data, DVM payload and snoop response data Flit transfers. |
|
|
This field defines the Reserved Value defined by the user for Protocol Data VC Flit. Any value can be driven on this field. Note that this field is not applicable when svt_chi_node_configuration :: dat_flit_rsvdc_width is set to zero. |
|
|
This field indicates the relative position of the data chunk being transferred within the 512b cache line. Refer to section '19.3.5.23 DataID' of AMBA CHI specification. Below is an example explining this field usage. Consider that the width of the data VC is 128b(16B). The data size of a transaction is 512b(64B). This transaction requires 4 data VC Flits. |------------------------------------------------| | Data VC Flit No | 128b slice of data | data ID | |------------------------------------------------| | 1 | data[127:0] | 2'b00 | |------------------------------------------------| | 2 | data[255:128] | 2'b01 | |------------------------------------------------| | 3 | data[383:256] | 2'b10 | |------------------------------------------------| | 4 | data[511:384] | 2'b11 | |------------------------------------------------| |
|
|
This field defines the type of the Flit.
|
|
|
This field defines the Opcode used for Request VC Flit.
|
|
|
This field indicates the error status of the response. It is applicable for RSP, DAT flits.
|
|
|
This field defines the Opcode for Response VC Flit.
|
|
|
This field defines the Opcode for Snoop VC Flit.
|
|
|
|
|
|
|
|
|
|
|
Valid ranges constraints insure that the transaction settings are supported by the chi components.
| |
constraint chi_flit_valid_ranges {
solve flit_type before req_vc_flit_opcode, snp_vc_flit_opcode, rsp_vc_flit_opcode, dat_vc_flit_opcode; solve req_vc_flit_opcode before txn_id; solve rsp_vc_flit_opcode before txn_id; solve snp_vc_flit_opcode before txn_id; solve dat_vc_flit_opcode before txn_id; if ((flit_type == REQ) && (req_vc_flit_opcode == REQLINKFLIT)) {txn_id == 0;} if ((flit_type == RSP) && (rsp_vc_flit_opcode == RSPLINKFLIT)) {txn_id == 0;} if ((flit_type == SNP) && (snp_vc_flit_opcode == SNPLINKFLIT)) {txn_id == 0;} if ((flit_type == DAT) && (dat_vc_flit_opcode == DATLINKFLIT)) {txn_id == 0;} req_vc_flit_opcode == REQLINKFLIT; rsp_vc_flit_opcode == RSPLINKFLIT; snp_vc_flit_opcode == SNPLINKFLIT; dat_vc_flit_opcode == DATLINKFLIT; } |
|
|
Reasonable constraints are designed to limit the traffic to "protocol legal" traffic, and in some situations maximize the traffic flow. They must never be written such that they exclude legal traffic.
Reasonable constraints may be disabled during error injection. To simplify enabling and disabling the constraints relating to a single field, the reasonable constraints for an individual field must be grouped in a single reasonable constraint. | |
constraint chi_reasonable_tx_flitpend_flitv_delay {
if (cfg.delays_enable == 0) {tx_flitpend_flitv_delay == 1}; tx_flitpend_flitv_delay inside {[1: 16]}; } |
|
|
constraint chi_reasonable_tx_flit_delay {
if (cfg.delays_enable == 0) {tx_flit_delay == 0}; tx_flit_delay inside {[0: 16]}; } |