Inheritance diagram for class svt_traffic_profile_transaction:
Generic class that models a traffic profile. Only parameters which are generic across all protocols are encapsulated here. Protocol specific parameters must be specified in an extended class.
Public Member Functions | |
| function bit | decode_prop_val ( string prop_name, bit [1023:0] prop_val, ref string prop_val_string, input svt_pattern_data :: type_enum typ ) |
| function bit | do_is_valid ( bit silent = 1, int kind = RELEVANT ) |
| virtual function vmm_data | allocate ( ) |
| function svt_pattern | allocate_xml_pattern ( ) |
| virtual function unsigned int | byte_pack ( ref logic [7:0] bytes[], input int unsigned offset, input int kind ) |
| function unsigned int | byte_size ( int kind = -1 ) |
| 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 ) |
| function void | do_all ( vmm_data :: do_what_e do_what, ref logic [7:0] pack[], const ref logic [7:0] unpack[] ) |
| function svt_pattern | do_allocate_pattern ( ) |
| function unsigned int | do_byte_pack ( ref logic [7:0] bytes[], input int unsigned offset, input int kind ) |
| function unsigned int | do_byte_unpack ( const ref logic [7:0] bytes[], input int unsigned offset, input int len, input int kind ) |
| function bit | do_compare ( vmm_data to, output string diff, input int kind ) |
| function vmm_data | do_copy ( vmm_data to = null ) |
| function bit | encode_prop_val ( string prop_name, string prop_val_string, ref bit [1023:0] prop_val, input svt_pattern_data :: type_enum typ ) |
| 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_data data_obj ) |
| virtual function bit | is_valid ( bit silent = 1, int kind = -1 ) |
| function void | new ( vmm_log log = null, string suite_name = "" ) |
| virtual function string | psdisplay ( string prefix = "" ) |
| function int | reasonable_constraint_mode ( bit on_off ) |
| function bit | set_prop_val ( string prop_name, bit [1023:0] prop_val, int array_ix ) |
Public Attributes | |
| rand svt_traffic_profile_transaction :: addr_val_type_enum | addr_gen_type |
| rand bit [63:0] | addr_twodim_stride |
| rand bit [63:0] | addr_twodim_yrange |
| rand bit [63:0] | addr_xrange = 1 << 64 - 1; |
| rand bit [63:0] | base_addr = 0; |
| rand svt_traffic_profile_transaction :: attr_val_type_enum | data_gen_type |
| rand bit [1023:0] | data_max |
| rand bit [1023:0] | data_min |
| rand int | frame_size = SVT_TRAFFIC_MAX_FRAME_SIZE; |
| rand int | frame_time = SVT_TRAFFIC_MAX_FRAME_TIME; |
| string | group_name |
| int | group_seq_number |
| string | input_events [] |
| string | output_events [] |
| svt_traffic_profile_transaction :: output_event_type_enum | output_event_type[] |
| string | profile_name |
| svt_fifo_rate_control_configuration | read_fifo_cfg |
| svt_fifo_rate_control | read_fifo_rate_control |
| string | seqr_full_name |
| string | seqr_name |
| rand int unsigned | total_num_bytes = SVT_TRAFFIC_MAX_TOTAL_NUM_BYTES; |
| svt_fifo_rate_control_configuration | write_fifo_cfg |
| svt_fifo_rate_control | write_fifo_rate_control |
| rand svt_traffic_profile_transaction :: xact_size_enum | xact_size |
Protected Attributes | |
| static protected svt_traffic_profile_transaction | __vmm_rhs |
Member Typedefs | |
| typedef enum | addr_val_type_enum |
| typedef enum | attr_val_type_enum |
| typedef enum | output_event_type_enum |
| typedef enum | xact_size_enum |
Constraints | |
| constraint | reasonable_data_val ( ) |
| constraint | valid_ranges ( ) |
|
||||||
Simple utility used to convert 'bit [1023:0]' property value representation into its equivalent string property value representation. Extended to support decoding of enum values.
prop_name - The name of the property being encoded. prop_val_string - The string describing the value to be encoded. prop_val - The bit vector encoding of prop_val_string. typ - Optional field type used to help in the encode effort.
Return values - The enum value corresponding to the desc. | ||||||
|
|
||||||||
|
|
||||||||
|
|
||||||
allocate_xml_pattern method collects all the fields which are primitive data fields of the transaction and filters the fields to get only the fields to be displayed in the PA.
Return values - An svt_pattern instance containing entries for required fields to be dispalyed in PA | ||||||
|
|
||||||||
|
|
||||||||
Returns the size (in bytes) required by the byte_pack operation.
kind - This int indicates the type of byte_size being requested. Only supported kind value is svt_data :: COMPLETE, which results in a size calculation based on the non-static fields. All other kind values result in a return value of 0. | ||||||||
|
|
||||||||
|
|
||||||||
|
|
||||||||
|
|
||||||||
|
|
||||||
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. | ||||||
|
|
||||||||
Packs the object into the bytes buffer, beginning at offset, based on the requested byte_pack kind.
bytes - Buffer that will contain the packed bytes at the end of the operation. offset - Offset into bytes where the packing is to begin. kind - This int indicates the type of byte_pack being requested. Only supported kind value is svt_data :: COMPLETE, which results in all of the non-static fields being packed and the return of an integer indicating the number of packed bytes. All other kind values result in no change to the buffer contents, and a return value of 0. | ||||||||
|
|
||||||||
Unpacks the object from the bytes buffer, beginning at offset, based on the requested byte_unpack kind.
bytes - Buffer containing the bytes to be unpacked. offset - Offset into bytes where the unpacking is to begin. len - Number of bytes to be unpacked. kind - This int indicates the type of byte_unpack being requested. Only supported kind value is svt_data :: COMPLETE, which results in all of the non-static fields being unpacked and the return of an integer indicating the number of unpacked bytes. All other kind values result in no change to the exception contents, and a return value of 0. | ||||||||
|
|
||||||||
Compares the object with to, based on the requested compare kind. Differences are placed in diff.
to - vmm_data object to be compared against. diff - String indicating the differences between this and to. kind - This int indicates the type of compare to be attempted. Only supported kind value is svt_data :: COMPLETE, which results in comparisons of the non-static data members. All other kind values result in a return value of 1. | ||||||||
|
|
||||||||
Extend the copy method to copy the transaction class fields.
to - Destination class for the copy operation | ||||||||
|
|
||||||
Simple utility used to convert string property value representation into its equivalent 'bit [1023:0]' property value representation. Extended to support encoding of enum values.
prop_name - The name of the property being encoded. prop_val_string - The string describing the value to be encoded. prop_val - The bit vector encoding of prop_val_string. typ - Optional field type used to help in the encode effort.
Return values - The enum value corresponding to the desc. | ||||||
|
|
||||
Returns the class name for the object used for logging.
| ||||
|
|
||||||
HDL Support: For read access to public data members of this class.
| ||||||
|
|
||||||||
|
|
||||||
CONSTRUCTOR: Create a new traffic profile instance, passing the appropriate argument values to the vmm_data parent class.
log - Sets the log file that is used for status output.
suite_name - A String that identifies the product suite to which the configuration object belongs. | ||||||
|
|
||||||||
|
|
||||
Method to turn reasonable constraints on/off as a block.
| ||||
|
|
||||||
HDL Support: For write access to public data members of this class.
| ||||||
|
|
|
Indicates the type of address generation If set to sequential, a sequential range of address value starting from base_addr will be used. If set to twomin, a two dimensional address pattern is used. Check description of properties below for details. If set to random, random values between base_addr and base_addr+addr_xrange-1 is used. Values will be chosen such that all the valid paths to slaves from this master are covered.
|
|
|
Valid if addr is twodim. This determines the offset of each new row
|
|
|
Valid if addr is twodim. After a transaction uses address specified by (base_addr + addr_twodim_yrange - addr_twodim_stride + addr_twodim_xrange 1), the next transaction uses address specified by base_addr.
|
|
|
Address range to be used for various address patterns. If addr is sequential, sequential addressing is used from base_addr until it reaches base_addr + addr_xrange - 1, upon which the next transaction will use base_addr as the address. If addr is twodim, after a transaction uses address specified by (base_addr + addr_xrange - 1), the next transaction uses address specified by (base_addr + addr_twodim_stride). This pattern continues until addr_twodim_yrange is reached. If addr is random, base_addr + addr_xrange 1 indicates the maximum address that can be generated
|
|
|
The base address to be used for address generation
|
|
|
Indicates whether fixed, cycle or random data is to be used for transactions. If set to fixed, a fixed data value as indicated in data_min is used. If set to cycle, a range of data values is cycled through from data_min to data_max. If set to random, a random data value is used between data_min and data_max.
|
|
|
The upper bound of data value to be used. Valid if data is set to cycle
|
|
|
The lower bound of data value to be used. Valid if data is set to cycle
|
|
|
Applicable if any of the output_event_type is FRAME_SIZE. Indicates the number of bytes after which the corresponding output_event must be triggered. The event is triggered after every frame_size number of bytes are transmitted.
|
|
|
Applicable if any of the output_event_type is FRAME_TIME. Indicates the number of cycles after which the corresponding output_event must be triggered. The event is triggered after every frame_time number of cycles
|
|
|
The name of the group in the traffic profile corresponding to this configuration
|
|
|
The sequence number of the group in the traffic profile corresponding to this configuration
|
|
|
Name of input events based on which this traffic profile will will start. The traffic profile will start if any of the input events are triggered. The names given in this variable should be associated with the output event of some other profile, so that this traffic profile will start based on when the output event is triggered.
|
|
|
Name of output events triggered from this traffic profile at pre-defined points which are specified in output_event_type. The names given in this variable should be associated with the input event of some other profile, which will will start based on when the output event is triggered.
|
|
|
Indicates the pre-defined points at which the output events given in output_event must be triggered If set to END_OF_PROFILE, the output event is triggered when the last transaction from the profile is complete If set to END_OF_FRAME_TIME, the output event is triggered every frame_time number of cycles If set to END_OF_FRAME_SIZE, the output event is triggered after every frame_size number of bytes are transmitted
|
|
|
Name of the profile
|
|
|
Configuration for rate control in READ FIFO.
|
|
|
Utility class for performing FIFO based rate control for READ transactions
|
|
|
Full Name of the sequencer instance on which this profile is to run This name must match the full hierarchical name of the sequencer
|
|
|
Name of the sequencer on which this profile is to run This can be a proxy name and need not match the actual name of the sequencer
|
|
|
Number of Transactions in a sequence.
|
|
|
Configuration for rate control in WRITE FIFO.
|
|
|
Utility class for performing FIFO based rate control for WRITE transactions
|
|
|
The total number of bytes transferred in each transaction Applicable only for non-cache line size transactions. For cache-line size transactions, it is defined by the protocol and corresponding VIP constraints
|
|
|
|
|
|
|
|
constraint reasonable_data_val {
data_max >= data_min; } |
|
|
constraint valid_ranges {
frame_time > 0; frame_time < 4096; frame_size >= xact_size; // Transaction size for one transaction frame_size <= 4096; total_num_bytes > 0; total_num_bytes <= 4096; } |