Vivado で define 指定したときの挙動

そういう仕様なのか、ただの私の勘違いなのか分かりませんが、一応書いておきます。

・Verilog 記述のなかで、ifdef — endif で記述されているブロックがあって
・SYNTHESIS という名前で指定されていたとき、つまり、 `ifdef SYNTHESIS となっていたとき、
・Xilinx Vivado での合成時に SYNTHESIS という define を指定するしないにかかわらず、問答無用で、その ifdef ブロックが使用される

という現象に遭遇しました。ちなみに、SYNTHESIS ではなく他の define 名(たとえば ABC とか)にしたらこの現象は起こりませんでした。

たしか vivado は 2017.1 でした。

まあ、そういうものなんだ、と思ってしまえばいいんですが、ちょっと引っかかりましたのでメモしておきます。

ちなみに、synth_design という合成コマンドでは、-verilog_define で define 指定ができるはずです。

AR# 54958: Vivado 合成のデザイン アシスタント - synth_design とそのオプションの説明
synth_design は、Vivado 合成を使用して HDL デザインで合成を実行するのに使用される Tcl コマンドです。この Tcl コマンドは、Tcl コンソールを使用したプロジェクト フロー モードと、非プロジェクト フロー モードの両方で使用されます。プロジェクト フロー モードでは、これと launc...
タイトルとURLをコピーしました