mastrick Posted March 22, 2012 Report Posted March 22, 2012 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 Quote
uwes Posted March 23, 2012 Report Posted March 23, 2012 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 Quote
Roman Posted March 28, 2012 Report Posted March 28, 2012 one appending to uwe's good comments Classes properties should be declared before they are referenced by `uvm_field_* macro Quote
Recommended Posts
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.