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

12.2 Project Navigator - VHDL ライブラリーを使用する VHDL を直接インスタンシエートすると階層が正しく構築されない

説明

VHDL では、次に示すように直接インスタンシエートした場合に ISE ツールで正しく階層が構築されます。

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
library theand;
use theand.box;
entity top is

Port ( clk : in STD_LOGIC;
din : in STD_LOGIC_VECTOR (5 downto 0);
dout : out STD_LOGIC_VECTOR (2 downto 0));
end top;
architecture Behavioral of top is
begin
AND_INST: entity theand.box
port map (
A => din(0),
B => din(1),
C => dout(0));
end Behavioral;

この直接インスタンシエーションに相対 work. ライブラリー参照を使用すると、Project Navigator でプロジェクト階層が正しく構築されません。

たとえば、次のファイルを theand ライブラリーにコンパイルするとします。

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity gate is
Port ( A : in STD_LOGIC;
B : in STD_LOGIC;
C : out STD_LOGIC);
end gate;
architecture Behavioral of gate is
begin
C <= A and B;
end Behavioral;

次のファイルも theand ライブラリーにコンパイルされますが、gate エンティティへの参照には work. を相対作業ライブラリーとして使用しています。この場合、ISE でプロジェクト階層が正しく構築されません。

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity box is
Port ( A : in STD_LOGIC;
B : in STD_LOGIC;
C : out STD_LOGIC);
end box;
architecture Behavioral of box is
begin
GATE_INST: entity work.gate
port map (
A => A,
B => B,
C => C);
end Behavioral;

ソリューション


この問題は、Virtex-6 または Spartan-6 FPGA (またはそれより新しいデバイス ファミリー) プロジェクトで work 以外の VHDL ライブラリー内のエンティティに work ライブラリーに含まれるエンティティまたはモジュールがインスタンシエートされている場合に発生します。

例 : VHDL モジュールに Verilog モジュールがインスタンシエートされており、VHDL モジュールが work 以外のライブラリーにあるとします。Verilog モジュールはライブラリーに割り当てることができないので、work に含まれます。階層は正しく表示されず、合成を実行するとインスタンシエーションが正しく接続されず、モジュールが欠けているために NGDBuild でエラーが発生します。

この問題を回避するには、次の手順に従います。
  1. 可能な場合、インスタンシエートされているエンティティを work ライブラリー以外に移動します。
  2. Verilog モジュールの場合など、モジュールをライブラリに移動できない場合は、ISE Design Suite 12.2 での一時的な回避策として、PRJ ファイルで Verilog ライブラリーを VHDL ライブラリーと同じライブラリーに変更し、コマンド ラインから XST を実行します。生成された NGC ファイルを新規プロジェクトのソースとして追加するか、インプリメンテーションもコマンド ラインから実行します。

ISE 12.3 では [Library for Verilog Sources] というオプションが [Synthesis - XST] に追加されていました。

これは、work ライブラリー以外のプロジェクトの VHDL ライブラリーを Verilog ソースのライブラリーとして指定することができるオプションです。

AR# 38305
日付 01/19/2011
ステータス アクティブ
種類 既知の問題
ツール
  • ISE Design Suite - 12.2