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# 66722

Vivado - How do I use the XILINX_PATH environment variable to apply tactical patches?


Prior to the Vivado 2016.1 release, the MYVIVADO variable was available for users to apply a patch without altering the original install location.

Over time more Xilinx applications have employed the patch process. To avoid confusion for other ("Non-Vivado") products, a new, general variable (XILINX_PATH) is being introduced with the Vivado 2016.1 release.

How do I use the XILINX_PATH environment variable to apply a tactical patch for Vivado or Xilinx tools?

See also:

(Xilinx Answer 53821)

(Xilinx Answer 2493)


When launching Xilinx software tools a "loader" script is run to set up the environment as needed for the tool.


The loaders will read and handle both the new XILINX_PATH variable and the MYVIVADO variable, although XILINX_PATH will be the preferred variable to use.

The loader will look for the new variable (XILINX_PATH). If it is set, it will be used to locate all patches. 

If it is not set, the loader will look for the old variable (MYVIVADO) and use it to locate all patches. 

The loader will not use a hybrid of both values. If both are set, the new variable (XILINX_PATH) takes precedence of over the old variable.

In the local tool environment, the loader will ensure both the new variable (XILINX_PATH) and old variable (MYVIVADO) are set to the same value before launching the application executable. This allows applications which are using the new variable and applications still using the old variable to coexist.


The XILINX_PATH can contain one or more paths (delimited by a ':' on Linux, ';' on Windows) to other patches.

The $XILINX_PATH area allows you to use Xilinx software patches without affecting your original install area. 

In a shared environment, this allows individual users to apply any patch they need without affecting other users.

The $XILINX_PATH directory structure should match that of the Vivado or other Xilinx Software tool install areas.

Note: If a certain patch is desirable for use by all engineers at a site, In Vivado 2014.4 and later, the patches can be installed in the $XILIINX_VIVADO install directory under a user-created "patches" directory.


It is important to use patches only with the software for which they were built. 

For example, if you have a patch in the $XILINX_PATH area that was built for Vivado 2015.3, you must not use this patch with the 2016.1 version of Vivado tools. 

Patches that are built for a certain build of software are included in the next full release of the software.


When the Vivado software loads a data file (for example, a speed file), it first checks to see if the required file exists in the $XILINX_PATH area.

If so, it uses it and prints a message notifying the user that a $XILINX_PATH data file is overriding the default Xilinx Software Tool data file.  

Next, Vivado will look in the $XILINX_VIVADO/patches directory. 

If the file does not exist in the $XILINX_PATH or patches directories then Vivado (or the other Software tool) uses the original data file within the install directory.


The following is an example of how to change from a standard environment to an environment that accesses a patch using the $XILINX_PATH variable on Linux:

setenv XILINX_PATH /home/user/patches/Vivado/2016_1_ar65123_patch

On Windows, the appropriate commands would be:

set XILINX_PATH=C:\patches\Vivado\2016_1_ar65123_patch

The paths contained in XILINX_PATH will take precedence going from left to right. 

This means that if patches contain the same files, the files in the first patch listed in XILINX_PATH will be used.


Using Multiple Vivado Patches:


Example 1:

/opt/Vivado_AR12344  <-- Patch for AR12344
/opt/Vivado_AR12345  <-- Patch for AR12345


These are the options for using multiple patches:

For Vivado 2014.4 to Vivado 2016.2, we have the following support for multiple patches:

  1. You can create a patches directory under the install. 
    All patches can be unzipped into the $XILINX_VIVADO\patches directory. 
    Vivado will automatically check files in the $XILINX_VIVADO\patches\AR* directories.
  2. The XILINX_PATH variable.
    You can specify different patch directories, which will be included when Xilinx tools are run.


Use XILINX_PATH with or without overlays


  1. Install multiple patches in separate directories or in the same directory without loaders
  2. Set XILINX_PATH to point to all patch areas
  3. Run Vivado (or other Xilinx tool) from the base install

One patch with loaders without XILINX_PATH


  1. Install multiple patches in the same directory with one patch with loaders
  2. Establish a baseline to the base install
  3. Run Vivado (or other Xilinx tool) from the patch area

One patch with loaders using XILINX_PATH


  1.  Install multiple patches in separate directories with one patch with loaders
  2. Establish a baseline in the patch directory with loaders.
  3. Set XILINX_PATH to point to all patch areas
  4. Run Vivado (or other Xilinx tool) from the patch area
AR# 66722
Date Created 02/26/2016
Last Updated 04/13/2016
Status Active
Type General Article
  • Vivado Design Suite