Jump to content

Recommended Posts

Posted

We have a number of base classes that inherit from uvm base classes. Our base classes are intended to be inherited from by end user classes; we do not instance these base classes. So far, we have been using `uvm_object_utils, etc. to register our base classes. But we have seen there is quite a compile time overhead to doing that. What do we give up if we do not use `uvm_object_utils for our base classes but do use it for our end user classes? Is it just that we could not include base class fields in the pre-defined methods and if we ever did instance a base class, we could not ever replace it? Or is there another pitfall we may encounter?

Thanks,

Mark

Posted

hi mark,

i think there are some things to consider:

1. if the classes are real base classes, then they should be abstract/virtual. (so they are not registered with the factory then)

2. if you dont register the fields via the macros you can still implement the do_(copy,print,...) in order that derived classes handle the fields as if they were normal uvm_field_xxx*

3. if you dont register the fields you also loose auto config thus needing manual extraction of values from the config_db

/uwe

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...