TCL Scripting

Course Overview:

TCL scripting is essential skill for VLSI engineers working on digital flow, particularly implementation engineers, which includes synthesis, STA, formal verificaiton, physical design, physical verification engineers and CAD engineers.

Majority of product companies automate the flows, using TCL or other scripting methods.  Some times to get some task done, engineers need to tweak data or process the design / constraints data, to get the required functionality. In such case, TCL will be very handy skill to get the task done quickly, which otherwise takes many hours and some times, very difficult to achieve without scripting.

A winner is someone who recognizes his God given talents, works his tail off to develop them into skills and use these skills to accomplish his goals. – Larry Bird

Training Delivery Model:

  • Lecture & Lab sessions go hand in hand.
  • Sessions will be interactive in nature.

Training Material & Certification:

  • Hand outs of training material will be provided.
  • Course completion certificate from ChipEdge.
  • Course learning will be assessed as per Bloom’s Taxonomy.
  • Certification from Global University of Engineering, USA.

Who Can Attend This Course:

Any VLSI Engineer working on RTL Design / Verification / Synthesis / STA / Formal Verification / DFT / Physical Design / Physical Verification ….etc can attend this course.

Course Content outline:

TCL introduction

  • First TCL script – How to execute a TCL script
  • TCL special variables
  • TCL command interpretation


  • naming & dynamic typing
  • simple variables {append, incr, set, unset}
  • variable substitution
  • embedding variable substitution in strings
  • removing variables
  • arrays
  • multi dimensional array
  • incr, append commands


  • Variable substitution
  • Command substitution
  • Backslash substitution
  • Quoting: double quotes, braces, brackets


  • Numeric operands
  • Expr
  • Expr integers, floating point numbers
  • Operators and precedence
  • Arithmetic operators
  • Relational operators
  • Logical operators
  • Bitwise operators
  • Math functions
  • Substitutions
  • String manipulation
  • Types and conversions (type conversion)
  • Precision


  • List functions
  • list, llength
  • modifying lists : linsert, lreplace, lrange, lappend, concat,
  • searching lists : lsearch
  • sorting lists : lsort
  • conversion between lists and strings: split and join
  • lists and commands

Control flow

  • if command
  • Looping commands: while, for & foreach
  • Loop control: break & continue
  • Switch command
  • executing from files : source
  • subst


  • Design objects
  • Collection handles
  • See content of collection
  • Create collection
  • Manipulate collection
  • Count items in collection
  • Iterate on collection
  • Append to a collection
  • Remove an object from collection
  • Few Collection applications
  • Attributes
  • Filter collections
  • Sort collections
  • eval cmd


  • basics: proc & return
  • local and global variables
  • default and variable number of arguments
  • define_proc_attributes

Errors and Exceptions

  • catch, exceptions
  • return
  • command output vs return value, error/warning messages

String Manipulation

  • exact pattern matching vs glob style pattern matching
  • Regular expressions & regular expressions pattern matching
  • format, scan
  • extracting characters : string index and string range
  • searching, comparing
  • length, case conversion and trimming

File Access

  • file names: cd, close, eof, file, flush, gets, glob, open, puts, pwd, read, seek, tell
  • basic file i/o
  • output buffering
  • random access to files
  • current working directory
  • manipulating file names: glob and file
  • file information commands
  • errors in system calls
  • redirect -file
  • redirect to tcl variable

Managing TCL internals

  • querying elements of an array
  • info command
  • information about variables
  • information about procedures
  • information about commands

Write sample scripts

Tools to be used:

Industry Standard Tools will be used.


The trainer is working as Lead Physical Design Engineer with a leading VLSI Company in Bangalore and has 10+ years of Physical Design experience in VLSI  industry, with multiple complex tape outs to his credit.

He is passionate about teaching and mentored many entry / mid level engineers throughout his corporate career.  He is excellent Trainer and has received good credentials for all his training deliveries.  He is dynamic in nature and brings high energy levels to the class.