270 likes | 438 Views
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
E N D
On Libraries, Reuse, and the Value of EDA Software Igor MarkovUniv. 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 toolsbe developed ? • Should they be maintained or rewritten ? • How to ensure thatthey 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 popularityin academia (surprising conclusions)
UCLApack / UMpack • Developed mostly at UCLAby 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 databasethat maps most of LEF/DEF syntaxto 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 sourceis 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 worsethan 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 infrastructurein 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 examplesgiven 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 reportmodifying 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 LogicRapid-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 greaterthan MLPart adoption • MLPart has only one competitor(hMetis, unavailable in source code,unavailable for commercial use) • There are about 10 academic placersclaim 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 researchis tool-oriented • To force people think about infrastructure, we need the scale of OpenAccess • A good library can be overlookedb/c its value is not clearly seen • Best combination: lightweight toolwith 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 limitg++ 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 structuresin 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 nightmarebefore ~2002 • Now g++ and MSVC++ are stable
Takeaways • To improve productivity • Must use C++ with STL • Must develop reusablesoftware 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 toolsbe developed ? • Should they be maintained or rewritten ? • How to ensure thatthey do their job well ? • Is EDA research at fault ? • How to improve value of EDA tools?
Conclusions • Existing EDA code-basesare old and inefficient • Rely on outdated SW development infrastructure • There is room for improvementin core tools + new tools are needed • Need to ensure better code reuse • New SW development methods more efficient • Need to attract best codersand keep them
Riddle for you … • The greatest threatto the EDA industry • Six letters_ _ _ _ _ _Letters: T