report_control_sets - 2023.2 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
Release Date
2023.2 English

Report the unique control sets in design


report_control_sets [‑file <arg>] [‑append] [‑hierarchical]
    [‑hierarchical_depth <arg>] [‑sort_by <args>] [‑cells <args>]
    [‑return_string] [‑quiet] [‑verbose]




Name Description
[-file] Filename to output results to. (send output to console if -file is not used)
[-append] Append to existing file
[-hierarchical] Generates text-based hierarchical report.
[-hierarchical_depth] Specifies the depth level for textual hierarchical report Default: 0
[-sort_by] Sort criterion: can be used only when -verbose is used. Options are clk, clkEn, set. Ex: report_control_sets -verbose -sort_by {clk clkEn}
[-cells] Cells/bel_instances for which to report control sets
[-return_string] Return report as string
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution




Report the control sets of the current design.

Control sets are the list of control signals (Clock, CE, SR) for SLICE registers and LUTs. Registers must belong to the same control set in order to be packed into the same device resource. Registers without a control signal cannot be packed into devices with registers having control signals. A high number of control sets can cause difficulty fitting the device and can cause routing congestion and timing issues.

By default the report_control_sets command returns an abbreviated report indicating only the number of unique control sets. However, the -verbose arguments returns a detailed report of all control sets, for either the whole design or for the specified cells.


-file <arg> - (Optional) Write the report into the specified file. The specified file will be overwritten if one already exists.

Note: If the path is not specified as part of the file name, the file will be written into the current working directory, or the directory from which the tool was launched.

-append - (Optional) Append the output of the command to the specified file rather than overwriting it.

Note: The -append option can only be used with the -file option.

-hierarchical - (Optional) Generate a hierarchical report of control sets in the design.

-hierarchical_depth <args> - (Optional) Specifies the depth of the hierarchy to report when the -hierarchical argument is enabled. The default value is 0, which reports the full design hierarchy.

-sort_by <args> - (Optional) Sort the detailed report generated by the -verbose argument according to the specified criteria. Valid sort criteria are: clk, clkEn, and set.

Note: The -sort_by argument is used with -verbose.

-cells <args> - (Optional) Report control sets for the specified cell objects.

-return_string - (Optional) Directs the output to a Tcl string rather than to the standard output. The Tcl string can be captured by a variable definition and parsed or otherwise processed.

Note: This argument cannot be used with the -file option.
-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.
Note: Any errors encountered on the command-line, while launching the command, will be returned. Only errors occurring inside the command will be trapped.
-verbose - (Optional) Temporarily override any message limits and return all messages from this command.
Note: Message limits can be defined with the set_msg_config command.


The following example reports the control sets of the current design, sorted by the clk and clkEn signals:

report_control_sets -verbose -sort_by {clk clkEn}

The following example reports the control sets of the specified cells, sorted by clk and set:

report_control_sets -verbose -sort_by {clk set} -cells [get_cells usb*]