What is Congestion?
- If the number of required routing resources are more than the number of available routing tracks, then the area becomes congested. High congestion causes detours and leads to worse results. Congestion makes the design non-routable that means routing will not be converged if there are congestion in the design.
Types of Congestion
There are basically two types of congestion:
- placement congestion
- Routing congestion.
We need to avoid both the types of congestion in our design.
Reasons for Congestion
- There are different reasons for the congestion which are as follows:
- Bad Floorplan.
- High standard cell density in particular area.
- High pin density in particular area.
- Missing/Small Halos near macro cell.
- Huge number of cells sitting near the macro cell.
Fixes for Congestion
- There are below ways to fix congestion issues in design:
- Use blockages in the design, partial blockages help more in optimized way.
- Cell padding
- Module padding
- Decomposition of large cells into small cells (Pin distribution happens).
Can you please explain what is pin distribution?
Pin distribution is very important part, where you get to know which pin has to sit where according to full chip hierarchy.
What is the difference between cell padding and instance padding?
first, let’s understand the difference between cell and instance. For Eg, one AND gate can be used a number of times in the design which is present in the library. so you can say AND gate is a cell and if it has been used 4 times [For EG] then ADN_1, AND_2, AND_3 AND_4 are four instances present in the design. SO basically if you are going to do cell padding then it will work on all the instances present in the design as you are constraining the cell to have padding. But if you are padding a particular AND_1 instance then it will work only on the AND_1.
I hope this is clear, if need more help let me know.