![Page 1: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/1.jpg)
On Libraries, Reuse, and the Value of EDA Software
Igor MarkovUniv. of Michigan & Synplicity
![Page 2: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/2.jpg)
Outline
• The challenge
• Extrapolating from past experiences
• What undermines the value of SW?
• What can we do ?
![Page 3: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/3.jpg)
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?
![Page 4: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/4.jpg)
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?
![Page 5: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/5.jpg)
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)
![Page 6: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/6.jpg)
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
![Page 7: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/7.jpg)
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
![Page 8: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/8.jpg)
What’s Available in UMpack?(2)
• UCLA DB (written in 1998-1999)– An object-oriented database
that 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 source
is available
![Page 9: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/9.jpg)
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
![Page 10: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/10.jpg)
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
![Page 11: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/11.jpg)
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
![Page 12: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/12.jpg)
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”
![Page 13: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/13.jpg)
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
![Page 14: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/14.jpg)
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
![Page 15: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/15.jpg)
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
![Page 16: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/16.jpg)
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 toolwith a clear functionality
![Page 17: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/17.jpg)
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
![Page 18: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/18.jpg)
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
![Page 19: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/19.jpg)
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
![Page 20: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/20.jpg)
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
![Page 21: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/21.jpg)
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
![Page 22: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/22.jpg)
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 ?)
![Page 23: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/23.jpg)
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?
![Page 24: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/24.jpg)
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
![Page 25: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/25.jpg)
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?
![Page 26: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/26.jpg)
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
![Page 27: On Libraries, Reuse, and the Value of EDA Software](https://reader035.vdocument.in/reader035/viewer/2022062516/56812a44550346895d8d71e8/html5/thumbnails/27.jpg)
Riddle for you …
• The greatest threatto the EDA industry– Six letters
_ _ _ _ _ _
Letters: T