Listing the Directives for a Release - 2021.1 English

Vivado Design Suite User Guide: Implementation (UG904)

Document ID
UG904
Release Date
2021-08-30
Version
2021.1 English

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