宏,它有两种定义方式,一是直接在源文件中中使用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
源代码 :
`ifndef UVM_REG_DATA_WIDTH
`define UVM_REG_DATA_WIDTH 64
`endif
自定义字选择(byteenable)位宽:
`define UVM_REG_BYTENABLE_WIDTH 8
源代码 :
`ifndef UVM_REG_ADDR_WIDTH
`define UVM_REG_ADDR_WIDTH 64
`endif
去除OVM中过时的用法,使用纯净的UVM环境:
`define UVM_NO_DEPRECATED
除了上述通用的宏外,针对不同的仿真工具需要定义不同的宏:
QUESTA、VCS、INCA分别对应Mentor、Synopsys和Cadence 公司的仿真工具。
UVM的源代码分为两部分,一部分是SystemVerilog代码,另外一部分是C/C++。这两部分代码在各自编译时需 要分别定义各自的宏。
通知:
本章更新后将不在更新.......
如果有任何疑问请在下方评论.......