プロジェクト モードのデフォルトのアウト オブ コンテキスト (OOC) フローを使用して IP の合成出力ファイルの生成にかかる時間を短縮するため、[IP Cache] オプションはデフォルトでオンになっています。キャッシュをイネーブルにすると、合成用にデフォルトの OOC フローで IP を生成するとき、Vivado ツールにより合成出力ファイル (DCP やスタブ ファイルなど) およびキャッシュ エントリが作成されます。
[Cache ID]: 生成されたリファレンスのランダムな文字と番号で構成された固有の ID です。
1 キャッシュ エントリに対し、ディスク上に 2 つのディレクトリがあります。
-
<cache ID>: XCI、DCP、
sim_netlist
、およびスタブ ファイルがあります。 -
<cache ID>.logs: 合成ログ (
runme.log
) があります。
キャッシュに保存されると、IP を同じプロパティを使用してカスタマイズした場合に、生成中に IP は合成し直されず、キャッシュが参照されて、合成出力がコピーされます。IP が既に合成済みの IP を参照することで、同じカスタマイズのその他の IP に対して OOC 合成を実行する必要がなくなります。
キャッシュをイネーブルにした状態で IP を生成すると、キャッシュ ヒットがなければ、通常通りにデザイン run が作成されます。ただし、キャッシュ ヒットがある場合は、合成結果 (DCP およびスタブ ファイル) が IP ディレクトリのキャッシュ ディレクトリからコピーされ、名前が変更されます。デザイン run は作成されませんが、次の図のように、キャッシュ ヒットがあったことをレポートするエントリが追加されます。
生成の後、キャッシュ ヒットが発生したかどうかを知らせるダイアログ ボックスが表示されます。
次は、Tcl コンソールに表示される INFO
メッセージの例です。メッセージは vivado.log
に記録されます。
INFO: [IP_Flow 19-4993] Using cached IP synthesis design for IP fifo_0,
cache-ID = aa71c47ae9ccd380; cache size = 0.383 MB.
このメッセージには、使用されたキャッシュ ID と、IP キャッシュの現在のサイズが記されています。
キャッシュ ヒットは、IP がまったく同じ設定を使用してカスタマイズされていて、同じパーツと言語設定が使用されている場合に発生します。IP を生成した後は、その IP はキャッシュ ディレクトリを参照しません。IP のすべての出力ファイルは、プロジェクトのローカルに格納されます。キャッシュは、IP 出力ファイルの生成中にのみ参照されます。
IP キャッシュを管理するには、config_ip_cache
という Tcl コマンドを使用します。このコマンドを使用すると、キャッシュの内容およびサイズ (KB) がリストされます。また、config_ip_cache -zip_cache コマンドを実行して、現在のプロジェクトで使用されているキャッシュ エントリを ZIP に圧縮することもできます。この ZIP されたキャッシュは、ファイルを解凍しなくても、読み取り専用のユーザー リポジトリ キャッシュとして使用できます。詳細は、
『Vivado Design Suite Tcl コマンド リファレンス ガイド』 (UG835) を参照してください。
新規プロジェクトに IP キャッシュを設定
IP キャッシュはすべての新規プロジェクトでデフォルトでイネーブルになっていて、プロジェクトのローカル ディレクトリに保存されるように設定されています。これは、複数のユーザーやグループが同じキャッシュ ディレクトリにポイントする場合にも便利です。各ユーザーがほかのユーザーの使用したのと同じ IP を生成する必要がないので、ディスク容量の軽減につながります。
新しく作成したプロジェクトで、キャッシュを無効にしたり、リモート ロケーションをデフォルトに指定するように設定するには、Vivado_init.tcl
を使用して project.defaultIPCacheSetting
を制御するパラメーターを追加します。Vivado_init.tcl ファイルと初期化スクリプトについては、
『Vivado Design Suite ユーザー ガイド: Tcl スクリプト機能の使用』 (UG894) を参照してください。
共有キャッシュを使用する場合は、IP キャッシュ専用のディレクトリを作成して、そこをポイントするようにしてください。IP キャッシュ エントリはそのディレクトリの下に作成され、親ディレクトリは作成されません。リモート ディレクトリを、ほかのサブディレクトリが多数ある場所に設定する場合、キャッシュ エントリの検索のためディレクトリがスキャンされるので、プロジェクト生成に時間がかかります。
vivado_init.tcl でのキャッシュの設定例
次は、Vivado_init.tcl
を使用して IP キャッシュをオフにする例を示しています。
set_param project.defaultIPCacheSetting none
次は、IP キャッシュをリモートに設定する例です。
- Linux:
set_param project.defaultIPCacheSetting /wrk/staff/smith/ip_cache/
- Windows:
set_param project.defaultIPCacheSetting c:/<project_dir>/ip_cache/