AR# 70646

2018.2 Vivado IP フロー - 条件文でインスタンシエートされるサブコア IP がパッケージされるユーザー IP に含まれない

説明

Vivado 2017.x でデザインをパッケージしました。このデザインは、デフォルトのカスタマイズ パラメーターを使用した場合は問題なく機能します。デフォルト以外のパラメーターを使用すると、IP コア ファイル (.xci) が含まれないようです。

階層から移動してしまったように見えるモジュールに対し、ブラック ボックスがレポートされます。

Vivado 2016.4 では、これと同じデサインを問題なくパッケージして使用できました。


問題は条件文に関係しているようです。含まれていない IP コアは、ジェネリックまたはパラメーターの値に基づいてのみ使用されます。

たとえば、ジェネリックが True の場合は IP_CORE_A をインスタンシエートするモジュール A が、False の場合は IP_CORE_B をインスタンシエートするモジュール B がコードによって生成されます。このジェネリックのデフォルト値は True です。


デザインのパッケージ後、パッケージ IP のいずれのファイル グループにも IP_CORE_B.xci が追加されません。

デフォルト以外のカスタマイズ値を使用した場合、この IP コアが必要となりますが、コアがパッケージされず含めることができないため、インプリメンテーション エラーになります。

ソリューション

これは、(Xilinx Answer 69320) で説明されている問題の影響を受けて発生します。階層パーサーでは、IP パッケージャーに送信するファイルを決定する際に、条件文を評価します。

パーサー コードでは、現在の階層レベルに基づいてのみ、ジェネリックおよびパラメーターのデフォルト値を使用しています。

そのため、IP コアの使用がデフォルト以外の値に依存している場合は、IP パッケージャーに送信されず、ファイル グループにも追加されません。

ほとんどの場合は、[Hierarchy Update] を [Automatic Update, Manual Compile Order] に設定すると、この問題を回避できます。

Tcl スクリプトでこれを設定する場合は、次のコマンドを使用します。

set_property source_mgmt_mode DisplayOnly [current_project]

このオプションを設定すると、[Sources] ウィンドウの [Hierarchy] ビューに表示される階層は、ジェネリックおよびパラメーターのデフォルト値に基づいて表示されますが、プロジェクト内のすべてのソース ファイルが IP パッケージャーに送信されます。

このパラメーターを使用するマイナス面は、いずれのパラメーター値にも使用されないファイルがプロジェクト内にあっても、パッケージ IP に追加される点です。  

使用されないファイルは、パッケージ IP のファイル グループから手動で削除する必要があります。


Vivado 2018.1 では、この問題のソリューションがパラメーター制御に追加されています。  

Vivado 2018.1 または 2018.2 でこの修正を使用するには、プロジェクトをパッケージする前に Tcl コンソールで次のコマンドを実行するか、または vivado_init.tcl ファイルを実行してください。

set_param project.handleIPBDInactiveUnits 1

このパラメーターは、Vivado 2018.3 でデフォルトで設定される予定です。

アンサー レコード リファレンス

関連アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
69320 2017.x Vivado - 条件文でインプリメントされたモジュールで opt_design を実行するとブラックボックス エラーが発生する N/A N/A
AR# 70646
日付 06/18/2018
ステータス アクティブ
種類 既知の問題
ツール 詳細 概略