What is Clock domain?

A group of flip-flops driven by the same clock, or by clocks with a fixed frequency and phase relationship. Passing a signal between clock domains that are asynchronous to each other requires a synchronizer.

Japanese name: クロックドメイン

Clock domain appears in 5 practice questions across 1 topic, including Timing analysis and CDC.

Field: Timing analysis and CDC

Try it: questions about Clock domain

Why must the output of combinational logic in the sending clock domain not be fed directly into a synchronizer in the receiving domain?

  1. ABecause the receiving side may capture a momentary glitch on the combinational output as a valid value
  2. BBecause combinational outputs have a low voltage and the receiving flip-flop does not respond
  3. CBecause capturing a combinational output always causes metastability
Show answer and explanation

Answer: A. Because the receiving side may capture a momentary glitch on the combinational output as a valid value

Within the same clock domain, glitches settle before the next clock edge and cause no problem. When captured by an asynchronous clock, however, the edge can come at any time, so a momentary 1 pulse on a signal that should be 0 can be captured. The rule is therefore that signals crossing domains come directly from a flip-flop output in the sending domain. Metastability does not occur every time, and CDC verification tools also flag combinational logic in front of synchronizers.

Each bit of 4-bit data is passed to another clock domain through its own two-stage synchronizer. What problem can occur when the data changes from 0111 to 1000?

  1. AThe bits may be captured in different cycles, so an intermediate value such as 1111 or 0000 may be received
  2. BPassing through the synchronizers aligns all bits to the same cycle, so no problem occurs
  3. CAll four bits become metastable and never return to either 0 or 1
Show answer and explanation

Answer: A. The bits may be captured in different cycles, so an intermediate value such as 1111 or 0000 may be received

For each bit, a two-stage synchronizer does not determine whether a change is captured at the current edge or the next one. In a change from 0111 to 1000 all four bits change, so for one cycle the receiver may get a value in which only some bits have their new value, such as 1111, 0000 or 0100. If the receiver uses that value, it malfunctions. Metastability resolves to 0 or 1 over time. For counter values, convert to Gray code so that only one bit changes; for arbitrary data, use a handshake or an asynchronous FIFO.

Clock domain in the explanations

Questions that mention Clock domain (5)

  1. Why must the output of combinational logic in the sending clock domain not be fed directly into a synchronizer in the receiving domain?
  2. Each bit of 4-bit data is passed to another clock domain through its own two-stage synchronizer. What problem can occur when the data changes from 0111 to 1000?
  3. Which is a correct way to pass multi-bit data safely to another clock domain?
  4. A pulse that is 1 for only one cycle (2 ns) in a 500 MHz clock domain is passed to a 100 MHz domain through a two-stage synchronizer. What problem can occur?
  5. What constraint applies when passing pulses from a fast clock domain to a slow one with toggle synchronization?

Books on Timing analysis and CDC Ad

As an Amazon Associate I earn from qualifying purchases.

Related terms

Synchronizer Metastability Handshake Asynchronous FIFO Flip-flop Gray code Clock uncertainty Critical path CRPR (clock reconvergence pessimism removal) False path

Back to the glossary