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

11.2 XST - 「ERROR:HDLCompiler:377 - "<file>.vhd" Line xx: Entity port in_port does not match with type std_logic_vector of component port」というエラー メッセージが表示される

説明

キーワード : XST, Spartan-6, Virtex-6, 11.2 , Parser, HDLCompiler:377, 解析

Virtex-6 または Spartan-6 デバイスをターゲットにすると XST で次のエラー メッセージが表示されますが、ほかの古いデバイスだとエラーは発生しません。この理由を教えてください。

ERROR:HDLCompiler:377 - "<file>.vhd" Line xx: Entity port in_port does not match with type std_logic_vector of component port
"<file>.vhd" Line xx: in_port is declared here

コード例 :

library ieee;
use ieee.std_logic_1164.all;

entity subb_0014 is
port(in_port : in bit_vector(3 downto 0);
out_port: out bit_vector(3 downto 0));
end subb_0014;

architecture beh of subb_0014 is
begin
out_port <= in_port;
end;

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

library ieee;
use ieee.std_logic_1164.all;

entity ex_0014 is
port(in_port : in std_logic_vector(3 downto 0);
out_port: out std_logic_vector(3 downto 0));
end ex_0014;

architecture beh of ex_0014 is

component subb_0014 is
port(in_port : in std_logic_vector(3 downto 0);
out_port: out std_logic_vector(3 downto 0));
end component;

begin
inst : subb_0014 port map(in_port => in_port, out_port=>out_port);
end;

ソリューション

上記の例では、subb_0014 サブ ブロックには、bit_vector 型のポートが 2 つあります。ex_0014 で宣言されているコンポーネント subb_0014 には std_logic_vector 型のポートが 2 つあります。このコードは、VHDL LRM に準拠していません。

この問題を解決するには、エンティティおよびコンポーネントのポート型を合わせます。


library ieee;
use ieee.std_logic_1164.all;

entity subb_0014 is
port(in_port : in std_logic_vector(3 downto 0); -- Note: Info points here
out_port: out std_logic_vector(3 downto 0)); -- Note: Info points here
end subb_0014;

architecture beh of subb_0014 is
begin
out_port <= in_port;
end;

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

library ieee;
use ieee.std_logic_1164.all;

entity ex_0014 is
port(in_port : in std_logic_vector(3 downto 0);
out_port: out std_logic_vector(3 downto 0));
end ex_0014;

architecture beh of ex_0014 is

component subb_0014 is
port(in_port : in std_logic_vector(3 downto 0); -- Note: Error points here
out_port: out std_logic_vector(3 downto 0)); -- Note: Error points here
end component;

begin
inst : subb_0014 port map(in_port => in_port, out_port=>out_port);
end;



11.2 XST では、VHDL/Verilog parser for Virtex-6 および Spartan-6 ファミリに新しい VHDL/Verilog 解析が導入されました。この詳細は、(Xilinx Answer 32927) を参照してください。
AR# 32981
日付 12/15/2012
ステータス アクティブ
種類 一般
このページをブックマークに追加