Quartus® Prime Pro Edition User Guide: Timing Analyzer

ID 683243
Date 11/26/2024
Public
Document Table of Contents

3.1.5. Debug CDC Example 2—Additional Logic in the Crossing

CDC Example 2 highlights the impact of introducing combinational logic between registers in a synchronizer chain. This example shows how to identify a CDC synchronizer that includes additional logic before the synchronizer, and provides steps to resolve the CDC timing issue.

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:

Figure 228. CDC Example 2 Circuit (Incorrect Topology)


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.