如果我有以下Verilog代码:
//test.v
`ifdef V1
{code block 1}
`else
{code block 2}
`endif
我可以“引导”的命令行的条件,使用标准环境变量定义语法?例如,将这个原因{代码块1}执行?:
$ V1=1 <simulator> test.v
该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!