1 / 27

Partitioning

Partitioning. First Project. Synthesis by Design Compiler Physical design by SoC Encounter Use tutorials in \fileservercommonszamaniEDA (MS)Tools. Fiduccia-Mattheyses Algorithm. “ A linear time heuristic for improving network partitions ” , Fiduccia and Mattheyses, DAC 82. Basic Ideas.

lmarkle
Download Presentation

Partitioning

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Partitioning مرتضي صاحب الزماني

  2. First Project • Synthesis by Design Compiler • Physical design by SoC Encounter • Use tutorials in \\fileserver\common\szamani\EDA (MS)\Tools\ مرتضي صاحب الزماني

  3. Fiduccia-Mattheyses Algorithm • “A linear time heuristic for improving network partitions”, Fiduccia and Mattheyses, DAC 82. مرتضي صاحب الزماني

  4. Basic Ideas • Differences from KL: • Move only one cell each time. • Cells can have different sizes. • Nets can be multi-terminal. • Maintain a balanced partition after every move. • O(#Pins) • #Pins = ∑eedge degrees مرتضي صاحب الزماني

  5. FM Algorithm • Start with a balanced partition P = {X, Y}. • Repeat • For i = 1 to n: • Choose a free cell b  XY s.t. moving b to the other side gives the highest gain, gain(b), and moving b preserves balance in P. • Move and lock b. • Let gi = gain(b). • Find k s.t. G = g1 + g2 + ….. + gk is maximized and shuffle the cells up to this kth step. • Until G = 0. مرتضي صاحب الزماني

  6. An Example g2 d e f a c a b c d e f g1 locked b a c g4 a c d f g3 f d b e b e مرتضي صاحب الزماني

  7. An Example c a a g5 a d d c g6 f d f c f e b e e b b If G = g1 + g2 + g3 + g4 is the largest partial sum, the final partition after this pass is: c d e a f b مرتضي صاحب الزماني

  8. Balanced Partition • A partition P = (X, Y) is balanced iff: • r ( 1): Ratio Factor • S(X): total size of cells in X. • Balancing condition: cell b is moved if, after moving, • Stot = S(XY) • Smax =maximum cell size مرتضي صاحب الزماني

  9. Digital Design Contest مرتضي صاحب الزماني

  10. i i نت بد: نتي که متصل به سلول i است و cut را قطع نکرده است ( cutsize را يک واحد افزايش مي دهد). نت خوب: نتي که متصل به سلول i است و به هيچ سلول ديگري در پارتيشن مبدأ وصل نيست (cutsize را يک واحد کاهش مي دهد). Cell Gain gain(i) = تعداد نتهاي خوب - تعداد نتهاي بد مرتضي صاحب الزماني

  11. i نت خنثي: نتي که متصل به سلول i است و به سلولهايي در هر دو پارتيشن وصل است. Cell Gain مرتضي صاحب الزماني

  12. Cell Gain • Note: -p(i)  gain(i)  p(i) where p(i) is the no. of pins in cell i. gain(i) = -p(i) i i gain(i) = p(i) مرتضي صاحب الزماني

  13. Gain Bucket +pmax Max Gain Cell # Cell # -pmax 2 n 1 Two “bucket lists”, one for X and one for Y مرتضي صاحب الزماني

  14. +pmax +pmax Max Gain Max Gain Cell # Cell # Cell # Cell # -pmax -pmax 2 2 n n 1 1 Gain Bucket مرتضي صاحب الزماني

  15. Gain Update • Let cell b move from X to Y. • Let N(b) be the set of nets connecting b. • This move will only affect those cells connected by the nets in N(b). مرتضي صاحب الزماني

  16. 2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Terminology Gain g(c) for cell c g(c) = FS(c) – TE(c) FS(c): (moving force): No. of good nets connected to c TE(c): (retention force): No. bad nets connected to c 3 2 b e a 4 c d 1 5 Cell 2: FS(2) = 0 TE(2) = 1 g(2) = -1

  17. 2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Terminology Gain g(c) for cell c g(c) = FS(c) – TE(c) , 3 2 b e a 4 c d 1 5 3 2 Cell 1: FS(1) = 2 TE(1) = 1 g(1) = 1 Cell 2: FS(2) = 0 TE(2) = 1 g(2) = -1 Cell 3: FS(3) = 1 TE(3) = 1 g(3) = 0 Cell 4: FS(4) = 1 TE(4) = 1 g(4) = 0 Cell 5: FS(5) = 1 TE(5) = 0 g(5) = 1 b e a 4 c d 1 5

  18. 2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Terminology Maximum positive gain Gmof a pass

  19. 2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example 3 2 A B Given:Ratio factor r = 0,375 area(Cell_1) = 2 area(Cell_2) = 4 area(Cell_3) = 1 area(Cell_4) = 4 area(Cell_5) = 5. b e a 4 c d 1 5 Step 0: Compute the balance criterion [ r ∙ area(V) – Smax(V) ] ≤ area(A) ≤ [ r ∙ area(V) + areamax(V) ] 0,375 * 16 – 5 = 1 area(A)  11 = 0,375 * 16 +5.

  20. 2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example 3 2 A B b e a 4 c d 1 5 Step 1:Compute the gains of each cell Cell 1: FS(Cell_1) = 2 TE(Cell_1) = 1 g(Cell_1) = 1 Cell 2: FS(Cell_2) = 0 TE(Cell_2) = 1 g(Cell_2) = -1 Cell 3: FS(Cell_3) = 1 TE(Cell_3) = 1 g(Cell_3) = 0 Cell 4: FS(Cell_4) = 1 TE(Cell_4) = 1 g(Cell_4) = 0 Cell 5: FS(Cell_5) = 1 TE(Cell_5) = 0 g(Cell_5) = 1

  21. 2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example 3 2 A B Cell1: FS(Cell_1) = 2 TE(Cell_1) = 1 g(Cell_1) = 1 Cell 2: FS(Cell_2) = 0 TE(Cell_2) = 1 g(Cell_2) = -1 Cell 3: FS(Cell_3) = 1 TE(Cell_3) = 1 g(Cell_3) = 0 Cell 4: FS(Cell_4) = 1 TE(Cell_4) = 1 g(Cell_4) = 0 Cell 5: FS(Cell_5) = 1 TE(Cell_5) = 0 g(Cell_5) = 1 b e a 4 c d 1 5 Step 2:Select the base cell Possible base cells are Cell 1 and Cell 5 Balance criterion after moving Cell 1: area(A) = area(Cell_2) = 4 Balance criterion after moving Cell 5: area(A) = area(Cell_1) + area(Cell_2) + area(Cell_5) = 11 Both moves respect the balance criterion, but Cell 1 is selected, moved, and fixed as a result of the tie-breaking criterion.

  22. 2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example 3 2 A B b e a 4 c d 1 5 Step 3: Fix base cell, update g values Cell 2: FS(Cell_2) = 2 TE(Cell_2) = 0 g(Cell_2) = 2 Cell 3: FS(Cell_3) = 0 TE(Cell_3) = 1 g(Cell_3) = -1 Cell 4: FS(Cell_4) = 0 TE(Cell_4) = 2 g(Cell_4) = -2 Cell 5: FS(Cell_5) = 0 TE(Cell_5) = 1 g(Cell_5) = -1 After Iteration i = 1:Partition A1 = 2, Partition B1 = 1,3,4,5, with fixed cell 1.

  23. 2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example Iteration i = 1 3 2 A B Cell 2: FS(Cell_2) = 2 TE(Cell_2) = 0 g(Cell_2) = 2 Cell 3: FS(Cell_3) = 0 TE(Cell_3) = 1 g(Cell_3) = -1 Cell 4: FS(Cell_4) = 0 TE(Cell_4) = 2 g(Cell_4) = -2 Cell 5: FS(Cell_5) = 0 TE(Cell_5) = 1 g(Cell_5) = -1 b e a 4 c d 1 5 Iteration i = 2 Cell 2 has maximum gain g2 = 2, area(A) = 0, balance criterion is violated. Cell 3 has next maximum gain g2 = -1, area(A) = 5, balance criterion is met. Cell 5 has next maximum gain g2= -1, area(A) = 9, balance criterion is met. Move cell 3, updated partitions: A2 = {2,3}, B2 = {1,4,5}, with fixed cells {1,3}

  24. 2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example Iteration i = 2 3 2 A Cell 2: g(Cell_2) = 1 Cell 4: g(Cell_4) = 0 Cell 5: g(Cell_5) = -1 e B b a 4 c d 1 5 Iteration i = 3 Cell 2 has maximum gain g3 = 1, area(A) = 1, balance criterion is met.Move cell 2, updated partitions: A3 = {3}, B3 = {1,2,4,5}, with fixed cells {1,2,3}

  25. 2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example Iteration i = 3 3 2 B A e Cell 4: g(Cell_4) = 0 Cell 5: g(Cell_5) = -1 b a 4 c d 1 5 Iteration i = 4 Cell 4 has maximum gain g4 = 0, area(A) = 5, balance criterion is met.Move cell 4, updated partitions: A4 = {3,4}, B3 = {1,2,5}, with fixed cells {1,2,3,4}

  26. 2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example Iteration i = 4 3 2 B A e Cell 5: g(Cell_5) = -1 b a 4 c d 1 5 Iteration i = 5 Cell 5 has maximum gain g5 = -1, area(A) = 10, balance criterion is met.Move cell 5, updated partitions: A4 = {3,4,5}, B3 = {1,2}, all cells {1,2,3,4,5} fixed.

  27. 2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example 3 2 B A e b a 4 c d 1 5 Step 5: Find best move sequence c1 … cm G1 = g1 = 1G2 = g1 + g2 = 0G3 = g1 + g2 + g3 = 1G4 = g1 + g2 + g3 + g4 = 1G5 = g1 + g2 + g3 + g4 + g5 = 0. Maximum positive cumulative gain found in iterations 1, 3 and 4. The move prefix m = 4 is selected due to the better balance ratio (area(A) = 5); the four cells 1, 2, 3and 4 are then moved. Result of Pass 1: Current partitions: A = {3,4}, B = {1,2,5}, cut cost reduced from 3 to 2.

More Related