A Fast, Robust Network Flow-based Standard-Cell Legalization Method for Minimizing Maximum Movement Nima Karimpour Darav Ismail Bustany Andrew Kennings Laleh Behjat
Outline • Standard Cell Legalization Problem • Problem Analogy • Challenges • The Proposed Network Flow Based Algorithm • Illustrative Example • Empirical Results • Conclusion 2
Standard Cell Legalization Problem C 1 C 1 C 3 C3 C 3 C 2 C2 C 6 C6 C 5 C 2 C 6 C 5 C 4 C 7 C 4 C 7 Blocked area Movable cells 3
Problem Analogy 4
Problem Analogy The legalization process is similar to the process of flattening humps 5
How To Flatten A Hump? 6
How To Flatten A Hump Using Traditional Approaches? 7
How To Flatten A Hump Using Traditional Approaches? 8
How To Flatten A Hump Using Traditional Approaches? 9
How To Flatten A Hump Using Traditional Approaches? 10
How To Flatten A Hump Using Traditional Approaches? 11
How To Flatten A Hump Using Traditional Approaches? 12
How To Flatten A Hump Using Traditional Approaches? 13
How To Flatten A Hump Using Traditional Approaches? 14
Proposed Network Flow Based Approach 15
Proposed Network Flow Based Approach 16
Proposed Network Flow Based Approach 17
Proposed Network Flow Based Approach 18
Proposed Network Flow Based Approach 19
Proposed Network Flow Based Approach 20
Proposed Network Flow Based Approach 21
Proposed Network Flow Based Approach 22
Proposed Network Flow Based Approach 23
Proposed Network Flow Based Approach 24
Proposed Method vs. Traditional Methods • Network Flow: 4 8 - minimizes maximum movement. 3 6 7 6 1 2 5 3 7 4 8 5 1 2 - better preserves the order. The order is based on x positions. 3 1 2 5 7 8 4 8 6 7 6 1 2 4 5 3 Traditional Methods Example Max movement = 3 1 2 2 3 4 5 6 7 8 1 3 4 5 7 8 6 Proposed Method Example Max movement = 1.5 25
Legalization Challenges 26
Challenges Routability Multi-Deck Wire Length Cells Legalization Complicated Timing Design closure Rules Runtime Robust 27
Challenges Routability Multi-Deck Wire Length Cells Legalization Complicated Timing Design closure Rules Runtime Robust 28
Challenges Routability Multi-Deck Wire Length Cells Legalization Complicated Timing Design closure Rules Runtime Robust 29
Challenges Routability Multi- Wire Deck Length Cells Edge Legalization Timing Spacing closure Rules Runtime Robust 30
Challenges – Edge Spacing Constraint Prone to pin access and short problems Two cells are too close to each other 31
Objectives • Minimize - Maximum Cell Movement - Average Cell movement But it is not easy to minimize the above objectives because these are two NP hard problems. 32
Our Network-Flow Based Approach 33
Our Network-Flow Based Approach • Inspired by the path augmentation algorithm, reference [8] (Brenner 2012). • Objective is to flatten humps subject to the constraints. • Set maximum movement as a constraint. • Uses BFS to identify multiple paths subject to the maximum movement constraint. 34
Our Network-Flow Based Approach Preparation Step Initial solution Build a grid of connected bins Assign cells to bins Set an initial upper bound for displacement 35
Our Network-Flow Based Approach Preparation Step Resolving Overflow Step Initial solution Identify overflowed bins B Build a grid of connected bins |B| > 0 No Assign cells to bins Yes i = 0 Set an initial upper bound for Find paths for bin 𝑐 𝑗 ∈ 𝐶 displacement Move cells over the paths i = i +1 i < |B| Yes No 36 Relax max displacement
Our Network-Flow Based Approach Preparation Step Resolving Overflow Step Initial solution Removing Overlap Step Identify overflowed bins B Build a grid of connected bins Remove overlaps inside bins |B| > 0 No Assign cells to bins Yes i = 0 Remove overlaps inside Set an initial upper bound for placement segments Find paths for bin 𝑐 𝑗 ∈ 𝐶 displacement Move cells over the paths i = i +1 Legalized Solution i < |B| Yes No 37 Relax max displacement
Our Network-Flow Based Approach Preparation Step Resolving Overflow Step Initial solution Removing Overlap Step Identify overflowed bins B Build a grid of connected bins Remove overlaps inside bins |B| > 0 No Assign cells to bins Yes i = 0 Remove overlaps inside Set an initial upper bound for placement segments Find paths for bin 𝑐 𝑗 ∈ 𝐶 displacement Move cells over the paths i = i +1 Legalized Solution i < |B| Yes No 38 Relax max displacement
Illustrative Example Initial illegal placement: off rows and overlapping cells 39
Illustrative Example (The Capacity Map) 2 -2 1 -1 1 0 1 1 -1 -4 1 1 2 0 -1 -1 -2 1 0 1 2 3 4 40
Illustrative Example (Finding Paths) 0 1 2 3 4 2 -2 1 -1 1 0 1 1 -1 -4 1 1 2 0 -1 -1 -2 1 1,2 1,1 41 The proposed BFS-based method for finding paths for an overflowed bin.
Illustrative Example (Finding Paths) 0 1 2 3 4 2 -2 1 -1 1 0 1 1 -1 -4 1 1 2 0 -1 -1 -2 1 1,2 1,1 1,3 42 The proposed BFS-based method for finding paths for an overflowed bin.
Illustrative Example (Finding Paths) 0 1 2 3 4 2 -2 1 -1 1 0 1 1 -1 -4 1 1 2 0 -1 -1 -2 1 1,2 1,1 1,3 2,2 43 The proposed BFS-based method for finding paths for an overflowed bin.
Illustrative Example (Finding Paths) 0 1 2 3 4 2 -2 1 -1 1 0 1 1 -1 -4 1 1 2 0 -1 -1 -2 1 1,2 1,1 1,3 2,2 0,2 44 The proposed BFS-based method for finding paths for an overflowed bin.
Illustrative Example (Finding Paths) 0 1 2 3 4 2 -2 1 -1 1 0 1 1 -1 -4 1 1 2 0 -1 -1 -2 1 1,2 1,1 1,3 2,2 0,2 1,0 45 The proposed BFS-based method for finding paths for an overflowed bin.
Illustrative Example (Finding Paths) 0 1 2 3 4 2 -2 1 -1 1 0 1 1 -1 -4 1 1 2 0 -1 -1 -2 1 1,2 1,1 1,3 2,2 0,2 1,0 2,1 46 The proposed BFS-based method for finding paths for an overflowed bin.
Illustrative Example (Finding Paths) 0 1 2 3 4 2 -2 1 -1 1 0 1 1 -1 -4 1 1 2 0 -1 -1 -2 1 1,2 1,1 1,3 2,2 0,2 1,0 2,1 0,1 47 The proposed BFS-based method for finding paths for an overflowed bin.
Illustrative Example (Finding Paths) 0 1 2 3 4 2 -2 1 -1 1 0 1 1 -1 -4 1 1 2 0 -1 -1 -2 1 1,2 1,1 1,3 2,2 0,2 1,0 2,1 0,1 1,4 48 The proposed BFS-based method for finding paths for an overflowed bin.
Illustrative Example (Finding Paths) 0 1 2 3 4 2 -2 1 -1 1 0 1 1 -1 -4 1 1 2 0 -1 -1 -2 1 1,2 1,1 1,3 2,2 0,2 1,0 2,1 0,1 1,4 49 The proposed BFS-based method for finding paths for an overflowed bin.
Illustrative Example (Moving Cells) 0 1 2 3 4 0 1 2 1,2 1,1 1,3 2,2 0,2 1,0 2,1 0,1 1,4 50
Illustrative Example (Moving Cells) 0 1 2 3 4 0 1 2 1,2 1,1 1,3 2,2 0,2 1,0 2,1 0,1 1,4 51
Illustrative Example (Moving Cells) 0 1 2 3 4 0 1 2 1,2 1,1 1,3 2,2 0,2 1,0 2,1 0,1 1,4 52
Illustrative Example (Moving Cells) 0 1 2 3 4 0 1 2 1,2 1,1 1,3 2,2 0,2 1,0 2,1 0,1 1,4 53
Illustrative Example (Moving Cells) 0 1 2 3 4 0 1 2 1,2 1,1 1,3 2,2 0,2 1,0 2,1 0,1 1,4 54
Illustrative Example (Moving Cells) 0 1 2 3 4 0 1 2 1,2 1,1 1,3 2,2 0,2 1,0 2,1 0,1 1,4 55
Illustrative Example (Moving Cells) 0 1 2 3 4 0 1 2 1,2 1,1 1,3 2,2 0,2 1,0 2,1 0,1 1,4 56
Recommend
More recommend