1

In some EDA tool's Tcl script (i.e Cadence Enounter), what does the double :: do?

report::TimeStamp PrePlace "START PrePlace"
Bryan
  • 309
  • 1
  • 8
  • 16

1 Answers1

5

It separates the namespace (on the left) from the name (on the right) contained in that namespace.

Since in a Tcl script any top-level construct is always a command, and the command's name is always the first word of the command, your report::TimeStamp refers to a command named "TimeStamp" in a namespace named "report" while "PrePlace" and "START PrePlace" are two arguments passed to that command when it's invoked.

Namespaces in Tcl are dynamic entities and they may contain both commands and variables (and other namespaces).

kostix
  • 51,517
  • 14
  • 93
  • 176
  • 1
    @Bryan, on a side note I'd recommend getting a book on Tcl and reading up on its basics or at least complete any tutorial (there are plenty of them on the internets). – kostix Oct 30 '15 at 17:14
  • @Bryan, sure! [The Tcl tutorial](http://tcl.tk/man/tcl8.5/tutorial/tcltutorial.html) is the must. Then [this book](http://www.beedub.com/book/). And check out [this page](https://www.tcl.tk/doc/) of course. – kostix Nov 03 '15 at 08:37