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
© R.A. Rutenbar 2005
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
© Rob A. Rutenbar 2005 Slide 2
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
© Rob A. Rutenbar 2005 Slide 3
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
© Rob A. Rutenbar 2005 Slide 4
OA Gear Overview
Open source licensing model OA Gear: 4 components chosen for
Critical for academic use relative importance to research
True community development model OA Gear Timer: Full static timer
OA Gear Bazaar: User Interface
Freely distributed, no cost Capo Wrapper: Placer Interface
Available even on tightest budget Benchmarks: Netlists & PDKs
Also free for industry users
Plan to add new components to
Written in portable C++
OA Gear on a continuing basis
Runs on any platform running OA
GUI Timer
Placer Capo
Benchmarks OpenAccess API
© Rob A. Rutenbar 2005 Slide 5
OA Gear Timer
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
© Rob A. Rutenbar 2005 Slide 6
OA Gear Timer Features:
Supports Cadence .TLF and Three wire load models (so far…)
Synopsys Liberty (.LIB) formats Idealized: ignores wire loads
Not a complete implementation… Linear: half-perimeter bbox using
… enough to satisfy common needs unit C, R info from tech lib
Custom: allows users to specify
their own models for wiring
Supports .SDC constraint subset
Clock period value
External delay information Standard APIs & reporting formats
The critical path
Paths –from –to –through a node
Timer has two modes
Batch: Full flat timing analysis CDN-style timing report compatible
Incremental: Fast local D analysis
Results validate to ~1% against
Cadence’s RTL Compiler tool
© Rob A. Rutenbar 2005 Slide 7
OA Gear Timer: Example Results
Experiment: simple, iterative “where to put best buffer” optimization
Result: incremental timing 45X faster on average than batch mode
Full Timing Incremental
Analysis Timing
Benchmarks (sec) (sec) Speedup
S10 0.27 0.16 1.69
S13207 59.50 1.31 45.42
S15850 121.76 3.72 32.73
S35932 2033.80 208.02 9.78
S38417 458.44 5.64 81.28
S38584 437.14 3.42 127.82
Faraday/DMA 698.85 13.14 53.18
Faraday/RISC 22189.07 2664.22 8.33
© Rob A. Rutenbar 2005 Slide 8
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
© Rob A. Rutenbar 2005 Slide 9
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 Capo
OpenAccess 3. Place
Capo DB
4. Read Capo
5. Write OA
© Rob A. Rutenbar 2005 Slide 10
OA Gear Benchmarks
2 sets of benchmarks available Type Name PIs POs Instances Registers
s13207 32 121 2680 466
Open, freely distributable designs
ISCAS89 designs mapped to s15850 15 87 4565 540
hypothetical 250nm cell library
Free s35932 36 320 11587 1728
Included as part of OA Gear package
s38417 29 106 14762 1463
Restricted designs s38584 13 278 12221 1292
Faraday benchmark suite mapped to
DMA 661 262 24942 2073
Cadence GSC cell library
License prohibits bundling with OA Gear Restricted DSP 575 269 24306 3550
Download available from
http://crete.cadence.com/ RISC 276 351 45455 7590
© Rob A. Rutenbar 2005 Slide 11
Larger Development Ex: CMU WARP2 Placer
Our starting point: WARP1 [Xiu et al DAC04]
WARP2 with uniform
Wirelength-only placer with ad hoc academic db net weight
Our result: WARP2 [Xiu et al DAC05] Static timing analysis
Timing-driven -- complete native OA integration
Compute new weights
OA Gear Timer critical to flow
OA Gear Benchmarks, PDKs exploited heavily
Timing-driven WARP2
with new weights
How fast: ~1 month to integrate, prototype
Out best guess: 3X – 4X faster than proprietary Legalize (Domino)
Wirelength-only WARP2 / Domino Timing-driven WARP2 / Domino
SWirelen Worst Neg Slack SCPU SWirelen Worst Neg Slack SCPU
1.00 1.000 1.00 1.01 0.635 1.47
© Rob A. Rutenbar 2005 Slide 12
OA Gear: Status & Future Plan
Initially released Nov 2004
~300 downloads so far OA Gear
New projects for this summer
Open source model working well
True community effort
Fixes/improvements already from user feedback
Users have even provided complete bug patches
© Rob A. Rutenbar 2005 Slide 13
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/
© Rob A. Rutenbar 2005 Slide 14