Académique Documents
Professionnel Documents
Culture Documents
Outline
History
Choice Of Scripting Language
When To Use Scripting Language
When Not To Use Scripting Language
Python For OpenAccess & Milkyway
Summary
Something Completely Different
Backup Slides
History
Internal CAD
Commercial CAD
History
Flexstream LSI Internal CAD
LSI Proprietary CAD system
Data base API written in C
Data base functions return error code that must be checked after
each function call
Global variables, Memory management
Written in C++
Use C++ exception rather that check return code
Abstraction layer to hide the data base
Main objective was to substantially reduce porting cost of internal
tools when data base changes
Python wrappers written for the common API
To provide rapid prototyping capability
Ease of use for Engineers
History
Third party CAD
Synopsys (Avant!)
Written in C++
Object oriented
Use C++ exception rather that check return code
Abstraction layer to hide the data base
Substantially reduce porting cost of internal tools
This allowed existing programs written for LSI Proprietary CAD system
to port by simply including new header files and recompiling.
Minor changes to the program startup and run time environment
specific code.
History
Third party CAD
GUI Forms
API
API
OpenAccess
V1
3rd Party
Database
LSI Database
Utilities
Tcl/Tk
History
Third party CAD
OpenAccess 2.0
GUI Forms
Decided to Natively
Adopt OA 2.x
As Common API
Utilities
Tcl/Tk
PYTHON
http://www.python.org/workshops/2000-01/proceedings/papers/elkner/pyYHS.html
10
11
12
13
Python
Interface
Python
Interface
Milkyway
File Based
Compiled
Translators
DEF
Interface
OpenAccess
DEF
Interface
DEF
Interface
DEF
Interface
DEF
File
75k gates +
3 rams
5:15 min
DEF
DEF
File
File
3:02 min + HAND edits
14
Milkyway
CHIP CELL
OpenAccess
15
16
17
18
19
FlexStream 1.0
Example
Flexstream to Milkyway
Not the same problem as
Milkyway to OA
Different connectivity model
requires converting edge
connected shapes to center line
connected shapes
DRC algorithm
Avant!
20
21
Python For
OpenAccess & Milkyway
22
24
API Header
Files
Code Generator
Hint
Information
Extension
Code
25
SUMMARY
26
SUMMARY
PYTHON & TCL Are used extensively at LSI
SUMMARY
JAVA
LSI Common API was developed when JAVA was in its
infancy
JAVA is very well supported and its feature set is growing at
a much faster rate than Tcl or Python.
28
THANK YOU
29
class HELLO_WORLD
create
make
feature
make is
do
io.put_string ("Hello, world!%N")
end
end
30