UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 16463

XST - 「WARNING:HDLCompilers:38 - <file> line xx Macro '<name>' redefined」という警告メッセージが表示される

説明

キーワード : Verilog, multiple, 定義, マクロ

重要度 : 標準

概要 :
以前に定義したマクロを XST Verilog コンパイラに使用すると、次のような警告メッセージが表示されます。

"WARNING:HDLCompilers:38 - <file> line xx Macro '<name>' redefined."

この問題は、マクロの集合を含むファイルが `include 文を使用して何度も読み込まれると発生します。

ソリューション

これらのメッセージは、念のため、マクロが再宣言されていることを確認するために表示されます。

マクロは、異なる場所やほかの宣言文または変数で定義されることがあるため、新しい宣言文が新しく作成されたのか、既に作成されているのかをコンパイラでは識別できません。 このため、再宣言された場合に、念のため警告メッセージが表示されます。

このメッセージを回避するには、条件コンパイルを使用してマクロが既に定義されていることをコンパイラに知らせます。

たとえば、定数幅を宣言する場合は次のように記述します。

`define WIDTH 32

この文が `include 文を使用して複数の Verilog モジュールによって呼び出されるファイルを参照している場合は、上記の警告メッセージが各インスタンスに対して表示されます。 マクロが定義済みかどうかをコンパイラで識別するには、条件コンパイルを使用します。

`ifndef WIDTH
`define WIDTH 32
`endif

`ifndef 文と `endif 文の間で複数のマクロを指定し、`ifndef 文を使用してそれらのマクロのいずれかを参照できます。
AR# 16463
日付 12/15/2012
ステータス アクティブ
種類 一般
このページをブックマークに追加