set_msg_config - 2024.1 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
Release Date
2024.1 English

Configure how the Vivado tool will display and manage specific messages, based on message ID, string, or severity.


set_msg_config [‑id <arg>] [‑string <args>] [‑severity <arg>]
    [‑limit <arg>] [‑new_severity <arg>] [‑suppress] [‑regexp] [‑quiet]


Name Description
[-id] A qualifier, apply the selected operation only to messages that match given message id. Example: '-id {Common 17-35}'. Default: match any id
[-string] A qualifier, apply the selected operation only to messages that contain the given list of strings. Default: none
[-severity] A qualifier, apply the selected operation only to messages at the given severity level. Example: '-severity INFO' Default: match any severity
[-limit] for the messages that match the qualifiers, limit the number of messages displayed to the given integer value. Can only be used in conjunction with one of -id or -severity.
[-new_severity] for the messages that match the qualifiers, change the severity to the given value for the current project
[-suppress] for the messages that match the qualifiers, suppress (do not display) any messages for the current project
[-regexp] The values used for -string are full regular expressions
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution




This command lets you configure the messages returned by the Vivado™ tool in the current project. Use this command to change the severity of messages, to limit the number of times a message is reported, or to suppress the message altogether. However, you can only perform one of these actions at one time with set_msg_config:

  • Customize the severity of messages returned by the tool to specific levels appropriate to your usage. For instance, set the severity of a specified message ID from one type, such as WARNING, to another type, such as ERROR.
    Important: You cannot downgrade a Vivado™ Design System ERROR message to make it less than an error.
  • Define the number of messages that will be returned by the tool during a design session, or single invocation. You can specify the limit of a specific message ID, or the limit for a specific severity of messages.
    Tip: The default message limit for all message IDs is set to 100, and is defined by the parameter messaging.defaultLimit. This is the limit applied to each separate message returned by the tool. You can report the current value of this parameter with the get_param command, and change it as needed using the set_param command.
  • Suppress a specific message ID from being reported by the tool at all. You can enable messages that were previously suppressed using the reset_msg_config command.
  • An error is returned if more than one action is attempted in a single set_msg_config command.

Message qualifiers of string, ID, and severity are used to determine which messages are configured by the set_msg_config command. You must supply at least one message qualifier to identify a message or group of messages to apply the command to. Multiple qualifiers have an AND relationship; the configuration rule will be applied only to messages matching all qualifiers.

Tip: set_msg_config does not support the use of wildcards in message qualifiers.

Message configuration rules are project specific, and are persistent with the project when the project is closed and reopened.

Important: Message configuration rules apply to the current project and are passed automatically to subordinate processes, such as synthesis and implementation runs. Do not use set_msg_config in pre and post Tcl scripts.

Use the get_msg_config command to report the current configuration of a specific message, or the configuration rules defined in the current project. Restore messages to their default configurations using the reset_msg_config command.

The set_msg_config command is not supported by report_cdc as that command does not generate messages through the message manager.

This command returns nothing if successful, or returns an error if it fails.


-id <arg> - (Optional) Specify a message ID pattern to find message IDs that match the specified argument. The specified <arg> is used as a search pattern. All message IDs that match the specified pattern will be affected by the set_msg_config command. Every message delivered by the tool has a unique global message ID that consists of an application sub-system code and a message identifier. This results in a message ID that looks like the following:

[Common 17-54]
[Netlist 29-28]
[Synth 8-32]
[Synth 8-3295]
Tip: To match a specific message ID, make the search pattern specific to the ID. For instance, in the following commands, the first applies to both "Synth 8-32" and "Synth 8-3295", while the second command applies only to "Synth 8-32":
set_msg_config -id "Synth 8-32" -new_severity "CRITICAL WARNING" set_msg_config -id {[Synth 8-32]} -new_severity "CRITICAL WARNING"

-string <args> - (Optional) Apply the selected operation only to messages that contain the given list of strings. Strings must be enclosed in braces, and multiple strings can be specified separated by spaces:

{{Vivado} {Synthesis}}
Note: Strings are case sensitive.

-severity - (Optional) The severity of the message. There are five message severities:

  • ERROR - An ERROR condition implies an issue has been encountered which will render design results unusable and cannot be resolved without user intervention.
  • {CRITICAL WARNING} - A CRITICAL WARNING message indicates that certain input/constraints will either not be applied or are outside the best practices for a FPGA family. User action is strongly recommended.
    Note: Since this is a two word value, it must be enclosed in "" or {}.
  • WARNING - A WARNING message indicates that design results may be sub-optimal because constraints or specifications may not be applied as intended. User action may be taken or may be reserved.
  • INFO - An INFO message is the same as a STATUS message, but includes a severity and message ID tag. An INFO message includes a message ID to allow further investigation through answer records if needed.
  • STATUS - A STATUS message communicates general status of the process and feedback to the user regarding design processing. A STATUS message does not include a message ID.
    Note: Because STATUS messages do not have message IDs, you cannot change the severity level of a STATUS message.

-limit <arg> - (Optional) Limit the display of the selected messages by the limit value specified as an integer >= 1. You can restore the message limit to the messaging.defaultLimit by specifying a count of -1.

-new_severity <arg> - (Optional) For the messages that match the qualifier, specify a new message severity. Valid values are defined above under the -severity option.

Important: Using -new_severity with -id or -string may appear to let you downgrade an ERROR message when the command is run. However, the ERROR message is not downgraded. This will be correctly reported by the Vivado™ tool the next time the error is encountered. See the Examples section below for more information.

-suppress - (Optional) Suppress the specified messages from further reporting.

Suppressing all messages of a specified severity, such as WARNING, can suppress implementation, DRC, and clock domain crossing (CDC) messages related to potential problems in your design.

-regexp - (Optional) Can be used with -string to specify the string values as regular expressions. Regular expressions search strings are anchored to the start of the search string. You can add ".*" to the beginning and end of a string to widen the search to include a sub-string. See for more information on regular expression syntax.

Note: The Tcl built-in command regexp is not anchored, and works as a standard Tcl command. For more information refer to
-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 elevates a common INFO message to a Critical Warning:

set_msg_config -id {[Common 17-81]} -new_severity "CRITICAL WARNING"
Important: In the following example the "Common 17-69" message is an ERROR message, and cannot be downgraded from an ERROR. The command in this example appears to work when run from the Tcl console, however it will not result in any change.
set_msg_config -id {[Common 17-69]} -new_severity WARNING

When the "Common 17-69" message is next thrown by the Vivado tool, a warning message is returned stating that an error cannot be downgraded, and the message is thrown as an ERROR:

WARNING: [Common 17-239] ERROR Messages are prohibited to be downgraded. Message 'Common 17-69' is not downgraded. ERROR: [Common 17-69] Command failed: report_design_analysis -critical_paths can be run only after synthesis has successfully completed.

The following example results in warning messages with message ID "17-35", and containing "clk" in the message, being redefined as Error messages:

set_msg_config -severity warning -string "clk" -id "17-35" \
   -new_severity error

This example changes the severity of messages with the specified message ID, gets the current message configuration rules, and then shows two different command forms to reset the specific rule and restore the message:

set_msg_config -id "Common 17-361" -severity INFO -new_severity WARNING
get_msg_config -rules
Message control rules currently in effect are:
Rule Name  Rule                                                  Current Message Count
1  set_msg_config -ruleid {1} -id {Common 17-361} -severity {INFO} -new_severity {WARNING} 0
reset_msg_config -id "Common 17-361" -default_severity
reset_msg_config -ruleid {1}
Tip: In the preceding example, only one of the reset_msg_config commands is needed to reset the message.

This example shows the use of a parameter to change the default message limit, and then defines a new limit for the specified message id:

get_param messaging.defaultLimit
set_param messaging.defaultLimit 1000
set_msg_config -id {[Common 17-81]} -limit 1500