__FILE__ マクロのパス表示について

※本内容はシミュレータによって変わる場合があるかもしれません。

きっかけはこちらの記事になります。

SystemVerilog 2009 macro `FILE ? absolute or relative path?

こちらの記事のほうでは Questaシミュレータを使用した場合のようです。
私の方は ModelSim-ASE版でやってみました。

  • サンプルコード(test.sv)
module testbench ();

  initial begin
    $display("File: %0s , Line: %0d", `__FILE__, `__LINE__);
    $finish();
  end

endmodule: testbench
RTL=sample.sv

run: work compile sim

work:
    vlib work

compile:
    vlog ${RTL}

sim:
    vsim -c -L work testbench -do "run -all; quit"

clean:
    rm -rf work transcript vsim.wlf
  • 実行&結果
$> make
:
# File: sample.sv , Line: 4

$> make RTL=~/work/systemverilog/tutor_test/50___FILE__/sample.sv
:
# File: /home/kocha/work/systemverilog/tutor_test/50___FILE__/sample.sv , Line: 4

このようになります。
結構知っていると便利な豆知識かも知れませんね。