IP パッケージャーでは、IP の最上位 HDL ファイルに HDL 合成言語構文がサポートされます。これらの要件に従うと、カスタム IP が正しく機能するようになります。
- 最上位ファイルには、Verilog または VHDL がサポートされています。
重要: 最上位ファイルが SystemVerilog または VHDL-2008 の場合は、パッケージする前に Verilog または VHDL ラッパー ファイルを作成してください。
- サポートされている SystemVerilog コンストラクトは、AMD合成でサポートされているものと同じです。サポートされる SystemVerilog コンストラクトのリストは、 『Vivado Design Suite ユーザー ガイド: 合成』 (UG901) を参照してください。
- Vivado IP カタログ内の IP すべてで複数言語の使用がサポートされるので、エンド ユーザーが IP とは異なる言語の HDL ラッパーを生成できます。
- 競合を避けるため、デザイン内では HDL 言語キーワードは使用しないようにしてください。
- VHDL を使用する場合にカスタム IP が正しくシミュレーションされるようにするには、最上位ポートを
std_logic
またはstd_logic_vector
に設定します。
最上位ポート タイプにかかわらず、IP をアウト オブ コンテキスト (OOC) で合成すると、結果の IP ネットリスト ポートは std_logic
または std_logic_vector
に変換されます。変換されたネットリスト ポートを使用すると、RTL シミュレーションで型不一致の問題が発生することがあります。
Verilog では、複雑なポートまたは分割されたポートを使用したモジュール宣言はサポートされません。
推奨: モジュール宣言を変更してこれらのポート タイプを削除するか、またはデザインのパッケージでサポートされるポート タイプのみを含むモジュールのラッパー ファイルを作成してください。
次に、サポートされていない複雑なポートと分割されたポートを含むモジュール宣言の例を示します。
module top({in1, in2}, out[0], out[1]);
input in1, in2;
output [1:0] out;
endmodule