| Tcl Scripting Tutorial for Vivado

Tcl is Tool Command Language! lol! I really didn’t know that.

It’s an interpreted programming language with variables, procedures (procs), and control structures. It has been adopted as the standard application programming interface, or API, among most EDA vendors to control and extend their applications. The Tcl interpreter inside the Vivado Design Suite provides the full power and flexibility of Tcl to control the application, access design objects and their properties, and create custom reports.

Xilinx Design Constraints (XDC) to specify the design constraints. XDC is based on a subset of all the Tcl commands available in Vivado and is interpreted exactly like Tcl. The XDC commands are primarily timing constraints, physical constraints, object queries and a few Tcl built-in commands: set, list, and expr.

The Vivado tools write a journal file called vivado.jou into the directory from which Vivado was launched. The journal is a record of the Tcl commands run during the session that can be used as a starting point to create new Tcl scripts.

A log file, vivado.log is also created by the tool and includes the output of the commands that are executed. Both the journal and log file are useful to verify which commands were run and what result they produced.

[ This document is a work in progress until May 30, 2022. The content already published as correct and up to date. ]

### References:

This tutorial is primarily based on: