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

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

説明

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

デザインでプロセスの 1 つと同じ名前の出力ポートを宣言しました。Virtex-6/Spartan-6 デバイスを使用すると次のエラー メッセージが表示されますが、Virtex-6/Spartan-6 以前のデバイスでは表示されません。この理由を教えてください。

ERROR:HDLCompiler:56 - <file>.vhd Line xx: <name> is not a signal.

このコード名では、ポートとプロセスの名前が両方とも q のためにエラー メッセージが表示されます。

library ieee;
use ieee.std_logic_1164.all;

entity ex_0004 is
port(clk: in std_logic;
d : in std_logic_vector(3 downto 0);
q : out std_logic_vector(3 downto 0));
end ex_0004;

architecture beh of ex_0004 is
begin
genloop: for i in 0 to 3 generate
q: process (clk)
begin
if (clk'event and clk='1') then
q <= d; -- Note: Error points here
end if;
end process;
end generate;
end;

ソリューション

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

上記のコードは、VHDL LRM に準拠していません。 ポート名またはプロセス名のいずれかを変更すると、この問題を解決できます。

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

library ieee;
use ieee.std_logic_1164.all;

entity ex_0004 is
port(clk: in std_logic;
d : in std_logic_vector(3 downto 0);
q : out std_logic_vector(3 downto 0));
end ex_0004;

architecture beh of ex_0004 is
begin
genloop: for i in 0 to 3 generate
q_label: process (clk)
begin
if (clk'event and clk='1') then
q <= d; -- Note: Error points here
end if;
end process;
end generate;
end;

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