AR# 47454

Vivado 合成 - Vivado 合成で VHDL エンティティでの work ライブラリを使用した Verilog モジュールのインスタンシエートはサポートされるか

説明

Vivado 合成で、次のような VHDL エンティティ内での Verilog モジュールのインスタンシエートはサポートされますか。

GATE_INST: entity work.gate

ソリューション

現在のところ、Vivado 合成では VHDL エンティティから work ライブラリを使用して Verilog モジュールにアクセスする混合言語機能はサポートされていません。この場合、Vivado 合成で次のようなエラー メッセージが表示されます。

"ERROR: [Synth-493] no such design unit 'gate_inst' [box.vhd:19]"

ザイリンクスでは、この種の混合言語の問題に関する要望が多ければ、将来的に修正する予定です。

この問題を回避するには、VHDL エンティティ内で Verilog モジュールを VHDL コンポーネントとして宣言し、Verilog モジュールを VHDL インスタンシエーションとしてインスタンシエートします。Vivado 合成ではこの回避策がサポートされており、合成は問題なく完了します。

次に、Vivado 合成で問題なく合成される回避策の例を示します。

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
COMPONENT gate PORT (
A : in std_logic;
B : in std_logic;
C : out std_logic);
END COMPONENT;
begin
GATE_INST: gate
port map (
A => A,
B => B,
C => C);
end Behavioral;

上記の例では、インスタンス gate は AND ゲートを表す単純な Verilog モジュールです。

AR# 47454
日付 06/21/2013
ステータス アクティブ
種類 一般
ツール