宏与运行时的命令行参数不同。它有两种定义方式,一是直接在源文件中中使用define进行定义:
`define MACRO
或者:
`define MACRO 100
二是在编译时的命令行中使用如下方式:
<compile command> +define+MACRO
或者:
<compile command> +define+MACRO=100
扩展寄存器模型中的数据位宽
`define UVM_REG_DATA_WIDTH 128
扩展寄存器模型中的地址位宽
`define UVM_REG_ADDR_WIDTH 64
自定义字选择(byteenable)位宽
`define UVM_REG_BYTENABLE_WIDTH 8
去除OVM中过时的用法,使用纯净的UVM环境
`define UVM_NO_DEPRECATED
除上述通用的宏外,针对不同仿真工具需定义不同的宏:QUESTA、VCS、INCA分别对应Mentor、Synopsys和Cadence公司的仿真工具。UVM的源代码分为两部分,一部分是SV代码,另一部分是C/C++。这两部分代码在各自编译时需要分别定义各自的宏。