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

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

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

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

たしか vivado は 2017.1 でした。

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

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

https://japan.xilinx.com/support/answers/54958.html
タイトルとURLをコピーしました