( BSNUG 00 Item 10 ) ------------------------------------------ [ 10/13/00 ]
Subject: Dc_shell vs. DC-Tcl, Tcl Gotchas, TOPS Tcl Synthesis Environment
NO ONE'S LAUGHING: About 2 years ago, when Synopsys seriously jumped into
Tcl by offering DC-Tcl and making PrimeTime's interface Tcl, most of the
users were clueless what Tcl was. There were 103 people in the room in
the Boston SNUG user presentations on Tcl. Of those 103, 18 raised their
hands when asked "Raise your hand if you're using Tcl today". Of those
same 103, 14 raised their hands when asked if they were using Tcl because
they using PrimeTime. These stats may not be scientific, but they do
clearly point to the fact that *most* Synopsys customers currently still
prefer their time-tested standard non-Tcl dc_shell scripts over making the
painful switch into pure play Tcl.
"WB1 - A Tcl Synthesis Environment (TOPS) 3 stars (out of 3)
This was a very interesting session that detailed an entire synthesis
environment based on Tcl scripting. Synopsys is slowly getting rid of
the DC shell scripting environment and replacing it with Tcl scripting
so all of our new synthesis scripts should use Tcl. Their proposed
environment was straight-forward in design, but the scripts supplied
may seem daunting to the novice reader. The Intel authors crafted the
environment to allow for ease of portability and reuse between projects
and to allow for a common setup between Design Compiler and Primetime.
The scripts all reside in one synthesis directory. There are a
multitude of issues handled by the scripts including pre-synthesis,
synthesis, and post-synthesis issues (such as buffer insertion between
back-to-back flops to resolve hold time issues on Q->D paths). I plan
on using the script package presented in this session as the basis for
the synthesis environment on the DSC project. (The Tcl source code
for TOPS is on http://www.DeepChip.com in the downloads part.)
WB1 - Tcl: The Good, the Bad, and the Ugly 2 stars (out of 3)
Pointing out the good and bad things about Tcl was the basis for this
session. Synopsys apparently bought the kernel for Tcl from some
company and inserted it wholesale into DC with some modifications and
extensions. That means that no attempt was made to address and/or fix
some of the inherent bugs or quirks in Tcl. Tcl is an improvement over
DC-shell scripts, but from the standpoint of Microchip users, that will
not be evident. Trust me, it is a better environment for scripting :^)
The presentation and paper are probably a good read for those of you
who will be working with DC and Primetime. The Intel author points out
a host of issues to watch out for when using Tcl and some tricks to
make life easier."
- Brian Fall of Microchip Technology, Inc.
"II) Make/Tcl:
A) Design Independent topdown or bottom up synth script by
Mariagrazia Graziano of U. Torino, Italy
1) 4 scripts:
L Preprocessor
R Revise (custom constraints)
W Write (Design output)
S ??? Transparent to user, maybe main script
that calls others.
2) Clean directory structure
3) scripts are perl based with user file input
4) Intermediate Makefile generated
Pretty basic/classic setup. Clean, has time budgeting, has default
setup for newbie or first run, has expert higher run mode as well.
Some code available. Rest possible if asked (some NDA).
B) TCL for Synth (TOPS) by Tim Wilson of Intel
1) 7 steps of synth (good succinct format: setup, libs, readin,
constraints, compile, write, report)
2) 8 accompanying Tcl files. Some global, others overide global
with block specific Tcl file).
3) Some ugliness with incompatiblity between Tcl interface of
DC and Primetime
4) Good list of DC-Tcl improvements
5) No legacy DCscripts. Must go cold turkey. DCscript is going
away.
6) No ACS tie-ins, just basic DC run. No time budgeting.
7) Some people still resistent to converting (maybe 30% convert
so far).
8) Modular approach allows for easier update to new DC revs. The
have a new release (out of a CVS database) a couple weeks after
a new DC revs.
9) Future: ACS type of time budgeting added next.
10) Ditched legacy perl script. Some minimal perl used.
11) Code available at http://www.deepchip.com
C) Good, Bad, & Ugly of TCL Language by Gregg Lahti of Intel. Very
funny sound effects. Clint Eastwood spagetti western stuff. Had
a picture of Cooley for the ugly part.
1) Good: Synth is easier overall, free code avail (Solvnet/Deepchip)
- better scripting environment than dc
- procedures and functions calls
- variables
- hashes and associated arrays
- time and I/O functions
- file operators
- TK not available, but can use Sockets to do most GUI stuff
2) Bad: Non-mainstream language syntax
- Braces and quotes get mixed up
- global variable are backwards (have to be in procedure)
- line termination is picky and flakey
- oddities of conditionals and braces
3) Ugly: DC specific tcl commands
- collectors (accessed differently)
- attributes
- Synopsys specific commands
Useful because less than 30% customers use Tcl."
- Peet James of Qualis Design
|
|