Оператор 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!