手順 6: IP のアップデート - 2023.2 日本語

Vivado Design Suite チュートリアル: IP を使用した設計 (UG939)

Document ID
UG939
Release Date
2023-11-13
Version
2023.2 日本語
前述のように、デザインで使用されている Block Memory Generator IP には、IP カタログにさらに新しいバージョンがあります。従って、IP カタログにある最新バージョンにアップグレードしないと、この IP はカスタマイズできないので、現在のバージョンの IP はロックされています。プロジェクトに XCI を追加すると、次のような警告メッセージが表示されます。
WARNING: [IP_Flow 19-2162] IP 'blk_mem_gen_v7_3_0' is locked:
* IP definition 'Block Memory Generator (7.3)' for IP 'blk_mem_gen_v7_3_0' has a newer major version in the IP Catalog.
Please select 'Report IP Status' from the 'Tools/Report' menu or run Tcl command 'report_ip_status' for more information.

インタラクティブなセッションであれば、このメッセージは役立つのですが、バッチ モードのスクリプトでは、このメッセージは合成またはインプリメンテーション エラーが出るまで表示されません。これを未然に防ぐには、スクリプトを次の目的で使用できます。

  • IP がロックされているかどうかの判断。
  • IP カタログにさらに新しいバージョンがないかどうかをチェック。
  • IP がロックされていて、新しいバージョンがある場合は、IP をアップグレード。

このためには、次の手順に従います。

  1. IP がロックされているかどうかを確認し、Tcl 変数にそのステートを格納します。Tcl スクリプトに次の行を追加します。
    set locked [get_property IS_LOCKED [get_ips blk_mem_gen_v7_3_0]]
  2. 次に、IP カタログにさらに新しいバージョンがあるかどうかを確認し、その情報を Tcl 変数に格納します。Tcl スクリプトに次の行を追加します。
    set upgrade [get_property UPGRADE_VERSIONS [get_ips blk_mem_gen_v7_3_0]]

    これで、さらに新しいバージョンがある場合は、そのアップグレード版の VLNV (Vender/Library/Name/Version) ID が返されます。アップグレード版がなければ、この変数には空の文字列 (””) が含まれます。blk_mem_gen_v7_3_0 IP の場合は、新しいバージョンがあります。

  3. IP がロックされているかどうか、その IP のアップグレード版があるかとうかを確認するには、格納された Tcl 変数 $locked および $upgrade をチェックします。IP の新しいバージョンがある場合は、それをアップグレードします。
  4. Tcl スクリプトに次の行を追加します。
    if {$upgrade != "" && $locked} {
    upgrade_ip [get_ips blk_mem_gen_v7_3_0]}

    これで、Block Memory Generator IP がデザインで使用されている現在のバージョンから、IP カタログにある最新バージョンにアップグレードされます。