2016-11-28 5 views
1

Verilogで異なるクロックドメインによって引き起こされる準安定性を解決するには、ダブルレジスタ法が使用されます。ダブルレジスタアプローチを使用した準安定性の解決

私が知る限り、準安定性の最終的な出力は不明です。出力は入力とは無関係です。

私の質問は、二重レジスタ方法を使用して出力の正確さを保証する方法ですか?

ありがとうございました。

+1

この質問は、http://electronics.stackexchange.com/にお住まいの地域に適しています。 –

+0

よろしくお願いいたします。質問をもう一度投稿できますか? –

答えて

1

メタスタビリティを回避することは完全にはわかりません。 前述したように、準安定フリップフロップの出力は予測できません。したがって、「2レジスタ」アプローチでもメタステーブルビリティを持つと誤った値を伝播する可能性があります。

しかし、この方法では準安定性を解決するつもりはありませんが、準安定値が回路に入る可能性を減らそうとします。 here MTBF(Mean Time Between Failure)と呼ばれるもの。 MTBFを減らすために、さらに2つのレジスタをチェーンすることもできます。

これは価値のunpredictiveネスが解決しない場合であっても値が準安定であるとき、それは0または1

にこの振動が安定するまで、それが振動するので、これらの二重レジスタを使用することは興味深いですあなたの回路をトグルさせ、各トランジションがエネルギーを消費するので、何のためにも多くのエネルギーを使用します。このため、クロック・ドメイン・クロッシングにはダブル・レジスタを使用することが重要です。

データが有効であることを確認するには、2つのクロックドメイン間で要求確認メカニズムを使用できます。

クイック例:

  1. は、データが他の側
  2. 上に確立されていることを確認し、バス(二重レジスタの入力)
  3. ウェイト1(またはそれ以上)のクロックサイクルにデータを設定します
  4. 要求信号を送信する(ダブルレジスタの入力)
  5. 最悪の場合:要求信号は準安定で安定した後は0のままです。次のクロックサイクルは、少なくとも1クロックサイクルの間に既に1に設定されているので、1になる。最良の場合:宛先がデータを受け入れる次のサイクル
  6. データは安定しており、要求は安定しており、データを消費することができます。送信元に肯定応答を送信します。
  7. 肯定応答が到着する(準安定性の場合にはダブルレジスタ上にある)。準安定であれば、到着するまでにクロックサイクルがさらにかかることがあります。
  8. リクエストが落ちます。
  9. 他のデータは、このプロトコルは、4相プロトコルと呼ばれるバスを介し

を送信することができます。非同期設計の古典的なプロトコルであるため、Web上で多くのドキュメントを見つけることができます。

理解して実装するのは非常に簡単です。しかし、それは非常に重要なことができる領域でオーバーヘッドを生成することに注意してください。

希望します。

+0

Krouitchありがとうございますが、まだ混乱があります。だから、ステップ4の後、私が保証できるのはリクエスト信号が安定して1であることですが、データを保証する方法も安定していますか?ありがとう。 –

+0

要求を送信する前に少なくとも1クロックサイクル送信した場合、データは安定していなければなりません。そうでない場合は、選択したクロック期間にパスが長すぎることを意味します。 ここに私が何を意味するのかを示す記事があります:http://www.eetimes.com/document.asp?doc_id=1276114 – Krouitch

関連する問題