140 likes | 286 Views
Early Research Experience With OpenAccess Gear : An Open Source Development Environment For Physical Design. Zhong Xiu* , David A. Papa † , Philip Chong, Christoph Albrecht, Andreas Kuehlmann , Rob A. Rutenbar*, Igor L. Markov †
E N D
Early Research Experience With OpenAccess Gear: An Open Source Development Environment For Physical Design Zhong Xiu*, David A. Papa†, Philip Chong, Christoph Albrecht, Andreas Kuehlmann, Rob A. Rutenbar*, Igor L. Markov† *Carnegie Mellon University, †University of Michigan, Cadence Berkeley Labs
Outline • Background / motivation • What OpenAccess is • What the OA Gear project is • OA Gear Components • OA Gear Timer • OA Gear GUI -- Bazaar • OA Gear Placement Wrapper – U Michigan Capo placer • OA Gear Benchmarks • Example OA Gear development application • Extending and natively integrating the CMU WARP2 Placer
About OpenAccess • OpenAccess is an open source design database for EDA • OA has been adopted by many companies • Standardization helps tool interoperability • OA should also be beneficial for academic users • Ensures benchmarks, experimental results can be easily exchanged • Technology transfer of algorithms developed at universities into industry tools • Despite potential benefits, academic researchers slow to adopt • Problem: still easier to use existing ad hoc databases than std infrastructure • Problem: not enough “critical mass” of other researchers using OA • Problem: essential utilities/components still lacking in existing OA
The Problem…. And A Solution • Our position: A standard EDA infrastructure is vital for universities • Our solution: OpenAccess Gear • OA Gear:a library of essential utilities / components built on top of OA • Gives more incentive for academics to standardize on OA • Improves – we hope – quality of academic research
Open source licensing model Critical for academic use True community development model Freely distributed, no cost Available even on tightest budget Also free for industry users Written in portableC++ Runs on any platform running OA OA Gear: 4 components chosen for relative importance to research OA Gear Timer: Full static timer OA Gear Bazaar: User Interface Capo Wrapper: Placer Interface Benchmarks:Netlists & PDKs Plan to add new components to OA Gear on a continuing basis OA Gear Overview
Academics often ignore timing Difficult/expensive to integrate commercial timing engines Significant task to write own timer Significant calibration/fidelity issues Solution: OA Gear Timer Common timing infrastructure Validated, integrated, rich feature set Upside Helps ensure results from different researchers can be directly compared OA Gear Timer
Supports Cadence .TLF and Synopsys Liberty (.LIB) formats Not a complete implementation… … enough to satisfy common needs Supports .SDC constraint subset Clock period value External delay information Timer has two modes Batch: Full flat timing analysis Incremental: Fast local D analysis Three wire load models (so far…) Idealized: ignores wire loads Linear: half-perimeter bbox using unit C, R info from tech lib Custom: allows users to specify their own models for wiring Standard APIs & reporting formats The critical path Paths –from –to –through a node CDN-style timing report compatible Results validate to ~1% against Cadence’s RTL Compiler tool OA Gear Timer Features:
OA Gear Timer: Example Results • Experiment: simple, iterative “where to put best buffer” optimization • Result: incremental timing 45X faster on average than batch mode
OA Gear Bazaar: Graphical User Interface • Because you cannot debug/develop what you cannot see • Layout & netlist viewers, with a command-line scripting window • Extensible by OA users, developed using OpenGL & QT toolkits Capo placement example Netlist viewer Command line scripting
Capo Wrapper (Placement) • Motivations • First: An OA Gear placer let users work on apps requiring some real layout • Second: Excellent example of how to integrate a large, already mature CAD tool • OA Gear includes a wrapper for the open-source Capo placer • Tool developed at UCLA/Michigan for several years • Existing codebase does not use OA; “wrapper” API allows Capo to use OA Wrapper 1. Read OA 2. Gen. Capo 4. Read Capo 5. Write OA OpenAccess Capo 3. Place Capo DB
OA Gear Benchmarks • 2 sets of benchmarks available • Open, freely distributable designs • ISCAS89 designs mapped to hypothetical 250nm cell library • Included as part of OA Gear package • Restricted designs • Faraday benchmark suite mapped to Cadence GSC cell library • License prohibits bundling with OA Gear • Download available from http://crete.cadence.com/
WARP2 with uniform net weight Static timing analysis Compute new weights Timing-driven WARP2 with new weights Legalize (Domino) Larger Development Ex: CMU WARP2 Placer • Our starting point: WARP1 [Xiu et al DAC04] • Wirelength-only placer with ad hoc academic db • Our result: WARP2 [Xiu et al DAC05] • Timing-driven -- complete native OA integration • OA Gear Timer critical to flow • OA Gear Benchmarks, PDKs exploited heavily • How fast: ~1 month to integrate, prototype • Out best guess: 3X – 4X faster than proprietary
OA Gear: Status & Future Plan • Initially released Nov 2004 • ~300 downloads so far • New projects for this summer OA Gear Open source model working well True community effort Fixes/improvements already from user feedback Users have even provided complete bug patches
Credits/Website • Zhong Xiu Carnegie Mellon Timer, Warp • David Papa Univ of Michigan Bazaar, Capo Wrapper • Philip Chong Cadence Berkeley Labs OA • Christoph Albrecht Cadence Berkeley Labs OA • Andreas Kuehlmann Cadence Berkeley Labs OA • Rob A. Rutenbar Carnegie Mellon Warp • Igor I. Markov Univ of Michigan Capo http://openedatools.si2.org/oagear/