Essential Tcl for Vivado is a 3-session online course teaching the essentials of the Tcl language with particular focus on its application within the Xilinx Vivado Design Suite. It is packed full of examples and exercises all directly based on design-related problems and covers the need-to-know essentials for design engineers and EDA support specialists.
Tcl is a popular and widely used cross-platform script programming language that achieves significant productivity gains when used by skilled engineers. Its combination of text processing, file manipulation and system control features make it ideal for this purpose. Almost every industry-leading EDA tool uses it to provide a powerful and platform-independent command language.
The course discusses specific examples of the use of Tcl with the Xilinx Vivado Design Suite, but will also be useful for people wishing to use other EDA tools.
The essential subset of the Tcl scripting language is covered, with design related exercises and examples including: running EDA tools, design visualisation and extracting key information from report and source files.
Workshops comprise approximately 50% of class time. The workshop examples are carefully chosen to illustrate key techniques commonly needed when using EDA tools and provide an ideal starting point for delegates’ own developments after the course.
This course is recommended training for all Xilinx users who want to take full advantage of the Vivado® Design Suite feature set.
Ideally, this training should be taken prior to attending the Vivado FPGA Design Essentials and Vivado Advanced FPGA Design Online.
3 Sessions-6 hours Online /19
Who Should Attend:
- Engineers who wish to become skilled in the practical use of Tcl, particularly those intending to use Tcl within the Xilinx Vivado™ Design Suite
- Engineers who have already acquired some practical experience in the use of Tcl, but wish to consolidate and extend their knowledge within a training environment
What You Will Learn:
- Tcl’s core grammar: substitution and parsing rules that underpin the whole language
- A solid grasp of an essential subset of the standard Tcl commands and an overview of more advanced commands to facilitate further self-directed learning
- Text processing techniques for analyzing HDL source code and tool output files
- Techniques for using Tcl to control and communicate with other tools, with special emphasis on FPGA/ASIC design tasks
Prerequisite:
No previous knowledge of Tcl is required. Some experience with at least one software programming language is highly advantageous, but not essential. Delegates are expected to be computer literate and to have an understanding of the digital hardware design process.
Structure and Content:
Introduction
Origins of Tcl • Exploring the benefits of Tcl in the digital design flow • Internet resources for problem-solving and sharing solutions • Tcl book recommendations • Reference materials for the language
Getting Started
Running Tcl Shell in UNIX or Windows • Experimenting with commands in the shell • Creating and running a script file • Variables and substitution • Command substitution • A sample application
The basics of Tcl
Structure of a Tcl command • Quoting • More on substitution and quoting • Tcl grammar rules • Some common commands • Lists and strings • Launching other commands
Getting to grips with the details
Commands for flow control • Procedures and arguments • Reading and writing files • Catching errors • Formatting data as text • Commands for calculation • Manipulating strings • Manipulating lists • Array variables • Global and uplevel references • Introspection with the info command
Pattern Matching
Glob-style matching • Regular expressions – background • Using regular expressions to analyze text • Details of regular expression syntax • Grouping, capture and back-references • Regexp substitution • A significant example, analyzing HDL source code
Interacting with other applications
Opening a command pipeline • File buffering and blocking • File event handling and the Tcl event loop • Examples of interaction with typical EDA tools