小编Sha*_*eey的帖子

如何在verilog中使用环境变量或命令行设置宏的值?

我想在运行时使用环境变量在 Verilog 中定义一个宏。

例如,我想仅在DEBUG宏定义为1.

`define DEBUG 0
...
if(DEBUG) $fwrite(file,"Debug message");
Run Code Online (Sandbox Code Playgroud)

从命令行运行模拟或使用环境变量时,如何覆盖DEBUGto的定义1

或者,我可以保持宏未定义并使用 ifdef

`ifdef(DEBUG) $fwrite(file,"Debug message");
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我必须DEBUG在运行模拟时定义宏。这可能吗?

我正在使用 Modelsim。谢谢。


编辑:接受的答案就足够了。但我也会为在这里偶然发现的任何人添加这些信息。

可以通过使用-g<parameter>-G<parameter>参数来设置/覆盖参数的值vsim-g仅当尚未设置参数值时才设置参数值,即使已-G定义也设置该值。当我使用参数控制模拟长度时,我发现这很方便。不需要重新编译。

vsim -c work.top -gSIM_END_TIME // Sets value in all scope
vsim -c work.top -g/top/dut/SIM_END_TIME // Sets value only in the defined scope
Run Code Online (Sandbox Code Playgroud)

verilog modelsim

1
推荐指数
1
解决办法
4479
查看次数

标签 统计

modelsim ×1

verilog ×1