Lecture 11 – Metastability

Ryan Robucci

Table of Contents

References

Digital Abstraction and Noise

Sources of Noise:

  1. Electronic Thermal Noise
  2. Power/Ground Current (through supply resistance)
  3. Fast Signals in the System (large dI/dt induces drops in supply inductance)
  4. Signal Coupling: Mutual Cap. and Mutual Inductive
  5. Ringing (will draw in-class if required)
  6. Temperature Differences between components affecting threshold voltages

(3-5 are especially important for fast systems)

Additionally, manufacturing between devices can introduced fixed noise (e.g. offsets)

Noise Margins

Noise F.O.M.

Timing Requirements for Registers

Clock Domain Crossing

Async Inputs

Not all signals arise from a clock domain at all, such as physical, real-world inputs

A problem arises at a fanout point, where mutiple interpretations are performed in parallel. If the voltage is not a valid high or valid low, inconsistent interpretations can result.

Metastabilty

Consider that an inverter represents contrain on allowed input, output (V1V_1,V2V_2) relationships:

The graph on the right shows how V2 is driven.

Consider another inverter with the input and output connections are exchanged:

The graph on the right shows how V1 is driven.

Consider a coupled set of inverters, setting constraints between V1 and V2

Set of constraints and underlying drive on V1,V2:

Two constraints, A and B
Three Points are possible solutions to both constraints
1 is a quasi stable solution

Temporal Dynamics Analysis

Time analysis:

Consider ideal voltage sources and switches set two intial voltages
Switches are opened at time t=0

Case 1:

V1(0)=0V_1(0) = 0
V2(0)=VDDV_2(0) = {V_{\rm DD}}

V10AV2VDDBV10V_1 \rightarrow 0 \Rightarrow \boxed{\mathcal A} \Rightarrow V2 \rightarrow V_{\rm DD} \Rightarrow \boxed {\mathcal B} \Rightarrow V_1 \rightarrow 0

Case 2:

V1(0)=VDD/2V_1(0) = {V_{\rm DD}}/2
V2(0)=VDD/2V_2(0) = {V_{\rm DD}}/2

V1VDD/2AV2VDD/2BV1VDD/2V_1 \rightarrow {V_{\rm DD}}/2 \Rightarrow \boxed{\mathcal A} \Rightarrow V2 \rightarrow {V_{\rm DD}}/2 \Rightarrow \boxed {\mathcal B} \Rightarrow V_1 \rightarrow {V_{\rm DD}}/2

Case 3:

V1(0)=34VDDV_1(0) = \frac{3}{4} {V_{\rm DD}}
V2(0)=14VDDV_2(0) = \frac{1}{4} {V_{\rm DD}}

V134VDDAV20BV1VDDV_1 \rightarrow \frac{3}{4} {V_{\rm DD}} \Rightarrow \boxed{\mathcal A} \Rightarrow V2 \rightarrow 0 \Rightarrow \boxed {\mathcal B} \Rightarrow V_1 \rightarrow {V_{\rm DD}}

V1V_1 is pushed to VDD, system stabalizes
@ (V1V_1 = VDD, V2V_2=0)

Case Quasistable:

In theory, the middle point is also stable
We have assumed a symmetric transfer function and constraints

However, any noise will disrupt the balance.
If V1V_1 is bumped more positive, V2V_2 is pushed more negative and thus V1V_1 is pushed more positive, etc...
Positive Feedback ensure until V1=VDDV_1=V_{\rm DD} and V2=0V_2=0

Quasi-stable

Quasi-stable point can only be preserved in a noiseless system

Field and Energy:

Examine Energy with one example, going from stable to quasi-stable points along dashed line:

Example Trajectories one WITH and the other WITHOUT noise.

Types of Memories

First consider for what types of memories this is relevant:

SRAM

Two Inverter (SRAM):

S-R Latch:

Clocked (Level Sensitive) SR Latch

Clocked D-Latch:

alternative view as extension of clocked SR latch:

Time to Settle

The question of interest is how long does is take to reach a stable state as a function of starting position?

Given VA(0)V_A(0) how long to reach a stable point?

Given T, a time limit to reach stable point, what is the constraint on VA(0)V_A(0)?

Metastabilty Cause


ꭝJohnson and Graham
ꭝJohnson and Graham
ꭝJohnson and Graham

Parallel Resolution of Two Signals

Assume in the Logic, D0 and D1 represent two values that are sampled and sent into an AND gate.

Here the AND output may glitch and become low in error if the inputs change at a disallowed time.

Parallel Resolution at Fanout Point

At some point in the system, parallel resolution can cause a problem

The same input signal (staring point) can be resolved differently in two components

Temporal Analysis

A generic representation of positive feedback:

Assume the Ideal Amp, at all times VB=VAAV_B = V_A \cdot A

Positive Feedback

Transient Analysis

dVAdt=IC=VBVARC=AVAVARC\frac{dV_A}{dt}=\frac{I}{C}=\frac{V_B-V_A}{R \cdot C}=\frac{A V_A-V_A}{R \cdot C}

dVAdt=(A1)VARC\frac{dV_A}{dt}=\frac{(A-1) V_A}{R \cdot C}

VA(t)=VA(0)etA1RCKV_A(t) =V_A(0) e^{t\,\,\underbrace{\frac{A-1}{RC}}_K}

The Question:

Time to reach VDD/2 ?

The Answer:

Approach:
Solve for tt in VA(t)=VDD/2V_A(t) = V_{DD}/2
t=1Kln(VDD/2VA(0))t=\frac{1}{K} \ln \left(\frac{V_{DD}/2}{V_A(0)} \right)
This is the time to reach VDD/2V_{DD}/2 given some starting point VA(0)V_A(0)

Time and Voltage Constraint

Bound t to be less than a desired clk-to-Q, i.e. time to resolve, TrT_r , and find VA(0)min|V_A(0)|_{\rm min}

Tr=1Kln(VDD/2VA(0))T_r = \frac{1}{K} \ln \left(\frac{V_{DD}/2}{V_A(0)}\right)

VA(0)=±(VDD/2)1eTrKV_A(0) = \pm \left(V_{DD}/2\right)^{-1} e^{T_r K}

  • TrT_r and VA(0)V_A(0) here represent the time and voltage constraints on the input

Implication of Metastabilty

  • For a given rise time, an input transition must stay outside a time window around the clock event:
  • The implication of data transition slope and timing is that the rise time and allowed arrival time of a 50% transition point are related:

Data as Reference

For the next analysis: instead of viewing the clk as the reference and data timing as the variable

consider the data edge to be the reference

2TW2VA(0)VDDT10902|T_W| \approx \frac{2 V_A(0)}{\frac{V_{\rm DD}}{T_{\rm 10-90}}}
2TWT1090eKTr2|T_W| \approx T_{\rm 10-90} e^{-KT_r}

TW=CeKTr|T_W| = C e^{-KT_r}

System Timing Requirements

Tr<1FclkTPDTW=CeKTr\boxed{T_r \lt \frac{1}{F_{\rm clk}} - T_{PD}} \rightarrow T_W=Ce^{-K \boxed{T_r}}

TWT_{\rm W} defines the window of error [eq 3.36] that helps define setup and hold time requirements and thus allowed combinatorial propagation delays

Operation Timeline

  • Assume a uniformly random arrival of Data:
  • Chance of MS Problem is [3.37]

NP failures in timespan TspanN\cdot P \text{ failures in timespan } T_{\rm span}

NTspanP=ExpectedRateofFailure\frac{N}{T_{\rm span}} \cdot P = \rm Expected\,Rate\,of\,Failure

Mean Time Between Failures

Actel 1989 ACT-1 Logic:

Mitigating Metastability

  1. Faster FF, naturally has narrowed metastability window

  2. N-FlipFlops in a row:

Effective Time provided is doubled (2T):
V3(2T)=V2(T)V3(T)eKTupdate=V1(0)eKTeKT=V1(0)eK2TV_3(2T)=\underbrace{V_2(T)}_{V_3(T)}\underbrace{e^{KT}}_{\text{update}}=V_1(0)e^{KT}e^{KT}=V_1(0)e^{K2T}
TW=Ce2KT=C(eKT)2T_W=Ce^{-2KT}=C\left(e^{-KT}\right)^2
ifPfailTW=Ce...K1for1flipflopthenPfail=CK122for2flipflopsPfail=CK1NNforNflipflops\begin{aligned} {\rm if\,\,} P_{\rm fail} \propto& {T_W} = C\overbrace{e^{...}}^{K_1} {\rm \text\quad for\,1\,\,flip-flop} \\ \\ {\rm then}\\ P_{\rm fail} & = {C}{K_1^2} {\rm \text\quad 2\,for\,2 \,flip-flops} \\ P_{\rm fail} & = {C}{K_1^N} {\rm \text\quad N\,for\,N\,flip-flops} \end{aligned}

Another Possibility to realize this effect for a multi stage (e.g. master-slave) flip-flop that can be implemented with RTL in with only a single register and a single clock domain without a gated clock:

  1. Metastability-Hardened FF (rather than just a use higher-power fast FF, it would be a low-power flipflop specifically designed with large K)

  2. Sample Less Often (Sacrifice Responsiveness)

  3. Use Edge-Sharpening Amplifiers at the Input (Fast Transitions)