<!C-body background="nwinter.jpg" foreground="#00FF00">  

ScriptEDA


This page is dedicated to linking scripting languages such as Perl,Python and Tcl to any freely available EDA tools. Our basic idea is to make friendly interfaces for any existing EDA engines. Check our paper here and a supplement one.

What we have?

SWIG Usage:
  1. SWIG1.3a5 Typemap FAQ for Python
    Check here for more details. NEW!

  2. Callback Support(Perl/Python/Tcl) for SWIG1.3a5
    A simple perl script is used to automate callback function wrapping in SWIG. The script filters out a function pointer and expands it into a language dependant callback function call.
    Current release(Perl/Python/Tcl version) is available here

  3. Struct Marshaling Code Generation Support(Perl/Python/Tcl) for SWIG1.3a5
    A simple perl script is used to automate struct marshaling code generation in SWIG1.3a5. The script filters out "memberout" and "memberin" code from SWIG output and rearrages them into "in" and "out" typemaps.
    Current release(Perl/Python/Tcl version) is available here

  4. Python Backend for SWIG1.3a6
    A library used to interface SWIG backend to Python scripts instead of using any C or C++ code for generating wrappers.
    Current alpha release is available here

EDA Scripting Packages:
  1. Python Interface for CUDD
    This package links CUDD, a powerful BDD package, with Python. Check here for details and software release. NEW!

  2. Tcl/Perl/Python Interface for VIS-1.4
    This package brings you a source-level compatible Tcl interface for VIS NEW!
    Current release is available here.
    For SIS, current release is available here.

  3. Perl/Tcl/Python Interface for a physical design package
    This package exposes the DB subpackage to the scripting languages for UCLApack. NEW!
    Current release is available here.

  4. Dynamic Scripting Language Translation
    Turn a tool's weird scripting language into your favorite one. Check here for more details. NEW!

  5. Perl/Python/Tcl interface for Verilog PLI (vpi_* routines) NEW!
    This package links Verilog PLI to Perl/Python/Tcl. You can create your own system tasks/functions, and use the scripting language to do all the customization. All you have to do is just compiling the executable once and use it forever.

    All of the VPI functions can be accessed in the scripting languages, and you could name your own system tasks/functions. ScriptVlog will link the C level functions and embed a scripting language interpreter into the verilog executable.

    It can be used to


    Current release is available here.

  6. Python/Perl target module for Icarus Verilog NEW!
    This package turns Icarus Verilog target modules into Python/Perl scripts. You can create your own target modules in Python/Perl, and use the scripting language to do all the customization.
    Current release is available here.

  7. Perl/Python/Tcl <-> LEF/DEF parser interface NEW!
    This package links the Cadence LEF/DEF parser to Perl/Python/Tcl. We consolidate Perl/Python/Tcl LEF/DEF interfaces into one package. Besides, the object interface is improved to reduce complexity.
    Current release(LEF interface) is available here.
    Current release(DEF interface) is available here.

  8. Perl/Python/Tcl Interface for Gate-level Netlist Engine
    Current release(Tcl version) is available here.
    Current release(Perl version) is available here.
    Current release(Python version) is available here.

  9. Perl/Python/Tcl Interface to Synopsys .lib parser(TAPin liberty parser)
    Current release(Perl/Python/Tcl version) is available here

  10. Tclsis
    This package links the Berkeley SIS package for logic synthesis. You don't even have to change your original SIS scripts to run. In addition, you can use any Tcl command to do scripting. Current release is available here.

  11. Perlsis
    This package links the Berkeley SIS package for logic synthesis. Current release is available here.

  12. Perllef
    This package links the Cadence LEF parser. Current release is available here.

  13. Tcllef
    This package links the Cadence LEF parser. Current release is available here.

How to Do it?

Basically, we use SWIG plus some native codes, scripts and tricks to make this possible. Our paper has more details.

Plan to Do

    License

    These programs are free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


    Send an email to me if you got any question.