Skip to content

[Use Case] Single Repository with Multiple Users

dpefour edited this page Nov 18, 2015 · 7 revisions

This page describes the following use case where a single common repository for the Tcl Store is shared by multiple users.

The assumptions are:

  • The common repository is read-only for the users and read-write for the administrator

  • The administrator updates the common repository

Important: since the repository is read-only for the users, the list of apps installed by the users is not preserved between Vivado sessions. A predefined list of apps can be however saved inside the users' init.tcl

Administrator Workflow

  1. Start with empty directory (e.g /user/admin/tclstore)
mkdir tclstore
cd tclstore
  1. Create a sub-directory for each Vivado release that will be supported
mkdir 2015.3
mkdir 2015.4
  1. Repeat the following steps for each Vivado release <release>:

    1. Set following environment variables:
    setenv XILINX_TCLSTORE_USERAREA /user/admin/tclstore/<release>
    setenv XILINX_LOCAL_USER_DATA YES

    For example for 2015.3:

    setenv XILINX_TCLSTORE_USERAREA /user/admin/tclstore/2015.3
    setenv XILINX_LOCAL_USER_DATA YES
    1. Start Vivado and open XilinxTclStore GUI

    2. Refresh catalog

    3. Install all available apps and update those already installed based on the availability of newer app version

      Note: apps that are not installed by the administrator will not be available to the users.

      You should end-up with all the apps being installed and up-to-date:

Adminitrator - All Apps Installed

User Workflow

  1. Set following environment variables before running Vivado release <release>:
setenv XILINX_TCLAPP_REPO /user/admin/tclstore/<release>/<release>/XilinxTclStore
setenv XILINX_LOCAL_USER_DATA NO

Note: <release> appears twice in the path. For example for 2015.3:

setenv XILINX_TCLAPP_REPO /user/admin/tclstore/2015.3/2015.3/XilinxTclStore
setenv XILINX_LOCAL_USER_DATA NO
  1. Start Vivado and open Xilinx Tcl Store GUI.

You should see the list of apps with their latest version:

User - All Available Apps

The app versions match the ones installed by the administrator (see first screenshot).

  1. The user can install all the necessary apps

Note: the apps will need to be installed in each new Vivado session. The apps can also be automatically installed through the user's init.tcl

For example, the following 2 entries inside init.tcl will automatically install both Xilinx's designutils and ultrafast apps at the beginning of each Vivado session

tclapp::install ultrafast
tclapp::install designutils

Auto-Install User Apps

If the administrator want to automatically install some apps for the users, this can be done inside the site level init.tcl or user level init.tcl

When you start Vivado, the tool looks for a Tcl initialization script in the following locations:

  1. In the software installation: <installdir>/Vivado/version/scripts/init.tcl.

(Where <installdir> is the installation directory where the Vivado Design Suite is installed.)

  1. In the local user directory:
a. For Windows 7: %APPDATA%/Roaming/Xilinx/Vivado/init.tcl
b. For Linux: $HOME/.Xilinx/Vivado/init.tcl

If init.tcl exists in both of these locations, the tool sources the file from the installation directory first, then from your home directory.

An app can be automatically loaded by using the tclapp::load_app command along with the namespace qualifier of the app.

For example to auto-load designutils and debugutils, both lines below should be added to init.tcl:

catch { tclapp::load_app xilinx::designutils }
catch { tclapp::load_app xilinx::debugutils }

Note: The catch command is to make sure that any issue with loading the app will not prevent Vivado from starting.