User guide

21-43
OpenVera Native Testbench
The first command line yields the order b.vr d.vr p.vr, while the
second line yields, p.vr b.vr d.vr.
Circular Dependencies
With some programming styles, source files can appear to have
circular inheritance dependencies in spite of correct inheritance
trees being cycle-free. This can happen, for example, in the following
scenario:
a.vr: class Base_A {...}
class Derived_B extends Base_B {...}
b.vr: class Base_B {...}
class Derived_A extends Base_A {...}
Here classes are derived from base classes that are in the other file,
respectively, or more generally, when the inheritance relationships
project on to a loop among the files. This is however an abnormality
that should not occur in good programming styles. VCS will detect
and report the loop, and will use a heuristic to break it. This may not
lead to successful compilation, in which case you can use the
-ntb_opts print_deps option to generate a starting point for
manual resolution; however if possible the code should be rewritten.
Dependency-based Ordering in the Presence of
Encryption
As encrypted files are intended to be mostly self-contained library
modules that the testbench builds upon, they are excluded from
reordering regardless of dependencies (that shouldn’t exist in
unencrypted code to begin with). VCS splits Vera input files into
those that are encrypted or declared as such by having extensions