Wednesday, 2 April 2021

Congestion in VLSI Physical Design FLow

Congestion in VLSI Physical Design Flow

Here let us discuss about congestion. What is Congestion? What are the reasons for Congestion? How congestion can be fixed?

What is Congestion?
If the number of routing tracks available for routing in one particular area is less than the required routing tracks then the area said to be congested. There will be a limit for number of nets that can be routed through particular area.

What are the reasons for Congestion?
  • High Standard cell density in small area
  • Placement of standard cells near macros
  • High pin density at the edge of macro
  • Bad floorplan
  • During IO optimization tool does buffering, So lot of cells placed in the core area
How congestion can be Analysed?
Congestion can be analysed by using congestion map as shown below figure.

  • If the congestion is not too severe, The actual route can be detoured around congested area. The detoured nets will have worse RC delays than actual VR estimates.
  • If the congestion is too severe, the design can be un-routable. This is really not good. It is important to minimize or eliminate the congestion before continuing.

How to fix Congestion?
  • Rerun the fast placement with Congestion driven option (Congestion driven placement)
  • Modify physical constraints such as adjust cell density in congested areas. Because higher cell density cause for congestion. 
  • Use/Modify proper blockages. i.e., Soft blockages, Hard blockages, Macro Padding are used proper locations to minimize the congestion near macros.
  • Modify floorplaning such as moving macros, change core shape/size, Move pins to give enough room for routing
What happens during congestion driven placement?
As discussed earlier, Congestion driven placement is performed to reduce the congestion. During congestion driven placement, the cells (Higher cell density) which caused for congestion are spread apart. If the cells along timing critical paths are spread apart to minimize congestion, What happens? 

If the cells along timing critical paths spread apart, the timing constraints along that particular paths are not met which cause for timing violations. But these violations can be fixed during incremental optimization. 

What are the care should be taken using congestion driven option?
  • If there is some congestion, use medium effort option
  • If the congestion is bad, use high effort option
  • If there is no congestion, Don't use congestion driven option. If we use congestion driven option in this case, It takes more rum time for placement.
How modify physical constraints reduce congestion?
As discussed earlier, Higher cell density can cause for congestion. By default the cell density can be upto 95%. We can reduce the cell density at congested areas by using coordinate option.
As shown in below figure, we can set cell density to a flexible number to reduce the congestion by using the command 
set_congestion_options - max_util 0.6\
                                        - coordinate {x1 y1 x2 y2}

Here we set the maximum cell density  upto 60% and given the coordinates for the particular area.

How blockages and macro padding(Halos) reduce congestion?
 By using blockages and halos, They prevent the tool placing cells in that particular locations to give enough space for routing near the macros. For more details, please refer Blockages halos post.

Soft Blockages created only for the channels between macros (or) Between macro & the core boundary to give enough space for routing.

Hard blockages always created on the four sides of macro for not to place standard cells or macros near to the macro.
Macro Padding: If the design contains macros that are not placed near another macro (or) the edge of the core then macro padding(Halo) is created. Standard cells cant be placed in this region which give more routing resources to the signal routes.

Synopsys IC Compiler manual


  1. Pretty blog, so many ideas in a single site, thanks for the informative article, keep updating more article.
    Webdesining course in chennai

  2. nice information i want tool command

  3. difference between placement congestion and routing congestion

  4. Great Article. Thank you for sharing! Really an awesome post for every one.

    IEEE Final Year projects Project Centers in Chennai are consistently sought after. Final Year Students Projects take a shot at them to improve their aptitudes, while specialists like the enjoyment in interfering with innovation. For experts, it's an alternate ball game through and through. Smaller than expected IEEE Final Year project centers ground for all fragments of CSE & IT engineers hoping to assemble. Final Year Project Domains for IT It gives you tips and rules that is progressively critical to consider while choosing any final year project point.

    Spring Framework has already made serious inroads as an integrated technology stack for building user-facing applications. Spring Framework Corporate TRaining the authors explore the idea of using Java in Big Data platforms.
    Specifically, Spring Framework provides various tasks are geared around preparing data for further analysis and visualization. Spring Training in Chennai

  5. Design verification training
    VLSICHIP is offering world class industry oriented VLSI - Design Verification training program using Cadence Incisive Enterprise Simulator.