UVM Field Editor

The UVM Field Editor enables you to inspect and edit UVM field registrations. It allows you to quickly add, remove and edit the registration macros and presents field statistics (total no. of fields, no. of registered fields, no. of warnings/errors).

Triggering

Triggering the UVM Field Editor for a certain class: place the cursor anywhere inside the class definition, right click and select Source > UVM Field Editor from the pop-up menu. If you place the cursor on a field, the UVM Field Editor will show up with the respective field selected.

If there are no previously registered macros, the uvm_*_utils_begin and uvm_*_utils_end macros shall be determined based on the class found at the cursor position. For a class that inherits from uvm_sequence, a pop-up dialog will ask you to select the desired sequencer from the available ones.

Interface

On the left side of the Field Editor Dialog there is a list containing all the fields in the class. You can register/unregister the class by clicking on the checkbox in the Class group. When the class is registered you can register or unregister fields by checking the corresponding checkboxes. When selecting a field you can also find information about the macro used for registration in the UVM Registration Macro group. If it’s not the desired macro you can fix it using the Fix button. On the right side you can see the flag status of the registered fields.

Its main features are highlighted and explained below:

../../_images/vlogdt-uvm-fieldeditor.png
  1. Summary information regarding registrations: no. of registered fields, total no. of fields in class, no. of errors, no. of warnings.

  2. Content Filters matched indication

  3. Class checkbox that allows you to toggle the registration state.

  4. Field type

  5. Field name

  6. Field icon. The field icons have the following meanings:

Icon

Meaning

../../_images/class_gray_obj.png

The class is not registered

../../_images/class_obj.png

The class is registered

../../_images/virtual_interface.png

The field is a virtual interface

../../_images/xvm_component_instance_obj.png

The field is instantiated and is a UVM Component

../../_images/class_instance_obj.png

The field is instantiated and is a UVM Object

../../_images/field_port.png

The field is a port

../../_images/field_array.png

The field is an array

../../_images/field_unregistered.png

The field is not registered.

../../_images/field_registered.png

The field is registered.

../../_images/field_registered_warning.png

The field is registered and affected by a warning.

../../_images/field_registered_error.png

The field is registered and affected by an error.

  1. Field registration checkbox that allows you to toggle the registration state.

  2. Select/Deselect all buttons. Used to register/unregister all the fields in a class.

  3. Fix button. Used to fix a macro registration if the right one isn’t used

  4. The UVM Registration Macro that is currently used for the selected field.

  5. Message area: displays error/warning messages.

  6. Field operation checkbox. If checked, the flag will be added to the registration.

  7. Field operation controls: allow you to select / clear all of the checkboxes.

  8. Print radix radio button. If checked, the radix will be set in the registration. At most one radix can be specified.

  9. Tooltip: hover with the mouse pointer any field operation checkbox or print radix radio button to obtain information about the flag.

  10. Clear print radix: allows you to unset the print radix (set all radio buttons off).

Problems

UVM Field Editor reports the following problems:

Message

Severity

This field is registered with <current_macro_name> instead of <macro_determined_by_dvt>

Error

Radix flag is specified more than once.

Error

The flags for the field registration are incorrectly specified. They should be OR-ed together using � (pipe character).

Error

DVT could not determine a registration macro for this field. uvm_field_object will be used.

Warning

Tips

  • Shortcut

    You can quickly trigger by using Alt+Shift+G.

  • Fixing problems

    To fix a problem, press the Fix button if it’s a wrong registration macro or unregister and register the field.

    Note

    Registering and unregistering the field will reset the flags/registration macro.

  • Multiple selection

    You can’t use multiple selection to perform registration/unregistration of more fields.

    Note

    If you want you can register/unregister all the fields using the Select/Deselect all buttons.