AR# 52787

Vivado - 「ERROR: [Common 17-143] Path length exceeds 260-Byte maximum allowed by Windows」というエラー メッセージが表示される

説明

Windows で Vivado を実行していると、次のようなエラー メッセージが表示されます。

ERROR: [Common 17-143] Path length exceeds 260-Byte maximum allowed by Windows: <LongPathtoFileName>

このエラーは IP コアを生成するときやプロジェクトをアーカイブするときなどによく発生します。

たとえば、[File] → [Archive Project] をクリックして Vivado プロジェクトを圧縮しようとすると、次のようなエラー メッセージが表示されます。

ERROR: [Common 17-143] Path length exceeds 260-Byte maximum allowed by Windows: <LongPathtoFileName>
ERROR: [Coretcl 2-229] (archive_project): Project save_as failed due to the previous error(s).

 

Vivado の一部のバージョンでは次の警告メッセージが表示されます。

WARNING: [Coretcl 2-232] Detected issues while importing sources. Closing temporary saved as project...
ERROR: [Coretcl 2-230] (archive_project): Received exception while importing sources. Please check for any errors reported in the Tcl Console.

この問題の解決方法を教えてください。

 

ソリューション

Windows OS が原因でこのエラーが発生します。Windows でパスを指定する場合、260 文字の字数制限があります (http://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath)

この制限のため、パスの長さが 260 文字を超えると、Vivado Design Suite および Vivado に含まれるツールでエラーが発生することがあります。

IP の一部の階層が深すぎる場合 (たとえば (Xilinx Answer 51997) を参照)、さらに、アーカイブ機能を使用する場合はプロジェクトのパスがすべてアクセスできるようになっていないといけないため、IP を生成およびアーカイブするときに、この問題が発生します。

コマンド全体およびパスの長さを短くする方法およびこの問題が発生した場合の回避策は、次のとおりです。

  • パスの長さを短くするため、パス内の下位ディレクトリにドライブを割り当て、そのアルファベットを使用します。Windows OS では、共有ネットワーク パスをドライブとして割り当てることができます。

    例: 「\\server21\shared\Users\username\workspace\vivado_projects\kintex7\ethernet_lite_hw_demo」に「project_1」という名前のプロジェクトを作成する必要がある場合、ドライプ (「Z:」など) を「\\server21\shared」にマップして「Z:\workspace\vivado_projects\kintex7\ethernet_lite_hw_demo」にプロジェクトを作成するのではなく、ドライプを「\server21\shared\Users\username\workspace\vivado_projects\kintex7」にマップして「Z:\ethernet_lite_hw_demo」にプロジェクトを作成します。

  • subst コマンドを使用します。subst コマンドをスクリプトで使用し、パスの一部を動的に仮想ドライブ文字に割り当てることができます。
    たとえば、「C:/Users/username/workspace/vivado_projects/kintex7/ethernet_lite_hw_demo/」に「Project_1」という名前の Vivado プロジェクトを作成します。

    ユーザー指定のパスは、次のように、subst コマンドを使用して、Vivado Tcl コンソールまたはスクリプトで仮想ドライブの文字に短縮することができます。

    exec subst V: C://Users/username/workspace/vivado_projects/kintex7/ethernet_lite_hw_demo
    create_project Project_1 V:/project_1 -part xc7k325tffg900-2
    set_property board xilinx.com:kintex7:kc705:1.0 [current_project]

    上記のコマンドを実行した後、Vivado でさらに操作を続ける場合は、「C:/Users/username/workspace/vivado_projects/kintex7/ethernet_lite_hw_demo/」ではなく、「V:」を参照します。

    このプロジェクト用に作成した仮想ドライブを削除するには、Vivado Tcl シェルで「exec subst V: /d」というコマンドを使用します。

    プロジェクトはこの後も C:/Users/username/workspace/vivado_projects/kintex7/ethernet_lite_hw_demo/ に存在します。

  • Vivado Design Suite または PlanAhead を短くしたパスから起動します。

  • 短いパスの一時ディレクトリをポイントして (例「vivado -tempDir c:/temp」) Vivado を起動します。

  • アーカイブでパスの長さ制限に達する場合は、次の例のようにパラメーターを使用して tempDir を指定します。

    • set_param "project.customTmpDirForArchive" c:/tmp
    • 注記: Vivado 2015.4 リリースから、archive_project Tcl コマンドに新しいオプション -temp_dir が追加されています。
      このオプションを使用すると、そのコマンドに対してのみ一時ディレクトリを設定できます。

  • プロジェクト ディレクトリ構造に短いパス名を使用します。

 

  • Vivado Design Suite を使用して IP を生成すると、ディレクトリ構造の複数の場所に IP コンポーネント名が使用されます。
    パス全体の長さを短縮するには、短いコンポーネント名を選択する必要があります。Vivado では、コンポーネント名を IP コアのコンフィギュレーション画面で設定できます。
    IP インテグレーターでは、コンポーネント名を [Properties] ダイアログ ボックスを設定できます。

  • Vivado を [Start] メニューから起動する場合は、アーカイブが作成されるデフォルト ロケーションは C:/Users/username/AppData/Roaming/Xilinx/Vivado/.Xil/ になります。

    ただし、最初の短いほうのパスにディレクトリを移動でき、こちらがアーカイブ パスになります。

  • Windows に特化したパスの文字数制限の問題を避けるには、Linux OS を使用します。

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

マスター アンサー レコード

関連アンサー レコード

AR# 52787
日付 06/11/2018
ステータス アクティブ
種類 一般
ツール 詳細 概略