svt_mem_suite_configuration Class Reference

Inheritance diagram for class svt_mem_suite_configuration:

List of all members.


Detailed Description

This memory configuration class encapsulates the configuration information for a single memory core instance.



Public Member Functions

function void  copy_dynamic_data ( uvm_sequence_item to )
function void  copy_static_data ( uvm_sequence_item to )
function void  create_sub_configurations ( )
function svt_pattern  do_allocate_pattern ( )
function bit  do_compare ( uvm_object rhs, uvm_comparer comparer )
function void  do_pack ( uvm_packer packer )
function void  do_sub_obj_copy_create ( uvm_object rhs )
function void  do_unpack ( uvm_packer packer )
function string  get_mcd_class_name ( )
function bit  get_prop_val ( string prop_name, ref bit [1023:0] prop_val, input int array_ix, ref svt_sequence_item_base data_obj )
function void  new ( string name = "svt_mem_suite_configuration", string suite_name = "" )
function void  pre_randomize ( )
function int  reasonable_constraint_mode ( bit on_off )
function bit  set_prop_val ( string prop_name, bit [1023:0] prop_val, int array_ix )
function int  static_rand_mode ( bit on_off )

Class Parameters

type  MRC = svt_configuration
type  TC = svt_configuration

Public Attributes

rand int unsigned  bank_addr_width 
rand int unsigned  chip_select_addr_width 
rand int unsigned  cmd_addr_width 
rand int unsigned  column_addr_width 
rand int unsigned  data_mask_width 
rand int unsigned  data_strobe_width 
rand MRC  mode_register_cfg 
rand int unsigned  num_data_bursts 
rand int unsigned  prefetch_length 
rand int unsigned  row_addr_width 
rand TC  timing_cfg 

Constraints

constraint  mem_suite_configuration_valid_ranges  ( )
constraint  reasonable_data_mask_width  ( )


Member Function Documentation

  function void
 svt_mem_suite_configuration::copy_dynamic_data

 (  uvm_sequence_item to  ) 


Used to limit a copy to the dynamic data members of the object.

 Superseded functions 
 svt_configuration :: copy_dynamic_data 
 svt_mem_configuration :: copy_dynamic_data 
 svt_base_mem_suite_configuration :: copy_dynamic_data 

  function void
 svt_mem_suite_configuration::copy_static_data

 (  uvm_sequence_item to  ) 


Used to limit a copy to the dynamic data members of the object.

 Superseded functions 
 svt_configuration :: copy_static_data 
 svt_mem_configuration :: copy_static_data 
 svt_base_mem_suite_configuration :: copy_static_data 

  function void
 svt_mem_suite_configuration::create_sub_configurations

 (   ) 


Constructs the timing_cfg and mode_register_cfg sub-configuration classes.

 Superseded functions 
 svt_base_mem_suite_configuration :: create_sub_configurations 

  function svt_pattern
 svt_mem_suite_configuration::do_allocate_pattern

 (   ) 


HDL Support: This method allocates a pattern containing svt_pattern_data instances for all of the primitive data fields in the object. The svt_pattern_data :: name is set to the corresponding field name, the svt_pattern_data :: value is set to 0.

Return values - An svt_pattern instance containing entries for all of the data fields.


 Superseded functions 
 svt_sequence_item_base :: do_allocate_pattern 
 svt_configuration :: do_allocate_pattern 
 svt_mem_configuration :: do_allocate_pattern 
 svt_base_mem_suite_configuration :: do_allocate_pattern 

  function bit
 svt_mem_suite_configuration::do_compare

 (  uvm_object rhs , uvm_comparer comparer  ) 


Compares the object with rhs..

rhs - Object to be compared against.

comparer - TBD


 Superseded functions 
 uvm_object :: do_compare 
 svt_sequence_item_base :: do_compare 
 svt_mem_configuration :: do_compare 
 svt_base_mem_suite_configuration :: do_compare 

  function void
 svt_mem_suite_configuration::do_pack

 (  uvm_packer packer  ) 


Pack the dynamic objects and object queues as the default uvm_packer/ovm_packer cannot create objects dynamically on the unpack.

 Superseded functions 
 uvm_object :: do_pack 
 svt_sequence_item_base :: do_pack 
 svt_configuration :: do_pack 

  function void
 svt_mem_suite_configuration::do_sub_obj_copy_create

 (  uvm_object rhs  ) 


Utility method used to populate sub cfgs and status.

rhs - Source object to use as the basis for populating the master and slave cfgs.

  function void
 svt_mem_suite_configuration::do_unpack

 (  uvm_packer packer  ) 


Unpack the dynamic objects and object queues as the default uvm_packer/ovm_packer cannot create objects dynamically on the unpack.

 Superseded functions 
 uvm_object :: do_unpack 
 svt_sequence_item_base :: do_unpack 
 svt_configuration :: do_unpack 

  function string
 svt_mem_suite_configuration::get_mcd_class_name

 (   ) 


Returns the class name for the object used for logging.

 Superseded functions 
 svt_sequence_item_base :: get_mcd_class_name 
 svt_mem_configuration :: get_mcd_class_name 
 svt_base_mem_suite_configuration :: get_mcd_class_name 

  function bit
 svt_mem_suite_configuration::get_prop_val

 (  string prop_name , ref bit [1023:0] prop_val , input int array_ix , ref svt_sequence_item_base data_obj  ) 


HDL Support: For read access to public data members of this class.

 Superseded functions 
 svt_sequence_item_base :: get_prop_val 
 svt_configuration :: get_prop_val 
 svt_mem_configuration :: get_prop_val 
 svt_base_mem_suite_configuration :: get_prop_val 

  function void
 svt_mem_suite_configuration::new

 (  string name = "svt_mem_suite_configuration", string suite_name = ""  ) 


CONSTRUCTOR: Create a new configuration instance, passing the appropriate argument values to the parent class.

name - Instance name of the configuration

suite_name - A String that identifies the product suite to which the configuration object belongs.


 Superseded functions 
 svt_sequence_item_base :: new 
 svt_configuration :: new 
 svt_mem_configuration :: new 
 svt_base_mem_suite_configuration :: new 

  function void
 svt_mem_suite_configuration::pre_randomize

 (   ) 


Constructs the timing and mode register sub-configuration classes

  function int
 svt_mem_suite_configuration::reasonable_constraint_mode

 (  bit on_off  ) 


Method to turn reasonable constraints on/off as a block.

 Superseded functions 
 svt_sequence_item_base :: reasonable_constraint_mode 
 svt_mem_configuration :: reasonable_constraint_mode 
 svt_base_mem_suite_configuration :: reasonable_constraint_mode 

  function bit
 svt_mem_suite_configuration::set_prop_val

 (  string prop_name , bit [1023:0] prop_val , int array_ix  ) 


HDL Support: For write access to public data members of this class.

 Superseded functions 
 svt_sequence_item_base :: set_prop_val 
 svt_configuration :: set_prop_val 
 svt_mem_configuration :: set_prop_val 
 svt_base_mem_suite_configuration :: set_prop_val 

  function int
 svt_mem_suite_configuration::static_rand_mode

 (  bit on_off  ) 


Method to turn static config param randomization on/off as a block.

 Superseded functions 
 svt_configuration :: static_rand_mode 
 svt_mem_configuration :: static_rand_mode 
 svt_base_mem_suite_configuration :: static_rand_mode 


Class Parameters Documentation

 type  attribute
 svt_mem_suite_configuration::MRC = svt_configuration

 type  attribute
 svt_mem_suite_configuration::TC = svt_configuration


Member Attribute Documentation

 rand int unsigned  attribute
 svt_mem_suite_configuration::bank_addr_width


Width of the bank select portion of the logical address

 rand int unsigned  attribute
 svt_mem_suite_configuration::chip_select_addr_width


Width of the chip select portion of the logical address

 rand int unsigned  attribute
 svt_mem_suite_configuration::cmd_addr_width


Width of the command address

 rand int unsigned  attribute
 svt_mem_suite_configuration::column_addr_width


Width of the column select portion of the logical address

 rand int unsigned  attribute
 svt_mem_suite_configuration::data_mask_width


Width of the data mask

 rand int unsigned  attribute
 svt_mem_suite_configuration::data_strobe_width


Width of the data strobe

 rand MRC  attribute
 svt_mem_suite_configuration::mode_register_cfg


Mode Register configuration class

 rand int unsigned  attribute
 svt_mem_suite_configuration::num_data_bursts


Number of data bursts supported

 rand int unsigned  attribute
 svt_mem_suite_configuration::prefetch_length


Prefetch length

 rand int unsigned  attribute
 svt_mem_suite_configuration::row_addr_width


Width of the row select portion of the logical address

 rand TC  attribute
 svt_mem_suite_configuration::timing_cfg


Timing configuration class

Member Constraint Documentation

  constraint
 svt_mem_suite_configuration::mem_suite_configuration_valid_ranges


Valid ranges constraints keep the values with usable values.

constraint mem_suite_configuration_valid_ranges {
    bank_addr_width <= 64;
    row_addr_width <= 64;
    column_addr_width <= 64;
    chip_select_addr_width <= 64;
     bank_addr_width + row_addr_width + column_addr_width + chip_select_addr_width <= addr_width;
     data_mask_width <= 1024;
    data_strobe_width <= 1024;
  }

  constraint
 svt_mem_suite_configuration::reasonable_data_mask_width


Makes sure that the data_mask_width is greater than 0.

constraint reasonable_data_mask_width {
    data_mask_width > 0;
  }