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

11.x XST - 「ERROR:HDLCompiler:545 - "<file>.vhd" Line xx: Initial value for constant declaration is not constant」というエラー メッセージが表示される

説明

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

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

ERROR:HDLCompiler:545 - "<file>.vhd" Line xx: Initial value for constant declaration is not constant

コード例 :

library ieee;
use ieee.std_logic_1164.all;

entity ex_0009 is
port(clk,a : in std_logic;
res : out std_logic
);
end ex_0009;

architecture bhv of ex_0009 is
constant my_const: std_logic:='0';
signal tmp: std_logic;
begin
tmp <= my_const;

process (clk)
constant local_const: std_logic := tmp; -- Note: Error points here
begin
if clk'event and clk='1' then
res <= a or local_const;
end if;
end process;

end;


ソリューション

上記のコード例は、VHDL LRM に準拠していません。この問題を解決するには、my_const 定数を直接使用して local_const 定数を初期化します。

library ieee;
use ieee.std_logic_1164.all;

entity ex_0009 is
port(clk,a : in std_logic;
res : out std_logic
);
end ex_0009;

architecture bhv of ex_0009 is
constant my_const: std_logic:='0';
signal tmp: std_logic;
begin
tmp <= my_const;

process (clk)
constant local_const: std_logic := my_const; -- Note: Error points here
begin
if clk'event and clk='1' then
res <= a or local_const;
end if;
end process;

end;



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