Page 15 of 15

What is metastability?

Metastability happens when a register / FF has a setup or hold time violation. When setup time or hold time violation occurs, the output of that register becomes metastable, i.e., entering a quasi-static state which settles to either low or high.

Design engineer needs to handle properly:

  1. For synchronous paths, all timing paths should be checked for setup time and hold time constraints. Designers rely on STA to perform a thorough check against all timing paths.
  2. For asynchronous paths, designers should implement proper synchronization for clock domain crossing / CDC. Proper synchronizations between clock domains make sure metastability does not occur, otherwise chip failure can happen. Designers rely on CDC check to make sure synchronization are properly implemented

What are setup/hold time constraints and timing violation?

In previous post, we discussed setup time and hold time definitions. We will cover the basics of STA: setup time and hold time constraints.

These constraints dictate the max and min delays of a computational logic between flip-flops. If any of the constraint is not met, we call it as timing violation. Timing violations lead to metastability.

Continue reading → What are setup/hold time constraints and timing violation?

What are setup time and hold time?

When clock start rising, the outputs might start to change after the clock-to-q contamination delay, known as tccq and shall absolutely settle down to the stable value within the clock-to-q propagation delay, tpcq. They represent the shortest and longest delays through the circuit. In order for a circuit to sample its input correctly, the inputs must be stabilized at least some setup time, tsetup, before the rising edge of the clock and shall remain stable for at least hold time, thold.

The definition of setup time and hold time is often asked in hardware interviews. We recommend readers to memorize the definition. In next post, we will cover the setup time and hold time constraints.