Placement
Placement
Presentation by
SUDHIR KUMAR MADHI
Placement
• Placement
• In this stage, all the standard cells are placed in the design (size, shape & macro-
placement is done in floor-plan). Placement will be driven by different criteria like timing
driven, congestion driven, power optimization etc. Timing & Routing convergence
depends a lot on quality of placement. Different tasks in placement are listed below;
1.Pre-placement
2.Initial placement (Coarse placement)
3.Legalizations
4.Removing existing buffer trees
5.High Fan-out Net Synthesis (HFNS)
6.Iterations of timing/power optimizations [cell sizing, moving, net spitting, gate cloning,
buffer insertion, area recovery]
7.Area recovery
8.Scan-chain re-ordering
9.TIE cell insertions
checks before doing placement:
• After completion of floorplanning, power planning and
placement of physical only cells Endcap cells and Tap cells, we
check the base DRC and errors related to floorplanning like
vertical spacing error, horizontal spacing error, min site row,
vertical site row, and alignment.
• After inserting the tap cells, check to ensure that a standard cell
peaceable area is protected by tap cells. Tap cells are placed
correctly or not.
checks before doing placement:
• Tap cells are typically used when most or all of the standard
cells in the library contains no substrate or well taps. Generally,
the design rule specifies the maximum distance allowed between
every transistor in a standard cells and a well or substrate tap.
• Advanced nodes often requires the insertion of additional tap
cells to manage the substrate and well noise. Before placing the
standard cells we add boundary cells (Endcap cells) also, which
are added to the ends of the cell rows and around the boundaries
of objects such as core and hard macros and we checked that
endcap cells are placed or not.
checks before doing placement:
• After you have done the floorplanning i.e. created the core area,
placed the macros and decided the power network structure of
your design, it is time to let the tool do standard cell placement.
PLACEMENT
• Placement is the process of finding a suitable physical location
for each cell in the block. Tool only determine the location of
each standard cell on the die.
• Placement does not just place the standard cell available in the
synthesized netlist, it also optimized the design
• The tool determines the location of each of the standard cell on
the core. Various factors come into play like the timing
requirement of the system, the interconnect length and hence
the connections between cells, power dissipation, etc.
• placement solution used, and it is very important in determining
the performance of the system as the geometries shrink.
• Placement will be driven based on different criteria like timing
driven, congestion driven, power optimization.
• Placement is performed in two stages: coarse placement and
legalization.
Goal of placement:
• Timing, power, area optimization
• Routable design
• Minimum cell density and pin density(Reduce the congestion
due to cells and pins) congestion hot-spots
• Minimum timing DRC’s
• Before starting the placement optimization, it’s always good
practice to do some analyses & checks on the design & tool
settings. This would definitely help in design converge & reduce
iterations.
Inputs and output of placement:
Inputs
Netlist
Floorplan def
Logical and physical library
Design constraint
Technology file
Output:
Placement def
• Before the start of placement optimization all wire load models
are removed. Placement uses RC values from the virtual route to
calculate timing. The virtual route is the shortest Manhattan
distance between two pins. Virtual route RC values are more
accurate than WLM RC’s.
Coarse placement:
• During the coarse placement, the tool determines an
approximate location for each cell according to the timing,
congestion and multi-voltage constraints. The placed cells don’t
fall on the placement grid and might overlap each other. Large
cells like RAM and IP blocks act as placement blockages for
standard cells. Coarse placement is fast and sufficiently accurate
for initial timing and congestion analysis.
Coarse placement:
Legalization:
• During legalization, the tool moves the cells to legal locations on
the placement grid and eliminate any overlap between cells.
These small changes to cell location cause the lengths of the
wire connections to change, possibly causing new timing
violations. Such violations can often be fixed by incremental
optimization, for example: by resizing the driving cells.
Legalization:
Legalization:
• Placement constraints provide guidance during placement and
placement optimization and legalization so that congestion and
timing violations will be reduced.
• 1. Placement blockages
• 2. Placement bounds
• 3. Density constraint
• 4. Cell spacing constraint
Placement blockages:
Netlist constructing only changes existing gates, does not change functionality.
1.Cloning
2.Duplicates gates
3.Gate sizing
4.Swapping of pins that can change the final delay
5.Fan-out splitting
Congestion:
Congestion occurs when the number of available routing
resources is less than the required routing resources. This
condition we can see in global routing. A congestion map can help
us to visualize the quality of placement. The congestion map
shows the borders between global routing cells highlighted with
different colors that represent the different levels of overflow. The
overflow and underflow of the all selected layers. For example, if
a highlighted light blue on the edge global routing cells shows
10/9 that means there are 9 available wire tracks and the required
tracks are 10.
What are the reasons for
congestion?
• High standard cell density in a small area
• Placement of standard cells near the macros
• High pin density at the edges of macros due to high fan in cells like
AOI, OAI
• Bad floorplan (no proper blockages, halos are present)
• Macros/standard cell might have used all the metal layers inside and
routing resources will be less
• Placing macros at the center instead of the boundary.
• During IO optimization tool does buffering so lot of cells placed in the
core area
How to control the congestion:
• High cell density can cause the congestion.by default the cell
density can be up to 95%. We can reduce the cell density in
congested areas by using coordinate option.
• Set_congestion_options –max_util 0.45 –coordinate {x1 y1 x2
y2}
• Here we set the maximum cell density upto 45% and given the
coordinates for the particular area.
• If the design is congested, we rerun the place_opt with the –
congestion and –effort high options. During congestion driven
placement, the cells which are sitting together and caused the
congestion are spread apart.
• Place_opt –congestion_driven –effort high
• Reduce the local cell density using partial placement blockages
• Create_placement_blockage –boundary {10 20 100 200} –type
partial –blocked_percentage 40 (it means 40 % area is blocked
for placement of standard cells and the rest of the 60% available
for placement of standard cells)
• If we have more pin density, which can be reduced by adding cell
padding to the cells which is causing congestion. Cell padding can be
applied by setting the keepout margin command.
• Create_keepout_margin –type soft –outer {10 10 10 10}
my_lib_macro
• Macro padding or placement halos, soft blockages and hard
blockages around the macros are like placement blockages around
the edges of the macros. This makes sure that no standard cells are
placed near the pins of macros and corners of macros, thereby
giving extra breathing space for the macro pin connections to
standard cells.
• change the floorplan (macros placement, macro spacing and pin
orientation)
• Reordering the scan chains to reduce the congestion
Checks after placement:
• Check legalization
• Check PG connections for all the cells.
• Check congestion, density screens & pin density maps all these
should be under control
• Timing QOR, there should not be any high WNS violations.
• Minimum max Tran and max cap violations.
• Check whether all don’t touch cells & nets are preserved.
• Check the total utilization of design after placement.
THANK YOU