Esperan Logo
Esperan is internationally recognised as a high quality provider of training in VHDL, SystemVerilog, SystemC, PSL, SVA, OVM, TLM and for courses covering design, verification, and PCB methodologies.
Esperan Schedule Menu
Esperan Course Menu
Esperan Contact Menus
Esperan UK contact information Phone +44 1344 865436
Fax +44 1344 865347
Email:
info@esperan.com

Contacts for other regions
TCL Scripting and Introduction to Tk

Now available with an optional third day introducing Tk - the Tcl tool kit for creating graphical front-ends

 

Duration | Requirements | Agenda

Scheduled Classes...
France Paris 11-Oct-2010 3 days Register Interest
France Paris 01-Dec-2010 3 days Register Interest
Germany Munich 04-Oct-2010 3 days Register Interest
Germany Munich 13-Dec-2010 3 days Register Interest

Contact Esperan for more information or to request an on-site class.


Testimonials

"The course has certainly given me an added value for my work".

"I think Tcl can improve my productivity a lot.."


Introduction

 What is TCL?

Tcl is the Tool Command Language, specifically created to control and integrate programs. EDA vendors are standardizing on platform-independent Tcl scripts to automate repetitive design tasks and extend the basic features of their tools. As most design flows use applications from multiple vendors, a designer now only needs to learn Tcl in order to control multiple tools. Furthermore, Tcl's power, versatility and ease of use is fast being adopted for a wider range of methodology tasks such as data processing; file management and tool interface solutions.


Overview

This compact course is the fastest and most effective method for engineers to understand the potential of Tcl and become proficient in the language. With EDA specific content; examples from real-world situations and sample EDA tool scripts, Esperan's effective, focused training can help you apply the full power of Tcl to both tool scripting and design methodology applications.


Objectives

  • To provide a thorough understanding of the essential concepts of Tcl.
  • To give you practical experience of writing Tcl scripts to control EDA tools; process data and automate design tasks.
  • To give you the knowledge to use Tcl in your design project with confidence

Duration

3 days including the optional one day  Introduction to Tk.  We can also offer standard or customized versions of this course onsite or at the location of your choice.


Requirements

Delegates should be familiar with their choice of operating system. Although some experience of VHDL or Verilog is useful, it is not essential. The course assumes no prior knowledge of Tcl.


Description

The course covers:-

 

Tcl Language Basics

Language concepts and constructs, including understanding how a Tcl script is interpreted; use of quotes, braces and brackets; Tcl operators and functions; creating procedures, and script control flow commands.

Manipulating Data

Examining the distinctions between strings, lists and arrays; building and manipulating data structures and exploiting regular expressions to search, extract and edit source data.

Interacting with the External Environment

File access; channel buffering; Tcl processes; accessing external programs; turning scripts into applications; use of libraries and packages.

Introduction to Tk

Widget building blocks; geometry managers; handling events; creating menu bars and dialogs; adding text box widgets.


Agenda


Day 1 – Introduction to Tcl

  • Introduction to Tcl
  • Tcl Basics 1
    • Tcl commands
    • Tcl variables
    • Substitution
    • Command evaluation
  • Tcl Basics 2
    • Mathematical operations
    • Basic procedures
    • Advanced procedures
    • Lab 1: Extracting bits from integers
  • Control Flow
    • What is control flow?
    • Conditional commands
    • Looping commands
    • Loop control
  • Strings
    • Constructing strings
    • String operations
    • Extracting information from strings
    • Binary strings
    • Lab 2: Working with a string bitstream

 

Day 2 – Introducation to Tcl

  • Lists and Arrays
    • Lists
    • Building lists
    • Manipulating lists
    • Arrays
    • Building arrays
    • Manipulating arrays
    • Lists versus arrays
    • Lab 3: Sorting design blocks
  • File I/O & Program Access
    • Manipulating files
    • Reading from and writing to files
    • Invoking external programs
    • Multi-process communication
  • Regular Expressions
    • Regular expressions (REs): what and why?
    • Regular expression patterns
    • RE-based string searching
    • RE-based string replacement
    • Lab 4: Hacking VHDL netlist
  • Advanced Tcl Scripting
    • Advanced procedures
    • Error handling
    • Date & time in Tcl
    • Scheduling and delaying command execution
    • Script profiling
  • Next Steps
     
  • Appendix A: From Scripts to Applications
    • Tcl scripts versus applications
    • Namespaces
    • Distributing Tcl scripts
       
  • Appendix B: Binary Files and Strings
    • Reading and writing binary files
    • Binary strings
       
  • Appendix C: Client-Server Applications and Networking
    • Client-server applications
    • Safe interpreters
    • Simple networking


Introduction to Tk Module (optional day 3)

  • Tcl/TK Basics
    • Tcl/Tk Basics
    • Cross-Platform Support
    • Add-on Packages
    • Writing Tcl/Tk
  • Widgets
    • Widgets are Objects
    • Configuration Options
    • Display Options
    • Scale, Frame Widgets
  • Geometry Managers
    • Grid-Geometry manager that arranges widgets in a grid
    • Using Pack & Grid together
    • Shrinking Windows: Strategies
    • Forgetting Windows
  • Events
    • X Server
    • Widget Receive Events
    • Requesting Events via the bind command
    • Specifying the Window(s) the binding applies to
    • Accessing Event Details
  • Menu Bars
    • Menu Bars
    • Creating a Menu Bar
    • Creating a Menu
    • Adding Menu Accelerators: Underline & Bind Method
    • Adding Menu tearoff
  • Dialogs
    • Toplevel Widgets
    • Adding Widgets to a Toplevel Widget
    • Customizing Toplevel Widgets
    • Dialog Boxes
    • Modal Dialog
  • Text Widgets
    • Text Displays
    • Creating a Text Widget
    • Setting Tab Stops
    • Adding Tags