19.02.2015 Views

Buffer Insertion Basics - Computer Engineering & Systems Group ...

Buffer Insertion Basics - Computer Engineering & Systems Group ...

Buffer Insertion Basics - Computer Engineering & Systems Group ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

list, we only need to check its neighbors to decide if any candidate should be pruned under convex<br />

pruning. The time is O(1), amortized over all candidates.<br />

In [40, 41], the convex pruning is used to form the convex hull of non-redundant candidates,<br />

which is the key component of the O(bn 2 ) algorithm and O(mn) algorithm.<br />

In [43], convex<br />

pruning (called squeeze pruning) is performed on both 2-pin and multi-pin nets to prune more<br />

solutions with a little degradation of solution quality.<br />

5.4 Efficient Way to Find Best Candidates<br />

Assume v is a buffer position, and we have computed the set of nonredundant candidates N ′ (v) for<br />

T(v), where N ′ (v) does not include candidates with buffers inserted at v. Now we want to insert<br />

buffers at v and compute N(v). Define P i (v,α) as the slack at v if we add a buffer of type B i for<br />

any candidate α:<br />

P i (v,α) = Q(v,α) − R(B i ) · C(v,α) − K(B i ). (26)<br />

If we do not insert any buffer, then every candidate in N ′ (v) is a candidate in N(v). If we insert<br />

a buffer, then for every buffer type B i , i = 1, 2,...,b, there will be a new candidate β i :<br />

Q(v,β i ) =<br />

max {P i (v,α)},<br />

α∈N ′ (v)<br />

C(v,β i ) = C(B i ).<br />

Define the best candidate for B i as the candidate α ∈ N ′ (v) such that α maximizes P i (v,α)<br />

among all candidates in N ′ (v). If there are multiple α’s that maximize P i (v,α), choose the one<br />

35

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!