Practical and Advanced TCL Using Examples

Prerequisite: Basic Tcl (Link)

It will cover the following topics

  • Counting patterns in a string, and using STA tool commands, use of exec, redirect, regexp
  • Counting cells using control flow, math functions, and procs
  • Generate runtime metrics like cputime, memory
  • Strings, list and pattern matching – reading all Verilog files in synthesis tool, report to list
  • File handling and procs – defining proc attributes, writing and reading timing reports, read and write log files
  • Tcl arrays and dictionary and more procs – setting clock periods in arrays and using for timing constraints,  default proc arguments, optional arguments, parse proc arguments, proc attributes, non positional arguments
  • Tcl best practices – command and argument parsing, grouping with “ or {}., rigid or weak grouping, checking variable exists, backslash substitution, variable substitution, eval, command substitution,
  • Tcl scripts common gotchas – white spaces, backslashes, square brackets, incorrect weak (“) grouping, list commands some need $ some not, matching braces even when commented, {} to delimit variable name,
  • Collections – Common mistakes and applications, how many clocks in my design, design objects and types, collection commands, loops in collection, getting value, iterate, collection vs list,
  • Collection attributes and applications – report design statistics, tips to save tool memory, debug sta violations, create your own timing report procs, report flops,  
  • Filer and sort collections  – report leaf cells, get sequential cells, operators allowed in filtering, get all inout ports, get don’t touch cells, get fastest clock frequency, find all attributes, find wns to a library cell,  
  • STA attributes and using them – timing path attributes, path groups, get timing paths with slack lesser than a certain value and find which of those belong to a certain clock, get timing paths from certain input ports with a particular clock domain, eval command, get cells in a timing path,

Message Us on WhatsApp