2段フリップフロップが望ましいのはなぜですか?1ステージのJKフリップフロップと比較して、マスタースレーブを持つことの利点はありますか?
2段フリップフロップが望ましいのはなぜですか?1ステージのJKフリップフロップと比較して、マスタースレーブを持つことの利点はありますか?
simple JKlatchおよびsimpleJKフリップフロップの問題は、競合状態です。
競合状態とは、クロックがハイである限り、伝搬遅延がパルス周期よりも小さい場合(または、JKフリップフロップの場合、クロックが別の状態に達する前)、出力が0と1の間で切り替わる場合です。 J = K = 1
。
値が不明な場合があるため、これは望ましくありません。マスタースレーブ構成により、このレースの問題が解消されます。
シンプルなポジティブエッジトリガーマスタースレーブJKフリップフロップは、2つのカスケードラッチで構成されています。1つはネガティブラッチ、もう1つはポジティブラッチです。
ラッチはレベルトリガーされます。クロックがlowの場合、最初のラッチは透過モードで、2番目のラッチはホールドモードです。クロックがhighの場合、最初のラッチはホールドモードで、2番目のラッチはトランスペアレントモードです。これらは一緒になって、ポジティブエッジでトリガーされるマスタースレーブJKフリップフロップとして機能します。
クロックが0-> 1に移行すると、最初のラッチが透過モードからホールドモードに移行し、同時に2番目のラッチがホールドモードから透過モードに移行します。つまり、クロックの立ち上がりモーメントの直前の最初のラッチの出力は、2番目のラッチによってサンプリングされたデータになります。 2番目のラッチが透過モードになっているため、このデータはクロックがハイになった後のQで利用できます。クロックがハイになると、最初のラッチの入力の変化は、現在ホールドモードになっているため、出力Qに反映されなくなります。前のケースでは、クロックがハイでJ = K = 1の場合、出力はクロックがローになるまでトグルし続けます。この場合、この問題は発生しなくなりました。
あらゆる種類のマスタースレーブフリップフロップは、通常、正のレベルで制御されるフリップフロップと負のレベルで制御されるフリップフロップの組み合わせです。
適切に組み合わせると、エッジ制御されたフロップが得られます。
2つのレベルではなく1つのエッジによって制御されるシーケンシャルロジックを設計する方が簡単です。レベルでトリガーされるフロップのセットアップ時間とホールド時間に違反しないように、また出力が必要なときに変更されるように、レベル設計ロジックのクロックをオーバーラップしないように設計する必要があります。これまで、ロジック設計は、特にIC設計でこのように行われてきました。1つのトランジションを処理するだけで、エッジトリガーフロップのデザインで2レベルのデザインとタイミングへの変換の多くを処理する方がはるかに簡単です。
トグルにJKの代わりにマスタースレーブを使用する主な利点は、qが変化してクロックパルスを待機するときにマスタースレーブが出力を変更できないことです。これにより、「レース」と呼ばれる誤ったトリガーが防止されます。これはフリップフロップについてのかなり良い記事です: https://www.electronics-tutorials.ws/sequential/seq_2.html