On Libraries, Reuse, and the Value of EDA Software Igor Markov Univ. of Michigan & Synplicity.

Slides:



Advertisements
Similar presentations
The Web Wizards Guide to Freeware/Shareware Chapter Six Open Source Software.
Advertisements

Capo: Robust and Scalable Open-Source Min-cut Floorplacer Jarrod A. Roy, David A. Papa,Saurabh N. Adya, Hayward H. Chan, James F. Lu, Aaron N. Ng, Igor.
COM vs. CORBA.
OpenAccess Workshop Presentation, March Joining OpenAccess: the R&D balance sheet Ivo van Zandvoort VP Engineering Sagantec Netherlands.
'08 Rabat Why are we using FreeBSD? Scaleable Services Workshop AfNOG 2008 Rabat, Morocco slides by Hervey Allen presented by Joe Abley.
Software Freedom Day th September 2007 Asia Pacific Institute of Information Technology Colombo, Sri Lanka. Nazly Ahmed Scripting The Web.
DARPA Bookshelf For VLSI CAD Algorithms: Progress and Future Directions Andrew E. Caldwell, Andrew B. Kahng and Igor L. Markov.
Constructive Benchmarking for Placement David A. Papa EECS Department University of Michigan Ann Arbor, MI Igor L. Markov EECS.
Faster SAT and Smaller BDDs via Common Function Structure Fadi A. Aloul, Igor L. Markov, Karem A. Sakallah University of Michigan.
Andrew Kahng – November 2002 ICCAD-2002 Open Source Panel Andrew B. Kahng UC San Diego CSE & ECE Depts. Igor L. Markov Univ. of Michigan EECS Dept.
When Should We Adopt Open Access? Igor Markov University of Michigan.
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Can Recursive Bisection Alone Produce Routable Placements? Andrew E. Caldwell Andrew B. Kahng Igor L. Markov Supported by Cadence.
DUSD(Labs) GSRC bX update March 2003 Aaron Ng, Marius Eriksen and Igor Markov University of Michigan.
(An Introduction for Programmers)
J.A. Carballo IBM Corporate Venture Group Blade.org Summit CAD Research, Pay Now or Pay Later... ICCAD-2006 Monday Evening Panel Andrew B. Kahng Professor,
September 2004 OpenAccess Gear David Papa 1, Zhong Xiu 2, Christoph Albrecht, Philip Chong, Andreas Kuehlmann 3 Cadence Berkeley Labs 1 University of Michigan,
© 2011 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
Your Interactive Guide to the Digital World Discovering Computers 2012.
Lesson 4 Computer Software
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
© R.A. Rutenbar 2005 Early Research Experience With OpenAccess Gear : An Open Source Development Environment For Physical Design Zhong Xiu*, David A. Papa.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
1 Software Process Lecture Outline Nature of software projects Engineering approaches Software process A process step Characteristics of a good.
Research infrastructure and knowledge management Eric Maryniak.
REVIEW OF NA61 SOFTWRE UPGRADE PROPOSAL. Mandate The NA61 experiment is contemplating to rewrite its fortran software in modern technology and are requesting.
Speaking Bluntly about SharpHDL: Some Old Stuff and Some Other Proposed Future Extensions Gordon J. Pace & Christine Vella Synchron’05 Malta, November.
The Open Source Project Andreas Fabri GeometryFactory Lutz Kettner Max Planck Institute.
Horizontal Benchmark Extension for Improved Assessment of Physical CAD Research Andrew B. Kahng, Hyein Lee and Jiajia Li UC San Diego VLSI CAD Laboratory.
HPVIS and the "Architecture of Participation" Presented at First U.S. Conference on Characterizing Chemicals In Commerce: Using Data on High Production.
© 2003 Xilinx, Inc. All Rights Reserved For Academic Use Only Xilinx Design Flow FPGA Design Flow Workshop.
CSC 395 – Software Engineering Lecture 12: Reusability –or– Programming was Bjarne Again.
Petri Net Markup Language (PNML) Nickolas Paladino Oct. 9, 2002 University of Central Florida.
PHP Features. Features Clean syntax. Object-oriented fundamentals. An extensible architecture that encourages innovation. Support for both current and.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
Chapter 3 Software. Learning Objectives Upon successful completion of this chapter, you will be able to: Define the term software Describe the two primary.
Developing software and hardware in parallel Vladimir Rubanov ISP RAS.
FreeHEP 2000 CHEP – February 2000 Tony Johnson – SLAC Saul Youssef - SCRI.
Recursive Bisection Placement*: feng shui 5.0 Ameya R. Agnihotri Satoshi Ono Patrick H. Madden SUNY Binghamton CSD, FAIS, University of Kitakyushu (with.
Tools - Design Manager - Chapter 6 slide 1 Version 1.5 FPGA Tools Training Class Design Manager.
Introduction What is detector simulation? A detector simulation program must provide the possibility of describing accurately an experimental setup (both.
Lecture 1 – Overview (rSp06) ©2008 Joanne DeGroat, ECE, OSU -1- Functional Verification of Hardware Designs EE764 – Functional Verification of Hardware.
Rational Unified Process (RUP)
Introduction to UNIX CS465. What is UNIX? (1) UNIX is an Operating System (OS). An operating system is a control program that allocates the computer's.
1 GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning,
Reconfigurable Communication Interface Between FASTER and RTSim Dec0907.
COP 3275 Chapter 01 course website: Jonathan C.L. Liu, Ph.D. CISE Department University of Florida.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 1.
CSCI-383 Object-Oriented Programming & Design Lecture 25.
Multilevel Partitioning
OpenAccess Gear David Papa 1 Zhong Xiu 2, Christoph Albrecht, Philip Chong, Andreas Kuehlmann 3 Cadence Berkeley Labs 1 University of Michigan, 2 Carnegie.
1/18/2000STScI Software Workshop Object-oriented Design Elements of the OPUS Application Programming Interface Data Processing Team.
C.A.D.: Bookshelf June 18, 8:00am-11:00am. Outline Review: [some of] bookshelf objectives Where we want to go vs what we have now Invited presentations.
OPERATING SYSTEMS (OS) By the end of this lesson you will be able to explain: 1. What an OS is 2. The relationship between the OS & application programs.
Firm SCALE Mid-term Report. What happened in the past 2 weeks Improved landing page design & code Better front-end visualization with chart feature More.
INTRO. To I.T Razan N. AlShihabi
CSC391/691 Intro to OpenCV Dr. Rongzhong Li Fall 2016
CAD-IP Reuse via the Bookshelf for Fundamental VLSI CAD Algorithms
Microprocessor and Assembly Language
Did your feature got in, out or planned?
Introduction to JSP Liu Haibin 12/09/2018.
Chapter 2: The Linux System Part 1
SISAI STATISTICAL INFORMATION SYSTEMS ARCHITECTURE AND INTEGRATION
OpenAccess Coalition: Goals and Status
ICCAD-2002 Open Source Panel Andrew B
THE ECE 554 XILINX DESIGN PROCESS
THE ECE 554 XILINX DESIGN PROCESS
Chapter 3 Software.
Chi-An (Rocky) Wu, Cadence Design Systems, Inc.
Presentation transcript:

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 , 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 ) –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 ) –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 ) –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 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 2 nd 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 1 st 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