Quartus® Prime Pro Edition User Guide: Timing Analyzer

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

3.1.6.1. Resolve Violation: Multiple Clock Domains Driving a Synchronizer Chain

The following steps describe how to resolve the CDC-50012 Multiple Clock Domains Driving a Synchronizer Chain DRC violation that occurs for CDC Example 3:

Figure 238. Design Rule Violations In Design Assistant


  1. In the Design Assistant, click the CDC-50012 violation. The right pane displays each topology that represents a violation. Each row includes the associated source and destination registers and clock domains.
    Figure 239. CDC-50012 Details


  2. In the Design Assistant, right-click the CDC-50012 violation, then click Report Asynchronous CDC. The report shows the topology under the Synchronizer Driven by Multiple Clock Domains category.
    Figure 240. Report Shows Synchronizer Driven by Multiple Clock Domains


  3. Click the CDC Statistics tab to confirm that the Compiler properly identifies the synchronizer and the two registers as sources for the synchronizer.
    Figure 241. CDC Statistics Tab Identifies Synchronizer and Register Sources


  4. In the Schematic View tab, you can see a similar topology to CDC Example 2. In this case, there is a combinational block between the source registers and the first register of the synchronizer. The light green color indicates a false path.
    Figure 242. Schematic View Showing Additional Logic and False Path


  5. Take corrective action to resolve the logic interfering with the CDC chain by synchronizing each input to the multiplexer with the destination clock domain. This ensures that both the inputs and the control signal of the multiplexer are synchronized, thereby avoiding potential instability at the multiplexer output and allowing subsequent registers sufficient time to capture the data properly.
    Figure 243. Each Input to the Multiplexer Synchronized with Destination Clock Domain


  6. Modify the false path definition in the .sdc to reflect the new topology that includes two synchronizers. The following exceptions can replace the clock groups defined before:
    set_false_path -from [get_registers reg_A] -to \
    [get_registers fixed.sync_A|sync_ff[0]]
    set_false_path -from [get_registers reg_B] -to \
    [get_registers fixed.sync_B|sync_ff[0]]
  7. After modifying the false path, Report Asynchronous CDC reports this as a Compliant Transfer.
    Figure 244. Compliant Transfer in Report Asynchronous CDC


  8. Verify the CDC topology in the CDC Statistics, SDC Statistics, and Schematic View tabs.
    Figure 245. Schematic View Showing Correct Topology