Visible to Intel only — GUID: esh1730498398879
Ixiasoft
Visible to Intel only — GUID: esh1730498398879
Ixiasoft
3.1.5. Debug CDC Example 2—Additional Logic in the Crossing
CDC Example 2 Description
CDC Example 2 is a three-stage synchronizer (same as CDC Example 1) with the name my_sync in the following circuit:
The three-stage synchronizer comprises a chain of three flipflops. The synchronizer is preceded by a combinational function that relies on reg_A and reg_B registers in the clk1 clock domain.
CDC Example 2 has the following SDC exceptions defined in the design:
set_false_path -from [get_registers reg_A] -to \ [get_registers my_sync|sync_ff[0]] set_false_path -from [get_registers reg_B] -to \ [get_registers my_sync|sync_ff[0]]
CDC Example 2 Debug Overview
CDC Example 2 topology is incorrect because incorporating logic between the registers in a synchronizer can undermine its function of mitigating the risks of metastability when transferring signals across clock domains. The synchronizer's flipflops are timed to capture and stabilize an asynchronous signal. Introducing combinational logic can add unpredictable delays, complicate timing analysis, and lead to setup and hold violations. For example, combinational logic might glitch. While such a glitch is not a problem for synchronous logic, for asynchronous crossings this can cause the synchronizer to capture a value that is not real.
The following topics use CDC Example 2 to describe how you can identify and resolve similar circuits by analyzing the CDC-50011 Combinational Logic Before Synchronizer Chain rule violations that Design Assistant reports, and then relocating logic and adding flipflops to resolve the violations.