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.

3.5 Example<br />

Algorithm: van Ginneken’s algorithm.<br />

Input: T : routing tree, B: buffer library<br />

Output: γ which maximizes slack at driver<br />

1. for each sink s, build a solution set {γ s }, where<br />

Q(γ s ) = RAT(s) and C(γ s ) = C(s)<br />

2. for each branching point/driver v t in the order given by<br />

a postorder traversal of T , let T ′ be each of the branches T 1 ,<br />

T 2 of v t and Γ ′ be the solution set corresponding to T ′ , do<br />

3. for each wire e in T ′ , in a bottom-up order, do<br />

4. for each γ ∈ Γ ′ , do<br />

5. C(γ) = C(γ) + C(e)<br />

6. Q(γ) = Q(γ) − D(e)<br />

7. prune inferior solutions in Γ ′<br />

8. if the current position allows buffer insertion, then<br />

9. for each γ ∈ Γ ′ , generate a new solution γ ′<br />

10. set C(γ ′ ) = C(b)<br />

11. set Q(γ ′ ) = Q(γ) − R(b) · C(γ) − K(b)<br />

12. Γ ′ = Γ ′ ⋃ {γ ′ } and prune inferior solutions<br />

13. // merge Γ 1 and Γ 2 to Γ vt<br />

14. set Γ vt = ∅<br />

15. for each γ 1 ∈ Γ 1 and γ 2 ∈ Γ 2 , generate a new solution γ ′<br />

16. set C(γ ′ ) = C(γ 1 ) + C(γ 2 )<br />

17. set Q(γ ′ ) = min{Q(γ 1 ),Q(γ 2 )}<br />

18. Γ vt = Γ vt<br />

⋃ {γ ′ } and prune inferior solutions<br />

19. return γ with the largest slack<br />

Figure 4: Van Ginneken’s algorithm.<br />

Let us look at a simple example to illustrate the work flow of van Ginneken’s algorithm. Refer to<br />

Figure 5. Assume that there are three non-dominated solutions at v 3 whose (Q,C) pairs are<br />

(200, 10), (300, 30), (500, 50),<br />

and there are two non-dominated solutions at v 2 whose (Q,C) pairs are<br />

(290, 5), (350, 20).<br />

11

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

Saved successfully!

Ooh no, something went wrong!