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

11.x XST - 「ERROR:HDLCompiler:16 - "<file>.vhd" Line xx : <width> cannot be used within its own interface list. Please verify that you don't use this object for the definition of other interface components.」というエラー メッセージが表示される

説明

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

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

ERROR:HDLCompiler:16 - "<file>.vhd" Line xx: <width> cannot be used within its own interface list. Please verify that you don't use this object for the definition of other interface components.

コード例 :

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity ex_0018 is
port(in_port : in std_logic_vector(7 downto 0);
out_port: out std_logic_vector(7 downto 0));
end ex_0018;

architecture beh of ex_0018 is

procedure add_0018 (
constant width: integer:=8; -- Note: Error point here
signal inp: in std_logic_vector(width-1 downto 0);
signal outp: out std_logic_vector(width-1 downto 0)) is
begin
outp <= inp + 5;
end add_0018;

begin
add_0018(inp=>in_port, outp=>out_port);
end;

ソリューション

上記のコードで定数幅が宣言されており、add_0018 プロシージャ インターフェイス リストで使用されています。このコードは、VHDL LRM に準拠していません。この問題を解決するには、次に示すように定数幅をプロシージャ外で宣言します。

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity ex_0018 is
port(in_port : in std_logic_vector(7 downto 0);
out_port: out std_logic_vector(7 downto 0));
end ex_0018;

architecture beh of ex_0018 is
constant width: integer:=8;

procedure add_0018 (
signal inp: in std_logic_vector(width-1 downto 0);
signal outp: out std_logic_vector(width-1 downto 0)) is
begin
outp <= inp + 5;
end add_0018;

begin
add_0018(inp=>in_port, outp=>out_port);
end;


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