Buffer Insertion Basics - Computer Engineering & Systems Group ...
Buffer Insertion Basics - Computer Engineering & Systems Group ...
Buffer Insertion Basics - Computer Engineering & Systems Group ...
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