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

11.2 XST - 「ERROR:HDLCompiler:607 - "file.vhd" Line xx: Multiple declarations of my_const included via multiple use clauses; none are made directly visible」というエラー メッセージが表示される

説明

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

この問題が発生するのはなぜですか。

 

ERROR:HDLCompiler:607 -"<file>.vhd" Line xx: Multiple declarations of my_const included via multiple use clauses; none are made directly visible 
"<file>.vhd" Line aa. my_const is declared here 
"<file>.vhd" Line bb Another match is here 

 

library ieee; 

use ieee.std_logic_1164.all; 

 

package pack_0017_1 is 

constant my_const: std_logic := '1'; 

end package; 

 

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

 

library ieee; 

use ieee.std_logic_1164.all; 

 

package pack_0017_2 is 

constant my_const: std_logic:= '0';  

end package; 

 

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

 

library ieee; 

use ieee.std_logic_1164.all; 

library work; 

use work.pack_0017_1.all; 

use work.pack_0017_2.all; 

 

entity ex_0017 is 

port(in_port : in std_logic; 

out_port: out std_logic); 

end ex_0017; 

 

architecture beh of ex_0017 is 

begin 

out_port <= in_port and my_const; -- Note: Error points here 

end

ソリューション

上記のコード例では、my_const 定数が異なる 2 つのパッケージ (pack_0017_1 および pack_0017_2) で宣言されています。 

この両方のパッケージが ex_0017 ブロックで use 節を介して使用されています。 

このコードは、VHDL LRM に準拠していません。 


次に、この問題を解決する方法を 2 つ示します。

  • use 節を介してパッケージを 1 つのみ使用します。 
  • pack_0017_1 パッケージの my_const で示すように、定数とパッケージの場所を明示的に示します。 

 

library ieee; 

use ieee.std_logic_1164.all; 

 

package pack_0017_1 is 

constant my_const: std_logic := '1';  

end package; 

 

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

 

library ieee; 

use ieee.std_logic_1164.all; 

 

package pack_0017_2 is 

constant my_const: std_logic:= '0';  

end package; 

 

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

 

library ieee; 

use ieee.std_logic_1164.all; 

 

entity ex_0017 is 

port(in_port : in std_logic; 

out_port: out std_logic); 

end ex_0017; 

 

architecture beh of ex_0017 is 

begin 

out_port <= in_port and work.pack_0017_1.my_const; 

end; 

 

 

ISE Design Suite 11.2 では、XST で Virtex-6 および Spartan-6 ファミリ用に新しい VHDL/Verilog パーサーが使用されるようになっています。 

この変更の詳細は、(ザイリンクス アンサー 32927) を参照してください。

AR# 32983
日付 03/23/2015
ステータス アクティブ
種類 一般
ツール
  • ISE Design Suite - 11.2
このページをブックマークに追加