UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 52787

Vivado - "ERROR: [Common 17-143] Path length exceeds 260-Byte maximum allowed by Windows"

Description

While using Vivado on a Windows platform, I receive the following error:

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

The error is most common when generating an IP core or when archiving a project, but is not limited to these events.

Example: If I attempt to archive the Vivado project from File -> Archive Project, the following error occurs:

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).

Some versions of Vivado will show the following:

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.

How can this be resolved?

Solution

The error is due to a Windows OS limitation. Windows has a 260 character limit on the maximum length for a path (http://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath).

Due to this limitation, if the path length is more than 260 characters, Vivado Design Suite and its subsidiary tools might fail.

The error is most often seen when generating IP cores and archiving, due to the deep hierarchical structure of some of the IP (For example see (Xilinx Answer 51997)) and because the Archive function requires every path in a project to be accessed.

The following are possible ways to shorten the overall command and path lengths, or to avoid this issue if it arises.

  • Map a new drive letter to a lower directory in the path in order to reduce the path length. A shared network paths can be mapped as a drive on the Windows OS.

    For example: If a user wants to create a project called project_1 at "\\server21\shared\Users\username\workspace\vivado_projects\kintex7\ethernet_lite_hw_demo", instead of mapping a drive (for example Z:) to "\\server21\shared" and creating the project at "Z:\workspace\vivado_projects\kintex7\ethernet_lite_hw_demo" the drive could be mapped to "\\server21\shared\Users\username\workspace\vivado_projects\kintex7" and the project can be created at "Z:\ethernet_lite_hw_demo".

  • Use the subst command. The subst command can be used in a script to dynamically associate some portion of the path with a virtual drive letter.
    For example, for a Vivado project called Project_1 in, C:/Users/username/workspace/vivado_projects/kintex7/ethernet_lite_hw_demo/

    The user specified path can be shortened as shown below by using the subst command to a virtual drive letter in the Vivado Tcl console or in a script:

    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]


    By doing the above, all further operations in Vivado will refer to V: instead of C:/Users/username/workspace/vivado_projects/kintex7/ethernet_lite_hw_demo/

    To delete the virtual drive created for this project use the command "exec subst V: /d", in the Vivado Tcl shell.

    The project continues to exist in C:/Users/username/workspace/vivado_projects/kintex7/ethernet_lite_hw_demo/

  • Start Vivado Design Suite or PlanAhead from a shorter path location.

  • Launch Vivado pointing to a temporary directory with a short path (for example, vivado -tempDir c:/temp).

  • Specify tempDir using a parameter, as in the following example where the Archive function is hitting the path length limit.

    • set_param "project.customTmpDirForArchive" c:/tmp
    • Note: Starting with the Vivado 2015.4 release, there will be a new optional argument,-temp_dir in the archive_project Tcl command.
      This option will allow you to set a temporary directory for just the specific command.

  • Use shorter path names in your project directory structure.

  • If you have opened Vivado from the Start menu, then the default location where the archive is generated will be "C:/Users/username/AppData/Roaming/Xilinx/Vivado/.Xil/"

    However you can cd to a shorter initial path, and this will become the archive path.

  • Use the Linux Operation system to avoid the Windows specific path length issue.
AR# 52787
Date Created 11/06/2012
Last Updated 10/15/2015
Status Active
Type General Article
Tools
  • Vivado Design Suite - 2012.1
  • Vivado Design Suite - 2012.2
  • Vivado Design Suite - 2012.3
  • More
  • Vivado Design Suite - 2014.3
  • Vivado Design Suite - 2014.4
  • Vivado Design Suite
  • Less