uvm_verision——告诉我你几岁了?
2024-08-31 20:12:45
uvm_version 定义了UVM相关的版本信息,而具体的uvm_revision则是通过在src/macros/uvm_version_defines.svh实现的。
uvm_revision_string()被uvm_root::report_handler() 函数调用。本函数仅返回uvm的版本号,该版本号可以通过`UVM_VERSION_STRING定义,通过定义了5个字符串,记录copyright。
`ifndef UVM_VERSION_SVH
`define UVM_VERSION_SVH parameter string uvm_mgc_copyright = "(C) 2007-2014 Mentor Graphics Corporation";
parameter string uvm_cdn_copyright = "(C) 2007-2014 Cadence Design Systems, Inc.";
parameter string uvm_snps_copyright = "(C) 2006-2014 Synopsys, Inc.";
parameter string uvm_cy_copyright = "(C) 2011-2013 Cypress Semiconductor Corp.";
parameter string uvm_nv_copyright = "(C) 2013-2014 NVIDIA Corporation";
parameter string uvm_revision = `UVM_VERSION_STRING; function string uvm_revision_string();
return uvm_revision;
endfunction `endif // UVM_VERSION_SVH
uvm_version_defines 源代码如下:
`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 // 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 // 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
最新文章
- 前端相关html和css
- extentreports报告插件与testng集成(二)
- IDispatch error #3092
- netsh-winsock-reset;ping的通公网IP和DNS地址和内网网关,就是不能解析域名;
- Python得到前面12个月的数据,Python得到现在时间 前一年的数据,
- (剑指Offer)面试题26:复杂链表的复制
- JavaScript语言基础-环境搭建
- js学习笔记之:时间(一)
- linux修改文件权限
- codeforces 622F. The Sum of the k-th Powers 拉格朗日插值法
- javascript 实现一个网页,然后计算出有多少剩余时间的倒计时程序
- 本地jar上传到本地仓库
- Mvc 流程调用分析
- Java中的数组添加,数组相关代码
- ionic上拉加载组件 ion-infinite-scroll自动调用多次的问题
- SQL操作json类型数据的函数
- mybatis查询语句的背后之封装数据
- Visual studio 2010 OpenGL配置
- swift -基础语法
- linux内核完全剖析——基于0.12内核-笔记(2)-统一编址和独立编址