回答:
準安定性は「治癒」できませんが、十分に長く待つと、発生する可能性を任意に小さくすることができます。宇宙の時代に一度それを一度下ろすと、おそらくあなたがトラブルを起こす可能性は低いでしょう。
それはその点で鉛筆のバランスをとるようなものです。倒れる可能性が高く、長く待つほど、立ち続ける可能性は低くなります。
長時間待つことには2つの問題があり、そのうちの1つは根本的な問題です。
基本的な問題は、非同期外部システムからの出力を受信するクロックシステムに単一のメモリ要素(ラッチまたはフリップフロップ、両方とも準安定性がある)がある場合、物理的に待機時間の下限を定義できないことです。 、外部信号がラッチ制御エッジ近くで遷移する場合があります。信号を別のフリップフロップにパイプラインして、そこで待機させる必要があります。これにより、1クロックサイクルの最小待機時間が保証されます。
2番目の問題は、システムを可能な限り高速で実行しようとすることが多く、2番目のフリップフロップに十分な時間を与えるためにシステムクロックレートを遅くできないことです。スループットを低下させることなく、必要な信号レイテンシを増加させる唯一の方法は、待機をより多くのステージにパイプライン化することです。
一部の人々は、フリップフロップ間で何が起こっているかを視覚化するのに苦労しています。準安定性を誘導するには2つの方法があり、どちらもフリップフロップルールに違反しています。1つの方法は、入力セットアップとホールドタイムに違反し、フリップフロップが入力が安定していることを期待するときに遷移を行うことです。もう1つは、入力ロジックレベルに違反して、フリップフロップのデータ入力を中間電圧レベルにすることです。準安定状態のフリップフロップは、出力でいずれかのタイプの違反を生成し、次のフリップフロップにカスケードできます。
信号が実際に使用されるまでの時間を長くすることで、準安定性が回路に影響を与える可能性を減らします。2つのフリップフロップを使用すると、信号が安定するまでのクロックサイクル全体が増えます。3つの場合、2クロックサイクル余分に使用できます。
これらは、メタスタビリティが出力に影響することを防ぎませんが、メタスタビリティは比較的長い期間である必要があるため、インシデント間の平均時間を大幅に増やすことができます。
3つ(またはそれ以上)の適切に設計されたフリップフロップをカスケード接続すると、事件と地球の時代のようなものとの間の時間を増やすことができます。
最初のフリップフロップは、たとえ準安定であっても、クロックのすべての期間を安定させるためです。2番目のフリップフロップが最初のフリップフロップをサンプリングするまでに、その出力はすでに安定している可能性があります。
準安定性の興奮が必要な場合は、2つの非常に遅いインバーターを実装し、それらを背中合わせに接続し、VDD / 2で(シミュレーションで)バイアスします。次に、バイアスを削除し、logic1およびlogic0レベルに解決する速度を監視します。VDD / 2以外の初期バイアス電圧を選択する必要がある場合があります。
2個または3個のフリップフロップがクロック周期と比較して遅い場合、寿命は問題で満たされている可能性があります。
メタスタビリティとは、単に、クロックを参照する特定の時間ウィンドウ内にデータ遷移がある場合、クロックエッジ後の特定の期間、出力が正しく動作しないことを意味します。ただし、ウィンドウは固定間隔ではありません。むしろ、悪い値(振動または中間電圧レベル)の可能性は、時間とともに指数関数的に減少します。そのため、クロックで信号をサンプリングし、2番目のフリップフロップにクロックを適用する前に少し待つと、不良ビットの可能性を任意の(ただしゼロ以外の)確率に減らすことができます。必要な時間が長すぎる場合、3つ以上のフリップフロップを直列に使用できます。