You can display the list of directives for a command for a particular release. This is done programmatically using Tcl to list the properties of the runs. Each design run has a property corresponding to a Design Runs step command:
STEPS.<STEP>_DESIGN.ARGS.DIRECTIVE
Where <STEP>
is one of SYNTH, OPT, PLACE, PHYS_OPT, or ROUTE.
This property is an enum type, so all supported values can be returned using
list_property_value
.
Following is an example:
Vivado% list_property_value STEPS.SYNTH_DESIGN.ARGS.DIRECTIVE [get_runs synth_1]
RuntimeOptimized
AreaOptimized_high
AreaOptimized_medium
AlternateRoutability
AreaMapLargeShiftRegToBRAM
AreaMultThresholdDSP
FewerCarryChains
Default
The following Tcl example shows how to list the directives for each synthesis and implementation command using a temporary, empty project:
create_project p1 -force -part xcku035-fbva900-2-e
#get synth_design directives
set steps [list synth]
set run [get_runs synth_1] foreach s $steps {
puts "${s}_design Directives:"
set dirs [list_property_value STEPS.${s}_DESIGN.ARGS.DIRECTIVE $run] set dirs [regsub -all {\s} $dirs \n]
puts "$dirs\n"
}
#get impl directives
set steps [list opt place phys_opt route] set run [get_runs impl_1]
foreach s $steps {
puts "${s}_design Directives:"
set dirs [list_property_value STEPS.${s}_DESIGN.ARGS.DIRECTIVE $run] set dirs [regsub -all {\s} $dirs \n]
puts "$dirs\n"
}
close_project -delete