使用 Modelsim 或 Questasim 时如何知道定义了哪些 Systemverilog 宏?

How do I know which Systemverilog macros are defined when using Modelsim or Questasim?

我正在使用 Questasim 10.4c 来模拟在很多地方使用 `ifdef 编译器指令的 Systemverilog 设计。示例:

`ifdef FOR_SIMULATION_ONLY
<code>
`endif

编译后,我还没有找到任何方法让 Questasim 能够明确地告诉我是否已定义 FOR_SIMULATION_ONLY。我仔细阅读了用户指南和命令参考手册,发现最接近的是在我所有的 vlog 编译语句中添加一个 -E 选项,然后检查创建的文件以查看是否定义了 FOR_SIMULATION_ONLY。不过,Questasim 能否告诉我它是否已在不必使用 vlog -E 方法的情况下定义?

没有开关可以做到这一点。你可以输入

`ifdef FOR_SIMULATION_ONLY
  $info("FOR_SIMULATION_ONLY defined");
`endif

并在详细说明时收到消息。