The terms safe, unsafe, and endpoints have different meanings in the context of cross domain crossing (CDC) analysis versus inter-clock timing analysis.
In CDC analysis:
- An asynchronous crossing is considered safe when proper synchronization circuitry is
used to prevent metastability.
- A safe single-bit CDC uses a synchronizer, typically a chain of registers clocked and controlled (CE) by the same signals.
- A safe multi-bit CDC uses structures such as MUX hold circuitry or Clock Enabled Controlled circuitry.
- An asynchronous crossing is considered unsafe when the CDC analysis engine does not detect a recognized safe synchronization structure on the path.
The number of endpoints reported in a CDC report between two clock domains can differ from what is shown in timing analysis reports:
- An asynchronous reset synchronizer can include multiple timing endpoints but is reported as a single CDC endpoint.
- A multi-bit CDC contains several single-bit crossings but appears as one CDC endpoint. However, other timing reports list each bit as a separate timing path endpoint.
Important: Do not compare the number of endpoints between
report_clock_interaction and report_cdc.-
report_clock_interactionclassifies crossings as safe or unsafe based on whether the timing engine can calculate slack that reflects the worst-case hardware behavior. -
report_cdcclassifies crossings as safe or unsafe based on whether known CDC synchronization circuits are present in the design.