Professional Documents
Culture Documents
PLACEMENT
PLACEMENT
Name : vk.kaushik
Batch : jan23pd
What is placement ?
Placement is the process of placing standard cell in the design. the tool determines the location
of each standard cell on the die. the tool places these based on the algorithms which it uses
internally. Placement does not just place the standard cells available in the synthesized netlist. it
also optimizes the design.
Inputs
● Technology file (.tf)
● Netlist
● SDC
● Library files (.lib & .lef)
● TLU+ file
● Floorplan & Powerplan DEF file
Goals
● Timing, Power, Area optimization
● Minimum congestion
● Minimum cell density, minimum pin density, minimum congestion hotspot
● Congestion driven
Tool will reduce congestion, std cells should not be more, spread of cells more.
This is done when design has less area
● Area driven
If we have low area , tool will adjust cells or replace cells based on logical restructuring,
it will recover area.
● Power driven
Tool will avoid leakage cells
Placement stages
1. Global placement/Coars placement/Initial_opt
2. Detail placement
3. Placement legalization
4. Initial place optimization
Global placement
During this placement tool will determine approximate location for each cell according to timing ,
congestion , connectivity and netlist.
It is in the for of overlapped
Detail placement / Legalization
Here in this stage tool will move std to near by rows to a legal location by avoiding overlapping
between cells.
Based on timing and congestion tool will place cells
Optimization
For initial stage we use place_opt command but after placement if we want to add cell we
cannot restart place_opt as it consume time to compile . instead we use legalize_placement
command to legalize specific cell
Stages in Place_opt
● Initial_place
> No legalization
> Buffer aware timing driven placement
> Tool will move cells to approximate location based on connectivity
● Initial_drc
> it does high fanout net synthesis
> remove buffer trees for HNS
> Logical drc fixing
● Initial_opto
Quick timing optimization
Netlist change observed and updated
Initialize cell map
Grid cell creation from here to end of stage
Reduce TNS WNS
● Final_place
Incremental timing driven (iteravtive process)
Global route congestion place
Move std cells to nearest cell row to improve congestion
Scan opt done
● Final_opt
Fix left over timing violation and legalize it
Does multiple iteration
Placement bounds
It is a constraint that controls the placement of groups of leaf cells and hierarchical cells. It
allows
you to group cells to minimize wire length and place the cells at most appropriate locations.
When
our timing is critical during placement then we create bounds in that area where two
communicating cells are sitting far from another. It is a fixed region in which we placed a set of
cells.
Types of bounds:
EX:
In this tool tries to place the cells in the group bound within a floating region, however, there is
Create bound –name b_3 –type exclusive –boundary {10 10 20 20} instance_1
Cell density
While timing optimization tool will keep cells as close as it can to meet timing requirement , thus
it leads to high density of cell in particular area which leads to congestion.
Refine_opt:
if congestion is found to be a problem after placement and optimization. It can
improve incrementally with the refine_opt command.
1. Initial path optimization: it incrementally moves registers along timing paths to improve
timing.
2. Incremental placement: to reduce congestion and improve routability.
3. Incremental optimization: perform incremental timing, area, congestion and leakage
power optimization.
4. Final placement: final phase of path optimization to improve timing
5. Legalization: tool legalize the placement.
Magnet placement:
To improve congestion for a complex floorplan or to improve timing for the design we can use
magnet placement to specify fixed object as a magnet and have the tool place all the standard
cells connected to the magnet object close to it.
We can fix macrocells, pins of fixed macro or IOports as the magnet object.
For best results perform magnet placement before standard cell placement.
Command: magnet_placement
Tie Cell insertion
Sometimes in the netlist some unused inputs are tied to VDD/VSS (logic1/logic0). It is not
recommended to connect a gate directly to the power network, so we use TIE_HIGH or
TIE_LOW cells if available in the library. These are single pin cells that effectively ties the pin it
connects high or
Low.
Optimization techniques:
● Netlist constructing only changes existing gates, does not change functionality.
● Cloning
● Duplicates gates
● Gate sizing
● Swapping of pins that can change the final delay
● Fan-out splitting