markov_EDP1 - EDA Industry Working Groups

Download Report

Transcript markov_EDP1 - EDA Industry Working Groups

On Libraries, Reuse, and
the Value of EDA Software
Igor Markov
Univ. of Michigan & Synplicity
Outline
•
•
•
•
The challenge
Extrapolating from past experiences
What undermines the value of SW?
What can we do ?
The Challenge
• Are EDA companies undervalued ?
– Very sophisticated software
– Highly educated employees
– But stock does not grow !
• Little is said about creating value in
EDA software development process
– Are we spinning our wheels ?
– Are we undermining the value of EDA ?
– Are there deficiencies in our eco-system?
Efficiency, Success, Adoption
• How fast should EDA tools
be developed ?
• Should they be maintained
or rewritten ?
• How to ensure that
they do their job well ?
• How to ensure/evaluate adoption?
• How to improve value of EDA tools?
Personal Experiences
• Developing several academic tools
adopted in companies
– UCLApack  UMpack
– Capo, MLPart, infrastructure, etc
– Very liberal license
• Interaction with adopters
– We get 2-3 requests per week
• Measurements of popularity
in academia (surprising conclusions)
UCLApack / UMpack
• Developed mostly at UCLA
by Andrew Caldwell
(Simplex  Cadence  Tabula)
and Igor Markov (U.Michigan)
– supervised by Andrew Kahng
• Initial release at DAC 2000
– 120K lines in C++
• Currently over 200K lines
What’s Available in UMpack?
(1)
• Most popular: the Capo placer
– Originally written in 1997-2000,
maintained and extended at Michigan
– Uses min-cut partitioning,
works well for <100K std. cells
– Routability-driven
(beats most of the academic tools,
some commercial tools)
– Robust, well-tested, >100 tape-outs
– All source code is available
What’s Available in UMpack?
(2)
• UCLA DB (written in 1998-1999)
– An object-oriented database
that maps most of LEF/DEF syntax
to in-memory data structures
– Includes two parsers
(one written at UCLA,
one released by Cadence)
– Highly modular, reasonably efficient
– Not entirely up-to-date, but all source
is available
What’s Available in UMpack?
(3)
• MLPart (written in 1997-2000)
– A multi-level min-cut partitioner
– Used in Capo  has been tested
extremely well
– Used by several companies:
for prototyping logic synthesis tools,
for verification (production code)
– Results are usually a little worse
than hMetis, but MLPart is available
in source code
What’s Available in UMpack?
(4)
• Parquet floorplanner
(written in 2001-2004)
– Now a component of Capo
– Helped Capo outperform Cadence by 70%
at ISPD 2002
• Extensive infrastructure
in two dozen packages
–
–
–
–
Generic data structures, statistics
Built-in debugging tools
Geometry primitives, hierarchy mgmt, etc
Utilities, e.g., LEFDEF  our formats
What’s Available in UMpack?
(5)
• OpenAccess compatibility
– Michigan + Cadence Labs
• UMpack/Capo is recommended for all
OA Gear downloads
– Used to visualize circuits
• MLPart is compatible with hMetis
– C-API (Synplicity) + hMetis wrapper
• Works with g++ 3.1 and above on Linux
& Solaris
• Works with MSVC++ on Windows
• Synplicity contrib’d a 64-bit port
What’s Available in UMpack?
(5)
• Simplified data formats
– The Capo input format is now
supported by 20+ academic placers
– Intel, IBM and others have converters
+ LEF/DEF converter
– A good number of examples
given as regression tests
• Documentation
– Web-based + included +
“self-documented code”
Adoption of Our Tools (1)
• The license allows any use for free
(the MIT X Window license)
– No restrictions for academic use
– No notification requirement
• Dozens of papers report
modifying Capo
• Start-ups asked for a list of people
who know Capo source code
Adoption of Our Tools (2)
• Synplicity used Capo
in Amplify RC for LSI Logic
Rapid-chip architecture
– 100s tape-outs over two years
– Suddenly discontinued
when LSI quit the fab business
• Several start-ups are still using Capo
(are sending bug reports)
• MLPart is used in Certify
Observations
• Surprise: Capo adoption 10x greater
than MLPart adoption
– MLPart has only one competitor
(hMetis, unavailable in source code,
unavailable for commercial use)
– There are about 10 academic placers
claim better results than Capo on large
netlists (but none are available in source
code)
• UCLA DB adoption – non-existent
• Parquet adoption - huge
Explanations ?
• Source-code availability does wonders
• EDA industry & EDA research
is tool-oriented
– To force people think about infrastructure,
we need the scale of OpenAccess
– A good library can be overlooked
b/c its value is not clearly seen
• Best combination: lightweight tool
with a clear functionality
Personal Experiences
• Superficial familiarity with
commercial EDA software
– Talking to developers
– Listening to invited talks
– Occasionally looking at source code
• 8 EDA companies,
names starting with
– A, C, I, M, S
EDA Industry SW is Old
• Several companies limit
g++ to very old versions
– Perceived stability
– At least 20% lost in tool runtime
– Old versions may not support
many language features
• Several companies ban C++
– Main argument: developers
shoot themselves in the foot
Compare to UCLApack
• Written with heavy use of C++
• Relies on the Standard Template
Library (STL) for data structures
– Abundant online documentation
– Undergraduate students know it
(vs. homegrown data structures
in companies)
– Very efficient
– “Clean” and elegant interface
• UCLApack: practically no pointers
Compare to UCLApack
• Use of STL 
– More compact, conceptual code
– Less documentation
– Less unit testing
• However…
– Using STL was a nightmare
before ~2002
– Now g++ and MSVC++ are stable
Takeaways
• To improve productivity
– Must use C++ with STL
– Must develop reusable
software libraries with clean interfaces
(as is done by OpenAccess coalition)
• Obstacles?
– Maturity level of SW developers
Personal Experiences (3)
• Coaching Michigan students
participating in ICCAD CADathlon
– Three wins for Michigan in 5-6 years
– Two 2nd places
• Participating in ISPD contests
– Won the routing contest last year
• Where did the best coders go?
(are they still interested in EDA ?)
Observations
• Of CADathlon prize-winners
– One went to Microsoft, one to LM
– Two quit EDA
– One became an EDA faculty
– Two are working for EDA companies
• Big questions
– Do we need to attract best coders?
– Is there much room improving SW?
ISPD P&R contests
• Dramatic year-to-year
improvements in results
• In 2006 and 2007, the 1st place
team was last the year before !
• In most cases, the winning entries
were written from scratch
(APlace, Kraftwerk2,
MaizeRoute, FGR)
• Academic tools better than industry
Efficiency, Success, Adoption
• How fast should EDA tools
be developed ?
• Should they be maintained
or rewritten ?
• How to ensure that
they do their job well ?
• Is EDA research at fault ?
• How to improve value of EDA tools?
Conclusions
• Existing EDA code-bases
are old and inefficient
– Rely on outdated SW development
infrastructure
– There is room for improvement
in core tools + new tools are needed
• Need to ensure better code reuse
• New SW development methods
more efficient
• Need to attract best coders
and keep them
Riddle for you …
• The greatest threat
to the EDA industry
– Six letters
______
Letters: T