Vertical Power Rail Aware Placement
Problem Formulation
Violation
Violation
No violation
Simply shift the cell
Simple Remedy
Constraints :
C1. Overlap Constraint
C2. Vertical Power Rail Constraint
Simple Remedy Method :
- Legalize without C2
- Detailed Placement without C2
- Legalize C2
What we can improve
Method1 :
- Legalization with C2
- Detailed Placement with C2
Method2 :
- Legalization without C2
- Detailed Placement with C2
Also, we shouldn't increase too much time
Objective of our work
- Legalize all violations
- With little time increase
- With little wire length increase
- Preserve some local optimality
Math Formulation
Non-overlap
On power rail
Vertical power constraint
Single Row Height
- Borrow idea from abacus
- Introduce new constraint
- Observe property in a row with fixed order
A1
Revise C2 by moving cells in the row
Abacus with L1 norm
Take median
Single Violation
Violation
No violation
Single Violation
Violation
Decluster
Single Violation
Violation
New
Violation
Single Violation
Violation
Multiple Violation
Value of A1
- No guarantee to fix all violation (unless no boundary)
- The cost might be too large
- We may leave some violation to the next stage
- This legalize process might be done with detailed placement
- A1 could be a measure to choose row just like abacus
- If A1 no exceed boundary, it's optimal in a row(need to be proved)
Proof
- For only one cell, place it in original place
- Assume we have optimal solution when n cells are placed
- When placing cell n+1, there are two cases:
- non-overlap->trivial
- overlap
- Put the cell n+1 into the last cluster and move the cluster to the left until the value cannot be improved
Proof
Let cell c be the right most cell with
Legalize C2 with Detailed Placement
- Revise C2 by swapping cells
- Swapping:
- Global swapping
- Vertical swapping
- Local reordering with C2
A2

Swap with cell satisfy C2
For detail, this is the future work
Recall
Take median
Legalize C1
min heap
max heap
min heap
max heap
Odd
Even
median
median interval
Legalize C1
Cluster 1
Cell to be inserted
Merge
Cluster
Cluster 1
Take x1 from median heap
Push into median heap
Legalize C1
Cluster 1
Cell to be inserted
New
Cluster
Cluster 1
Cluster 2



Result
| Displacement | |
|---|---|
| After abacus | 23.9392 |
| Shift to left | 56.1538 |
| Shift to right | 73.5437 |
| Opt shift | 48.7764 |
After Legalize C1
- We now have a overlap-free design
- Fix C2 by using detailed placement techniques
- Final legalization of C2
Detailed Placement Flow
- Global swapping
- Vertical swapping
- Local reordering
- Single-Segment clustering -> A1
Global Swapping
- First swap cells violating C2
- Swap to gain large benefit
- We need to estimate the cost for fixing C2
HPWL change
Cost to fix C2
Exact value of C
We can perform A1 and get the exact cost for fixing C2, but that might cost too much time
We need reasonable heuristics to and choose candidate carefully to help us
Vertical Swapping
- Similar to global swapping
- More conservative
Local Reordering
- Reorder cells in the same segment
- Window size = 3(Less computation time)
- Reordering might be useful to solve C2
Worst Case
- GS, VS and LO all get negative benefit
- When using A1, we might not fix it
- In this case, we need to pay some cost to fix it
- Mark this cell and accept negative benefit
Conclusion
- Perform A1 to select row
- Perform A2 to decrease C2 violation
- Perform A1 to move in the row
- Sacrifice wire length to fix all violation
Future Work
- Derive the detail and proof the optimality of A1
- Perform some experiment to find properties
- Complete detail of A2 or maybe mixture of A1, A2
- Conduct experiment on benchmark
- About carefully final legalization
Vertical power rail aware placement
By 許泓崴
Vertical power rail aware placement
- 586