8.14 Generating a Clock Domain Crossing (CDC) Report
The Clock Domain Crossing (CDC) Report analyzes timing paths that cross from one clock domain (the source clock) to another clock domain (the destination clock). The CDC report helps identify instances where there may be data loss or metastability issues.
To generate the CDC Report:
From the Tools menu, choose Reports >
Clock Domain Crossing (CDC)..
The Clock Domain Crossing Report Options dialog box
appears.
Select either CDC Table or Comma Separated Values.
Click OK.
Selecting CDC Table displays a graphical table with color-coded cells.
Each cell represents a CDC type between the source
clock and the destination clock domains that have
constraints. Clocks without constraints do not
appear in the CDC table.
The attributes present in the path table are as follows:
Source Clock: Source of the clock
Destination Clock: Destination of the clock
Worst Slack (ns): Worst slack of the CDC path in nanoseconds
Worst Slack Edge: This is the source/sink edge for the worst path of CDC
Max Delay Cstr:
Value
Description
Yes
All paths in CDC have set_max_delay applied
No
No paths in CDC have the constraints
applied
Partial
Any path in CDC has the constraint applied
Multicycle Path Cstr:
Value
Description
Yes
All paths in CDC have set_multicycle_path
applied
No
No paths in CDC have the constraints
applied
Partial
Any path in CDC has the constraint applied
Clock Group Cstr:
Value
Description
Yes
CDC has set_clock_group applied
No
CDC does not have set_clock_group applied
Clock Uncertainty Cstr: It is the uncertainty value for the worst path in CDC; else, the clock
uncertainty field is left empty.
Num of Paths: Number of paths in CDC. For User Ignored paths, the value is 0.
Clock Pair Status: The status can be Timed Safe, Timed Unsafe or User Ignored.
In the CDC Report dialog box, you can select the clocks to view or hide. Clicking the
Clock Selection button at
the top left of the dialog box lists all clocks that
can be viewed or hidden. By default, all clocks are
checked and visible. To hide a clock, clear its
check box.
Figure 8-7. Showing or Hiding Clocks
The following table describes the colors in the CDC Report shown in the preceding figure.
Pattern
Status
Color
Paths from the source clock domain to the destination clock domain have all been disabled by false path or clock group constraints.
User-Ignored Paths
Light blue
No Paths found from the source clock domain to the destination clock domain.
No Paths
Gray
The source and destination clocks are synchronous: Both the clocks have a common primary
clock and paths are found from the source clock
domain to the destination clock domain.
Timed
Dark Blue
The source and destination clocks are asynchronous: Both the clocks have NO common primary
clock, while paths are found from the source clock
domain to the destination clock domain. Currently,
synchronizers, if present, are not accounted for
in this report.
Timed (unsafe)
Brown
There are certain scenarios related to the path table as explained in the following:
When CDC report is generated, path table is shown by default for all CDC having paths. Each row
shows the worst slack for a clock crossing.
Similarly, when clicking on a particular CDC
crossing in CDC report, you can have a single row
showing the worst slack for CDC crossing.
Example: The path table shown in the following figure, the worst path for reg_com_clk_10mhz to
reg_com_clk_5mhz has the worst slack of 93.541.
The same path is displayed by default, when the
CDC crossing is selected.
Figure 8-8. Worst Path with Slack 93.541 nsFigure 8-9. Smarttime Showing the Worst Path with Slack
93.541 ns
Clicking on the CDC box shows the worst slack for a clock crossing as in path table in the
following figure.
Figure 8-10. Highlighted CDC Box Showing the Worst Slack in
Path Table
Clicking on the same CDC box again will show the details for all the clocks selected in CDC report.
Figure 8-11. CDC Path Table Showing All Clocks on
Deselecting the Selected CDC Box
For all clocks having large names, tool-tips for columns have been added.
Figure 8-12. CDC Path Table Showing Tool-Tip for a Source
Clock Name
Selecting/deselecting clocks in clock selection will dynamically change the path table along with
the CDC table. Both the tables are in sync.
Example: Here, clk_input_100mhz is selected,
therefore, the clock is displayed in CDC table and
path table.
Figure 8-13. CDC Table in Sync with Clock Selection
Section
When the clock clk_input_100mhz is unselected, then the same clock is removed from the CDC table.
The crossings related to the clock are also
removed from the path table as shown in the
following figure.
Figure 8-14. Deselecting a Clock in Clock Selection Section
Syncs the Path Table Accordingly
On clicking any one of the four options in the CDC category, the clock table is filtered
according to the CDC category selected.
The following is a scenario where Timed button has been selected, and Timed safe CDC is only
displayed in the clock table.
Figure 8-15. CDC
Report When Timed Button is Selected in CDC
CategoryClicking on the same CDC category shows the
details for all the clocks selected in CDC report.
Selecting/unselecting clocks in clock selection does
dynamically change the clock table along with the
CDC table.
In the following figure, the User Ignored CDC category button is chosen and clk_input_100mhz is
selected. Therefore, the clock is displayed in CDC
table and clock table.
Now, when clock clk_input_100mhz is unselected, the same clock is moved from CDC table and the
crossings related to that clock are also removed
from clock table. Therefore, when the User Ignored
CDC category is selected, entries related to
clk_input_100mhz are not visible.
On right-clicking a CDC box, you can choose to Copy, Add a
Clock Group Constraint or
Go to Timing Explorer.
Figure 8-16. CDC Report with Go to Timing Explorer
Option
Selecting the Go to Timing Explorer option opens the Timing Explorer
dialog box.
Figure 8-17. Timing Report Explorer
There are corner scenarios when cross probing between CDC and Timing Explorer:
Scenario 1:
This is a scenario where difference is seen between SmartTime and Verify timing, when two clocks
are defined on same port and when cross probing for
CDC reg_com_clk_10mhz and reg_com_clk_5mhz is unable
to find the same in Timing Report Explorer.
The Timing Report Explorer does not pick reg_com_clk_5mhz as destination clock, and Smart time
does pick the reg_com_clk_10mhz and reg_com_clk_5mhz
pair as CDC, as shown in the following.
Figure 8-18. Timing Report Explorer Snapshot - 1Figure 8-19. Timing Report Explorer Snapshot - 2Figure 8-20. SmartTime SnapshotTiming Explorer is picking the worst slack
path for a pair of start and end point. Therefore,
you can miss CDC and other reg to reg paths with
lower slack values.
Scenario 2:
This is a scenario where due to different operating conditions set in Smart Time, you can have
different results, when cross probing between CDC
and Timing Report Explorer. SmartTime and CDC are in
sync.
Figure 8-21. Worst Slack of 97.958 ns in Timing Report
ExplorerFigure 8-22. Worst Slack of 98.154 ns in SmartTimeFigure 8-23. Operating ConditionsThe Timing Report Explorer reports the path
from slow_lv_lt, and SmartTime reports using the
operating condition fast_hv_lt. When the operating
condition in SmartTime is changed to slow_lv_lt, the
worst slack becomes the same as in the Timing Report
Explorer.
Figure 8-24. Slack After Changing the Operating Condition
to slow_lv_lt
CDC reports worst path for a particular corner selected in SmartTime, and Timing Report Explorer
reports the worst path across all the corners.
In such cases, you can see changes in values when navigating from CDC to Timing Report Explorer.
To make you aware of such situations, Corner Info
column is added to display the operating
conditions.
Note:
The path details for the same clock crossing (C1 to C1) are not shown in the path tale as they
are not valid clock crossings and are currently
shown as timed safe by default in CDC report.
The clock table has CDC details only related to clocks checked in clock selection from CDC report.
Path table will not show any CDC having no paths.
For User Ignored CDC columns, “Worst Slack (ns)”, “Worst Slack Edge”, “Max Delay Cstr”,
“Multicycle Path Cstr”, and “Clock Uncertainty
Cstr” are empty.
Cross probing is allowed to Timing Report
Explorer for the same clock crossing (C1 to
C1).
For User Ignored CDC category, Corner Info
column is empty.
Selecting Comma Separated Value exports the CDC Report to a CSV file. If you select this option, a window appears in which you assign a name to the CSV file and specify the location where it will be exported. The CSV file shows details about the CDC between each clock domain in numeric format. Each CDC type is represented as a number similar to colors in the table. The CSV file includes an explanation of each number type and CDC type.
Figure 8-25. Sample CSV Report
The online versions of the documents are provided as a courtesy. Verify all content and data in the device’s PDF documentation found on the device product page.