Returns 1 if this component has a child with the given name, 0 otherwise.
function int has_child ( string name )
Determines if a sequence is ready to supply a transaction.
virtual function bit has_do_available()
Indicates whether a sequence item is available for immediate processing.
virtual function bit has_do_available()
Returns 1 if this sequence has a lock, 0 otherwise.
function bit has_lock()
Returns 1 if the sequence refered to in the parameter currently has a lock on this sequencer, 0 otherwise.
function bit has_lock( ovm_sequence_base sequence_ptr )
Indicates whether the print_header function should be called when printing an object.
bit header = 1
This string should be prepended to the value of an integral type when a radix of OVM_HEX is used for the radix of the integral object.
string hex_radix = "'h"
An associative array holding the number of occurences for each unique report ID.
protected int id_count[string]
Indicates whether print_id should print the identifier.
bit identifier = 1
This bit is used to specify whether or not an object’s reference should be recorded when the object is recorded.
bit identifier = 1
This class uses the ovm_built_in_* comparison, converter, and pair classes.
class ovm_in_order_built_in_comparator #( type T = int ) extends ovm_in_order_comparator #(T)
This class uses the ovm_class_* comparison, converter, and pair classes.
class ovm_in_order_class_comparator #( type T = int ) extends ovm_in_order_comparator #( T , ovm_class_comp #( T ) , ovm_class_converter #( T ) , ovm_class_pair #( T, T ) )
This function returns 1 if a stop request is currently active, and 0 otherwise.
function bit in_stop_request()
Set, get, or increment the counter for reports with the given id.
function void incr_id_count( string id )
function void incr_quit_count()
function void incr_severity_count( ovm_severity severity )
This knob specifies the string to use for level indentation.
string indent_str = " "
Inserts the item at the given index in the queue.
virtual function void insert ( int index, T item )
Inserts a new phase given by new_phase after the existing phase given by exist_phase.
function void insert_phase ( ovm_phase new_phase, ovm_phase exist_phase )
Returns 1 if the transaction has been started but has not yet been ended.
function bit is_active ()
Returns a bit indicating whether this sequence is currently prevented from running due to another lock or grab.
function bit is_blocked()
Returns 1 if the sequence referred to by sequence_ptr is currently locked out of the sequencer.
function bit is_blocked( ovm_sequence_base sequence_ptr )
Returns 1 if the child sequence is a child of the parent sequence, 0 otherwise.
function bit is_child ( ovm_sequence_base parent, ovm_sequence_base child )
Returns 1 if the phase has completed, 0 otherwise.
function bit is_done ()
Returns 1 when there are no entries in the FIFO, 0 otherwise.
virtual function bit is_empty()
Returns 1 if the callback is enabled, 0 otherwise.
function bit is_enabled()
function bit is_export ()
Returns 1 when the number of entries in the FIFO is equal to its size, 0 otherwise.
virtual function bit is_full()
Returns 1 if any sequence currently has a lock or grab on this sequencer, 0 otherwise.
virtual function bit is_grabbed()
Returns 1 if this port is of the type given by the method name, 0 otherwise.
function bit is_imp ()
Returns 1 if the phase is currently in progress (active), 0 otherwise.
function bit is_in_progress ()
This function may be called on any sequence_item or sequence object.
virtual function bit is_item()
This function may be called on any sequence_item or sequence.
virtual function bit is_item()
This method is used during unpack operations to peek at the next 4-bit chunk of the pack data and determine if it is 0.
virtual function bit is_null ()
Indicates whether the event has been triggered or been reset.
virtual function bit is_off ()
Indicates whether the event has been triggered since it was last reset.
virtual function bit is_on ()
function bit is_port ()
If is_quit_count_reached returns 1, then the quit counter has reached the maximum.
function bit is_quit_count_reached()
Returns 1 if recording is currently on, 0 otherwise.
function bit is_recording_enabled()
The default is_relevant implementation returns 1, indicating that the sequence is always relevant.
virtual function bit is_relevant()
Returns 1 if the phase is time consuming and 0 if not.
function bit is_task ()
Returns 1 if the phase executes top-down (executes the parent¿s phase callback before executing the children¿s callback) and 0 otherwise.
function bit is_top_down ()
Returns 1 if this port has no maximum on the number of implementation (imp) ports this port can connect to.
function bit is_unbounded ()
Indicates that the request is completed to the sequencer.
virtual function void item_done( input T2 t = null )
Kills the process tree associated with this component’s currently running task-based phase, e.g., run.
virtual function void kill ()
This function will kill the sequence, and cause all current locks and requests in the sequence’s default sequencer to be removed.
function void kill()
The knob object provides access to the variety of knobs associated with a specific printer instance.
ovm_printer_knobs knobs = new
An instance of ovm_table_printer_knobs, which govern the content and format of the printed table.
ovm_table_printer_knobs knobs = new
An instance of ovm_tree_printer_knobs, which govern the content and format of the printed tree.
ovm_tree_printer_knobs knobs = new
Returns the key of the last item stored in the pool.
virtual function int last ( ref KEY key )
Returns the last request item by default.
function REQ last_req( int unsigned n = 0 )
Returns the last response item by default.
function RSP last_rsp( int unsigned n = 0 )
Requests a lock on the specified sequencer.
task lock( ovm_sequencer_base sequencer = null )
Requests a lock for the sequence specified by sequence_ptr.
virtual task lock( ovm_sequence_base sequence_ptr )
Looks for a component with the given hierarchical name relative to this component.
function ovm_component lookup ( string name )
Set this variable via set_config_int to set the number of sequence items to generate, at the discretion of the derived sequence.
int unsigned max_random_count = 10
Used for setting the maximum depth inside random sequences.
int unsigned max_random_depth = 4
The maximum with of a field.
int max_width = 999
This is a file descriptor, or multi-channel descriptor, that specifies where the print output should be directed.
int mcd = OVM_STDOUT
This function is a user-definable callback function that is called after the sequence item has been randomized, and just before the item is sent to the driver.
virtual function void mid_do( ovm_sequence_item this_item )
This string is reset to an empty string when a comparison is started.
string miscompares = ""
Sets the width of the name column.
int name_width = 25
Executes the given request and returns the response in the given output argument.
virtual function bit nb_transport( input T1 req, output T2 rsp )
Creates and initializes an instance of this class using the normal constructor arguments for ovm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.
function new ( string name, ovm_component parent )
Creates an instance of a specialization of this class.
function new( TRANSFORMER transformer, string name , ovm_component parent )
Creates a new barrier object.
function new ( string name = "", int threshold = 0 )
Creates an instance of ovm_pair that holds a handle to two elements, as provided by the first two arguments.
function new ( T1 f, T2 s, string name = "" )
Creates a new ovm_callback object, giving it an optional name.
function new( string name = "ovm_callback" )
Creates a new ovm_callbacks object, giving it an optional name.
function new( string name = "ovm_callback" )
Creates a new component with the given leaf instance name and handle to to its parent.
function new ( string name, ovm_component parent )
Creates and initializes an instance of this class using the normal constructor arguments for ovm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.
function new ( string name, ovm_component parent )
Creates and initializes an instance of this class using the normal constructor arguments for ovm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.
function new ( string name = "env", ovm_component parent = null )
Creates a new event object.
function new ( string name = "" )
Creates a new callback object.
function new ( string name = "" )
Creates a new instance of ovm_line_printer.
function new()
Creates and initializes an instance of this class using the normal constructor arguments for ovm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.
function new ( string name, ovm_component parent )
Creates a new ovm_object with the given instance name.
function new ( string name = "" )
Creates a new pool with the given name.
function new ( string name = "" )
Creates a new objection instance.
function new( string name = "" )
Creates an instance of ovm_pair that holds a handle to two objects, as provided by the first two arguments.
function new ( T1 f = null, T2 s = null, string name = "" )
Creates a phase object.
function new ( string name, bit is_top_down, bit is_task )
Creates a new pool with the given name.
function new ( string name = "" )
The first two arguments are the normal ovm_component constructor arguments.
function new ( string name, ovm_component parent, ovm_port_type_e port_type, int min_size = 0, int max_size = 1 )
Creates and initializes an instance of this class using the normal constructor arguments for ovm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.
function new ( string name, ovm_component parent )
Creates and initializes an instance of this class using the normal constructor arguments for ovm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.
function new ( string name, ovm_component parent )
Creates a new queue with the given name.
function new ( string name = "" )
Creates a new instance of a specialization of this class.
function new( string name, ovm_component parent )
Creates and initializes a new ovm_report_handler object.
function new()
Creates a new report object with the given name.
function new( string name = "" )
Creates the central report server, if not already created.
function new()
Creates and initializes an instance of this class using the normal constructor arguments for ovm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.
function new ( string name, ovm_component parent )
Creates and initializes a new sequence object.
function new ( string name = "ovm_sequence", ovm_sequencer_base sequencer_ptr = null, ovm_sequence_base parent_seq = null )
The constructor for ovm_sequence_base.
function new ( string name = "ovm_sequence", ovm_sequencer_base sequencer_ptr = null, ovm_sequence_base parent_seq = null )
The constructor method for ovm_sequence_item.
function new ( string name = "ovm_sequence_item", ovm_sequencer_base sequencer = null, ovm_sequence_base parent_sequence = null )
Creates and initializes an instance of this class using the normal constructor arguments for ovm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.
function new ( string name, ovm_component parent )
Creates and initializes an instance of this class using the normal constructor arguments for ovm_component: name is the name of the instance, and parent is the handle to the hierarchical parent.
function new ( string name, ovm_component parent )
Creates and initializes an instance of this class using the normal constructor arguments for ovm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.
function new ( string name, ovm_component parent )
Creates and initializes an instance of this class using the normal constructor arguments for ovm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.
function new ( string name, ovm_component parent )
Creates a new instance of ovm_table_printer.
function new()
Creates and initializes an instance of this class using the normal constructor arguments for ovm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.
function new ( string name, ovm_component parent )
Creates a new transaction object.
function new ( string name = "", ovm_component initiator = null )
Creates a new instance of ovm_tree_printer.
function new()
This is the standard ovm_component constructor.
function new( string name , ovm_component parent = null )
The name and parent are the normal ovm_component constructor arguments.
function new( string name, ovm_component parent = null, int size = 1 )
The name and parent are the normal ovm_component constructor arguments.
function new( string name, ovm_component parent = null )
The name and parent are the standard ovm_component constructor arguments.
function new ( string name, ovm_component parent = null, int request_fifo_size = 1, int response_fifo_size = 1 )
The name and parent are the standard ovm_component constructor arguments.
function new ( string name, ovm_component parent = null )
Returns the key of the next item in the pool.
virtual function int next ( ref KEY key )
Returns the number of uniquely keyed items stored in the pool.
virtual function int num ()
Returns the number of sequences in the sequencer’s sequence library.
function int num_sequences()
Returns the number of sequences in the sequencer¿s sequence library.
function int num_sequences()
This string should be prepended to the value of an integral type when a radix of OVM_OCT is used for the radix of the integral object.
string oct_radix = "'o"
The ovm_agent virtual class should be used as the base class for the user- defined agents.
virtual class ovm_agent extends ovm_component
Compares two streams of data objects of different types, BEFORE and AFTER.
class ovm_algorithmic_comparator #( type BEFORE = int, type AFTER = int, type TRANSFORMER = int ) extends ovm_component
The ovm_barrier class provides a multiprocess synchronization mechanism.
class ovm_barrier extends ovm_object
Converts an input bit-vector to its string equivalent.
function string ovm_bits_to_string( logic [OVM_LARGE_STRING:0] str )
This policy class is used to clone built-in types via the = operator.
class ovm_built_in_clone #( type T = int )
This policy class is used to compare built-in types.
class ovm_built_in_comp #( type T = int )
This policy class is used to convert built-in types to strings.
class ovm_built_in_converter #( type T = int )
Container holding two variables of built-in types (int, string, etc.)
class ovm_built_in_pair #( type T1 = int, T2 = T1 ) extends ovm_transaction
The ovm_callback class is the base class for user-defined callback classes.
class ovm_callback extends ovm_object
The ovm_callbacks class provides a base class for implementing callbacks, which are typically used to modify or augment component behavior without changing the component class.
class ovm_callbacks #( type T = int, CB = int ) extends ovm_pool #(T,ovm_queue #(CB))
This policy class is used to clone class objects.
class ovm_class_clone #( type T = int )
This policy class is used to compare two objects of the same type.
class ovm_class_comp #( type T = int )
This policy class is used to convert a class object to a string.
class ovm_class_converter #( type T = int )
The ovm_comparer class provides a policy object for doing comparisons.
class ovm_comparer
The ovm_component class is the root base class for OVM components.
virtual class ovm_component extends ovm_report_object
The ovm_component_registry serves as a lightweight proxy for a component of type T and type name Tname, a string.
class ovm_component_registry #( type T = ovm_component, string Tname = "<unknown>" ) extends ovm_object_wrapper
The default compare policy.
ovm_comparer ovm_default_comparer = new()
The line printer is a global object that can be used with ovm_object::do_print to get single-line style printing.
ovm_line_printer ovm_default_line_printer = new()
The default packer policy.
ovm_packer ovm_default_packer = new()
The default printer is a global object that is used by ovm_object::print or ovm_object::sprint when no specific printer is set.
ovm_printer ovm_default_printer = ovm_default_table_printer
The default recording policy.
ovm_recorder ovm_default_recorder = new()
The table printer is a global object that can be used with ovm_object::do_print to get tabular style printing.
ovm_table_printer ovm_default_table_printer = new()
The tree printer is a global object that can be used with ovm_object::do_print to get multi-line tree style printing.
ovm_tree_printer ovm_default_tree_printer = new()
The base class for drivers that initiate requests for new transactions via a ovm_seq_item_pull_port.
class ovm_driver #( type REQ = ovm_sequence_item, type RSP = REQ ) extends ovm_component
The base class for hierarchical containers of other components that together comprise a complete environment.
virtual class ovm_env extends ovm_component
The ovm_event class is a wrapper class around the SystemVerilog event construct.
class ovm_event extends ovm_object
The ovm_event_callback class is an abstract class that is used to create callback objects which may be attached to ovm_events.
virtual class ovm_event_callback extends ovm_object
This sequence randomly selects and executes each sequence from the sequencer’s sequence library once, excluding itself and ovm_random_sequence.
class ovm_exhaustive_sequence extends ovm_sequence #( ovm_sequence_item )
As the name implies, ovm_factory is used to manufacture (create) OVM objects and components.
class ovm_factory
The ovm_hier_printer_knobs is a simple container class that extends ovm_printer::ovm_printer_knobs with settings for printing information hierarchically.
class ovm_hier_printer_knobs extends ovm_printer_knobs
Returns 1 if the two strings match, 0 otherwise.
`ifdef OVM_DPI import "DPI" function bit ovm_is_match ( string expr, string str )
The line printer prints output in a line format.
class ovm_line_printer extends ovm_tree_printer
This class should be used as the base class for user-defined monitors.
virtual class ovm_monitor extends ovm_component
The ovm_object class is the base class for all OVM data and hierarchical classes.
virtual class ovm_object extends ovm_void
The ovm_object_registry serves as a lightweight proxy for an ovm_object of type T and type name Tname, a string.
class ovm_object_registry #( type T = ovm_object, string Tname = "<unknown>" ) extends ovm_object_wrapper
This provides a specialization of the generic ovm_pool #(KEY,T) class for an associative array of ovm_object-based objects indexed by string.
class ovm_object_string_pool #( type T = ovm_object ) extends ovm_pool #(string,T)
The ovm_object_wrapper provides an abstract interface for creating object and component proxies.
virtual class ovm_object_wrapper
Objections provide a facility for coordinating status information between two or more participating components, objects, and even module-based IP.
class ovm_objection extends ovm_report_object
The ovm_phase class is used for defining phases for ovm_component and its subclasses.
virtual class ovm_phase
Implements a class-based dynamic associative array.
class ovm_pool #( type KEY = int, T = ovm_void ) extends ovm_object
Transaction-level communication between components is handled via its ports, exports, and imps, all of which derive from this class.
virtual class ovm_port_base #( type IF = ovm_void ) extends IF
The ovm_printer class provides an interface for printing ovm_objects in various formats.
class ovm_printer
The ovm_printer_knobs class defines the printer settings available to all printer subtypes.
class ovm_printer_knobs
Base class for a driver that passively receives transactions, i.e.
class ovm_push_driver #( type REQ = ovm_sequence_item, type RSP = REQ ) extends ovm_component
class ovm_push_sequencer #( type REQ = ovm_sequence_item, type RSP = REQ ) extends ovm_sequencer_param_base #(REQ, RSP)
Implements a class-based dynamic queue.
class ovm_queue #( type T = int ) extends ovm_object
This sequence randomly selects and executes a sequence from the sequencer¿s sequence library, excluding ovm_random_sequence itself, and ovm_exhaustive_sequence.
class ovm_random_sequence extends ovm_sequence #( ovm_sequence_item )
A general purpose unidirectional random stimulus class.
class ovm_random_stimulus #( type T = ovm_transaction ) extends ovm_component
The ovm_recorder class provides a policy object for recording ovm_objects.
class ovm_recorder
Returns 1 if the configured verbosity in ovm_top is greater than verbosity and the action associated with the given severity and id is not OVM_NO_ACTION, else returns 0.
function bit ovm_report_enabled ( int verbosity, ovm_severity severity = OVM_INFO, string id = "" )
Returns 1 if the configured verbosity for this object is greater than verbosity and the action associated with the given severity and id is not OVM_NO_ACTION, else returns 0.
function int ovm_report_enabled( int verbosity, ovm_severity severity = OVM_INFO, string id = "" )
function void ovm_report_error( string id, string message, int verbosity = OVM_LOW, string filename = "", int line = 0 )
virtual function void ovm_report_error( string id, string message, int verbosity = OVM_LOW, string filename = "", int line = 0 )
These are the primary reporting methods in the OVM.
virtual function void ovm_report_fatal( string id, string message, int verbosity = OVM_NONE, string filename = "", int line = 0 )
The ovm_report_handler is the class to which most methods in ovm_report_object delegate.
class ovm_report_handler
function void ovm_report_info( string id, string message, int verbosity = OVM_MEDIUM, string filename = "", int line = 0 )
virtual function void ovm_report_info( string id, string message, int verbosity = OVM_MEDIUM, string filename = "", int line = 0 )
The ovm_report_object provides an interface to the OVM reporting facility.
class ovm_report_object extends ovm_object
ovm_report_server is a global server that processes all of the reports generated by an ovm_report_handler.
class ovm_report_server
function void ovm_report_warning( string id, string message, int verbosity = OVM_MEDIUM, string filename = "", int line = 0 )
virtual function void ovm_report_warning( string id, string message, int verbosity = OVM_MEDIUM, string filename = "", int line = 0 )
The ovm_root class serves as the implicit top-level and phase controller for all OVM components.
class ovm_root extends ovm_component
The ovm_scoreboard virtual class should be used as the base class for user-defined scoreboards.
virtual class ovm_scoreboard extends ovm_component
This export type is used in sequencer-driver communication.
class ovm_seq_item_pull_export #( type REQ = int, type RSP = REQ ) extends ovm_port_base #(sqr_if_base #(REQ, RSP))
This imp type is used in sequencer-driver communication.
class ovm_seq_item_pull_imp #( type REQ = int, type RSP = REQ, type IMP = int ) extends ovm_port_base #(sqr_if_base #(REQ, RSP))
OVM provides a port, export, and imp connector for use in sequencer-driver communication.
class ovm_seq_item_pull_port #( type REQ = int, type RSP = REQ ) extends ovm_port_base #(sqr_if_base #(REQ, RSP))
The ovm_sequence class provides the interfaces necessary in order to create streams of sequence items and/or other sequences.
virtual class ovm_sequence #( type REQ = ovm_sequence_item, type RSP = REQ ) extends ovm_sequence_base
The ovm_sequence_base class provides the interfaces needed to create streams of sequence items and/or other sequences.
class ovm_sequence_base extends ovm_sequence_item
The base class for user-defined sequence items and also the base class for the ovm_sequence class.
class ovm_sequence_item extends ovm_transaction
class ovm_sequencer #( type REQ = ovm_sequence_item, type RSP = REQ ) extends ovm_sequencer_param_base #(REQ, RSP)
Controls the flow of sequences, which generate the stimulus (sequence item transactions) that is passed on to drivers for execution.
class ovm_sequencer_base extends ovm_component
Provides base functionality used by the ovm_sequencer and ovm_push_sequencer.
class ovm_sequencer_param_base #( type REQ = ovm_sequence_item, type RSP = REQ ) extends ovm_sequencer_base
This sequence simply executes a single sequence item.
class ovm_simple_sequence extends ovm_sequence #( ovm_sequence_item )
Converts an input string to its bit-vector equivalent.
function logic[OVM_LARGE_STRING:0] ovm_string_to_bits( string str )
This class provides an analysis export for receiving transactions from a connected analysis export.
virtual class ovm_subscriber #( type T = int ) extends ovm_component
The table printer prints output in a tabular format.
class ovm_table_printer extends ovm_printer
The ovm_table_printer_knobs is a simple container class that extends ovm_printer::ovm_hier_printer_knobs with settings specific to printing in table format.
class ovm_table_printer_knobs extends ovm_hier_printer_knobs
This class is the virtual base class for the user-defined tests.
virtual class ovm_test extends ovm_component
An instance of the ovm_test_done_objection class, this object is used by components to coordinate when to end the currently running task-based phase.
ovm_test_done_objection ovm_test_done = ovm_test_done_objection::get()
Built-in end-of-test coordination
class ovm_test_done_objection extends ovm_objection
This is the top-level that governs phase execution and provides component search interface.
`const ovm_root ovm_top = ovm_root::get()
The ovm_transaction class is the root base class for OVM transactions.
virtual class ovm_transaction extends ovm_object
By overriding various methods of the ovm_printer super class, the tree printer prints output in a tree format.
class ovm_tree_printer extends ovm_printer
The ovm_tree_printer_knobs is a simple container class that extends ovm_printer::ovm_hier_printer_knobs with settings specific to printing in tree format.
class ovm_tree_printer_knobs extends ovm_hier_printer_knobs
Call this task to wait for a delta cycle.
task ovm_wait_for_nba_region