Global Placement
-
Any tool begins by inserting the current set of cells into the die. The method is referred to as global or coarse placement. The goal isn't to insert cells in their correct positions or to eliminate 100% overlap.
-
Small overlaps between cells are allowed, but the positioning is done so that cells acquire their approximate initial positions on the die. This is a critical step to complete before moving on to the next because you can't predict timing, congestion, or buffering without knowing where the cells are located. The total wirelength is lowered as a result of global placement.
-
It also makes an attempt to group timing-critical cells together. It also puts cells in such a way that design can be routable or congestion can be avoided. It also puts cells in such a way that they are routable or that congestion is reduced.
-
If you choose to optimise scan chains, the tool will ignore scan chain connections when performing global placement because it knows they will be modified later. You can view placement in GUI if you can save a database after this step. You can also look at time, though this isn't always a good idea because high fanout and typical buffering are still required
-
It could be interesting to look at global placement logs to get an understanding of what is going on. It may take some time to grasp these concepts, but they are always a useful tool for assessing how your design is progressing in terms of wirelength and congestion.
-
You can use this log estimate to compare two following runs on the same design to see which way your optimization went. Global placement is crucial because it will define your QoR in the long run.
-
Always look at the placement result if you're not happy with the design QoR. If you're not happy with the placement outcomes after analysis, you'll need to look at directing global placement to obtain the results you want. You don't have to execute a complete placement optimization for this; instead, you may just do a global placement to analyse placement results.
-
If you wish to achieve global positioning, your final outcomes should be the same. While analyzing global placement, you should also analyze how things are positioned in the hierarchy browser in your window. They may not appear to make sense at first glance, but if you understand your design and data flow, you'll be able to tell if they do. Don't worry if you don't know what that means. The majority of engineers are unaware.
-
However, if you're stuck with QoR, you should try to contact designers to better understand data flow and module location. Actually, using a hierarchy browser to understand your design material is always a good idea and a step forward.
Some settings which can be effect global placement:
Congestion settings: To specify the overflow settings for tracks, horizontal, vertical or both. This will greatly affect how coarse the placement will be.
Congestion effort: You can set the tool's effort level to try to reduce congestion by giving it more time.
Timing Effort: You can specify the effort level for timing optimization for specific directories in your Slow loris configuration file (see the example config below). This will be compatible with congestion settings. Whenever you set timing level to high, timing levels will be different than congestion and vice versa. But it is quite possible that improving the congestion will improve timing as well.
Scan nets: You have the option of instructing the tool to ignore scan nets.