( ESNUG 318 Item 11 ) -------------------------------------------- [5/21/99]

From: Jeff Solomon <jsolomon@stanford.edu>
Subject: A Free User-Written Bi-lingual Perl/Tcl Dc_shell Shareware Tool

John,

I'm pleased to announce the release of a free shareware tool that combines
the power of Synopsys and the versatility of Perl.  It's called Synopsys
Plus Perl (SPP).  SPP is a Perl module that wraps around Synopsys' shell
programs.  SPP is inspired by the original dc_perl written by Steve Golson,
but it's an entirely new implementation.  Why is it called SPP and not
dc_perl? Well, SPP was written to wrap around any of Synopsys' shells.  This
includes:
           bc_shell
           budget_shell
           dc_shell
           dp_shell
           dt_shell
           fpga_shell
           lc_shell
           pt_shell
           ra_shell 

SPP is a Perl module, not an application. It can be used to fully embed a
Synopsys script inside of Perl.  SPP was written in an object-oriented way
so that each object totally encloses a Synopsys shell process. 

The first example of an application using SPP is called synopsys_fe, a
frontend replacement for any of the Synopsys shells listed above.
synopsys_fe sports a snazzy GNU Readline interface with all of your
favorite terminal capabilities (command completion, up/down history, etc),
a convenient Perl interface, and other Perl niceties that you might expect. 

But wait, there's more! Invoking the Synopsys shell in Tcl mode (SPP
supports both Tcl and default dc_shell mode), enables an auxiliary module,
Synopsys::Collection. This module maps the functionality provided by
Synopsys' collection idiom into Perl. 

Why did I create this shareware tool?

People get into heated arguments over which is better, Tcl or Perl.
I'm no Perl bigot, although I must admit that I prefer Perl and I've
written many more lines of Perl than Tcl. I can certainly understand
why Synopsys choose Tcl over Perl. Its interface to C is more
straight-forward, it's more easily embeddable and more self-contained. 

The problem is that chip designers love Perl! A completely unscientific
survey of chip designs (including ones that I've worked on) shows that most
chips are held together by vi, Perl, string and paperclips. Chip designers
love Perl because they have to run 18 different CAD tools each of which
outputs its results in an arbitrary text format and Perl is the only
language suitable for gluing them all together. Associative arrays are
king.  Perl is write-only?  You bet!!  Why does a script need to be
readable if it's going to be less than 50 lines and run only once -- by its
author no less!?  Who in their right mind would write a 50 line throwaway
Tcl script unless they didn't know Perl?  No one I know. 

Getting back to the question at hand, I wrote SPP to make my life
easier. I wanted to characterize all the cells in the chip I've been
working on. I noticed that Synopsys had all the information there, but
it wasn't very manageable.  I remembered hearing about Steve Golson's
dc_perl and I downloaded it.  From there, I quickly added the
Term::ReadLine::Gnu interface and I was off. After about three total
re-writes (the original version, like Steve's dc_perl, was based on
the dc_shell version and only wrapped around dc_shell). Along the way, I
used SPP to extract the clocktree from our chip. Using the speedy
pt_shell, I was able to turn an hour long job into a 90 second script.

Sound interesting?

    http://www.stanford.edu/~jsolomon/SPP

SPP is free software. Anyone can redistribute it and/or modify it under
the same terms as Perl itself.

    - Jeff Solomon
      Stanford University



 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)