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# 32971

11.x XST - 「ERROR:HDLCompiler:40 - <file>.vhd Line xx: <name> is not a component」というエラー メッセージが表示される

説明

キーワード : XST, Spartan-6, Virtex-6, S6, V6, HDLCompiler:40


デザインに同じ名前のコンポーネントと信号が含まれています。Virtex-6/Spartan-6 デバイスを使用すると XST で次のエラー メッセージが表示されます。Virtex-6/Spartan-6 以前にリリースされたデバイスを使用してもエラー メッセージは表示されません。理由を教えてください。


"ERROR:HDLCompiler:40 - "<file>.vhd" Line xx: <name> is not a component"


Example Code:

File: ex_0001.vhd
Compilation Library: work


library ieee;
use ieee.std_logic_1164.all;

package my_pack_0001 is

component my_name is
port(in_port : in std_logic;
out_port: out std_logic);
end component;

end package;

-----------------------------------

library ieee;
use ieee.std_logic_1164.all;
library work;
use work.my_pack_0001.all;

entity ex_0001 is
port(in_port : in std_logic;
out_port: out std_logic);
end ex_0001;

architecture beh of ex_0001 is
signal my_name : std_logic;
begin
my_name <= in_port;
my_inst : my_name port map(in_port =>my_name, -- Note: Error points here
out_port=>out_port);
end;

ソリューション

11.2 XST では Virtex-6 および Spartan-6 に新しい VHDL/Verilog 解析が導入されました。 この変更の詳細は、(Xilinx Answer 32927) を参照してください。

これは、VHDL LRM に準拠するコードではありません。 この問題を解決するには、信号またはコンポーネント名を付け直す必要があります。

たとえば、上記のコードの場合は次のようにソースを変更できます。

library ieee;
use ieee.std_logic_1164.all;

package my_pack_0001 is

component my_name is
port(in_port : in std_logic;
out_port: out std_logic);
end component;

end package;

-----------------------------------

library ieee;
use ieee.std_logic_1164.all;
library work;
use work.my_pack_0001.all;

entity ex_0001 is
port(in_port : in std_logic;
out_port: out std_logic);
end ex_0001;

architecture beh of ex_0001 is
signal my_name : std_logic;
begin
my_name <= in_port;
my_inst : my_name port map(in_port =>my_name, -- Note: Error points here
out_port=>out_port);
end;


上記のコードで my_namemy_name_signal に変更します。






AR# 32971
日付 12/15/2012
ステータス アクティブ
種類 一般
このページをブックマークに追加