Metastability Analysis

The Timing Analyzer’s Reports > Clock Domain Crossings > Report Metastability... command generates a list of synchronization register chains found in the design, and can provide estimates of the Mean Time Between Failures (MTBF) of each chain. The equivalent scripting command is report_metastability.

Metastable registers have outputs hovering at a voltage between high and low for a length of time beyond the normal tCO for the register, which may cause subsequent registers that use this metastable signal to latch different values. Synchronize register chains when transferring data between unrelated clock domains to reduce the probability of the captured data signal becoming metastable.

A synchronization register chain is a sequence of registers with the same clock, that is driven by a pin, or logic from an unrelated clock domain. All but the last register in the chain must connect only to the next register, but may do so through logic.

The Metastability Report displays the following for each synchronization chain the analysis discovers:

  • Typical Mean Time Between Failures (MTBF) for the chain
  • MTBF equation and method of synchronizer identification
  • Available settling time of the synchronization register chain
  • Number of synchronization registers in the chain
  • Names of synchronization registers in the chain
  • name of asynchronous source registers
  • Data toggle rate used in the MTBF estimation
  • Source clock domain names
  • Synchronization clock domain names

To help you analyze synchronizer chains in more detail, you can report the neighbor paths for synchronization registers in a chain. From the list of synchronization registers in the report in the Timing Analyzer GUI, you can right-click any of the synchronization register names an click Report Neighbor Paths in the context menu.

To report the timing for the synchronization registers, you can right-click and then click Report Timing for the synchronization registers. For the asynchronous source registers, right-click and click Report Path.

When you do not specify a data toggle rate, the Timing Analyzer uses the value of 12.5% of the frequency of the clock domain that contains the synchronizer to calculate MTBF.

Scripting Information

Keyword: synchronizer_identification

Settings: forced_if_asynchronous | auto* | off