BOOK Programming and GUI Fundamentals: TCL-TK for Electronic Design Automation (EDA)

Publisher         ‎Wiley-IEEE Press; 1st edition (October 11, 2022)
Language         ‎English
Hardcover         ‎224 pages 

Programming and GUI Fundamentals: Tcl-Tk for Electronic Design Automation (EDA) [L1 ], delivers a comprehensive exploration of the major design challenges and potential present in application and tool development with Tcl-Tk. Accessibly written and easy-to-understand, the book can be used by students at a variety of levels, as well as researchers and working professionals.

The authors present the fundamental concepts of Tcl programming and graphic user interface (GUI) development using images, and photographs, assisting with concept understanding and retention. They describe real-time system designs and offer students and designers the opportunity to learn about critical concepts in scripting and GUI development.

Readers will learn to design their own GUI, place and package widgets on the GUI, and allow EDA professionals, chip designers and students to code and design in TCL-TK. They will also benefit from:

  • A thorough introduction to scripting languages and wish interpreters, including their fundamental concepts, TCL tips and tricks, and command, variable, and procedure examples
  • Comprehensive explorations of the TCL data structure, including datatypes, strings and commands, lists and commands, and arrays and commands
  • Practical discussions of TCL control flow, including conditional commands, multi-condition commands, and loop commands
  • In-depth examinations of file input/output processing, including TCL file read-write, open and close commands, gets, and puts.

Perfect for undergraduate and graduate students studying programming or computer science, as well as professionals working on electronic design automation and chip design, Programming and GUI Fundamentals: Tcl-Tk for Electronic Design Automation (EDA) is also an indispensable resource for programming professionals seeking to upskill.


CGM 18-Oct-22 - I've now had the opportunity to review this book, and I'm sorry to say that it's not good. The English is poor, the explanations are poor, the coverage is poor. The only EDA-related content is the last chapter, which has 25 pages introducing the use of Tcl in the Vivado Tool. I'm not qualified to review that part; perhaps it's worth £90 on its own, the rest of the book certainly is not.

The blurb claims "Comprehensive explorations of the TCL data structure" but does not mention dicts anywhere. The section on Tk covers the canvas, but skips the text widget entirely. expr is used extensively in the examples with un-braced arguments, which is considered by most Tcl-ers to be unwise.

There are multiple clear typos, e.g.

  • Tcl is very similar to the UNIX shell languages, namely Bounce, C, Korn, and Perl,
  • Console and wish are intractable
  • There are three types of loops supported in Tcl: while; for; and forever
  • [incr tcl] The first Tcl package like C++. It duplicates the C++ model of cladding with single or multiple inheritances

There are many confusing mis-statements, e.g.

  • puts ... A group of arguments must be enclosed within {}, else the result is an error.
  • set ... It takes two argument set names of variables where the second is their value
  • proc ... decomposes the complex variable into smaller species
  • The value of a variable can be updated via the $ symbol
  • A Tcl command is shown within square brackets [ ]. An argument written in [ ] is considered as a command and evaluated accordingly. A Tcl command has two arguments: the first is a variable declared via a set and the second is in [command] after evaluation, where the result gets updated onto a variable.

I could go on, but for anyone genuinely familiar with Tcl that might be regarded as "cruel and unusual punishment".


Don't waste your money on this book. Even if you get given it for free, don't waste your time trying to learn Tcl from it.

Buy one of the real books like BOOK The Tcl Programming Language or BOOK Tcl and the Tk Toolkit (2nd Edition), or start with the free tutorial at Tcl Tutorial Index