# UVM Version Defines

Summary

UVM Version Defines
UVM Revision Values | These macros provide the current values for the MAJOR, MINOR, and optionally the FIX revision.
UVM_MAJOR_REV | Defines the MAJOR revision number.
UVM_MINOR_REV | Defines the MINOR revision number.
UVM_FIX_REV | (Optionally) Defines the FIX revision letter.
UVM_NAME | The name used by the library when displaying the name of the library.
UVM_VERSION_STRING | Provides a string-ized version of the UVM Library version number.
Conditional Compilation | These macros provide the ability to conditionally compile based on the revision of the library which is being used.
UVM_MAJOR_REV_1 | Indicates that the MAJOR version of this release is ‘1’.
UVM_MINOR_REV_2 | Indicates that the MINOR version of this release is ‘2’.
UVM_VERSION_1_2 | Indicates that the version of this release is ‘1.2’.
UVM Version Ladder |
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.

### 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.1 | First release, UVM_FIX_REV is undefined
1.1a | Fix 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 Version Ladder

### 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