是否Verilog的`IFDEF对环境变量的回应?

问题描述 投票:1回答:1

如果我有以下Verilog代码:

//test.v

`ifdef V1
{code block 1}
`else
{code block 2}
`endif

我可以“引导”的命令行的条件,使用标准环境变量定义语法?例如,将这个原因{代码块1}执行?:

$ V1=1 <simulator> test.v
macros system-verilog conditional-compilation
1个回答
1
投票

ifdef语句是一个编译器指令很像C或C ++这样你就可以在使用-D$var标志类似的方式通过他们通过命令行预处理程序指令。

比方说,我们有以下模块:

// test.v

module hello;
  initial 
    begin
`ifdef V1
      $display("V1 defined!");
`else
      $display("V1 not defined!");
`endif
      $finish ;
    end
endmodule

使用IcarusVerilog例如然后你可以使用命令行上定义V1

terminal:~$ iverilog -DV1 -o test test.v
terminal:~$ vvp test
V1 defined!
terminal:~$ iverilog -o test test.v
terminal:~$ vvp test
V1 not defined!
© www.soinside.com 2019 - 2024. All rights reserved.