Professional Documents
Culture Documents
ICCII N-2017.09 Opto Placement Training
ICCII N-2017.09 Opto Placement Training
ICCII N-2017.09 Opto Placement Training
• Placement
–Buffering Aware Placement
–Embedded CDR Ultra Effort
–Wide Cell Modeling
–Layer Aware Congestion Modeling
• Optimization
–Global Route Based Optimization
–Advanced HFN Buffering
–The remove_buffer_trees Command Enhancements
• This can lead to poor placement of registers, resulting in unfixable timing in the
later stages of the place_opt command, because subsequent calls to the
coarse placer are incremental.
• The low and high effort settings operates differently from the medium effort by importing a
smaller or larger set of permutable pin arrays into the placer
• The ultra effort mode imports into the coarse placer not only the leaf-level pin arrays of the
associative commutative trees, but the whole trees instead, allowing rewiring of connections
along multiple cuts inside these trees during placement.
• To change the CRD strategy and its effort level, use the following application
options:
set_app_options –name place.coarse.cong_restruct_strategy –value embed
–The default is embed
• CDR does not work with timing driven placement, which is enabled by using the
-buffering_aware_timing_driven or -timing_driven options of the
create_placement command
–When you apply both features, CDR is skipped
–The example flows on the following page shows how you can run both features
• Regardless of cell height, only one cell that is wider than half the M1 PG pitch can fit within PG
straps
– This feature makes the coarse placer aware of the density limits imposed by these cells and
automatically determines which cell types to consider
• For cells that are unable to straddle PG nets, the tool treats any cell that is wider than half the
M1 PG pitch as if its width was equal to the PG pitch
– In the following figure, to make it aware of the density limit in this area, during coarse placement the
tool treats any cell that is unable to straddle the PG nets and is less than 0.6555um wide as if it was
1.311um wide,
• Control the density of the wide
cells with density of other cells to 1.311um
ensure that both can fit as needed
No large
displacement
• The goal of layer aware congestion modeling is to provide an improvement in the accuracy of
congestion reduction in coarse placement
– Instead of always considering the congestion impact of all layers together, this feature will also
consider congestion represented in the layers required for pin-access as a separate factor
– Congestion reduction in the coarse placer will respond to the worst per-Gcell result of
– All layer congestion
– Low (pin-access) layer congestion
– This helps ensure that for areas of the design in which there are available upper-layer routing
resources, but few low-layer resources required to make the necessary pin connections, that the
placer will attempt to provide congestion relief in the affected areas
Optimization CAE
February 2017
Overview
• Global Route Based Optimization (GRO)
– Optimization based on global routing and GR timing
– Includes setup and hold delay optimization, logic DRC fixing, and leakage optimization (if enabled)
– Optimization moves considered are similar to those done by final-mode route_opt with the addition of
a rebuffering capability
– Available as a flow stage within the clock_opt command
• Most designs are expected to benefit from global route based optimization
– Improved timing, area, and leakage.
– Improved buffering topology, as buffering is based on global route layer assignment.
– Global route based optimization is not expected to either improve or degrade congestion.
• The execution of the global_route_opt stage of the clock_opt command is controlled by the
following application option setting:
set_app_options –name clock_opt.flow.enable_global_route_opt -value true
– The default is false
– Existing flows do not see any change unless this application option is explicitly enabled
• By default, after the global_route_opt stage of the clock_opt command has been run, any
further global routing is skipped, including
– The global route call within the route_auto command
– Anatomic global route calls by using the route_global command
– Incremental global route calls
IC Compiler II Flow
build_clock
place_opt
route_clock
clock_opt
final_opto
route_auto Skipped : Stage is not enabled
global_route_opt
route_opt
route_opt
• Scenarios used during GRO should include those used during virtual route based optimization
and postroute optimization
– At least one active scenario should have leakage power active
– Enable the route_opt.flow.enable_power application option
• Preroute of signals nets, using the route_group command, should be done before executing
GRO
© 2017 Synopsys, Inc. 32
Guidelines and Expectations
• In the event that it necessary to run global routing after GRO has been completed, it is possible
to do so
– Recommended to use incremental global routing, if possible, so as not to invalidate the optimization
which was done based on the existing global route
– Use the application option shown in the following example to allow global routing after GRO
set_app_options -name route.global.force_rerun_after_global_route_opt -value true
route_global -reuse_existing_global_route true
• Advanced high fanout net (HFN) buffering is the new buffer tree synthesis engine that is used
for initial high fanout net synthesis in the initial_drc stage of the place_opt command
– This is not an incremental enhancement to the existing buffering. It is a completely different
technology in all aspects:, such as buffer selection, buffer tree and driver sizing, topology generation,
clustering, and so on.
– It still leverages the same core IC Compiler II timer, extractor, and MV engines
• The following is the QoR trend measured at the end of the flow (green: better, blue: same, red:
worse)
Timing Logical Area Buffer Tree Quality Wirelength Routability Dynamic Leakage
DRCs (WL, CI-Ratio) (Congestion / Power Power
DRCs)
-15% -0.7% -3% (wirelength) -1% -11% (DRCs) -1.3% -1.3%
(TNS PM)
• To identify if advanced HFN buffering was performed, search for the word ORB
in the place_opt command output.
• The following example output shows such lines, which are printed by the
advanced HFN buffering engine:
• A default SPG flow enabled by using the place_opt.flow.do_spg application option does not
run the initial_drc stage of the place_opt command.
– Therefore, advanced HFN buffering is skipped, even if it is enabled.
• However, if your flow is different to the default flow, it might include the initial_drc stage of
the place_opt command.
– You can check your log file to see if advanced HFN buffering was run, as described previously
• To simplify the user interface, the following options of the remove_buffer_tree command
have been removed In the N-2017.09 release :
-hfs_fanout_threshold
– By default, the command removes all buffer tree with a fanout larger than one
– This behavior is unchanged
– Partial buffer trees can still be removed as before based on drivers and loads using the -from or
-sources_of option
-no_clustering
– By default the command now remove as many buffers and inverters as possible, without splitting
inverters
-verbose
– The default command output is now improved to give information about the number of buffer removed,
and also the number of buffers that were not removed
– For the buffers not removed, it indicates if they were kept due to dont_touch or size_only attribute
settings