| //---------------------------------------------------------------------- |
| // Copyright 2007-2010 Mentor Graphics Corporation |
| // Copyright 2007-2010 Cadence Design Systems, Inc. |
| // Copyright 2010-2011 Synopsys, Inc. |
| // Copyright 2014 NVIDIA Corporation |
| // All Rights Reserved Worldwide |
| // |
| // Licensed under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in |
| // compliance with the License. You may obtain a copy of |
| // the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in |
| // writing, software distributed under the License is |
| // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR |
| // CONDITIONS OF ANY KIND, either express or implied. See |
| // the License for the specific language governing |
| // permissions and limitations under the License. |
| //---------------------------------------------------------------------- |
| |
| `ifndef UVM_VERSION_DEFINES_SVH |
| `define UVM_VERSION_DEFINES_SVH |
| |
| // Title: UVM Version Defines |
| |
| // Group: 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' |
| // |
| |
| // Macro: UVM_MAJOR_REV |
| // Defines the MAJOR revision number. |
| // |
| // For UVM version 1.2, the MAJOR revision number is '1' |
| // |
| // | `define UVM_MAJOR_REV 1 |
| `define UVM_MAJOR_REV 1 |
| |
| // Macro: UVM_MINOR_REV |
| // Defines the MINOR revision number. |
| // |
| // For UVM version 1.2, the MINOR revision number is '2' |
| // |
| // | `define UVM_MINOR_REV 2 |
| `define UVM_MINOR_REV 2 |
| |
| // Macro: 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' |
| |
| // Include this in the comment when the FIX rev is present: |
| // | `define UVM_FIX_REV a |
| |
| //`define UVM_FIX_REV a |
| |
| // Macro: UVM_NAME |
| // The name used by the library when displaying the name of |
| // the library. |
| // |
| // | `define UVM_NAME UVM |
| `define UVM_NAME UVM |
| |
| // Macro: 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"). |
| |
| `ifdef UVM_FIX_REV |
| `define UVM_VERSION_STRING `"`UVM_NAME``-```UVM_MAJOR_REV``.```UVM_MINOR_REV`UVM_FIX_REV`" |
| `else |
| `define UVM_VERSION_STRING `"`UVM_NAME``-```UVM_MAJOR_REV``.```UVM_MINOR_REV```" |
| `endif |
| |
| // Group: 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 |
| // |
| |
| |
| // Macro: UVM_MAJOR_REV_1 |
| // Indicates that the MAJOR version of this release is '1'. |
| // |
| // | `define UVM_MAJOR_REV_1 |
| // |
| `define UVM_MAJOR_REV_1 |
| |
| // Macro: UVM_MINOR_REV_2 |
| // Indicates that the MINOR version of this release is '2'. |
| // |
| // | `define UVM_MINOR_REV_2 |
| // |
| `define UVM_MINOR_REV_2 |
| |
| // Macro: UVM_VERSION_1_2 |
| // Indicates that the version of this release is '1.2'. |
| // |
| // | `define UVM_VERSION_1_2 |
| `define UVM_VERSION_1_2 |
| |
| // Undocumented, same thing as UVM_VERSION_1_2 |
| `define UVM_MAJOR_VERSION_1_2 |
| |
| // Group: UVM Version Ladder |
| |
| // Macro: 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 |
| `define UVM_POST_VERSION_1_1 |
| |
| `endif // UVM_VERSION_DEFINES_SVH |