Top Banner
Pei-Ci Wu Martin D. F. Wong On Timing Closure: Buffer Insertion for Hold-Violation Removal DAC’14
27

On Timing Closure: Buffer Insertion for Hold-Violation Removal

Dec 30, 2015

Download

Documents

bradley-crosby

On Timing Closure: Buffer Insertion for Hold-Violation Removal. Pei-Ci Wu Martin D. F. Wong. DAC’14. Outline. Introduction Preliminaries Linear Programming Based Optimization Bottom-up Buffer Insertion Experimental Results Concluding Remarks. Introduction. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Pei-Ci Wu

Martin D. F. Wong

On Timing Closure: Buffer Insertion for Hold-ViolationRemoval

DAC’14

Page 2: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Outline

Introduction Preliminaries Linear Programming Based

Optimization Bottom-up Buffer Insertion Experimental Results Concluding Remarks

Page 3: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Introduction

Timing closure, which is to satisfy the timing constraints, is a key problem in the physical design

Setup (long-path) constraints ensure that the signal transitions do not arrive

too late hold-time (short-path) constraints

ensure that the signal transitions do not arrive too early

Page 4: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Typically, hold violations are addressed after setup optimization has been performed.

Discrete cell sizes (i.e. discrete buffer sizes for hold optimization) in modern industrial designs

Page 5: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Cell libraries specified for the setup constraints and the hold-time constraints are usually different in modern industrial designs

Page 6: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Preliminaries

Negative setup slacks and negative hold slacks indicate setup violations and hold violations

Page 7: On Timing Closure: Buffer Insertion for Hold-Violation Removal

TNS the absolute value of the total negative setup

slacks of all the pins in PO THS

the absolute value of the total negative hold slacks of all the pins in PO

TNS must not be worsen during hold-violation removal

Page 8: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Given: a design and a buffer library,

find a buffering solution such that: THS and the cost of buffering (i.e. area and

power consumption) are both minimized while TNS is not worsen.

Page 9: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Linear Programming Based Optimization

Inserting delay into wires to remove hold violations A linear programming formulation Extend such formulation for the complex timing

constraints Graph-reduction approach

Page 10: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Input Combinational circuit C* s.t. for any pin p of C*,

hold_slackp < 0 and setup_slackp > 0 C* can then be represented as a directed

acyclic graph G(V,E) V is the pins of C* (i, j) ∈ E represents an edge

Page 11: On Timing Closure: Buffer Insertion for Hold-Violation Removal

I : the zero in-degree pins O : the zero out-degree pins for each pin i in V

three real-value variables, xi(delays inserted at pin i for hold-time constraints), hai, and sai

Page 12: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Hold-time constraints

Page 13: On Timing Closure: Buffer Insertion for Hold-Violation Removal

For buffer library characterization is necessary in order to get an empirical ratio such that

we assume that the buffer only affects the driver cell and the sink cells of the buffer

Page 14: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Delays introduced by inserting the buffer is

(a) (b)

Page 15: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Setup constraints

Page 16: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Objective :

The setup constraints limit the delays that can be inserted

ri is only necessary when there is no feasible solution

Page 17: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Some pins with positive setup slacks and positive hold slacks that are not included

Page 18: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Graph Reduction

Page 19: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Bottom-up Buffer Insertion

Given: a pin i, hold delay DH and setup delay DS

Find a buffering solution at pin i from a buffer library B: hold delays introduced by the chosen buffers are

as close to DH

setup delays introduced by the chosen buffers are not larger than DS

Minimize the area of the chosen buffers

Page 20: On Timing Closure: Buffer Insertion for Hold-Violation Removal

DP based algorithm A set of buffering candidates C(L, dh, ds, A)

is kept during the process For each buffer in B, we insert it to any of

the existing candidates

Page 21: On Timing Closure: Buffer Insertion for Hold-Violation Removal

New buffering candidates (1) if d′s > DS, C′ is removed immediately (2) if d′h <= dh, C′ is removed as well

d′h > DH + margin where margin is a parameter, then C′ is removed too

(3) C′ is dominated by any existing candidate C*(I*, d*h, d*s, A*) if d′h < d*h and A′ > A*

Chose the candidate that has the largest ratio of dh/A as the buffering solution

Page 22: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Bottom-up Methodology process the pins by the bottom-up topological

ordering (i.e. from PO to PI) DP algorithm cannot realize the exact

amount of hold delays/setup delays by inserting buffers(extra delays)

Page 23: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Suppose now we are processing pin p, collected extra delays cur_setup_reqp = setup_reqp − ds_delay extra delays = cur_setup_reqp – sap

Ds = xp + cur_setup_reqp − sap

Similarly to get Dh

Page 24: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Optimization Flow

Page 25: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Experimental Results

Page 26: On Timing Closure: Buffer Insertion for Hold-Violation Removal
Page 27: On Timing Closure: Buffer Insertion for Hold-Violation Removal

Concluding Remarks

First propose a linear programming based approach that minimizes the number of inserted delays

A bottom-up buffer insertion and the flow of optimizing are presented