|
||||||||||
Enhancing VLSI Design Efficiency: Tackling Congestion and Shorts with Practical Approaches and PnR Tool (ICC2)By Ishu Shukla, eInfochips, an Arrow company Abstract: Effective management of congestion is crucial for ensuring the efficient and reliable operation of modern integrated circuits, which are becoming increasingly complex and densely packed with millions of transistors. The objective of this paper is to illustrate congestion, shorts, and practical approaches to fix both issues at lower/higher technology nodes. This paper also includes PnR tool (ICC2) related commands and their uses to overcome the mentioned issues. Congestion: Congestion in VLSI (Very large-scale Integration) design refers to the circumstance when the number of routing tracks is less than the required routing tracks. These routing resources are used to connect all the required wires between the different components of the design. PnR tool highlights congested areas as red hotspots, as depicted in figure 1. As the complexity of the design increases, congestion has become a major issue in chip design that requires careful consideration and optimization to ensure that the design meets the required timing, power, and area constraints. Fig-1 Congestion report:
Cause of congestion:
Fig-2
Fig-3
Fig-4 Congestion alleviation Techniques:
Fig-5
Fig-6 Keep out margin/Halo: Keepout margin is a region around the boundary of a macro in which no other cells are placed. Keeping the placement of cells out of such regions avoids congestion and net detouring and produces better Quality of result. In Figure –7, a keepout margin is created around the macro.
Fig-7 Cell padding: Applying a keepout margin around standard cells is known as cell padding. When a cell has a high number of pins like a multibit flop, the demand for routing resources increases. Hence, we restrict the placement of cells near these cells to avoid congestion. Implementing cell padding:
Fig-8 Modify PG grid: To have maximum routing resources, one can try to reduce the number of PG stripes or the width of stripes. However, this has a trade-off with electromagnetic (EM) and IR drop. Topographic synthesis: At the very first stage, we perform logical synthesis and proceed to further stages like DFT, PnR. The synthesis tool tries to optimize in the best possible way to have a minimum netlist area and meet the required timing and power constraints. After one iteration of PnR we have floorplan information like block shape, size, blockages, and physical cells. We write out the DEF of the floorplan and give it back to the synthesis tool and rerun synthesis. Now it has physical constraints as well, so it will generate a more precise netlist. Eventually, this will have a low scope of congestion and other issues. SPG and non-SPG placement: During topographical synthesis, the tool writes out DEF, which is equivalent to coarse/initial placement. Reading this DEF during placement for coarse placement is called SPG placement. If we don’t consider DEF for coarse placement and let the PnR tool, do it itself, it is non-SPG placement. One should try both techniques, as either one will be helpful for congestion alleviation.
Congestion related variable:
Shorts: When the shape (small segment of net) of two different nets intersects/touches each other in the same layer, a short is reported. As depicted in Figure –9, the small portion of the red highlighted net is touching the yellow highlighted net. Since both nets are different and in the same metal layer, a short occurs.
Fig-9
Fig-10 Mitigation: As depicted in Figure10, shift the the red highlighted net to the left. Now, they don’t interfere with each other, and the short is fixed. To verify and report shorted nets, run one of the following commands:
If the design has shorts in single or double digits, they can be fixed manually quickly and easily. However, if the design has shorts in multiple thousands, the following approaches are preferred to get rid of shorts. 1. Delete shorted nets and reroute them by running eco route while freezing the rest of the nets. To remove shorted nets:
To route the removed nets:
2. Run “route_detail”, which performs detail routing to help fix shorts and DRCs. The following command performs detail routing with a maximum iteration of 5. Try running multiple loops of route_detail with increasing values of max_number_iterations to minimize DRCs and shorts.
3. If there are shorts at corners of the design, especially in a rectilinear shape, to fix such shorts, add a decent-sized routing blockage, as shown in Figure 11, at the shorted corner of the design during the floorplan stage. Remove it during the routing stage once the detail route is done. After removing the blockages, perform incremental detail route as demonstrated below.
Fig-11 4. If there are shorts in a specific layer’s region, to fix such shorts, limit the number of routings in that layer by applying a routing guide. A Routing guide must be applied during the placement stage only. In the example below, we are only considering 70 % of the routing resources of metal layer M2 to limit the routing. Set bbox {{ 1125.8800 -210.1300} { 1404.2000 747.9400}} create_routing_guide -layers METAL2 -vertical_track_utilization 70 -boundary $bbox -name rg1 Author: Ishu Shukla is a Physical Design engineer working with eInfochips, an Arrow company. He holds a bachelor’s degree in Electronics and Communication from VGEC, Ahmedabad. He has more than 2 years of experience in ASIC design, including various technology nodes like 3nm, 5nm, 7nm, 28nm, 90nm, 110nm, and 180nm. Experienced in Place & Route, Static Timing Analysis, Physical Verification, and Low-power technique implementation. References:
If you wish to download a copy of this white paper, click here
|
Home | Feedback | Register | Site Map |
All material on this site Copyright © 2017 Design And Reuse S.A. All rights reserved. |