カスケードD-フリップフロップがなぜ準安定性を妨げるのですか?


15

メタスタビリティとは何ですか?

最初のフリップフロップの出力が準安定である場合、これは2番目のフリップフロップの入力として使用されます。しかし、2番目のフリップフロップがこの入力でどのように処理し、安定させることができるかはわかりません。

前もって感謝します!


2
Buridanのお尻に言及する機会を常に探しています:en.wikipedia.org/wiki/…–
copper.hat

回答:


11

準安定性は「治癒」できませんが、十分長く待つと、発生する可能性を任意に小さくすることができます。宇宙の時代に一度それを一度下ろすと、おそらくあなたがトラブルを起こす可能性は低いでしょう。

それはその点で鉛筆のバランスをとるようなものです。倒れる可能性が高く、長く待つほど、立ち続ける可能性は低くなります。

長時間待つことには2つの問題があり、そのうちの1つは根本的な問題です。

基本的な問題は、非同期外部システムからの出力を受信するクロックシステムに単一のメモリ要素(ラッチまたはフリップフロップ、両方とも準安定性がある)がある場合、物理的に待機時間の下限を定義できないことです。 、外部信号がラッチ制御エッジ近くで遷移する場合があります。信号を別のフリップフロップにパイプラインして、そこで待機させる必要があります。これにより、1クロックサイクルの最小待機時間が保証されます。

2番目の問題は、システムを可能な限り高速で実行しようとすることが多く、2番目のフリップフロップに十分な時間を与えるためにシステムクロックレートを遅くできないことです。スループットを低下させることなく、必要な信号レイテンシを増加させる唯一の方法は、待機をより多くのステージにパイプライン化することです。

一部の人々は、フリップフロップ間で何が起こっているかを視覚化するのに苦労しています。準安定性を誘導するには2つの方法があり、どちらもフリップフロップルールに違反しています。1つの方法は、入力セットアップとホールドタイムに違反し、フリップフロップが入力が安定していることを期待するときに遷移を行うことです。もう1つは、入力ロジックレベルに違反して、フリップフロップのデータ入力を中間電圧レベルにすることです。準安定状態のフリップフロップは、出力でいずれかのタイプの違反を生成し、次のフリップフロップにカスケードできます。


6
例として、私がチップ設計を行っていたとき、私はメタスタビリティを「所有」し、すべてのクロック交差、数学を行い、各フロップ、フロップのグループなどでシンクロナイザーが故障する可能性を見つけ、結果がどうなるかを見ましたbe ...ディスプレイ上のピクセルがほとんど崩れ、最終的にはチップ全体が2年に1回程度になります-これはWin95のグラフィックカードであり、それ以上の時間は維持できませんでしたシンクロナイザーの2年MTBFに誰も気付かないことを決めた約1日。
タニファ

7
また、誰も言及していないことの1つは、最悪の場合のメタスタビリティ障害で起こることです...時にはシンクロナイザーの障害により、通常のデジタル高音と低音の間のレベルでフロップが内部で振動することがあります-そうな問題としてこれに注意を払うを行う-獲得抗メタステーブルの同期装置は、巨大な現在の結果として(スタッフ、ファンアウトなど)が過熱し、チップ死さえも潜在的に描画し、ノイズの多いbuzzyの災害は、すべてのダウンストリームプを感染させることができるというプ
Taniwha

@Neil_UK紛らわしいと思うラッチという言葉を使用します。私のサークルでは、ラッチは非同期要素です。わかりやすくするために、これらをフリップフロップと呼びます。
jalalipop

1
@jalalipopラッチを使用してフリップフロップを意味していましたが、使用を開始してから数十年でその意味が変わったのかもしれません。「ラッチ」は一般的に非同期透過型を指すことに同意しますが、イネーブル入力の「ラッチング」エッジでデータが変更されると、それらも準安定性の影響を受けます。通常、マスタースレーブフリップフロップは、クロックによって逆位相で駆動される一対のラッチから内部的に構築されます。それに言及してくれてありがとう、私は明確にするために答えを修正します。
Neil_UK

@タミファ解決しようとするラッチの内部動作を明確にするために、図と時定数、および数学で答えを提供できますか。(ご存じのとおり)ループゲインと再生時定数およびノイズフロア(熱およびVDD)が解決能力にどのように影響するかを示す必要があります。
analogsystemsrf

9

信号が実際に使用されるまでの時間を長くすることで、準安定性が回路に影響を与える可能性を減らします。2つのフリップフロップを使用すると、信号が安定するまでのクロックサイクル全体が増えます。3つの場合、2クロックサイクル余分に使用できます。


2
いい答えです。重要な点は、準安定性が防止されないことであり、確率を許容レベルまで下げるだけです。
エリオットアルダーソン

1
したがって、フリップフロップをカスケード接続すると、信号が0から1の間で整定する時間が与えられますが、間違った値を解決することはできませんか?準安定信号は両方の方向に落ちる可能性があるためですか?
Wouter

2
@WouterAメタステーブルの場合、両方の値は正しいです。
user253751

4
これは良い答えではないと思います。この場合、最初のフロップだけが入力信号をサンプリングしています。前述したように、特定のフロップで(希望的に)フロップの内部フィードバックループのゲイン、クロック速度、サンプリングされたものが入力しきい値の間を通過するレートに応じて、メタスタビリティが発生する可能性があります小さい数<1 = p-2フロップで、MSが2フロップ、3 p ^ 3などを通過するp ^ 2チャンスを与えます
タニファ

4

これらは、メタスタビリティが出力に影響することを防ぎませんが、メタスタビリティは比較的長い期間である必要があるため、インシデント間の平均時間を大幅に増やすことができます。

3つ(またはそれ以上)の適切に設計されたフリップフロップをカスケード接続すると、事件と地球の時代のようなものとの間の時間を増やすことができます。


クロックレートとプロセステクノロジに依存します。MTBFを無限大にするには、スラックを高く保つ限り、1つのフリップフロップで十分です。
ジャラリポップ

@jalalipopはい。オリジナルのIEEE論文には、いくつかの実際のテスト情報(非常に古い日付)があります。DOI:10.1109 / TC.1983.1676187
Spehro Pefhany

@jalalipop:一般に、これはスラックタイムを保証できない場合に関連する問題です...別名非同期設計、たとえば、それぞれのクロックが位相ロックされていないときにCPUコアとSOCの間で通信するFIFOなど。それ以外の場合は、ハードセットアップ時間を設定するだけで、メタスタビリティが発生しないことを保証します。
jbord39

はい、Metastabilityは非同期インターフェイスの懸念事項です。私が言及するスラックは、フリップフロップ後の同期ロジックのスラックです。スラックが大きい場合、メタスタビリティイベントは、デザインの残りの部分に影響を与える前に消滅します。
ジャラリポップ

2

最初のフリップフロップは、たとえ準安定であっても、クロックのすべての期間を安定させるためです。2番目のフリップフロップが最初のフリップフロップをサンプリングするまでに、その出力はすでに安定している可能性があります。


1

準安定性の興奮が必要な場合は、2つの非常に遅いインバーターを実装し、それらを背中合わせに接続し、VDD / 2で(シミュレーションで)バイアスします。次に、バイアスを削除し、logic1およびlogic0レベルに解決する速度を監視します。VDD / 2以外の初期バイアス電圧を選択する必要がある場合があります。

2個または3個のフリップフロップがクロック周期と比較して遅い場合、寿命は問題で満たされている可能性があります。


1

メタスタビリティとは、単に、クロックを参照する特定の時間ウィンドウ内にデータ遷移がある場合、クロックエッジ後の特定の期間、出力が正しく動作しないことを意味します。ただし、ウィンドウは固定間隔ではありません。むしろ、悪い値(振動または中間電圧レベル)の可能性は、時間とともに指数関数的に減少します。そのため、クロックで信号をサンプリングし、2番目のフリップフロップにクロックを適用する前に少し待つと、不良ビットの可能性を任意の(ただしゼロ以外の)確率に減らすことができます。必要な時間が長すぎる場合、3つ以上のフリップフロップを直列に使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.