VIP Smartsearch

X
  • VIP Smartsearch is a framework that supports search within VIP reference documents using query in natural language. It facilitates reordering of search results and keeps record of user’s decision for the ordering of result display and applies that in search of same query on subsequent usage.
  • How to download VIP smartsearch?

    1. Get VIP Smartsearch (Available as a seperate run file).
    2. Set environment variable
      DESIGNWARE_HOME
      to required designware home location where VIP Smartsearch should be downloaded.
    3. Run
      vip_smartsearch_<version>.run
      file.
      VIP Smartsearch will be downloaded to the location
      $DESIGNWARE_HOME/vip/svt/vip_smartsearch/<version>
  • How to install VIP Smartsearch?

    Please refer to the file
    VIP_Smartsearch_installation_and_usage_guide.pdf
    in
    $DESIGNWARE_HOME/vip/svt/vip_smartsearch/<version>
    for installation steps.
  • Customer Support

    For more details about VIP smartsearch tool, contact support_center@synopsys.com.
    Mention your queries along with below details and send email to above email id.
    Product: Verification IP
    Sub Product: <vip_title>
    Tool: VIP Smartsearch

svt_chi_flit Class Reference

Inheritance diagram for class svt_chi_flit:

List of all members.



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

function bit  is_critical_chunk_data_flit ( )
function bit  is_link_flit ( )
function void  new ( string name = "svt_chi_flit" )

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 bit [(SVT_CHI_XACT_DAT_RSVDC_WIDTH-1):0]  dat_rsvdc = 0; 
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; 
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; 

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; 


Member Function Documentation

  function bit
 svt_chi_flit::is_critical_chunk_data_flit

 (   ) 


This function checks the ccid and dataid field and returns "1" if:
  • flit_data_width is 128 and if ccid matches flit_data_id
  • flit_data_width is 256 and if ccid[1] matches flit_data_id[1]
  • flit_data_width is 512.

  function bit
 svt_chi_flit::is_link_flit

 (   ) 


Indicates whether this is a link flit or not

  function void
 svt_chi_flit::new

 (  string name = "svt_chi_flit"  ) 


CONSTRUCTOR: Create a new sequence item instance.

name - Instance name of the sequence item.


 Superseded functions 
 uvm_object :: new 
 uvm_sequence_item :: new 
 svt_chi_common_transaction :: new 
 svt_chi_base_transaction :: new 


Member Attribute Documentation

 rand bit [(SVT_CHI_XACT_DAT_FLIT_MAX_BE_WIDTH-1):0]  attribute
 svt_chi_flit::byte_enable = 0


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.

 int  attribute
 svt_chi_flit::channel_id = 0


- Indicates the replicated channel ID on which the flit is sent or received.
  • This attribute is applicable only when the CHI-E replicated channels feature is enabled.
  • This attribute is set for both TX and RX flits internally in the VIP driver and must not be set by users.

 int  attribute
 svt_chi_flit::curr_cycle = 0


- Indicates the current clock cycle count.
  • This attribute is incremented by 1 for each clock cycle at the posedge

 int  attribute
 svt_chi_flit::curr_tx_flitpend_flitv_delay = -1


- Current value of tx_flitpend_flitv_delay

 int  attribute
 svt_chi_flit::curr_tx_flit_delay = -1


- Current value of tx_flit_delay

 rand bit [(SVT_CHI_XACT_DAT_RSVDC_WIDTH-1):0]  attribute
 svt_chi_flit::dat_rsvdc = 0


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.

 rand svt_chi_common_transaction :: dat_msg_type_enum  attribute
 svt_chi_flit::dat_vc_flit_opcode = COMPDATA


This field defines the Opcode for Data VC Flit.

 rand bit [(SVT_CHI_XACT_DAT_FLIT_MAX_DATA_WIDTH-1):0]  attribute
 svt_chi_flit::data = 0


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.

 bit [(SVT_CHI_DATA_ID_WIDTH-1):0]  attribute
 svt_chi_flit::flit_data_id = 0


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 |
|------------------------------------------------|

 rand svt_chi_common_transaction :: flit_type_enum  attribute
 svt_chi_flit::flit_type = REQ


This field defines the type of the Flit.

 rand svt_chi_common_transaction :: xact_type_enum  attribute
 svt_chi_flit::req_vc_flit_opcode = READNOSNP


This field defines the Opcode used for Request VC Flit.

 svt_chi_common_transaction :: resp_err_status_enum  attribute
 svt_chi_flit::resp_err_status = NORMAL_OKAY


This field indicates the error status of the response. It is applicable for RSP, DAT flits.

 rand svt_chi_common_transaction :: rsp_msg_type_enum  attribute
 svt_chi_flit::rsp_vc_flit_opcode = COMP


This field defines the Opcode for Response VC Flit.

 rand svt_chi_common_transaction :: snp_req_msg_type_enum  attribute
 svt_chi_flit::snp_vc_flit_opcode = SNPONCE


This field defines the Opcode for Snoop VC Flit.

 rand int  attribute
 svt_chi_flit::tx_flitpend_flitv_delay = 1


 rand int  attribute
 svt_chi_flit::tx_flit_delay = 0



Member Constraint Documentation

  constraint
 svt_chi_flit::chi_flit_valid_ranges


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;
  }

  constraint
 svt_chi_flit::chi_reasonable_tx_flitpend_flitv_delay


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
 svt_chi_flit::chi_reasonable_tx_flit_delay


constraint chi_reasonable_tx_flit_delay {
    if (cfg.delays_enable == 0)
      {tx_flit_delay == 0};
    tx_flit_delay inside {[0: 16]};
  }