UVM Version Defines

Summary
UVM Version Defines
UVM Revision ValuesThese macros provide the current values for the MAJOR, MINOR, and optionally the FIX revision.
UVM_MAJOR_REVDefines the MAJOR revision number.
UVM_MINOR_REVDefines the MINOR revision number.
UVM_FIX_REV(Optionally) Defines the FIX revision letter.
UVM_NAMEThe name used by the library when displaying the name of the library.
UVM_VERSION_STRINGProvides a string-ized version of the UVM Library version number.
Conditional CompilationThese macros provide the ability to conditionally compile based on the revision of the library which is being used.
UVM_MAJOR_REV_1Indicates that the MAJOR version of this release is ‘1’.
UVM_MINOR_REV_2Indicates that the MINOR version of this release is ‘2’.
UVM_VERSION_1_2Indicates that the version of this release is ‘1.2’.
UVM Version Ladder
UVM_POST_VERSION_1_1Indicates that this version of the UVM came after the 1.1 versions, including the various 1.1 fix revisions.

UVM Revision Values

These macros provide the current values for the MAJOR, MINOR, and optionally the FIX revision.

Example with UVM version 1.2

UVM_MAJOR_REV’1’
UVM_MINOR_REV’2’
UVM_FIX_REV’undefined’

Example with UVM version 1.1a

UVM_MAJOR_REV’1’
UVM_MINOR_REV’1’
UVM_FIX_REV’a’

UVM_MAJOR_REV

Defines the MAJOR revision number.

For UVM version 1.2, the MAJOR revision number is ‘1’

`define UVM_MAJOR_REV 1

UVM_MINOR_REV

Defines the MINOR revision number.

For UVM version 1.2, the MINOR revision number is ‘2’

`define UVM_MINOR_REV 2

UVM_FIX_REV

(Optionally) Defines the FIX revision letter.

For the first “X.Y” release of the UVM, there is no FIX revision letter.  In these cases, the UVM_FIX_REV is left undefined.

For any subsequent “X.Y” fix releases, the UVM_FIX_REV value is set to the appropriate fix release letter.

Example

1.1First release, UVM_FIX_REV is undefined
1.1aFix release, UVM_FIX_REV is ‘a’

UVM_NAME

The name used by the library when displaying the name of the library.

`define UVM_NAME UVM

UVM_VERSION_STRING

Provides a string-ized version of the UVM Library version number.

When there is a FIX_REV, the string is “<name>-<major>.<minor><fix>” (such as “UVM-1.1d”).  When there is NO FIX_REV, the string is “<name>-<major>.<minor>” (such as “UVM-1.2”).

Conditional Compilation

These macros provide the ability to conditionally compile based on the revision of the library which is being used.

These macros are required for conditional compilation, as SystemVerilog does not support conditionals with `ifdefs.

For example

 // Illegal:
`if (UVM_MAJOR_REV == 1)

// Legal:
`ifdef UVM_MAJOR_REV_1

UVM_MAJOR_REV_1

Indicates that the MAJOR version of this release is ‘1’.

`define UVM_MAJOR_REV_1

UVM_MINOR_REV_2

Indicates that the MINOR version of this release is ‘2’.

`define UVM_MINOR_REV_2

UVM_VERSION_1_2

Indicates that the version of this release is ‘1.2’.

`define UVM_VERSION_1_2

UVM_POST_VERSION_1_1

Indicates that this version of the UVM came after the 1.1 versions, including the various 1.1 fix revisions.

The first UVM version wherein this macro is defined is 1.2, and the macro will continue to be defined for all future revisions of the UVM library.

`define UVM_POST_VERSION_1_1