Report the clock domain crossing (CDC) paths in the current design.
report_cdc [‑from <args>] [‑to <args>] [‑cells <args>] [‑details] [‑summary] [‑all_checks_per_endpoint] [‑severity <arg>] [‑no_header] [‑show_waiver] [‑no_waiver] [‑waived] [‑file <arg>] [‑append] [‑return_string] [‑name <arg>] [‑quiet] [‑verbose]
||run report_cdc on the cells|
||report the detail of the CDC timing paths not safely timed|
||report a summary by clocks of the CDC|
||report all checks per endpoint|
||report only the severity specified (Info, Warning or Critical)|
||Do not generate a report header|
||Show the waived paths|
||Ignore the waiver|
||Show only the waived paths|
||Filename to output results to. (send output to console if -file is not used)|
||Append the results to file, don't overwrite the results file|
||return report as string|
||Output the results to GUI panel with this name|
||Ignore command errors|
||Suspend message limits during command execution|
This report shows in detail the clock domain crossing (CDC) paths in the current synthesized or implemented design. The command analyzes paths between asynchronous clocks, or clocks with no common period, as well as synchronous paths ignored by the user due to false path or max delay datapath_only exceptions.
By default the
report_cdc command reports domain crossing between all clocks in the design. However, you can limit the clocks of interest using the
-to options to specify the clock domains of interest.
report_cdc command only reports on paths where both source and destination clocks are defined. You should run the
check_timing command prior to
report_cdc to ensure that there are no unconstrained clocks in the design. I/O paths are only covered by
report_cdc when input or output delay constraints have been specified on the I/O ports.
The severity of the path report could be Critical, Warning or Info depending on the CDC topology identified. An unknown synchronization topology is Critical and needs to be reviewed. A double register synchronizer with missing ASYNC_REG property is a Warning. Clock Enable, MUX, and MUX Hold CDC structures are categorized as Warnings because you should check to ensure that the structure is safe. Other CDC paths are of severity Info.
report_cdc command returns the following information:
- Source Clock
- Destination Clock
- CDC Type
- No ASYNC_REG property
set_msg_configcommand to configure the severity of messages returned by the
report_cdccommand. This command does not generate messages through the message manager.
-from <args> - (Optional) Report clock domain crossing from the specified clock domain. Clocks can be specified by name or as returned by the
-to <args> - (Optional) Report clock domain crossing into the specified clock domain. Clocks can be specified by name or as returned by the
-cells <arg> - (Option) Generate the report on the specified hierarchical cells. The details of the report will be based on the specified cells rather than the whole design.
-details - (Optional) Provide a detailed report on the timing paths. The detailed report lists a summary table of the CDC paths, and then lists details of the source/destination clock, and the CDC paths for each clock pair.
-summary - (Optional) This is the default report returned for the design. The summary report generates a table with a message severity, the source/destination clock pair, safe CDC, and unknown or unrecognized CDC, and the number of path endpoints.
-all_checks_per_endpoint - (Optional) Report all violations for each endpoint of a CDC path, instead of only reporting the most critical violation per endpoint. This option works with the
-severity option to report all violations per endpoint, of the specified severity.
-severity [ Critical | Warning | Info ] - (Optional) Report only the CDC paths with the specified severity level.
-no_header - (Optional) Eliminate the report header from the results. This can be especially useful when returning the results as a string with
-show_waiver - (Optional) Used with the
-details argument, this option adds the waived CDC paths to the report, and adds a "Waived" column to the report to indicate which paths have been waived and which have not.
-no_waiver - (Optional) Ignore the waivers defined by the
create_waivers command and report all CDC paths.
-waived - (Optional) Causes only the CDC paths waived by the
create_waiver command to be reported. This returns the actual violation rather than the definition of the waiver, which can be reported by the
-file <arg>- (Optional) Write the report into the specified file.
-append- (Optional) Append the output of the command to the specified file rather than overwriting it.
-appendoption can only be used with the
-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.
-name <arg> - (Optional) The name of the Clock Domain Crossing report view to display in the Vivado® IDE when run in GUI mode. If the name has already been used in an open report view, that view will be closed and a new report opened.
-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.
report_cdc -details -show_waiver -file C:/Data/cdc_report.txt
report_cdc -from clk_pin_p -to [get_clocks clk_rx_clk_core]