Using Directives and Sub-Directives - 2024.2 English - UG904

Vivado Design Suite User Guide: Implementation (UG904)

Document ID
UG904
Release Date
2024-11-14
Version
2024.2 English

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.

The -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