Directives
Directives provide different modes of behavior for the place_design
command. They control the overall
placement strategy. Only one directive can be specified at a time. The directive
option is incompatible with other options with the exception of -subdirective
,-clock_vtree_type
, -no_psip
, -quiet
, and -verbose
.
The -directive <arg>
option
can be set as follows:
- Explore
- Increased placer effort in detail placement and post-placement optimization.
- AggressiveExplore
- Attempt to improve QoR at the expense of runtime. The placer runtime might be significantly higher compared to the Explore directive because the placer uses more aggressive optimization goals to attempt to meet timing requirements.
- RuntimeOptimized
- Run fewest iterations, trade higher design performance for faster runtime.
- Quick
- Absolute, fastest runtime, non-timing-driven, performs the minimum required placement for a legal design.
- Default
- Run place_design with default settings.
Sub-Directives
Sub-directives allow control over the placer phases. More than one
sub-directive might be used at a time. The -subdirective
option is incompatible with other options with the
exception of -directive
, -no_psip
, -clock_vtree_type
, -quiet
and -verbose
.
-subdirective
option has the
following format:- For sub-directives that must be set to a value (typically low|med|high)
- <phase>.<sub-directive>.<value>
- For sub-directives with no value
- <phase>.<sub-directive>
There are three possible values of phase that correspond to the phases of the placer that accept sub-directives. These are:
- Floorplan
- For the floorplanning phase
- GPlace
- For the global placer phase
- DPlace
- For the detailed placer phase
Supported sub-directives are:
- RuntimeOptimized
- Improves runtime at the expense of design performance.
- Supported phases: Floorplan, GPlace, DPlace
- Values: Using option indicates optimization is enabled
- ExtraTimingUpdate
- Increases the number of timing updates to improve design performance.
- Supported phases: Floorplan, GPlace, DPlace
- Values: Using option indicates optimization is enabled
- ExtraTimingOpt
- Improves design performance at the expense of runtime.
- Supported phases: Floorplan, GPlace, DPlace
- Values: low (default), med, high
- BalancedSLR
- Partitions across SLRs to balance number of cells between SLRs.
- Supported phases: Floorplan
- Values: low, med (default), high
- ForceSpreading
- Spreads the placement by lowering the target utilization for all block
types
- Supported phases: Floorplan, GPlace
- Values: low (default), med, high
- ReduceCongestion
- Reduces global and pin congestion at the expense of other metrics.
- Supported phases: GPlace
- Values: low (default), med, high
- WLDrivenBlockPlacement
- Wirelength-driven placement of RAM and DSP blocks. Overrides timing-driven
placement by directing the placer to minimize the distance of connections to
and from blocks. This directive can improve timing to and from RAM and DSP
blocks.
- Supported phases: Floorplan, GPlace
- Values: Using option indicates optimization is enabled
- ReducePinDensity
- Detail placer tries to reduce pin congestion for CLBs to improve overall
router convergence.
- Supported phases: DPlace
- Values: low (default), med, high
- EarlyBlockPlacement
- Places RAM and DSP blocks early in global placement and uses them as
anchors for placing remaining logic.
- Supported phase: GPlace