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. 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. 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. the interconnect length depends on the
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)
Minimum timing DRC’s
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.
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.
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:
It is the area where the cells must avoid during placement,
optimization and legalization.
It can be hard and soft.
ICC tools supports two types of placement
blockages
Keep-out margin
Area-based placement blockage: soft, hard, partial
Keep-out
margin:
it is a region around the boundary of fixed cells in a block in which no other
cells are placed. The width of the keep-out margin on each side of the fixed cell can
be the same or different. Keeping the placement of cells out of such regions avoids
congestion and net detouring and produces better QOR (quality of results).
Create_keepout_margin –outer {10 10 10 10}
my_lib_macro
By default hard keepout margin (lx by rx ty) [left
bottom right top]
Create_keepout_margin –outer {10 10 10 10}
my_lib_macro –type hard –name xyz
Area-based
placement blockage:
It is a rectangular
region in which cells can be placed or not or we can limit the number of cells.
Hard
blockages:
It prevents the placement of standard cells being placed in the blockage area.
Create_placement_blockage -boundary {10 20 100 200} –name pb0. By default it is hard blockages.
Soft
blockage:
during optimization buffer/inv can be placed in that blockage area.
Create_placement_blockage -boundary {10 20 100 200} –name pb1 –type soft
Partial
placement blockages:
it limits the cell density in a particular region.
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 rest of the 60% available for placement of standard cells )
Note: if you have both blockages are present at
the same place then hard blockages take priority over the soft placement
blockages.
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. It comprises of one or more rectangular or
rectilinear shapes which can be abutted or disjoint. In general we specify the
cells and ports to be included in the bound. If a hierarchical cell is included,
all cells in the sub-design belong to the bound.
Types of
bounds:
- Soft move bound
- Hard move bound
- Exclusive move bound
Soft move
bound:
In this tool tries to place the cells in the move
bound within a specified region, however, there is no guarantee that the cells
are placed inside the bounds.
Create bound –name b0 –type soft –boundary {10 10
20 20} instance_1 #define softbound for instance_1 with its left corner at (10
10) and its upper-right corner at (20 20).
Hard move
bound:
In this tool must place the cells in the move
bound within a specified region.
Create bound –name b1 –type soft –boundary {10 10
20 20} instance_2
Exclusive move
bound:
In this tool tries to place the cells in the group
bound within a floating region, however, there is no guarantee that the cells
are placed inside the bounds
Create bound –name b2 –exclusive –boundary {10 10
20 20} instance_1
Density
controls:
It means how the density of cells can be packed. We can
control the overall placement density for the block or the cell density for
specific regions. To control the cell density for specific regions we can also
use partial placement blockages.
Power optimization:
Dynamic
power: This
is the energy dissipated due to the voltage or logic transitions in the design objects,
such as cells, pins and nets. The dynamic power consumption is directly
proportional to the number and frequency of transition in the design.
Static (leakage)
power: This
is the energy dissipated even when there is no transition in the circuit? This
is also known as leakage power and depends upon device characteristics. The main
contributor to the leakage power is the sub-threshold-voltage leakage in the
device. At lower technology nodes, leakage power consumption contributes
significantly to the total power consumption of the circuit
In a library contains multiple-threshold- voltage
cells,
The LVT cells have higher leakage current but
better performance.
The HVT cells have lower leakage current but worst
performance.
Percentage low threshold voltage optimization
tries to find a balance between power and performance goals restricted the use
of LVT cells.
During low power placement, the tool tries to
minimize the length of high switching nets to improve the power QOR.
During Dynamic power-driven placement, the tool
tries to improve both the timing and power of the critical nets and the power QOR
without affecting the timing QOR.
Magnet placement:
Via ladder insertion:
A via
ladder is a stacked via that starts from the pin layer and extends into an
upper layer where the router connects to it. Via ladder reduces the via
resistance which can improve the performance and Electromigration robustness.
The tool can automatically insert the via ladder for cell pins on timing
critical paths.
After initial placement and optimization by using
place_opt command we perform incremental placement and optimization by using
refine_opt command.
Place_opt: This command performs
coarse placement, HFNS, optimization and legalization. In the place_opt command, the –congestion option causes the tool to
apply –high effort to congestion
removal for better routability, this will require more runtime and cause area
utilization to be less uniform across the available placement area.
Refine_opt:
if congestion
is found to be a problem after placement and optimization. It can improve incrementally
with the refine_opt command.
Refine_opt: perform 5 stages
- Initial path optimization: it incrementally moves registers along timing paths to improve timing.
- Incremental placement: to reduce congestion and improve routability.
- Incremental optimization: perform incremental timing, area, congestion and leakage power optimization.
- Final placement: final phase of path optimization to improve timing
- Legalization: tool legalize the 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
IO ports as the magnet object.
For best results perform magnet placement before
standard cell placement.
Command: magnet_placement
Timing driven
placement:
Tool tries to place the standard cells along
timing critical path close together to reduce net RC and meet setup timing.
Congestion driven
placement:
Tool tries to spread the cells where the density of
cells are more for the reduction of congestion.
Different task
during placement:
- Placement of standard cells
- Optimization of area, power, congestion and timing.
- Legalization
- HFNS
- Scan chain reordering
High Fan-out
Net Synthesis (HFNS):
In the placement stage we do this process. The process
of buffering the high fan-out to balance the load because if design has too
many loads then it affects delay and transition time. We know delay is load is
directly proportional to the delay. By buffering the HFN the load can be
balanced and this process is called the HFNS.
High fanout nets are mainly reset, preset, scan
enable etc. these nets are not synthesized in the synthesis stage, also make sure
you set an appropriate fan-out limit for your library using the command
set_max_fanout 20 [design_name]
Used ideal
clock in placement stage:
Clock net is also a high fan-out nets but in
placement stage we set set_ideal_clock or set_dont_touch commands on the clock signal.
If we don’t take the ideal clock here the clock constraints like skew, insertion
delay of clock buffers are not used and it affects the clock tree building. The clock network is ideal and does not have a clock buffer tree available for accurate
clock network timing analysis. In ICC we use the following command to make sure
that the clock is ideal not propagated in the placement stage.
Set_ideal_network [all_fanout –flat –clock_tree]
DFT
optimization:
If block contains scan chains by default
create_placement, place_opt and clock_opt commands perform DFT optimization.
During initial placement, the tool focuses on the QOR for the function nets by
ignoring the scan chains. After initial placement, the tool further improves
the QOR by repartitioning and reordering the scan chains based on the initial
placement.
Scan chains reordering reduces wire length so
timing will improve.
Scan chains reordering minimize congestions and
improves routability
The scan chain information (SCANDEF) from
synthesis can be transferred to ICC compiler into two ways:
By loading the netlist in DDC format
By loading a SCANDEF file.
TIE cells
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 TIEHI or TIELO cells if available in the library. These are single pin cells that effectively ties the pin it connects high or low.
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 TIEHI or TIELO 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
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.
great job madam.....lot of info for freshers...and please upload next stages of CTS and ROUTING ...
ReplyDeleteCan I contact you ? I want accurate answers for the questions. thank you...
Please mail me on physicaldesign4u@gmail.com
Deleteplease can you post the answer...
ReplyDeleteWhat is placement Attributes ???
ReplyDelete