RM に複数のサブモジュール ネットリストが含まれていると、Vivado ツールでサブモジュール ネットリストを処理するのが困難になることがあります。これは、DFX フローでは RM ネットリストがメモリで既に開いているデザインに追加されるからです。この場合、update_design -cells
コマンドを使用する必要があり、は各 EDIF ファイルのセル名が必要ですが、セル名を取得するのが難しいことがあります。
Vivado Design Suite で RM サブモジュール ネットリストを読み込みやすくするには、次の 2 つの方法があります。
方法 1: 1 つの RM チェックポイント (DCP) を作成
すべてのネットリストを含む RM チェックリスト (DCP) を作成します。この場合、add_files
コマンドを使用してすべての EDIF (または NGC) ファイルを追加し、link_design
コマンドを使用して EDIF ファイルからそれぞれのセルへの対応を解決します。次に、このプロセスに使用するコマンド例を示します。
add_files [list rm.edf ip_1.edf … ip_n.edf]
# Run if RM XDC exists
add_files rm.xdc
link_design -mode out_of_context -top <rm_module> -part <part>
write_checkpoint rm_v#.dcp
close_project
その後、この新しく作成した RM チェックポイントを DFX フローで使用します。次のコマンド例では、多数の read_checkpoint -cell
コマンドを 1 つの update_design -cell
コマンドで置き換えています。
add_files static.dcp
link_design -top <top> part <part>
lock_design -level routing
read_checkpoint -cell <rm_inst> rm_v#.dcp
方法 2: サブモジュール ネットリストを RM の最上位ネットリストと同じディレクトリに配置
update_design
-cell
コマンドを使用して DFX デザインに最上位 RM ネットリストを読み込むときに、すべてのサブモジュール ネットリストを RM の最上位ネットリストと同じディレクトリに配置しておきます。この場合、下位ネットリストを指定する必要はなく、update_design
-cells
コマンドで自動的に読み込まれます。この方法は方法 1 ほど明示的ではありませんが、手順は少なくてすみます。この場合に RM ネットリストを読み込むコマンドは、次のようになります。
add_files static.dcp
link_design -top <top> part <part>
lock_design -level routing
update_design -cells <rm_inst> -from_file rm_v#.edf
下位ネットリストが rm_v#.edf と同じディレクトリにあれば、最後のコマンド (update_design
) により自動的に読み込まれます。