Skip to content

Accessing the Tcl Store Repository

dpefour edited this page Mar 2, 2016 · 16 revisions

The screenshots have been updated to the upcoming Vivado 2016.1 release

Opening and Browsing the App Repository

In the menu bar, go choose Tools->Xilinx Tcl Store

Installing an App

Choose your app and click on install. The procs defined in the app are now available on subsequent Vivado sessions. Procs are pulled to the global namespace and appear like native vivado built in commands. Tcl commands also show up in the help infrastructure.

The following screenshot highlight the steps. It is recommended to refresh the catalog (Refresh button) to make sure that the last version of the app is installed.

Figure 1 - Install an App

Once the app has been installed, the list Tcl procs available from the app is reported along with a one-line summary.

Figure 2 - Available Tcl Procs

Getting Help from an Installed App

Once an app has been installed, the proc names change as an hyperlink. Clicking on any proc name opens a context window with a Help menu item. Selecting Help opens an embedded help information for the selected proc.

Figure 3 - Getting Help from a Proc

Accessing the Tcl procs from an Installed App

Once an app has been installed, all the procs that belong to this app can be accessed in two different ways:

  1. From the ::xilinx::myapp namespace. When Vivado starts, an entry point (a wrapper) is automatically created for all the procs of all the installed apps under the ::xilinx::myapp namespace.
  2. From the app namespace ::tclapp::mycompany::myapp where the proc has been defined.

For example, once designutils has been installed, the proc report_parts can be accessed as illustrated below:

vivado> ::xilinx::designutils::report_parts
vivado> ::tclapp::xilinx::designutils::report_parts

The advantage of calling the proc from the ::xilinx namespace is that the wrapper that is automatically created supports number of default command line arguments such as -help, -verbose and -quiet

vivado> ::xilinx::designutils::report_parts -help
xilinx::designutils::report_parts

Description: 
(User-written application)
report all the available parts that match a pattern


Syntax: 
xilinx::designutils::report_parts  [-quiet] [-verbose] [<pattern>]

Returns: 
0


Usage: 
  Name         Description
  ------------------------
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  [<pattern>]  Pattern for part names
               Default: *

Categories: 
xilinxtclstore, designutils, user-written

Accessing Source Code from an Installed App

There are 2 ways to access the source code for an app or particular proc.

The app header includes a URL link to GitHub. Clicking this links opens the default browser directly to the app page inside GitHub. From there, the source code of individual procs can be accessed:

Figure 4 - Accessing App Page under GitHub

Once an app has been installed, the proc names change as an hyperlink. Clicking on any proc name opens a context window with a View Source Code menu item. Selecting View Source Code opens a windows with the source code of the selected proc.

Figure 5 - Displaying Source Code from a Proc

Note: The Tcl Store does not track the procs dependencies. Only the content of the selected proc is displayed in the source window, not dependent procs. The full app code can be browsed from GitHub by following the app's URL.

Updating an App

If after refreshing the catalog a new version of an app is available, the app can be automatically updated by pushing the Update button. A warning icon on the app is showing that a new version is available.

Information regarding latest changes is available by clicking the *What's New' hyperlink.

Figure 6 - Update an App

Uninstalling an App

Select the app that you have installed. In the details section there is a hyperlink to uninstall. Once you have uninstalled, the procs are no longer available at the Tcl command line.

Figure 7 - Uninstall an App

Searching the Tcl Store

To search through the Tcl Store, use the embedded search bar located above the list of apps. The search applies on the proc names and proc summaries. The list of apps is reduced to those having 1 or more matches. Once an app is selected, the matching areas are highlighted in whites when non-matching ones are greyed out.

Figure 8 - Search the Tcl Store

Listing all Installed Apps

Click on the Installed tab in the Xilinx Tcl Store dialog.

Figure 9 - List Installed Apps

Listing Apps that can be Updated

After refreshing the catalog, if any update is available, you can click on the Updates tab in the Xilinx Tcl Store dialog to get a summary list of all apps that have an update. An app can be updated by clicking the Update button.

Figure 10 - List Available Updates

Refreshing the Repository

Click on the Refresh button in the Xilinx Tcl Store dialog. This action queries the git repository and refresh the app catalog to get the latest version of each installed app.

Refer to Figure 1 above for the location of the Refresh button.

Reporting an Issue

To report an issue for a particular app or proc, click the Support on GitHub link on the top-right of the Tcl Store GUI. Clicking this links opens the default browser directly to the Tcl Store support page inside GitHub.

Figure 11 - Getting Support

Disabling Catalog Refresh

For some companies that are concerned about applications querying information outside their firewall, there is a feature to disable refreshing of the repository. This prevents Vivado from querying the app catalog - and users are limited to the current static version of the repository. To disable refresh capability, the following Tcl param can be set in the startup init.tcl script for all Vivado sessions:

set_param tclapp.enableGitAccess 0

Figure 12 - GIT Access Disabled

#Shared or Local Repositories Vivado supports local repositories for sharing code locally rather than through the publicly github repository. This is mainly used for testing and during the development stage for the Tcl Store. But it can as well be used to share private repos that should not be accessible to the public. To point Vivado to a local repo, the following environment variable can be set:

setenv XILINX_TCLAPP_REPO <PATH_TO_LOCAL_REPO>

Note: The catalog cannnot be refreshed when pointing to a local repository