Report CDC Viewer

The Timing Analyzer's Reports > Clock Domain Crossings > Report CDC Viewer... command allows you to configure and display a custom clock domain crossing report and the Clock Domain Crossing (CDC) Viewer. The CDC Viewer graphically displays the setup, hold, recovery, or removal analysis of all clock transfers in your design. The equivalent scripting command is report_cdc_viewer.
Table 1. Report Clock Domain Crossing Viewer Settings
Option Description
Clocks From Clock and To Clock filter paths in the report to show only the launching or latching clocks you specify.
Analysis type Options are Setup, Hold, Recovery, or Removal. The Timing Analyzer reports the results for the type of analysis you select.
Transfers Specifies the type of clock transfers to include or exclude from the report, including Timed transfers, Fully cut transfers, Clock groups, Inactive clocks, and Non-crossing transfers. You can specify the Maximum slack limit and Grid options for the report.
Detail level Full shows all details of the report and Summary filters the details and shows summary data.
Report panel name Specifies the name of the report panel. You can optionally enable File name to write the information to a file. If you append .htm or .html as a suffix, the Timing Analyzer produces the report as HTML. If you enable File name, you can Overwrite or Append the file with latest data, and specify Grid or List format.
Note: In grid format reports, clocks with non-crossing transfers always appear if they have transfers between other clocks.
Tcl command Displays the Tcl syntax that corresponds with the GUI options you select. You can copy the command from the Console into a Tcl file.

You can specify the following options to customize CDC Viewer reporting:

Table 2. CDC Viewer Report Controls
Control Description
From Clock: and To Clock: Filters the display according to the clock names you specify. Click From Clock: or To Clock: to search for specific clock names.
Legend Defines the status colors. A color coded grid displays the clock transfer status. The clock headers list each clock with transfers in the design. The GUI truncates long clock names, but you can view the full name in a tool tip or by resizing the clock header cell. The GUI represents the generated clocks as children of the parent clock. A '+' icon next to a clock name indicates the presence of generated clocks. Clicking on the clock header displays the generated clocks associated with that clock.
Toggle Data The text in each transfer cell contains data specific to each transfer. Turn on or off display of the following types of data:
  • Number of timed endpoints between clocks— the number of timed, endpoint-unique paths in the transfer. A path being “timed” means that analysis occurs on that path. Only paths with unique endpoints count towards this total.
  • Number of cut endpoints between clocks— the number of cut endpoint-unique paths, instead of timed paths. These paths are cut by either a false path or clock group assignment. Timing analysis skips such paths.
  • Worst-case slack between clocks— the worst-case slack among all endpoint-unique paths in the transfer.
  • Total negative slack between clocks— the sum of all negative slacks among all endpoint-unique paths in this transfer.
  • Tightest relationship between clocks— the lowest-value setup, hold, recovery, or removal relationship between the two clocks in this transfer.
Show Filters and Show Legend Turns on or off Filters and Legend.
Figure 1. CDC Viewer Setup Transfers Report

Each block in the grid is a transfer cell. Each transfer cell uses color and text to display important details of the paths in the transfer. The color coding represents the following states:

Table 3. Transfer Cell Content
Cell Color Color Legend
Black Indicates no transfers. There are no paths crossing between the source and destination clock of this cell.
Green Indicates passing timing. All timing paths in this transfer, that have not been cut, meet their timing requirements.
Red Indicates failing timing. One or more of the timing paths in the transfer do not meet their timing requirements. If the transfer is between unrelated clocks, the paths likely require a synchronizer chain.
Blue Indicates clock groups. The source and destination clocks of these transfers are cut by means of asynchronous clock groups.
Gray Indicates a cut transfer. All paths in this transfer are cut by false paths. Therefore, timing analysis does not consider these paths.
Orange Indicates inactive clocks. One of the clocks in the transfer is an inactive clock (with the set_active_clocks command). The Timing Analyzer ignores such transfers.

Right-click menus allow you to perform operations on transfer cells and clock headers. When the operation is a Timing Analyzer report or SDC command, a dialog box opens containing the contents of the transfer cell.

Table 4. Transfer Cell Right-Click Menus
Command Description
Copy Copies the contents of the transfer cell or clock header to the clipboard.
Report Timing Reports timing. Not available for transfer cells with no valid paths (gray or black cells).
Report Endpoints Reports endpoints. Not available for transfer cells with no cut paths (gray or black cells).
Report False Path Reports false paths. Not available for transfer cells with no valid paths (black cells).
Report Exceptions Reports exceptions. Only available for clock group transfers (blue cells).
Report Exceptions (with clock groups) Reports exceptions with clock groups. Only available for clock group transfers (blue cells).
Set False Path Sets a false path constraint.
Set Multicycle Path Sets a multicycle path exception.
Set Min Delay Sets a min delay constraint.
Set Max Delay Sets a max delay constraint.
Set Clock Uncertainty Sets a clock uncertainty constraint.
Table 5. Clock Header Right-Click Menus
Command Description
Copy (include children) Copies the name of the clock header, and the names of each of its derived clocks. This option only appears for clock headers with generated clocks.
Expand/Collapse All Rows/Columns Shows or hides all derived clocks in the grid.
Create Slack Histogram Generates a slack histogram report for the clock you select.
Report Timing From/To Clock Generates a timing report for the clock you select. If you do not expand the clock to display derived clocks, the timing report includes all clocks that derive from the clock. To prevent this, expand the clock before right-clicking it.
Remove Clock(s) Removes the clock you select from the design. If you do not expand the clock, timing analysis removes all clocks that derive from the clock.

You can view CDC Viewer output in any of the following formats:

  • A report panel in the Timing Analyzer
  • Output in the Timing Analyzer Tcl console
  • A plain-text file
  • An HTML file you can view in a web browser.