Not all crossings are equally hard. The relationship between the two clocks decides how much you know about the arrival phase, and that decides which synchronisation method is safe.
Relationship | What the clocks do | Example |
|---|---|---|
Synchronous | One clock net; fixed phase by construction | Two flops on clk_a in different blocks |
Related (same source, fixed ratio) | Different nets from one source with a fixed frequency ratio and phase | clk and its divide-by-2 from the same generator |
Mesochronous | Same frequency, but the phase offset is fixed and unknown | One source split through different buffers, or a phase-shifted copy |
Plesiochronous | Same nominal frequency, but the sources are independent so the phase drifts slowly through every value | Two boards each with their own oscillator at the same nominal rate |
Asynchronous | No fixed frequency or phase relationship at all | A processor clock and an independent peripheral clock |
Mesochronous and plesiochronous sound alike and fail differently. Mesochronous phase is unknown but fixed: once you have covered the worst offset, the behaviour repeats every cycle. Plesiochronous phase drifts: over minutes or hours the two edges slide through alignment, near-alignment, and every gap, so the design meets every skew it will ever see in the field, including the worst one.
Relationship | What you know | What that allows |
|---|---|---|
Synchronous | Phase everywhere | Ordinary timing analysis; no synchroniser needed |
Related, fixed ratio | Exact ratio and usually phase | A synchronisation scheme chosen for the ratio and direction; the known phase can simplify the analysis but the path is still a crossing |
Mesochronous | Phase offset, but not its value | A scheme that tolerates any fixed offset, such as a two-flop synchroniser on a slow-changing signal |
Plesiochronous or asynchronous | Nothing about phase | A scheme that tolerates any phase on every transfer: synchronised levels, pulse synchronisers, handshakes, or FIFOs, with correct fast-to-slow and slow-to-fast behaviour |
Direction matters as much as the relationship. A slow event crossing into a fast domain is sampled many times, so the danger is counting it twice; a fast event crossing into a slow domain may fall between two sampling edges, so the danger is missing it. The failure modes lesson shows both.
A structural analysis generally groups crossings by clock pair and asks for the relationship of each pair as part of the setup: that relationship table is checked against the synchronisation scheme found on each path. A pair declared "related" but implemented with a scheme that assumes a synchronous phase is exactly the kind of mismatch review is meant to catch.
It is still a crossing (different nets), and it still needs a deliberate scheme: the ratio lets you pick the right one (for example, reasoning about how many fast cycles a slow sample spans), but "known ratio" alone synchronises nothing.
Plesiochronous: the phase drifts. It rules out any scheme that needs a guaranteed minimum spacing between the two clocks' edges, since every spacing occurs eventually.