Recently , i have worked on a very congested design.
The design have 5 metal layers.
As M1 is occupy by STD and M5 is occupy by Power Planning, only M2~M4 is for routing.
As M2-V, M3-H, M4-V, there is only one layer for Horizontal routing purpose .
The design is very congested, but after my research the design's shorts have be reduced from 200->0
The shorts that in the thin channel or something like that is easy to fix, so it will not be discuss in this article.
I have list all the method that l used in the design , give the test result in my design and list my solution in the end.
1) Make sure you use most powerful effect during optimize
set placer_enable_high_effort_congestion true
place_opt -area_reacovery -congestion
psynopt -area_recovery -area_effort high -congestion
Experience : After apply above option, the shorts have be reduced 10%, so it is not very effective for my design.
2) Floorpan
(1) Use Data Flow Analyze to analyze your floorplan.
(2) Highlight the cell placement by Hierarchy.
(3) Make sure all cells that in the same hierarchy be placement close enough.
( You can use deviation to evaluate it)
Experience : The congestion is very high sensitive to the floorplan. Please make sure all cell group well in placement.
3)Power Plan
Check whether all VIAs and Strip of PG is friendly to the routing.
Experience : No issue in my design.
4) Add partial placement blockage to the congested area.
Experience : It has limited effect in my design. After i add the partial blockage, the new shorts happened in the boundary of blockage.
5) Add keep-out in special cell.
Experience: It have limited effect in my design. After i add keep-out in two special cell (more pin cell), the congestion is better, but timing is bad. You will found large dis-placement when you optimize the timing.
6)According to the statistic to add keep-out in the special area.
(1)You can use script. to collect the cell info in the high congested area, then statistic it as "MAX CELL PIN" and "MAX TOTAL PIN".
(2)Base on the result , apply the keep-out to the special cell in that area.
(3)ECO-placment and ECO routing
(4)Iteration more times to get better result.
Experience:
It is very effective to my design and reduce shorts from 200-> 0.
Please try it, if you have interested.
Thanks :)