september 2004 openaccess gear david papa 1, zhong xiu 2, christoph albrecht, philip chong, andreas...

1
September 2004 OpenAccess Gear David Papa 1 , Zhong Xiu 2 , Christoph Albrecht, Philip Chong, Andreas Kuehlmann 3 Cadence Berkeley Labs 1 University of Michigan, 2 Carnegie Mellon University, 3 University of California at Berkeley Built on OpenAccess for integration into other tools, e.g. placement Two modes: Full timing analysis and incremental timing analysis Different models for wires: No wire delay, bounding box model; can be extended easily to more accurate models Library formats: Cadence .tlf and Synopsys .lib Timing constraints: Subset of .sdc constraints Standardized timing reports Detailed documentation Cell (DFFX1) { Cell (DFFX1) { … … … … pin(Q) { pin(Q) { … … … … timing() { timing() { related_pin : "CK"; related_pin : "CK"; timing_sense : non_unate; timing_sense : non_unate; timing_type : rising_edge; timing_type : rising_edge; cell_rise(7x7) { cell_rise(7x7) { index_1 (“… …"); index_1 (“… …"); index_2 (“… …"); index_2 (“… …"); values ( … …); values ( … …); } } } } CELL(DFFX1 CELL(DFFX1 … … … … TIMING_Model(7x7 TIMING_Model(7x7 (Spline (Spline (LOAD_AXIS …) (LOAD_AXIS …) (INPUT_SLEW_AXIS …) (INPUT_SLEW_AXIS …) data(… …) data(… …) ) ) … … … … Path( CK => Q … …) Path( CK => Q … …) … … … … Setup( D => CK … …) Setup( D => CK … …) … … … … ) #SDC constraint file #SDC constraint file create_clock create_clock period 1 [get_ports {CK}] period 1 [get_ports {CK}] set_input_delay 0.04 set_input_delay 0.04 clock CK [all_inputs] clock CK [all_inputs] set_output_delay 0.02 set_output_delay 0.02 clock CK [all_outputs] clock CK [all_outputs] set_driving_cell set_driving_cell lib_cell INVX2 [get_ports {G*5}] lib_cell INVX2 [get_ports {G*5}] set_load 0.01 [get_ports {G2*}] set_load 0.01 [get_ports {G2*}] .tl f .li b .sd c Documentat ion Static Timing Analysis: OAGear Timer BUF1 BUF1 AND AND … … Standard Cell Library oaTerm oaTerm oaGearTimerPointMaster oaGearTimerPointMaster (with arcs) (with arcs) Instanti Instanti ated ated Inst1 Inst1 Inst6 Inst6 Inst5 Inst5 Inst4 Inst4 Inst3 Inst3 Inst2 Inst2 oaIns oaIns t oaInstTerm oaInstTerm oaGearTimerPoi oaGearTimerPoi nt nt oaTerm oaTerm oaGearTimerPoin oaGearTimerPoin t oaGearTimerExtD oaGearTimerExtD elay elay oaNet oaNet Design The timing information is stored using the OpenAccess extension mechanism (oaGearTimerPoint, …) Incremental timing analysis When a modification occurs: Mark the required arrival time of nodes in the fan-in cone invalid Mark the arrival time of nodes in the fan-out cone invalid Later if there is a query, update the timing information Fanin cone Fanin cone Fanout cone Fanout cone Modifica Modifica tion tion Query: update arrival time, required arrival time and slew rate Benchmarks OAGear provides two sets of benchmark designs: – Open Benchmarks: ISCAS89 benchmark suite and a hypothetical 250nm standard cell library – Restricted Benchmarks: http://crete.cadence.com/, Verilog files and scripts are available, Faraday benchmark suite and a 250nm GSC (Generic Standard Cell) library Necessary binary files to convert those designs into OpenAccess formats Aimed for researchers to test their timing driven placement algorithms and incremental placement algorithms BENCHMARKS Timing Library OpenAccess Format Benchmarks GUI: Bazaar • Easy to read and extend, built on Qt and OpenGL • In the style and spirit of the OpenAccess standard Layout Editor displays design directly from database • Controller operates Capo API for on-demand placement Schematic Editor displays design’s logical connectivity • Fast OpenGL rendering scales to very large designs •“oaRegionQuery” accesses only relevant portions of the design Introduction • OpenAccess is a “community-source” industry-standard EDA database developed to help promote tool interoperability • Tools using OpenAccess are becoming available in industry, but resources for academic research are lacking • Our project: OpenAccess Gear (OAGear) – Release useful tools and libraries to enable research – Make OpenAccess a useful platform for academia – Provide common infrastructure for research and benchmarking – Adopt an open source development model – Initiated and supported by Cadence Design Systems Overview • Current focus on four main components – GUI: Layout and Schematic Viewer – Static Timing Analysis – Generic Standard Cell Placement Interface: Capo API – Benchmarks in OpenAccess Format Summary • Planned Release Date: September 30, 2004 • OAGear Home: http://oagear.sourceforge.net/ • OpenAccess Home: http://openeda.si2.org/ • Available as open source, free for any use – Open development model maximizes exchange of ideas and software between universities – Users encouraged to contribute bug reports, patches and functional components • Ongoing development effort • Possible future components: synthesis, routing, extraction GUI: Bazaar •“Bazaar” = open market place where people bring their goods to sell Designed for easy to rework code and enhanced interoperability – Model-View-Controller design pattern Tool developers can bring their work to our “Bazaar” to contribute and promote them “Model-View-Controller” Design Pattern Applied to Bazaar OpenAccess (MODEL) Bazaar (VIEW) CONTROLLER Generic Placement Interface + Capo API • Universal placer interface: – place(oaLib,oaCell,oaView) • Routines to: Import OpenAccess Designs and build Capo internal data structures Run (potentially custom) Capo Placement Flows Timing driven placement flows with prototypes • “Strategy” design pattern, for placer interoperability Pick and choose EDA algorithms Compose new flows and combine tools in new ways previously too difficult! • Future uses: Designed to be extended for Incremental flows. Contributions from other researchers OpenAccess Static Timing Analysis Place Block Capo Run Timer Weight Nets OpenAccess GUI Benchmarks Timer Placement API Capo Technical Capabilities Design Overview Static Timing Analysis: OAGear Timer

Upload: morgan-gibbs

Post on 22-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: September 2004 OpenAccess Gear David Papa 1, Zhong Xiu 2, Christoph Albrecht, Philip Chong, Andreas Kuehlmann 3 Cadence Berkeley Labs 1 University of Michigan,

September 2004OpenAccess GearDavid Papa1, Zhong Xiu2, Christoph Albrecht, Philip Chong, Andreas Kuehlmann3

Cadence Berkeley Labs1University of Michigan, 2Carnegie Mellon University, 3University of California at Berkeley

• Built on OpenAccess for integration into other tools, e.g. placement• Two modes: Full timing analysis and incremental timing analysis• Different models for wires: No wire delay, bounding box model;

can be extended easily to more accurate models• Library formats: Cadence .tlf and Synopsys .lib• Timing constraints: Subset of .sdc constraints• Standardized timing reports• Detailed documentation

Cell (DFFX1) {Cell (DFFX1) {… …… …pin(Q) { pin(Q) { … …… …timing() { timing() { related_pin : "CK"; related_pin : "CK"; timing_sense : non_unate; timing_sense : non_unate; timing_type : rising_edge; timing_type : rising_edge; cell_rise(7x7) { cell_rise(7x7) { index_1 (“… …"); index_1 (“… …"); index_2 (“… …"); index_2 (“… …"); values ( … …); values ( … …); } } }}}}

CELL(DFFX1CELL(DFFX1 … … … … TIMING_Model(7x7TIMING_Model(7x7 (Spline(Spline (LOAD_AXIS …)(LOAD_AXIS …) (INPUT_SLEW_AXIS …)(INPUT_SLEW_AXIS …) data(… …)data(… …) )) )) … … … …Path( CK => Q … …)Path( CK => Q … …)… …… …Setup( D => CK … …)Setup( D => CK … …)… …… …))

#SDC constraint file#SDC constraint filecreate_clock create_clock – –period 1 [get_ports {CK}]period 1 [get_ports {CK}]set_input_delay 0.04 set_input_delay 0.04 – –clock CK [all_inputs]clock CK [all_inputs]set_output_delay 0.02 set_output_delay 0.02 – –clock CK [all_outputs]clock CK [all_outputs]set_driving_cell set_driving_cell – –lib_cell INVX2 [get_ports {G*5}]lib_cell INVX2 [get_ports {G*5}]set_load 0.01 [get_ports {G2*}]set_load 0.01 [get_ports {G2*}]

.tlf .lib .sdc Documentation

Static Timing Analysis: OAGear Timer

BUF1BUF1

ANDAND

… …

Standard Cell Library

oaTerm oaTerm

oaGearTimerPointMaster (with arcs)oaGearTimerPointMaster (with arcs)

InstantiatedInstantiated

Inst1Inst1

Inst6Inst6

Inst5Inst5

Inst4Inst4

Inst3Inst3

Inst2Inst2

oaInstoaInst

oaInstTerm oaInstTerm oaGearTimerPointoaGearTimerPointoaTerm oaTerm

oaGearTimerPointoaGearTimerPointoaGearTimerExtDelayoaGearTimerExtDelay

oaNetoaNet

Design

The timing information is stored using the OpenAccess

extension mechanism (oaGearTimerPoint, …)

Incremental timing analysis• When a modification occurs:

– Mark the required arrival time of nodes in the fan-in cone invalid

– Mark the arrival time of nodes in the fan-out cone invalid

• Later if there is a query, update the timing information

Fanin coneFanin cone

Fanout coneFanout cone

ModificationModification

Query: update arrival time, required arrival time and slew rate

Benchmarks• OAGear provides two sets of benchmark designs:

– Open Benchmarks: ISCAS89 benchmark suite and a hypothetical 250nm standard cell library

– Restricted Benchmarks: http://crete.cadence.com/, Verilog files and scripts are available, Faraday benchmark suite and a 250nm GSC (Generic Standard Cell) library

• Necessary binary files to convert those designs into OpenAccess formats

• Aimed for researchers to test their timing driven placement algorithms and incremental placement algorithms

BENCHMARKSTimingLibrary

OpenAccessFormat

Benchmarks

GUI: Bazaar

• Easy to read and extend, built on Qt and OpenGL• In the style and spirit of the OpenAccess standard• Layout Editor displays design directly from database• Controller operates Capo API for on-demand placement• Schematic Editor displays design’s logical connectivity• Fast OpenGL rendering scales to very large designs• “oaRegionQuery” accesses only relevant portions of the

design

Introduction

• OpenAccess is a “community-source” industry-standard EDA database developed to help promote tool interoperability

• Tools using OpenAccess are becoming available in industry, but resources for academic research are lacking

• Our project: OpenAccess Gear (OAGear)– Release useful tools and libraries to enable research– Make OpenAccess a useful platform for academia– Provide common infrastructure for research and

benchmarking– Adopt an open source development model– Initiated and supported by Cadence Design Systems

Overview

• Current focus on four main components– GUI: Layout and Schematic Viewer– Static Timing Analysis– Generic Standard Cell Placement Interface: Capo API– Benchmarks in OpenAccess Format

Summary

• Planned Release Date: September 30, 2004• OAGear Home: http://oagear.sourceforge.net/• OpenAccess Home: http://openeda.si2.org/• Available as open source, free for any use

– Open development model maximizes exchange of ideas and software between universities

– Users encouraged to contribute bug reports, patches and functional components

• Ongoing development effort• Possible future components: synthesis, routing, extraction

GUI: Bazaar

• “Bazaar” = open market place where people bring their goods to sell

• Designed for easy to rework code and enhanced interoperability – Model-View-Controller design

pattern• Tool developers can bring their

work to our “Bazaar” to contribute and promote them

“Model-View-Controller” Design Pattern Applied to Bazaar

OpenAccess (MODEL)

Bazaar(VIEW) CONTROLLER

Generic Placement Interface + Capo API• Universal placer interface:

– place(oaLib,oaCell,oaView)

• Routines to: – Import OpenAccess Designs and build Capo internal

data structures– Run (potentially custom) Capo Placement Flows– Timing driven placement flows with prototypes

• “Strategy” design pattern, for placer interoperability– Pick and choose EDA algorithms – Compose new flows and combine tools in new ways

• previously too difficult!

• Future uses:– Designed to be extended for Incremental flows.– Contributions from other researchers

OpenAccess

Static Timing Analysis

PlaceBlock

Capo

RunTimer

WeightNets

OpenAccess

GUI

Benchmarks

Timer

PlacementAPI

Capo

Technical Capabilities

Design Overview

Static Timing Analysis: OAGear Timer