Uploaded by ljw18356983775

mixed placer.v1

advertisement
Mixed Placer Flow – Concurrent
Placement of Macros and Standard Cells
Product Version: Innovus 20.1
June 2020
Copyright Statement
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide. Cadence and the Cadence logo are
registered trademarks of Cadence Design Systems, Inc. All others are the property of their respective
holders.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 2
Mixed Placer Flow
Contents
What’s new in 20.1............................................................................................................ 5
Purpose ............................................................................................................................. 6
Overview............................................................................................................................ 6
Licenses............................................................................................................................. 6
Flows.................................................................................................................................. 7
Main Flow....................................................................................................................... 7
Incremental flow ............................................................................................................ 8
ECO flow ........................................................................................................................ 9
Cadence Placement Guidance (CPG) flow ............................................................... 10
Concurrent I/O Mixed Placement Flow ...................................................................... 12
Physical Cell and Power Routing ................................................................................... 13
Physical cell modeling................................................................................................. 13
Power routing density modeling ................................................................................. 13
Physical cells insertion and power routing ................................................................. 14
Design styles support and limitations............................................................................. 15
Best design configuration............................................................................................ 15
Limitations .................................................................................................................... 15
Interface Commands Reference .................................................................................... 17
place_design -concurrent_macros ............................................................................. 17
setPlaceMode –place_opt_run_global_place {none seed full} ................................. 17
place_design –concurrent_macros -incremental....................................................... 18
refine_macro_place..................................................................................................... 18
set_macro_place_constraint, reset_macro_place_constraint,
write_macro_place_constraint, check_macro_place_constraint .............................. 19
Mixed Place Constraints ................................................................................................. 20
Macro array placement constraint .............................................................................. 20
Group constraints ........................................................................................................ 21
Spacing constraints ..................................................................................................... 22
Macro orientation constraint ....................................................................................... 24
Macro maximum stacking length ................................................................................ 24
Fixed macro location ................................................................................................... 25
I/O pin keep-out ........................................................................................................... 25
Macro placement halo................................................................................................. 26
Mixed place constraints support list ........................................................................... 27
Sample Tcl Script in Innovus 20.1.................................................................................. 28
Q&A ................................................................................................................................. 33
What is the benefit of mixed place flow?.................................................................... 33
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 3
Mixed Placer Flow
Is MSV design supported?.......................................................................................... 33
Is ILM design supported?............................................................................................ 33
Is early clock flow supported? .................................................................................... 34
How to save intermediate DB for debugging ............................................................. 34
Too many detour paths in macro channels................................................................ 34
What happens if I restart the flow with all macros fixed? .......................................... 35
Support ............................................................................................................................ 35
Feedback ......................................................................................................................... 35
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 4
Mixed Placer Flow
What’s new in 20.1
•
Concurrent I/O Mixed Placement Flow (page 12)
•
Macro spacing constraint (page 23)
It is now possible to specify different values for vertical and horizontal directions.
• ILM design limitation removed (page 30)
• Better congestion handling
Mixed-placer can now handle congested design. You can turn on high effort congestion
mode using setPlaceMode -place_global_cong_effort high.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 5
Mixed Placer Flow
Purpose
This application note is for users who want to run mixed placement flow. It will describe
details of the flow, recommended usage, new commands and options used, how to tune
the flow for good QoR, and answers to common questions.
Overview
In the traditional digital backend implementation flow, creating floorplan is a single stage
and the main target is to place the macros that can get a routable floorplan with
minimized wire-length and good timing. It always takes design engineers much effort to
achieve these tasks and many design iterations are needed, which is like a trial-anderror approach. Especially in advanced technology nodes, a good floorplan is more
important and critical to ensure the QoR convergence. In the mixed placement
implementation flow, the macros and standard cells are placed concurrently by a
powerful engine, which is driven by congestion, wire-length, and timing. It can reduce a
lot of manual work and effort to achieve faster TAT with comparable or better QoR than
the traditional flow.
The flow chart: Floorplanning stage is integrated to the placement stage, while the
other stages are same as the traditional flow.
Licenses
Using Innovus 18.1, the Innovus_GigaPlace_XL_Opt license is needed. Your script
must contain the following specific setting in addition to the license:
setLimitedAccessFeature invsMacroPlace 1
Since Innovus 19.1, the limited access control is removed.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 6
Mixed Placer Flow
Flows
In this section, the following will be covered:
•
•
•
The main flow of mixed placement
How to tune the design by using the incremental flow
ECO flow for the new version netlist
Main Flow
The flow can start with or without a reference floorplan. The advantage of starting with a
reference floorplan is that you can extract the power routing density file even before
running the mixed placement flow for the first time. This file is used to generate a better
congestion and wire-length modeling while placing the macros. Starting without the
reference floorplan in the first run will be needed to generate the power routing. This
first run can also be used to start analyzing the QoR and refining the constraints setting.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 7
Mixed Placer Flow
For large and complex designs containing hundreds of macros, the mixed placement
flow cannot guarantee the perfect floorplan in one pass. Sometimes, a few iterations are
needed.
How to judge if the mixed placement result is good or not
A first analysis can be done at the end of place_opt_design. If timing or congestion
is bad and it confirms that the root cause is a non-optimal macro placement, the
recommendation is to refine the constraints (set_macro_place_constraints,
setPlaceMode, setRouteMode, etc.) and restart the flow. If only a few macros must
be refined, an incremental flow can be used.
Incremental flow
If the result from the place_opt_design step is good, but you think that it can be
improved by tuning the placement by significant moves (movement of at least the size
of the macro) of a few macros, you can use the “incremental flow”. Starting from the
mixed place DB, do the following:
•
•
•
“Unfix” the macros you want to move.
Update the constraints (set_macro_place_constraint, setPlaceMode…).
Call place_design -concurrent_macros -incremental.
This incremental flow can be called several times if needed. Manual placement tuning
can help for some corner cases. After macro placement tuning, you can go back to the
“physical cell insertion and power routing” stage of the main flow as described in the
following flowchart:
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 8
Mixed Placer Flow
ECO flow
The ECO flow can be used for an updated Verilog netlist with a few modifications. The
idea is to keep the floorplan elaborated using the previous netlist so that you do not
need to redo the macro placement and the power routing. The DB containing the
previous floorplan is coming from the intermediate DB saved during place_opt_design.
If the netlist size between the two netlists increases, the increase must be less than 3%.
Depending of the impact of this new netlist on the critical timing paths, the “place_opt_run_global_place” variable must be set differently:
•
With “none” if critical timing paths have not been modified. In that case, the new
standard cells will be placed directly during ecoPlace.
•
With “seed” if critical timing paths have been modified. In that case, the new
standard cells will be placed incrementally by place_opt_design.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 9
Mixed Placer Flow
If the new netlist size is increased by more than 3% or impacts a lot of critical paths, the
recommendation is to rerun the full mixed placement flow or run the CPG flow.
Cadence Placement Guidance (CPG) flow
Generally, the more the netlist changes, the more different the mixed placement result
can be. For a netlist change less than 3%, the ECO flow that does not touch the
floorplan is a good approach to consider (see the previous section). For a netlist change
with more than 3%, if you want to get a similar floorplan as with the previous netlist, the
CPG flow is a potential solution. The idea of this flow is to keep the macro placement of
the previous floorplan (through a guide file) as much as possible but let the tool move
the macros, if necessary, to solve any new congestion or timing issue. A typical usage
of the CPG flow is to support the insertion of DFT modules inside the netlist, assuming
the DFT has been elaborated considering the macro placement of the pre-DFT
floorplan. If the netlist change is due to new critical modules or functions, the CPG flow
is not recommended. A new mixed placement flow from scratch is expected to provide
better results.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 10
Mixed Placer Flow
To run the CPG flow, you need to dump a guide file from the old-version DB and read it
during the mixed placement flow on the new-version netlist. Take the pre-DFT and postDFT netlists, for example, you have already run mixed placement flow on the pre-DFT
netlist and push the QoR to be converged. When receiving the post-DFT netlist, you can
run the CPG flow as follows:
Innovus session 1
1. Restore the placement DB for pre-DFT.
2. write_macro_place_constraint -sections {cpg} -cpg_scope
{macro_only} -out_file macroLocs.tcl
# This command will write out CPG guide file from DB with Tcl format:
set_macro_place_constraint -cpg {<instName> <x> <y>
orientation}
Innovus session 2
3. Restore the initial DB for post-DFT.
4. setPlaceMode -place_global_cpg_file macroLocs.tcl
# Specify the CPG guide file and CPG flow will be turned on for mixed-placer
5. place_design -concurrent_macros
The other settings are same as the default mixed placement flow. Note that
refine_macro_place does not honor the CPG guide. It is recommended to keep the
same setting of macro placement constraints as the old version DB when running the
CPG flow (see the following flowchart).
In innovus 19.1, the CPG flow has been enhanced with an “effort” option:
setPlaceMode -place_global_cpg_effort {low|medium|high}”
Default is low.
The higher the level, the more the placement will increase the force to push instances to
the guided locations (macro placement of the previous floorplan). But a high effort also
means less flexibility for the tool and so, a potential degradation of the QoR and the
wireLength as compared to low effort. That’s why the low effort is the default.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 11
Mixed Placer Flow
Concurrent I/O Mixed Placement Flow
In innovus 20.10, the mixed placement implementation flow has been enhanced to
place I/O pins to optimize their locations and reduce the wire length and the congestion.
You can use the createPinGroup and createPinGuide commands to guide mixedplacer where to put IO pins.
It is a beta feature in 20.1. You need to contact Cadence AE for support.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 12
Mixed Placer Flow
Physical Cell and Power Routing
Physical cell modeling
In channels between macros, there are endcap cells and eventually, wellTap and
powerSwitch cells. In these macro channels, the impact of having these cells can be
significant. This is why it is important to model them while placing the macros. The
recommended modeling is to increase macro halos to “reserve some space” for these
physical cells before the placement and come back to a regular halo distance after the
placement. For example:
# Additional halo to model physical insts before placement:
addHaloToBlock -allBlock {2 2 2 2}
# Reset the macro halo to the regular size after place_design concurrent_macros:
addHaloToBlock -allBlock {1 1 1 1}
Power routing density modeling
In Innovus 19.1 and newer builds, the power density modeling is
generated automatically from a reference floorplan by the following
command:
“create_pg_model_for_macro_place -pg_resource_model
-file golden_mimic_power_mesh.tcl”
The information is saved into a Tcl file, “golden_mimic_power_mesh.tcl”, which is
read later in the flow by the “source golden_mimic_power_mesh.tcl” command.
This file contains only one value per layer, modelling the power density both over the
standard cells area and macros. It means mixed placer will remove the available routing
tracks by the ratio for each layer. Because the number and the type of macros are
different for each design, this power density modelling is design dependent.
In case of “no reference floorplan”, the recommended flow is to run the mixed
placement the first time without this power modeling file, apply your power stripes script
and then, generate the power modelling file. Before restarting the flow, the
recommendation is to check the QoR of this first run and update your constraints as
necessary, like the spacing constraint between macros.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 13
Mixed Placer Flow
Physical cells insertion and power routing
When all macros are placed in legal locations (after
refine_macro_place) and fixed in the floorplan, it is time to
insert physical cells and create power stripes. These scripts are
usually provided by the customer. If you do not have them, refer
to the documentation and look for commands like addEndCap,
addWellTap, addPowerSwitch, addStripes,
editPowerVia, etc.
Example:
The following command adds stripes in the vertical direction for the vdd and gnd nets:
addStripe -direction vertical -nets {vdd gnd} -width 10 -spacing
1 -layer METAL6 -start_offset 50 -set_to_set_distance 50
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 14
Mixed Placer Flow
Design styles support and limitations
About the main design styles:
•
•
•
•
Flatten design: Yes. It is fully supported from 17.13.
Hierarchical design with partitions defined: No. It is not ready in 20.1.
MSV (Multiple Supply Voltage) designs with fences defined: Yes (see the “Is
MSV design supported?” section for details).
ILM designs: Yes (see the “Is ILM design supported?” section for details).
There can be many other design styles depending on parameters like the boundary
shape, the macros shape and size, the density, the number of layers, and others.
Following are the best design configuration supported and some limitations.
Best design configuration
•
•
•
•
•
Design with a rectangle boundary
No large macros (see the definition in the following section)
Macros with almost uniform sizes
Macro density (macro area / design area) < 60%
Enough routing resource over macros (at least two routing layers for H and
V)
Examples: GPU, networking, smart phone, AI chips
Limitations
1. Macro density
The QoR may be degraded when the density becomes larger than 60%. In this
case, some iterations may be necessary to improve it. When macro density is
more than 80%, it is quite complicated to get a good QoR. When running the
mixed placement flow, macro density is printed in the log file for information.
Example: Average macro density = 0.25 (means a macro density of 25%)
2. Large macros (definition)
a. The area of the macro is larger than 20% of the total design area.
b. The width or the height of the macro is longer than 50% of the design’s
width or height.
Large macros have a significant impact on the floorplan feasibility. If the design
has a few large macros, it is recommended to preplace the large macros
manually.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 15
Mixed Placer Flow
3. Limited routing resources over macros
This flow may place the macros in the middle of the design like standard cells to
get an optimal QoR. With this placement, the wire length is optimized as much as
possible and is usually much better compared to the placement with macro
placement close to the design boundary. To handle long nets more easily, which
could cross partially, the design would need to have nets routed over the macros.
It is preferred to have at least two free routing layers per direction over the
macros. If two free routing layers are not available, you need to push the macros
to the design boundary after completing the mixed placement flow.
4. Design rectilinear shapes
It can support different shapes of designs such as rectangle and simple L shape,
without long 90 degrees outside corner edges, etc. But it is difficult to support a
complex shape of the design with more than six inner corners, for example, a U
shape design with very long 90 degrees outside corner edges, where QoR may
not be optimal.
5. Macro rectilinear shapes
Rectilinear macros are not fully supported. It is recommended to preplace them if
there are only a few such macros.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 16
Mixed Placer Flow
Interface Commands Reference
place_design -concurrent_macros
There is a new option, -concurrent_macros, created for the place_design
command. When this option is enabled, place_design will do concurrent timingdriven placement of macros and standard cells.
Note: The standard cell placement is not completely finished after place_design concurrent_macros. Standard cells are overlapped and not in legal positions. In a
few cases, you can see standard cells placed outside of the core area. However, it is
not an issue. The next command, place_opt_design, will complete the standard cell
placement and preCTS optimization in the later stages. Example:
source init.enc
setLimitedAccessFeature invsMacroPlace 1 (needed before Innovus 19.1)
set_macro_place_constraint …
place_design –concurrent_macros
(mixed placement)
setPlaceMode –place_opt_run_global_place {none seed full}
The new option, setPlaceMode –place_opt_run_global_place {none seed
full}, is used to change the Global Placement behavior inside place_opt_design.
The default value is full. place_opt_design will run full Global Placement and
preCTS optimization as the general flow. When this option value is set to seed,
place_opt_design will use the output of the concurrent placement or other sources
as seed placement and run incremental standard cell placement followed by full preCTS
optimization. When this option value is set to none, place_opt_design will skip the
place_design step and run only preCTS optimization.
Note: “place_design –concurrent_macros” will set the option value to “seed”
automatically.
Example to run seed placement:
# Start from the mixed placed DB.
# Set this option if there is a user plugin, with setPlaceMode -reset.
setPlaceMode -place_opt_run_global_place seed
place_opt_design
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 17
Mixed Placer Flow
place_design –concurrent_macros -incremental
When the concurrent_macros and incremental options are used together,
place_design will run the mixed placement flow incrementally. This “incremental”
parameter works only when the design is already placed.
If the “incremental standard cell placement” result is congested or preCTS QoR is not
good, you can modify the macro constraints and run the incremental mixed placement
flow. Read the “Incremental Flow” section for more information on how to tune the
design.
Example:
place_design –concurrent_macros
saveDesign concurrentMacro.enc
…
place_opt_design
# QoR is not good, in another INNOVUS session
restoreDesign concurrentMacro.enc.dat top
# Modify macro constraints, etc.
place_design –concurrent_macros -incremental
refine_macro_place
Legalize macros to avoid macro-overlapping and honor macro placement constraints
with limited macro displacement. Command ‘refine_macro_place’ by default is called in
“place_design –concurrent_macros” after global placement. You can change the
mixed place constraint and then call the standalone refine_macro_place to honor it.
Example:
set_macro_place_constraint \
-forbidden_space_to_core 2 -min_space_to_core 5 \
–forbidden_space_to_macro 2 –min_space_to_macro 5
refine_macro_place
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 18
Mixed Placer Flow
set_macro_place_constraint, reset_macro_place_constraint,
write_macro_place_constraint, check_macro_place_constraint
See Innovus 20.1 Text Command Reference.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 19
Mixed Placer Flow
Mixed Place Constraints
Macro array placement constraint
This constraint can be specified by set_macro_place_constraint.
Syntax:
set_macro_place_constraint
-array <array_name> {<array_element> [ <spacing> <array_element>] +}
[-place_order <horizontal|vertical>] [-valid_group_orientations
<orientation_list>]
[- common_hier <common_path>]
<array_element>
# Specify instance members information of a
row or column in format: <inst_name>:<orientation> [ <spacing>
<inst_name>:<orientation>] +
<inst_name>
# Specify an instance name. It can be specified in a
short-hand format variable.
-place_order
# specify the place order in horizontal or
vertical or column first. Default is horizontal.
-valid_group_orientations
# valid orientations for the whole group
-common_hier
# Specify common hierarchical path. It can be
combined with instance name with short-hand format
Example of setting the macro array constraint:
set_macro_place_constraint -array ram_array
{{ip1/dma/r0_irx:R0 4.66 ip1/dma/r1_irx:MY 8.0
ip1/dma/r2_irx:MY}
2.33
{ip1/dma/r3_irx:R0 4.66 ip1/dma/r_irx:MY}}
-valid_group_orientations {R0 MY}
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 20
Mixed Placer Flow
Group constraints
The group constraints are used to:
•
Specify that some macros should be placed closer
•
Provide soft and hard constraints for macro groups
•
Provide align group for macros
How to define the group constraints:
o Guide/Region/Fence

These three constraints are same as the traditional flow. Fixed bounding
box is needed by user input.
o softGuide

The macros inside a group will be placed closely. No bounding box is
defined.
o align_group

Specify the macros to be an align group in which the macros should be
aligned.

The group elements should only be macros with the same size. The
alignment will be automatically done by the tool with soft constraint.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 21
Mixed Placer Flow
Examples:
createInstGroup pipe1 –softGuide
#doesn’t support box
addInstToInstGroup pipe1 {ip1/regbank1 ip1/dma/ramI2
ip1/alu/adderI3}
set_macro_place_constraint -align_group group1 {ip2/dma/ram2A
ip2/dma/ram2B}
Spacing constraints
Spacing constraints are used to specify the minimum spacing and forbidden spacing of
macro-to-macro and macro-to-core boundaries. You can specify a unified value for
vertical and horizontal spacing or different values.
Example 1:
set_macro_place_constraint -forbidden_space_to_core 2 min_space_to_core 5
refine_macro_place
Example 2:
set_macro_place_constraint -parallel_run_length 3 \
-forbidden_space_to_macro 2 –min_space_to_macro 5
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 22
Mixed Placer Flow
refine_macro_place
Notes:
1. When the parallel run length of macros is larger than the specified parallel run
length value, macro-to-macro spacing checking will be enabled.
2. If the macros have face-to-face pins, the macros will not be abutted by default,
even when the space between macros is less than the forbidden space.
In 20.1, the spacing constraint has been enhanced to support different values for
vertical and horizontal directions.
Commands to use:
set_macro_place_constraint \
–forbidden_space_to_core {unified_value | horizontal_value
vertical_value}
–forbidden_space_to_macro {unified_value | horizontal_value
vertical_value}
–min_space_to_core
{unified_value | horizontal_value
vertical_value}
–min_space_to_macro
{unified_value | horizontal_value
vertical_value}
refine_macro_place
If only one value (unified value) is specified, both horizontal and vertical spacing use the
same value. If two values are specified, the first value is for horizontal spacing and the
second value is for vertical spacing.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 23
Mixed Placer Flow
Macro orientation constraint
This constraint is used to specify the legal orientations for macro instances. It is a local
restriction to refine the solution and is stricter than LEF symmetry definition.
Note: The constraint is instanced-based, not cell-based.
Example:
set_macro_place_constraint –insts {ip2/dma/ram2A ip2/dma/ram2B}
–orientation {R0 MX}
•
The specified orientations should be legal in LEF.
•
The specified macros can be placed as R0, MX.
Macro maximum stacking length
When long nets travel across the stacking macros, the optimizer cannot add buffers to
fix DRV or timing violation if there is no channel between them. This constraint is to
define the maximum stacking length for macros.
Example:
set_macro_place_constraint
–horizontal_stacking {max_macro_stack_length
min_space_between_macro_stack min_space_between_macro} parallel_run_length {PRL}
Note: Only when the macro spacing is less than the specified
“min_space_between_macro”, the macros will be counted in the stacking length
constraint. The value of “min_space_between_macro_stack” in the stacking length
constraint should be bigger than the option value of “min_space_between_macro”.
And parallel_run_length is mandatory for stacking condition checking. The tool
does not consider that the macros are stacked when PRL <=0, since there is no
channel-less problem.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 24
Mixed Placer Flow
Fixed macro location
If you want to fix the macro location and not allow placer to move it, the solution is to
preplace the instance and change the status to fixed.
Example:
placeInstance my/ip1/rom_512i2 102.33 2022.39 MY
setInstancePlacementStatus -name my/ip1/rom_512i2 –status fixed
I/O pin keep-out
This constraint is to prevent macros from being placed near I/O.
Example:
set_macro_place_constraint -max_io_pin_group_keep_out 20
•
The tool will add macro-only blockages to I/O pins and reserve keep-out space
for pin routing. It automatically coordinates the size of macro-only blockages
based on the pin density and the number for each group of IO pins.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 25
Mixed Placer Flow
Macro placement halo
This constraint can be used to keep the instance-based macro spacing and model
EndCap, WellTap, and PSW cell areas at the mixed placement stage.
Example:
addHaloToBlock {10.0 20.0 40.0 30.0} –cell {ram1 ram2} –ori R0
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 26
Mixed Placer Flow
Mixed place constraints support list
placeDesign –
concurrent_macro refine_macro_place check_macro_place_constraint
1. Macro array placement constraint Yes
Yes
No
Yes
No
No
Yes
No
No
Yes
Yes
Check Region/Fence
3. Spacing Constraints
No (plan 20.2)
Yes
Yes
4. Orientation Constraint
5. Over Macro Pow er Routing
Modeling
Yes
No
Yes
Yes
No
No
6. Maximum Stacking Length
No
Yes
Yes
7. Fixed Location
Yes
Yes
No
8. IO Pin Keep Out
Yes
Yes
No
9. Macro Placement halo
Yes
Yes
Check overlap
align_group
2. Grouping softGuide
constraints
Guide/Region/Fence
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 27
Mixed Placer Flow
Sample Tcl Script in Innovus 20.1
#############################################################################
### DATA PREPARATION
#load golden floorplan DB including power mesh
source testcase.tcl
# Create power mesh modeling file from golden FPlan:
# In case the power mesh is the same over the macros and the
stdcell areas, use the following command:
create_pg_model_for_macro_place -pg_resource_model -file
golden_mimic_power_mesh.tcl
# In case there are special stripes over macros (vs the stdcell
area), and ONLY IN THIS CASE,
# you can use the following command:
# create_pg_model_for_macro_place -pg_resource_model pg_model_over_macros -file golden_mimic_power_mesh.tcl
# Remove all floorplan objects
# remove routing blockages, placement blockages,
relative_floorplan constraints
# unplace placed instances, routing wires, boundary_constraints
# delete physical instances
cleanup_floorplan_for_macro_place -remove {route_blockage
place_blockage relative_floorplan insts_place wire
boundary_constraint physical_inst}
# if there are large size macros (>20% in total area) or
rectilinear macros keep them fixed when cleaning up floorplan
#cleanup_floorplan_for_macro_place -remove {route_blockage
place_blockage relative_floorplan insts_place wire
boundary_constraint physical_inst} -keep_fixed_insts <inst1
inst2 ...>
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 28
Mixed Placer Flow
###########################################################################
### ADD CONSTRAINTS
#add IO buffers here if they are needed
## additional halo to model physical like endcaps cells. This
additional halo will be
## removed layer. Ex: here we define a halo of 2 instead of 1
because of the endcap width = 1um
addHaloToBlock -allBlock {2 2 2 2}
# Mixed Placer Constraints
# Recommendations:
#
- set the min_space_to_macro as the minimum width you need
for a channel between
#
macros to insert all the needed power stripes and power
cells
#
- set the forbidden_space_to_macro as half of the
min_space_to_macro
#
- set the min/forbidden_space_to_core similarly as the
min/forbidden_space_to_macros
#
- set the max_io_pin_group_keep_out distance considering
your biggest group of pins
set_macro_place_constraint -min_space_to_core 10 forbidden_space_to_core 5 -min_space_to_macro 10 forbidden_space_to_macro 5 -max_io_pin_group_keep_out 20
# General constraints
# set all pre-placed setting (placement, clock... routing) like
you use to do in regular flow
#set_db -place...
#set_db -opt...
#set_db route_early_global_...
#set_path_group_options ...
source pre_place.tcl ; # pre_place.tcl is supposed to contain
all your pre-placed settings
# source the power mesh modelling file that has been generated
previously by the command create_pg_model_for_macro_place
source golden_mimic_power_mesh.tcl
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 29
Mixed Placer Flow
#############################################################################
### RUN MIXED PLACER
# by default refine_macro_place is called automatically after
the mixed placement in order
# to legalize the macro placement. Using the option no_refine_macro the command refine_macro_place
# is not called. This gives us the possibility to:
#
- see the "brut" mixed placer result (before legalization)
#
- Call in incremental Mixed Placement if needed (see
documentation for this)
#disable refine_macro_place in place_design for halo adjustment
place_design -concurrent_macros -no_refine_macro
saveDesign myDB_local/macroPlace.enc
#Optionally, run incremental concurrent macro placement (see
documentation)
#place_design -concurrent_macros -incremental
## re-set the macro halo to the original size after concurrent
mixed placement
addHaloToBlock -allBlock {1 1 1 1}
refine_macro_place
##optional post concurrent macro place process: snap macro pins
to track, colorize macro pin if no color, etc
#setFPlanMode -snapBlockGrid LayerTrack
#snapFPlan -macroPin
##current behavior: macros may be off finfet-manufacture-grid by
"snapFPlan -macroPin", it's a limitation
## change the macro status to fixed after refine_macro_place
dbSet [dbget top.insts.cell.baseClass block -p2].pstatus fixed
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 30
Mixed Placer Flow
##############################################################################
### FLOORPLAN FINISHING
## add placement blockages to channel
setFinishFPlanMode -activeObj {macro macroHalo hardBlkg softBlkg
partialBlkg core iopad iocell fence} -direction xy
#add hard blockage into very small channels if any
finishFloorplan -fillPlaceBlockage hard [expr
[get_macro_place_constraint -min_space_to_macro] / 2.0]
#Optionally add following blockages in case of congestion:
#finishFloorplan -fillPlaceBlockage soft
9.7
; #
value a little bit less than min_space_to_macro
#finishFloorplan -fillPlaceBlockage partial 9.7 -density 30 ; #
value a little bit less than min_space_to_macro
#finishFloorplan -fillPlaceBlockage partial 15 -density 60
# add physical instances
source add_physical_inst.tcl
saveDesign myDB_local/macroPlace_noPowerMesh.dat
#reset the PG modeling constraint and do power routing
reset_macro_place_constraint -cell_obs -pg_resource_model
## unplace standard cells temporary for power routing
defOutBySection -compPlacement -noNets
myDB_local/temp_placement.def
# Add power stripes
unplaceAllInsts
editDelete
# check the placement density if there are too many placement
blockages added by finishFloorplan
checkFPlan -reportUtil
# start power routing
source PP.tcl ; # PP.tcl is supposed to be your script to
create all power stripes
## should colorize power mesh and macro pins
#colorizePowerMesh
defIn myDB_local/temp_placement.def
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 31
Mixed Placer Flow
##############################################################################
### RUN PLACE_OPT_DESIGN
setPlaceMode -place_opt_run_global_place seed
#set post_place script, such as save init placement DB,
addTieHiLo ...
setPlaceMode -place_opt_post_place_tcl post_place.tcl
place_opt_design
saveDesign myDB_local/place.enc
##############################################################################
### CHECK POWER AND CONGESTION
report_power -outfile mp_prects_power.rpt
# Need to specify the power view if it has been defined,
example:
#report_power -view functional_hold_ffgnp125_cworst -outfile
mp_prects_power.rpt
#earlyGlobalRoute
reportCongestion -hotspot -includeBlockage
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 32
Mixed Placer Flow
Q&A
What is the benefit of mixed place flow?
It can reduce manual work and reduce TAT for the project. It is difficult and very timeconsuming for designers to manually tune a floorplan with hundreds or thousands of
macros. Compared with user’s tuned floorplan, it always achieves ~5% wire-length gain,
even 37% wire-length gain in some cases. Wire-length minimization will reduce the chip
power consumption and routing congestion.
Is MSV design supported?
Yes. If the power domain fences are already defined, each macro will be placed
respectively in its power domain fence as expected. If the power domain fences are not
defined, the mixed placement flow can be used so it can help you define them. The
macro placement will give the first idea where each power domain should be placed
inside the floorplan. From this placement, you can then draw the power domain fences
manually. Refer to the “Floorplanning the design” section of the Innovus User Guide for
more information. Once the power domain fences are defined, you can rerun the mixed
placement to place each macro in their power domain fences.
The power switching cells are inserted in the flow simultaneously with physical cells and
power stripes. Isolation cells are placed by the incremental standard cell placement.
Do I need to put some macro-only blockage close to the boundaries
of two power domains that are communicating together?
By default, no. But this is a solution in case of congestion.
Is ILM design supported?
Yes. You need to preplace all ILM blocks into core area and flattenIlm as follows:
1. Preplace ILM blocks anywhere inside core area.
2. flattenIlm
3. place_design -concurrent_macros
4. unflattenIlm
5. refine_macro_place
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 33
Mixed Placer Flow
Is early clock flow supported?
Yes. You must enable the earlyClock flow (using the regular setting) after
place_design -concurrent_macros.
How to save intermediate DB for debugging
By default, place_opt_design will run an incremental placement followed by the
optimization step. An intermediate DB can be saved by executing a Tcl script containing
a saveDesign between these two main steps as follows:
setPlaceMode -place_opt_post_place_tcl post_place.tcl
place_opt_design
and
saveDesign in post_place.tcl
Too many detour paths in macro channels
Possible reasons:
1. You have forgotten to add placement blockages to macro narrow channels after
“place_design -concurrent_macros”. Many instances may be pushed into
the channels at the later stages.
2. Too many hard or soft placement blockages are added to the macro channels,
which have many standard cells placed inside after “place_design concurrent_macros”.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 34
Mixed Placer Flow
3. The value of min_space_to_macro is too big, which makes large macro
movements during refine_macro_place, and more standard cells are pushed
into the channels, which is not expected.
What happens if I restart the flow with all macros fixed?
place_design -concurrent_macros will error out with the following message:
**ERROR: (IMPSP-455):
No placeable macro is found, please
check the floorplan and unplace the macros that need to be
placed by place_design -concurrent_macros
Support
Cadence Support Portal provides access to support resources, including an extensive
knowledge base, access to software updates for Cadence products, and the ability to
interact with Cadence Customer Support. Visit https://support.cadence.com.
Feedback
Email comments, questions, and suggestions to content_feedback@cadence.com.
Learn more at Cadence Support Portal - https://support.cadence.com
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide.
Page 35
Download