Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
FPGA Timings P2: Clock Domain Crossing(CDC) with Vivado 2024
Rating: 4.3 out of 5(22 ratings)
218 students

FPGA Timings P2: Clock Domain Crossing(CDC) with Vivado 2024

Step by Step Guide from Scratch
Created byKumar Khandagle
Last updated 7/2025
English

What you'll learn

  • Metastability physics and its impact on clock-domain crossings.
  • Distinction between Static Timing Analysis and CDC verification in Vivado 2024.
  • Generation and interpretation of Vivado report_clock_interaction and report_cdc outputs.
  • Design and insertion of two- and three-stage synchronizers with correct ASYNC_REG usage.
  • Decision-tree methods for safe single-bit transfers, pulses, and reset crossings.
  • Techniques for coherent multi-bit transfers using Gray counters and XPM_CDC primitives.
  • Calculation and optimization of Mean Time Between Failure (MTBF) for reliable designs.

Course content

5 sections133 lectures5h 8m total length
  • What is CDC ?1:51

    Learn how clock domain crossing enables safe data transfer between distinct clock domains in FPGA designs, and how metastability, data corruption, and glitches arise without proper synchronization.

  • STA vs CDC0:37
  • Understanding Metastability P13:13

    Explore metastability in clock domain crossing, showing how unstable inputs near 0.4–0.8 V can miss setup time, forcing a flip-flop to settle unpredictably and affect the next clock domain.

  • Understanding Metastability P22:42

    Metastability occurs when a flip-flop captures a signal changing near a clock edge, leaving output undefined around 0.4 to 0.8 volt. Metastable values can cause synchronization failure in clock-domain crossing.

  • Effects of Metastability2:41

    Explore how metastability destabilizes signals when crossing clock domains and learn how meeting setup and hold times and proper CDC techniques prevent illegal outputs and glitches.

  • Revisiting Metastability3:36

    Explore metastability in clock-domain crossing by analyzing a dual flip-flop setup with cross-domain input, illustrating setup violations, unstable outputs, and the settling time that follows.

  • Demonstration P11:30

    Model two clock domains with an intermediate signal and two flip-flops to analyze clock-domain crossing. Synthesize the design to reveal CDC issues and validate behavior across domains.

  • Demonstration P23:11

    Learn to define two clock domains in Vivado, apply timing constraints for clocks a and b, and use report cdc to analyze clock-domain crossing.

  • Design Code0:15
  • Constraints0:13
  • Sync vs Async domains0:36
  • Clock Interaction report P13:10

    Analyze the clock interaction report to study timing paths crossing clock domains, including setup and hold times, and metastability. It shows a source–destination matrix, with black indicating no path.

  • Clock Interaction report P23:48

    Learn how Vivado analyzes timing between clocks in clock domain crossing, from a single source to asynchronous clocks, using color cues to indicate constrained and ignored timing paths.

  • Why STA (Static Timing Analysis) is performed only on synchronous clock domains0:23
  • Clock Interaction report P33:27

    understand how the clock interaction report in vivado uses color cues to indicate asynchronous clock domain crossing, metastability risk, and unsafe timing, and how set false path mitigates red warnings.

  • False Violations4:51

    Learn to interpret a clock interaction report in Vivado 2024 for clock domain crossing, covering slack, hold violations, and clock pair classifications.

  • Understanding Setup & hold times P11:16

    Define setup time as the minimum data stability before the clock edge and hold time as the minimum stability after the edge, illustrated with 1 ns and 0.5 ns examples.

  • Understanding Setup & hold times P22:38

    Explore how setup time uses worst-case delay to ensure data arrives before the clock edge and how hold time uses best-case delay to prevent changes after the edge.

  • Clock Interaction report P42:57

    Learn how to mark asynchronous clock domains with set clock groups and set false path in vivado, guiding the clock interaction report to ignore timing analysis between asynchronous paths.

  • Use of Clock interaction report P12:23

    Identify clock interactions across the design with a color-coded report to spot clock domain crossings, verify clock relationships (synchronous, asynchronous, or ignored), and prevent false violations before CDC analysis.

  • Use of Clock interaction report P21:36

    Identify signals crossing between clock domains using a clock interaction report, where colors indicate pass or no-pass, guiding you to fix missing constraints before proceeding with cdc flow.

  • Usage of report_clock_interaction0:09
  • report_cdc P13:27

    Explore structural analysis of clock domain crossing using Vivado 2024 report CDC to identify safe versus unsafe CDC structures, ensure proper clock constraints, and prevent metastability and data coherency issues.

  • Usage of report cdc2:21

    Explore how report cdc analyzes clock domain crossings, verifies proper synchronizers, and how false path or clock group exceptions affect the analysis.

  • Safe & Unsafe terminology2:33

    Learn safe and unsafe CDC terminology in Vivado, implement two flipflop synchronizers on a single-bit or multi-bit transfer to prevent metastability, and verify paths with clock-pair constraints and CDC report.

  • Understanding report_cdc P11:31

    Learn the four report_cdc flavors in vivado, printing a summary of clock pairs and safety via TCL, and use detail mode to identify CDC structures with a unique number.

  • Understanding report_cdc P23:23

    Apply report_cdc to analyze clock pair crossings with asynchronous clocks, highlighting that missing a synchronizer yields unsafe data transfer, classified as critical, while unknown status requires deeper CDC structure analysis.

  • Understanding report_cdc P34:10

    This lecture demonstrates using report_cdc in Vivado to generate summary and detailed CDC reports for each path, identify unknown CDC circuitry, and verify the presence of synchronizers between clock domains.

  • Understanding report_cdc info P13:25

    Analyze vivado's report cdc to interpret severity levels from info to critical and understand cdc type, clock domain relationships, and absence of synchronizers for safe crossing.

  • Understanding report_cdc info P22:46

    Understand how report_cdc info analyzes clock domain crossing, detailing clock group exceptions (synchronous, asynchronous, exclusive) and constraints like false path and max delay, plus endpoints and status (safe, unsafe, unknown).

  • Understanding report_cdc info P33:28

    Analyze how Vivado reports report_cdc statuses across clock domains, distinguishing safe, unsafe, and unknown endpoints, and learn which topologies—combinational logic, fanout, multiple domains, and non-flip-flop primitives—trigger unsafe CDC.

  • Understanding report_cdc info P44:19

    Learn how report_cdc info flags unsafe or unknown clock domain crossings in Vivado 2024 and why safe CDC structures or two-flip-flop synchronizers address metastability between source and destination clocks.

  • Usage of report_cdc0:09
  • Interview Prep0:41

Requirements

  • Fundamentals of Digital Electronics, Verilog, STA.

Description

This course teaches FPGA engineers how to recognize, analyze, and close clock-domain crossings in Vivado 2024. It begins by contrasting CDC analysis with conventional static timing analysis and by explaining the physics and practical consequences of metastability. Students learn why static timing checks cover only synchronous domains, how metastability propagates, and how to read Vivado’s clock-interaction reports that flag potential false or true violations. The curriculum then moves to hands-on design work, where participants write and debug RTL that purposefully contains unsafe crossings, observe real metastability through simulations, and systematically repair the design. The class introduces two- and three-stage synchronizers, shows why combinational outputs cannot feed them directly, and explains the correct use of the ASYNC_REG attribute, fanout limits, and delay minimization. Single-bit transfers are handled with a decision-tree method that covers level and pulse crossings as well as asynchronous and synchronous resets. Multi-bit transfers follow, demonstrating why a single-bit synchronizer is inadequate, how to maintain data coherency with Gray counters or Xilinx XPM_CDC_ARRAY_SINGLE primitives, and how to build reliable dual-clock FIFOs using XPM_CDC_GRAY. Throughout the course, students generate and interpret Vivado report_clock_interaction and report_cdc output, apply safe and unsafe terminology, and practice waiver management and sign-off procedures. Practical labs culminate in an automated CDC analysis flow that mates TCL scripts with design checkpoints for repeatable closure. Finally, the class quantifies mean time between failure, shows how to push MTBF beyond product life by adjusting synchronizer depth and clock frequency, and equips engineers to defend their CDC strategy during design reviews. By the end, attendees can identify every crossing in a design, select the proper synchronizer or primitive, verify that all paths are safe, and deliver hardware that meets reliability targets on first silicon or bitstream release.

Who this course is for:

  • Anyone preparing for Front end RTL Design role.