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 OVM Driver that implements an AXI Master component.



Public Member Functions

function void  build ( )
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 ovm_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, ovm_component parent )
function void  reconfigure ( svt_configuration cfg )
function void  report ( )
task   run ( )
function void  set_common ( svt_axi_common common )
function void  set_shared_status ( svt_axi_status shared_status )
task   wait_for_out_of_reset ( int mode = 0 )

Public Attributes

svt_axi_cache  axi_cache 
ovm_event  EVENT_TX_READ_XACT_STARTED 
ovm_event  EVENT_TX_WRITE_XACT_STARTED 
ovm_event  EVENT_TX_XACT_CONSUMED 
ovm_event  EVENT_TX_XACT_ENDED 
ovm_seq_item_pull_port  snoop_seq_item_port 
static const string  type_name = "svt_axi_master"; 
ovm_blocking_put_port  vlog_cmd_put_port 

Protected Member Functions

function void  associate_xact_to_barrier_pair ( svt_axi_master_transaction xact, svt_axi_barrier_pair_transaction barrier_pair_xact[$] )
function void  modify_computed_parity_value ( string signal_context = "", string parity_signal = "", ref bit calculated_parity_signal_val )
function void  post_cache_update ( svt_sequence_item_base xact )
function void  post_input_port_get ( svt_axi_transaction xact, ref bit drop )
function void  post_memory_update_xact_gen ( svt_axi_transaction xact )
function void  post_service_input_port_get ( svt_axi_service xact, ref bit drop )
function void  post_snoop_input_port_get ( svt_axi_master_snoop_transaction xact, ref bit drop )
function void  post_vip_randomized_xact_id_update ( ref int device_id_queue[$], ref int non_device_id_queue[$] )
function void  pre_address_phase_started ( svt_axi_transaction xact, ref bit drop )
function void  pre_cache_update ( svt_axi_master_transaction xact )
function void  pre_data_stream_started ( svt_axi_transaction xact )
function void  pre_snoop_data_phase_started ( svt_axi_master_snoop_transaction xact )
function void  pre_snoop_resp_phase_started ( svt_axi_master_snoop_transaction xact )
function void  pre_write_data_phase_started ( svt_axi_transaction xact, ref bit drop )

Protected Attributes

protected svt_axi_port_configuration  cfg_snapshot 
protected svt_axi_common  common 

Member Typedefs

 typedef class  type_id 


Member Function Documentation

 protected function void
 svt_axi_master::associate_xact_to_barrier_pair

 (  svt_axi_master_transaction xact , svt_axi_barrier_pair_transaction barrier_pair_xact [$]  ) 


Called when barrier_enable is set to 1 in svt_axi_port_configuration and associate_barrier_xact bit is set in svt_axi_master_transaction class.

xact - reference to the data descriptor object of interest.

barrier_pair_xact - Barrier pair associated with this transaction

  function void
 svt_axi_master::build

 (   ) 


Build Phase Constructs the common class

 Superseded functions 
 ovm_component :: build 
 svt_driver :: build 

  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  ) 

 virtual function ovm_object_wrapper
 svt_axi_master::get_object_type

 (   ) 


 Superseded functions 
 ovm_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

 (   ) 


 Superseded functions 
 ovm_object :: get_type 

 virtual function string
 svt_axi_master::get_type_name

 (   ) 


 Superseded functions 
 ovm_object :: get_type_name 
 ovm_driver :: get_type_name 

 protected function void
 svt_axi_master::modify_computed_parity_value

 (  string signal_context = "", string parity_signal = "", ref bit calculated_parity_signal_val  ) 


Called when there user wants to drive user injected check values on non-transaction parity signals.

signal_context - Context why the callback is called for a given signal.

parity_signal - Name of parity signal for which the callback is being called.

calculated_parity_signal_val - Value of the parity signal.

  function void
 svt_axi_master::new

 (  string name , ovm_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 
 ovm_component :: new 
 ovm_driver :: new 

 protected function void
 svt_axi_master::post_cache_update

 (  svt_sequence_item_base xact  ) 


Called when there is change in the state of the cache.

xact - A reference to the data descriptor object of interest.

 protected function void
 svt_axi_master::post_input_port_get

 (  svt_axi_transaction xact , ref bit drop  ) 


Called after getting a transaction from the input tlm port.

xact - A reference to the data descriptor object of interest.

drop - A bit that is set if this transaction is to be dropped.

 protected function void
 svt_axi_master::post_memory_update_xact_gen

 (  svt_axi_transaction xact  ) 


Called after randomizing memory update transaction.

xact - A reference to the memory update descriptor object of interest.

 protected function void
 svt_axi_master::post_service_input_port_get

 (  svt_axi_service xact , ref bit drop  ) 


Called by the component after pulling a AXI Service Requst out of its AXI Service Request input, but before acting on the AXI Service Request in any way.

xact - A reference to the data descriptor object of interest.

 protected function void
 svt_axi_master::post_snoop_input_port_get

 (  svt_axi_master_snoop_transaction xact , ref bit drop  ) 


Called after pulling a snoop transaction descriptor out of the input channel which is connected to the generator, but before acting on the transaction descriptor in any way.

xact - A reference to the transaction descriptor object of interest.

drop - A ref argument, which if set by the user's callback implementation causes the transactor to discard the transaction descriptor without further action.

 protected function void
 svt_axi_master::post_vip_randomized_xact_id_update

 (  ref int device_id_queue [$], ref int non_device_id_queue [$]  ) 


Called after getting a transaction from the input tlm port.

device_id_queue - A reference to the ID's of device type transactions which are currently beeing processed by the master.

non_device_id_queue - A reference to the ID's of non device type transactions which are currently beeing processed by the master.

 protected function void
 svt_axi_master::pre_address_phase_started

 (  svt_axi_transaction xact , ref bit drop  ) 


Called before driving the address phase of a transaction.

xact - A reference to the data descriptor object of interest.

drop - A bit that is set if this transaction is to be dropped, only work before any attributes are populated.

 protected function void
 svt_axi_master::pre_cache_update

 (  svt_axi_master_transaction xact  ) 


Called before writing into the cache.

xact - A reference to the data descriptor object of interest.

 protected function void
 svt_axi_master::pre_data_stream_started

 (  svt_axi_transaction xact  ) 


Called before driving the first transfer of a data stream transaction.

xact - A reference to the data descriptor object of interest.

 protected function void
 svt_axi_master::pre_snoop_data_phase_started

 (  svt_axi_master_snoop_transaction xact  ) 


Called before driving the snoop data phase of a transaction

xact - A reference to the data descriptor object of interest.

 protected function void
 svt_axi_master::pre_snoop_resp_phase_started

 (  svt_axi_master_snoop_transaction xact  ) 


Called before driving a response to a snoop transaction.

xact - A reference to the data descriptor object of interest.

 protected function void
 svt_axi_master::pre_write_data_phase_started

 (  svt_axi_transaction xact , ref bit drop  ) 


Called before driving a data beat of a write transaction.

xact - A reference to the data descriptor object of interest.

drop - A bit that is set if this transaction is to be dropped, only work before any attributes are populated.

  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

 (   ) 


Report phase execution of the OVM component

 Superseded functions 
 ovm_component :: report 

  task
 svt_axi_master::run

 (   ) 


Run phase Starts persistent threads like consume_from_seq_item_port()

 Superseded tasks 
 ovm_component :: run 
 svt_driver :: run 

  function void
 svt_axi_master::set_common

 (  svt_axi_common common  ) 


Method to set common

  function void
 svt_axi_master::set_shared_status

 (  svt_axi_status shared_status  ) 


Method to set shared status

  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. values greater than 1 shouldn't be used.


Member Attribute Documentation

 svt_axi_cache  attribute
 svt_axi_master::axi_cache


A reference to the cache of the master

 protected svt_axi_port_configuration  attribute
 svt_axi_master::cfg_snapshot


Configuration object copy to be used in set/get operations.

 protected svt_axi_common  attribute
 svt_axi_master::common


Common features of AXI Master components

 ovm_event  attribute
 svt_axi_master::EVENT_TX_READ_XACT_STARTED


Event triggers when master has driven the read transaction on the port interface

 ovm_event  attribute
 svt_axi_master::EVENT_TX_WRITE_XACT_STARTED


Event triggers when master has driven the write transaction on the port interface

 ovm_event  attribute
 svt_axi_master::EVENT_TX_XACT_CONSUMED


Event triggers when master driver consumes the transaction object. At this point, transaction object is not yet processed or transmitted on the bus.

 ovm_event  attribute
 svt_axi_master::EVENT_TX_XACT_ENDED


Event triggers when master has completed transaction i.e. for WRITE transaction this events triggers once master receives the write response and for READ transaction this event triggers when master has received all data.

 ovm_seq_item_pull_port  attribute
 svt_axi_master::snoop_seq_item_port


Request port provided to get the snoop requests

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


 Superseded attributes 
 ovm_driver :: type_name 

 ovm_blocking_put_port  attribute
 svt_axi_master::vlog_cmd_put_port


Member Typedef Documentation

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