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_axi_master Class Reference

Inheritance diagram for class svt_axi_master:

List of all members.


Detailed Description

This class is UVM Driver that implements an AXI Master component.



Public Member Functions

function void  build_phase ( uvm_phase phase )
function void  end_of_elaboration_phase ( uvm_phase phase )
function bit  get_ids_used_by_active_master_transactions ( output bit [SVT_AXI_MAX_ID_WIDTH-1:0] id_list[$], output bit is_idunq, input string mode, input int rw_type, input bit use_min_width, input bit silent )
function int  get_number_of_outstanding_master_transactions ( bit silent = 1 )
virtual function uvm_object_wrapper  get_object_type ( )
function int  get_outstanding_master_transactions ( bit silent = 1, output svt_axi_master_transaction actvQ[$] )
static function type_id  get_type ( )
virtual function string  get_type_name ( )
function void  new ( string name, uvm_component parent )
function void  reconfigure ( svt_configuration cfg )
function void  report_phase ( uvm_phase phase )
task   run_phase ( uvm_phase phase )
task   wait_for_out_of_reset ( int mode = 0 )

Public Attributes

bit  is_cmd_cfg_applied = 1; 
uvm_seq_item_pull_port  snoop_seq_item_port 
uvm_seq_item_pull_port  svc_seq_item_port 
static const string  type_name = "svt_axi_master"; 

Member Typedefs

 typedef class  type_id 


Member Function Documentation

  function void
 svt_axi_master::build_phase

 (  uvm_phase phase  ) 


Build Phase Constructs the common class

 Superseded functions 
 uvm_component :: build_phase 
 svt_driver :: build_phase 

  function void
 svt_axi_master::end_of_elaboration_phase

 (  uvm_phase phase  ) 


End of Elaboration Phase Disables automatic item recording if the feature is available

 Superseded functions 
 uvm_component :: end_of_elaboration_phase 

  function bit
 svt_axi_master::get_ids_used_by_active_master_transactions

 (  output bit [SVT_AXI_MAX_ID_WIDTH-1:0] id_list [$], output bit is_idunq , input string mode , input int rw_type , input bit use_min_width , input bit silent  ) 


This method is used to get list of all IDs which are currently under use by outstanding transactions. However, user can choose the type of outstanding transactions this method should consider while extracting ID of active transactions. "mode" and "rw_type" arguments should be used for this purpose.

It returns '1' if total number of unique IDs currently used by active transactions, is less than all possible ID that can be used by an AXI transaction. This helps in determining whether randomizing ID field of a new transaction which should not be part of the all the IDs currently in use, is possible or not.

mode - Type of outstanding transactions this method should consider while extracting ID of active transactions. Currently it supports following modes (defined as string) ::

  • "non_dvm_non_barrier" => all transactions which are neither DVM nor Barrier (default)
  • "non_dvm" => all transactions which are not DVM
  • "non_barrier" => all transactions which are not Barrier
  • "dvm" => all transactions which are of DVM type
  • "barrier" => all transactions which are of Barrier type
  • "dvm_barrier" => all transactions which are either DVM or Barrier type
  • Note: if "rw_type" is set to '0' then only read channel transactions will be considered for non-dvm and non-barrier type

rw_type - Indicates which channel id width should be considered.

  • ' 0 ' => only read channel id width and transactions should be used
  • ' 1 ' => only write channel id width and transactions should be used
  • '-1 ' => common or either of read or write channel id width and transactions are used

use_min_width - If set to '1', minimum of read and write channel id width should be used otherwise maximum. This is applicable only if "rw_type == -1" i.e. no particular channel id width is specified.

silent - Suppresses debug messages from this method if set to '1'

  function int
 svt_axi_master::get_number_of_outstanding_master_transactions

 (  bit silent = 1  ) 


Returns the number of outstanding transactions

 virtual function uvm_object_wrapper
 svt_axi_master::get_object_type

 (   ) 


 Superseded functions 
 uvm_object :: get_object_type 

  function int
 svt_axi_master::get_outstanding_master_transactions

 (  bit silent = 1, output svt_axi_master_transaction actvQ [$]  ) 


This method returns list of transactions which are currently active and pending inside master agent.

silent - Suppresses debug messages from this method if set to '1'. Default value is '1'.

 static function type_id
 svt_axi_master::get_type

 (   ) 


Variable that keeps count of number of DVM Syncs which are accepted and DVMCOMPLETEs are yet to be added to the queue

 Superseded functions 
 uvm_object :: get_type 

 virtual function string
 svt_axi_master::get_type_name

 (   ) 


 Superseded functions 
 uvm_object :: get_type_name 
 uvm_component :: get_type_name 
 uvm_driver :: get_type_name 

  function void
 svt_axi_master::new

 (  string name , uvm_component parent  ) 


CONSTRUCTOR: Create a new driver instance

name - The name of this instance. Used to construct the hierarchy.

parent - The component that contains this intance. Used to construct the hierarchy.


 Superseded functions 
 uvm_component :: new 
 uvm_driver :: new 

  function void
 svt_axi_master::reconfigure

 (  svt_configuration cfg  ) 


Called when a new configuration is applied to the VIP

 Superseded functions 
 svt_driver :: reconfigure 

  function void
 svt_axi_master::report_phase

 (  uvm_phase phase  ) 


Report phase execution of the UVM component

 Superseded functions 
 uvm_component :: report_phase 

  task
 svt_axi_master::run_phase

 (  uvm_phase phase  ) 


Run phase Starts persistent threads like consume_from_seq_item_port()

 Superseded tasks 
 uvm_component :: run_phase 
 svt_driver :: run_phase 

  task
 svt_axi_master::wait_for_out_of_reset

 (  int mode = 0  ) 


waits until master is out of reset state

mode - if set to '1' then it waits for 1 clock cycle after reset is detected deasserted. otherwise, it waits for reset to be sampled as deasserted and comes out of reset after waiting for the negedge of the same sampling clock that detected reset de-assertion to avoid any race condition.


Member Attribute Documentation

 bit  attribute
 svt_axi_master::is_cmd_cfg_applied = 1

 uvm_seq_item_pull_port  attribute
 svt_axi_master::snoop_seq_item_port


Request port provided to get the snoop requests

 uvm_seq_item_pull_port  attribute
 svt_axi_master::svc_seq_item_port


AXI Service TLM Sequence Item Pull Port

Provides a mechanism for submitting service requests recognized by the driver. The handle to this TLM sequence item pull port can be set or obtained through the driver's public member svc_seq_item_port.

 static const string  attribute
 svt_axi_master::type_name = "svt_axi_master"


 Superseded attributes 
 uvm_component :: type_name 
 uvm_driver :: type_name 


Member Typedef Documentation

 typedef class  svt_axi_master::type_id
 Typedefe'd string ==>   uvm_component_registry#(svt_axi_master,)