Set property on object(s)
Syntax
set_property [‑dict <args>] [‑quiet] [‑verbose] <name> <value> <objects>...
Usage
Name | Description |
---|---|
[-dict]
|
list of name/value pairs of properties to set |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
<name>
|
Name of property to set. Not valid with -dict option |
<value>
|
Value of property to set. Not valid with -dict option |
<objects>
|
Objects to set properties on |
Categories
Description
Assigns the defined property <name>
and <value>
to the specified <objects>
.
This command can be used to define any property on an object in the design. Each object has a set of predefined properties that have expected values, or a range of values. The set_property command can be used to define the values for these properties. To determine the defined set of properties on an object, use report_property
, list_property
, or list_property_values
.
You can also define custom properties for an object, by specifying a unique <name>
and <value>
pair for the object. If an object has custom properties, these will also be reported by the report_property
and list_property
commands.
This command returns nothing if successful, and an error if it fails.
get_property
command to validate any properties that have been set on an object.Arguments
-dict
- (Optional) Use this option to specify a dictionary of multiple properties (<name> <value>
pairs) on an object with a single set_property
command. Multiple <name> <value>
pairs must be enclosed in quotes, "", or braces, {}.
-dict "name1 value1 name2 value2 ... nameN valueN"
save_constraints
, save_constraints_as
, or write_xdc
, the properties specified using the -dict
option will be written as separate set_property
commands for each name/value pair. If you don't want the XDC constraints to be expanded in this manner, you can either use the Tcl script driven approach in a non-project design, or use a Tcl script as a design source in your constraint set. Refer to Vivado Design Suite User Guide: Design Flows Overview (UG892) for more information on non-project based design, or refer to Vivado Design Suite User Guide: Using Constraints (UG903) for more information on using Tcl scripts in constraint sets.-quiet
- (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
-verbose
- (Optional) Temporarily override any message limits and return all messages from this command.
set_msg_config
command.
<name>
- (Required) Specifies the name of the property to be assigned to the object or objects. The <name>
argument is case sensitive and should be specified appropriately.
<value>
- (Required) Specifies the value to assign to the <name>
on the specified object or objects. The value is checked against the property type to ensure that the value is valid. If the value is not appropriate for the property an error will be returned.
-name
, -value
, -objects
) instead of the implied positional arguments (name, value, objects) as described here. This is shown in the Examples section below.
<objects>
- (Required) One or more objects to assign the property to.
Examples
Create a user-defined boolean property, TRUTH, for cell objects, and set the property on a cell:
create_property -type bool truth cell
set_property truth false [lindex [get_cells] 1]
Use the -dict
option to specify multiple properties at one time on the current design:
set_property -dict "POST_CRC enable POST_CRC_ACTION correct_and_continue" \
[current_design]
The following example sets the TOP property of the current fileset to define the top module of the project:
set_property top fftTop [current_fileset]
set_property top_file {C:/Data/sources/fftTop.v} [current_fileset]
This example shows how to set a property value that includes the dash character, '-'. The dash can cause the tool to interpret the value as a new command argument, rather than part of the value being specified, and will cause an error as shown. In this case, you must use the explicit form of the positional arguments in the set_property command:
set_property {XELAB.MORE_OPTIONS} {-pulse_e_style ondetect} \
[get_filesets sim_1]
ERROR: [Common 17-170] Unknown option '-pulse_e_style ondetect',
please type 'set_property -help' for usage info.
set_property -name {XELAB.MORE_OPTIONS} -value {-pulse_e_style ondetect}\
-objects [get_filesets sim_1]
The following example sets the internal VREF property value for the specified IO Bank:
set_property internal_vref {0.75} [get_iobanks 0]
The following example defines a DCI Cascade by setting the DCI_CASCADE property for the specified IO Bank:
set_property DCI_CASCADE {14} [get_iobanks 0 ]
The following example configures the synth_1 run, setting options for Vivado® Synthesis 2013, and then launches the synthesis run:
set_property flow {Vivado Synthesis 2016} \
[get_runs synth_1]
set_property STEPS.SYNTH_DESIGN.ARGS.GATED_CLOCK_CONVERSION on \
[get_runs synth_1]
set_property STEPS.SYNTH_DESIGN.ARGS.FSM_EXTRACTION one_hot \
[get_runs synth_1]
launch_runs synth_1
This example is the same as the prior example, except that it uses the -dict
option to set all the properties on the synthesis run in a single set_property
command:
set_property -dict [ list flow {Vivado Synthesis 2016} \
STEPS.SYNTH_DESIGN.ARGS.GATED_CLOCK_CONVERSION on \
STEPS.SYNTH_DESIGN.ARGS.FSM_EXTRACTION \
one_hot ] [get_runs synth_1]
launch_runs synth_1