AR# 18350

|

6.1i XST - VHDL/回路図のコンポーネントの属性が、インスタンスの属性より優先されてしまう

説明

キーワード : XST, attribute, VHDL, order, precedence, instance, instantiation, component, schematic, sch2vhdl, ignore, default, 属性, 順位, 優先, インスタンス, インスタンシエーション, コンポーネント, 回路図, デフォルト

重要度 : 標準

概要 :
インスタンスの属性値は、コンポーネント宣言の同じ属性の値より優先されなければなりません。 6.xi ソフトウェアでは、XST はインスタンスではなくコンポーネントの属性値を渡してしまいます。

VHDL で属性が渡される場合の優先順位を教えてください。

ソリューション

1

属性がコンポーネントとインスタンスに渡された場合、コンポーネントに渡された属性がコンパイラで先に追加されます。 次にインスタンスに渡された属性が追加されます。 同一の属性がインスタンスおよびコンポーネントに渡された場合、次の例に示すように、インスタンスへの属性がコンポーネントへの属性より優先されます。

:
:
component CLKDLL
port ( CLKFB : in std_logic;
CLKIN : in std_logic;
RST : in std_logic;
CLK0 : out std_logic;
CLK180 : out std_logic;
CLK270 : out std_logic;
CLK2X : out std_logic;
CLK90 : out std_logic;
CLKDV : out std_logic;
LOCKED : out std_logic);
end component;

attribute CLKDV_DIVIDE : STRING ;
attribute CLKDV_DIVIDE of CLKDLL : COMPONENT is "2.000000"; -- attribute on component
attribute CLKDV_DIVIDE of CLKDLL_INSTANCE : LABEL is "8.000000"; -- attribute on instance
:
:

CLKDLL_INSTANCE 上の属性が CLKDLL 上の属性より優先されなければなりません。 しかし、XST では属性優先の規則に従って実行されず、コンポーネントに属性が渡されます。 この問題は、コンポーネント上の属性を削除することによって回避できます。

ECS を使用する場合には、ECS で作成した .vhf ファイルを修正するか、または UCF を使用して制約を渡すようにしてください。

この問題は、最新版の 6.2i サービス パックで修正されています。サービス パックは次のサイトから入手できます。
http://support.xilinx.co.jp/xlnx/xil_sw_updates_home.jsp
この修正は、6.2i サービス パック 3 以降に含まれます。

2

ECS 回路図を使用している場合、別の回避策として次の手順で VHDL の代わりに Verilog のシミュレーション環境を選択する方法もあります。

1. [Sources in Project] ウィンドウで FPGA デバイスを選択します。
2. 右クリックして [Properties] を選択します。
3. [Generated Simulation Language] を VHDL から Verilog に変更します。

この問題は、最新版の 6.2i サービス パックで修正されています。サービス パックは次のサイトから入手できます。
http://support.xilinx.co.jp/xlnx/xil_sw_updates_home.jsp
この修正は、6.2i サービス パック 3 以降に含まれます。
AR# 18350
日付 03/07/2006
ステータス アーカイブ
種類 一般
People Also Viewed