フリップフロップとは何ですか?


25

フリップフロップとラッチにはさまざまな定義があるようですが、それらのいくつかは矛盾しています。

私が教えるコースのコンピューターサイエンスの教科書は、おそらく最も紛らわしいものです(実際、この本には信仰がほとんどありません。

少なくとも論理ゲートとタイミング図に関して、ラッチ(SR、ゲートSR、ゲートD)の動作、およびレベルトリガーデバイスとエッジトリガーデバイスの違いに満足しています。しかし、私はまだフリップフロップとラッチの簡潔な定義を探しています。

これは私がこれまでのところ信じていることです:

「フリップフロップは、1ビットを格納できるエッジトリガー型の双安定デバイスです」。

「ラッチは、1ビットを格納できるレベルトリガーの双安定デバイスです。」

私はこのことについてこのウェブサイトの以前の投稿を見てきましたが、それらは啓発的であると同時に、決定的なものを探しています。

確認したい私の現在の理解は、下の図にあります…

私が理解しているのは、レベルトリガーゲーテッドDラッチの2つの実装です。

これらの下にはポジティブエッジディテクターがあり、NOTゲートがローからハイへの変化入力、つまり立ち上がりエッジ(赤は1、青は0)にまだ応答していない短い瞬間にあります。

最後の図では、エッジ検出器は日付の付いたDラッチに取り付けられており、これがフリップフロップになっています。

ここに画像の説明を入力してください

最後の図は本当にフリップフロップですか、それとも単なるラッチですか?

そして、なぜこのデバイスがはるかにシンプルであるため、マスタースレーブバージョンが必要なのですか?


1
@DanielTorkなぜそれを答えてみませんか?
アイス

10
オーストラリアとニュージーランドでは、彼らはしばしばビーチや晴れた日の外で着用されるオープントップの靴の形です。;)
KyranF

3
アメリカでも。しかし、私たちは以前それらを皮ひもと呼んでいましたが、それは現在異なるものを指します;-)
追って通知があるまで一時停止します。

1
今、私はフリップフロップとして知られているサンダルで描かれた回路図を見たいです
...-ケシュラム

1
@immibisここから出て行け、腐ったキウイ!
KyranF

回答:


11

今日、私はこの定義について多くのことを考えてきました。

他の人が指摘したように、正確な意味は異なります。それに加えて、おそらくこのサイトでさえ、間違っている人が多いでしょう。ウィキペディアの発言は気にしません!

しかし、一般的に:

  • フリップフロップは、クロックサイクルごとに最大1回、出力状態を変更します。
  • ラッチは、透明ウィンドウの間にデータが遷移するのと同じ回数だけ状態を変更します。

さらに、

  • フリップフロップは非常に安全です。ほぼ間違いなし。このため、合成ツールでは通常、フリップフロップが使用されます。しかし、それらはラッチよりも低速です(そして、より多くの電力を使用します)。
  • ラッチは適切に使用するのが困難です。しかし、それらはフリップフロップよりも高速です(そしてより小さい)。そのため、カスタム回路の設計者は、しばしばデジタルブロック(逆位相の両端のラッチ)に「フリップフロップを広げる」ことで、不適切なタイミングアークから余分なピコ秒を絞り出します。これは投稿の下部に表示されます。

フリップフロップの最も一般的な特徴は、マスタースレーブトポロジです。これは、2つの結合(間にロジックがある可能性があります)、逆位相のラッチ(背中合わせにL1 / L2と呼ばれることもあります)です。

つまり、フリップフロップは本質的に2つのメモリ要素で構成されます。1つは低サイクル中に保持し、もう1つは高サイクル中に保持します。

ラッチは、単一のメモリ要素です(SRラッチ、Dラッチ、JKラッチ)。私が思うに、メモリ要素へのデータのフローをゲートするためのクロックを導入しても、フリップフロップにはなりません(ただし、1つのように動作させることができます。つまり、立ち上がりエッジがトリガーされます)。特定の時間だけ透過的にします。

以下に示すのは、2つのSRラッチから作成される真のフリップフロップです(逆位相クロックに注意してください)。

true d ff

そして、2つのDラッチ(伝送ゲートスタイル)からのもう1つの真のフリップフロップ(これはVLSIで最も一般的なスタイルです)。 反対の位相クロックに再び注目してください

真のフリップフロップtgスタイル

クロックを十分速くラッチにパルスすると、フリップフロップの動作に似始めます(パルスラッチ)。これは、D-> OutおよびClk-> Outからの遅延が少ないことに加えて、より長いセットアップ時間(ホールド時間も増加する必要があり、支払うべき小さな価格)に加えて、パルス。これはそれをフリップフロップにしますか?そうではありませんが、それは確かに1つのように見えます!

ただし、これは動作を保証するのがはるかに困難です。すべてのプロセスコーナー(高速nmos、低速pmos、高いワイヤキャップ、低いワイヤr、1つの例として)およびすべての電圧(低電圧が問題を引き起こす)を確認する必要があります。ラッチし、データを許可します。

フリップフロップではなくパルスラッチと見なされる理由についての具体的な質問については、単一レベルのセンシティブなビットストレージエレメントしか存在しないためです。パルスが狭い場合でも、フリップフロップを作成するロックアンドダムシステムを形成しません。

お問い合わせと非常によく似たパルスラッチについて説明する記事があります。関連する引用:「パルスクロック波形がラッチをトリガーする場合、パルスクロックの立ち上がりエッジと立ち下がりエッジのタイミングがほぼ同じであるため、ラッチはエッジトリガーフリップフロップと同様にクロック同期します。」

編集 わかりやすくするために、ラッチベースのデザインの図を含めました。間にロジックを含むL1ラッチとL2ラッチがあります。ラッチの遅延はフリップフロップよりも小さいため、これは遅延を削減できる手法です。フリップフロップは「分散」され、ロジックは中央に配置されます。これで、ゲート遅延を数回節約できます(両端のフリップフロップと比較して)!

ラッチベースの設計


「マスタースレーブトポロジによって特徴付けられる」-これは、動作特性を定義するというよりも、実装の詳細に近いように聞こえます。動作上、フリップフロップ(定義上)は、エッジトリガーが発生するシングルビットメモリです。実際には、エッジトリガーを近似するために必要な実装マジックには、2番目のストレージ要素が必要です!
オリバーチャールズワース

1
@OliverCharlesworth:まあ、それは実装の詳細です。物理的、行動的、構造的、およびトポロジの詳細だけでなく。ラッチのように思えるので、単にラッチをフリップフロップと呼ぶことはできません。あなたはそれで逃げることができるかもしれませんが、最大限にそれらを使用するには、違いを知る必要があります。フリップフロップを広げると、逆位相の2つの別々のラッチがあります。中央にロジックを詰め込むことができます。これは、どちらかの端にフリップフロップを持つよりも高速です。また、高速設計の非常に重要な概念であるサイクル境界を介した「時間借入」も可能です。
jbord39

ここに役立つかもしれないDFFのいくつかのより有用な写真があります、最後のものを見てください。上記のDFFは、クロックの逆位相でのラッチ(つまり、立ち上がりエッジでのマスターラッチ、立ち下がりでのスレーブラッチ)により混乱を招きます。electronics.stackexchange.com/a/84247/42957
mrbean

ここで、真の単相エッジトリガーフリップフロップ(「TSPC」DFF)の例を参照してください。
mrbean

ここで素敵なパワーポイントです:bwrcs.eecs.berkeley.edu/Classes/icdesign/ee241_s07/Lectures/...は
mrbean

1

多くの人は、クロックデバイスを「フリップフロップ」と呼び、非クロックデバイスをラッチと呼びます。私がそれを学んだとき、それは「クロックされたフリップフロップ」と「フリップフロップ」でした。どちらもエッジでトリガーできます。

重要な場合は、言葉の説明ではなく、部品番号、データシート、およびタイミング図に依存するほどのあいまいさがあります。


それでは、GTO-SCRもフリップフロップですか?
Bradman175

1

私の質問に答えてくれたすべての人に感謝します。予想どおり、意見の相違があります。残念ながら、試験に関してはセマンティクスが理解よりも重要であることがよくあります。Aレベルコンピューターサイエンスの学生の試験用紙に誤って採点したために試験委員会と議論する必要がある場合(そして過去にそれを行ったことがあります)、私は強い立場になりたいです。Aレベルの公式コーステキストの2、3ページを皆さんと共有すると思いました。

最初の図は、アクティブLow SRラッチです。本はそれをフリップフロップと呼んでいます。

テキストでは、本は、「2つのフリップフロップを使用することで、クロック制御回路を使用して出力を制御し、1クロックパルスだけ遅延させるDタイプフリップフロップと呼ばれる回路を作成できます。 」このテキストは、マスター/スレーブ構成を参照しているようです。2番目の図(図14.2)は、D型フリップフロップとしてラベル付けされています。これは、実際にはアクティブHighのゲーテッドDラッチです。

あまり役に立たない!

「フリップフロップの最も一般的な特徴は、マスタースレーブトポロジです」に落ち着きます。jbord39が示唆しているように、フリップフロップという用語は、エッジトリガーラッチを意味するためによく使用され、時にはあらゆる種類のラッチを意味します。説得力があるとは言えないが、ここが本の出番だと思う。

再びすべてに感謝します。

ここに画像の説明を入力してください ここに画像の説明を入力してください


2
うんその本はまっすぐに誤解を招くです。さらに、Dは遅延ではなくデータを表します... lol重要な部分は、それらがどのように機能するかを理解し、セマンティクスに追いつかないことです。私が働いた会社で私に説明されたセマンティクスを説明しました。それは、地域や経験レベルによって異なる可能性があります(特に、論理ゲートの内部に関連します。これは私が取り組んでいることです)。
jbord39

jbord39に同意する必要があります。私の答えで示したように、E入力はデータが出力に影響を与えることのみを可能にします。それでも、誤った情報で構成される教科書があります。かなり面倒です。
ブラッドマン175

1

フリップフロップラッチとは異なります。どちらも双安定回路ですが、実際には2つの異なるものです。

ラッチこのピンがハイであるときにのみデータ入力/入力にピンとリッスンを有効にしています。ローになると、ラッチがフリーズし、その状態を記憶します。入力を操作しても、反応しません。

フリップフロップのみ変更パルス(レベルシフト)に反応する代わりに、クロック端子を含んでいます。方形波を考えてください。オフとオンの間の過渡時間、オフとオンは、回路が入力信号に反応する時間です。その後、ピンが安定して完全にオンになっているときではなく、変更できるようになります。

フリップフロップの反応時間

緑の線は入力を待機している期間を表し、赤の線は入力を待機していない期間を表します。ラッチは、一番上の赤い線で示されている期間のみ入力を許可します。

スタンドアロンSRは、実際には実行可能な回路ではありません。

間違いを指摘したjbord39の功績。radio-elctronics.comから撮影して編集した画像。


フリップフロップはラッチではありませんが、2つの逆位相ラッチから連続して構築できます。
jbord39

私は答えを編集しました@ jbord39
ダニエルトーク

ありがとう、@ Peter Mortensen。私はそれらを見なかった。
ダニエルトーク

0

質問でそれらを使用する際の用語は、アナログIC設計の文脈で使用されていると聞いたものと100%一致しています。ラッチにはレベル依存のイネーブル信号があり、フリップフロップには「クロック」と呼ばれるエッジ依存のイネーブル信号があります。オンラインまたはいくつかの本で、フリップフロップという用語を両方のタイプに使用しているように見える場所に気付きました。これは、2つの安定したポイント間の回路状態「フリップフロップ」について考えると意味がありますが、デザイナーが話しているときはいつでも私が働いている回路では、ラッチはレベルの影響を受けやすく、フリップフロップ(または一般に「フロップ」とも呼ばれます)はエッジの影響を受けやすくなっています。

フリップフロップを、エッジ検出器を備えたラッチとして設計するか、一対のマスタースレーブラッチとして設計するかという他の質問について。エッジ検出器に十分な遅延がある場合、どちらの方法でも機能します。ラッチには、最小の有効化時間があります。エッジ検出技術を使用して高速フリップフロップを作成するのは難しく、セットアップ/ホールド時間はプロセス/電圧/温度によって大きく異なる可能性があると思います。


重複しないロジックしきい値を持つマスター/スレーブペアで実装されたフロップがめったに見られないのはなぜだろう(したがって、VDD / 4未満の入力電圧ではマスターが有効になり、VDD / 2を超える電圧ではスレーブが有効になります。ゆっくりと上昇又はノイズの多い入力信号を供給され、動作はいずれもVDD / 2以上の電圧を見た後に立ち上がりエッジで、それらのいずれもVDD / 4以下の電圧を参照していないだけ、ことを条件とする信頼性の高いであろう。
supercat

@supercatヒステリシスについて話していますか?
コートアンモン-モニカーの復活

@CortAmmon:いや、もっといい。独立したシュミットトリガーを持つ2つのフリップフロップがカスケード接続されている場合、最初のフロップがクロックエッジを認識し、2番目のフロップがクロックエッジを認識する前に入力を出力まで伝搬すると、不正な動作が発生する可能性があります。フリップフロップがスプリット入力スレッショルドを使用する場合、クロックが下限スレッショルドを超えると2番目のフロップが入力をキャプチャしますが、クロックが上限スレッショルドに達するまで最初のフロップの出力は変化しません。
-supercat

0

(OPの最後の回路がフリップフロップかラッチかを知りたい場合は、最後までスキップしてください。)

基本的に、フリップフロップは、これらの状態の変更を可能にするクロックピンとともに2つの状態のラッチを可能にする論理ゲート(またはコンポーネント)の配置です。

次に、フリップフロップとラッチの違いを示します。ラッチは非同期ですが、フリップフロップは同期です。

  • 非同期ラッチはCLK、フリップフロップで(クロックの略)ピンと一般的に呼ばれる更新ピンを必要としません。彼らが気にするのは、入力が特定の状態にあるかHIGHどうかだけLOWです。入力でHIGHsとLOWsの特定の組み合わせが引き起こされた場合、つまり、回路がアクションを実行することを決定し、希望する結果が「即座に」返される場合。ラッチには4つの可能なアクションがあります。

    1. 何もしない
    2. 設定するQにはHIGH
    3. 設定するQにはLOW
    4. 無効な状態(おそらくの値を反転しますQ

    Q'依存していることに注意してくださいQ

例は、ラッチが実行できる4つの可能なアクションすべてを示すSRラッチです。 RSラッチ

  1. Sis LOWおよびRisの場合LOW、何も変わりません。
  2. Sis HIGHおよびRisの場合LOWQはに設定されHIGHます。
  3. Sis LOWおよびRisの場合HIGHQはに設定されLOWます。
  4. ときSであるHIGHRされHIGHQ「予測できない」速い速度で、反転しています。この状態は無効です。
  • 同期フリップフロップを使用すると、データピンに値を設定できます。これは、これらのピンの状態のみが重要であることを意味します。ただし、回路はまだ出力に対してアクションを実行することを決定していません。CLK上記のピンがあります。ときにCLKピンが(いずれかの状態を変更LOWするHIGHその逆、あるいは両方)、データ・ピンを「捕捉」され、フリップフロップを行うの組み合わせに基づいてアクションHIGHS及びLOWデータピンから取り込まれたデータのS-。CLKピンには2つのアクションがあります。
  1. 何もしない
  2. データピンからデータを「キャプチャ」し、その特定の瞬間のデータピンの値に基づいて出力に対してアクションを実行します。

この場合も、回路が出力に対して実行できる4つのアクションがあります。

  1. 何もしない
  2. 設定するQにはHIGH
  3. 設定するQにはLOW
  4. の値を反転しますQ(1回しか実行しないため有効になりました)

これはフリップフロップではありません:

ここに画像の説明を入力してください

しかし、なぜあなたは尋ねるかもしれませんか?そのEピンはクロックピンではありません。クロックピンにより、回路はデータピンからの情報を分析し、その情報が命令として送信され、出力で特定のアクションを実行します。ただし、このようなピンを有効にすると、回路は、データピンがハイに保持され、出力の値を常に設定している限り、データピンからの情報を分析できます。したがって、それはラッチです。(私の間違いを指摘してくれたjbord39に感謝します)。

したがって、フリップフロップはラッチに似ていCLKますが、ピンである追加の「確認」ステップが必要です。

OPの質問の最後の回路はフリップフロップですか?Cをハイに保持してみて、Dの値を変更したときに出力が変更されるかどうかを確認します。出力が変更される場合は、代わりにenableと呼ばれるラッチである必要があります。しかし、出力が変わらない場合(その場合)、それはフリップフロップです。

画像はウィキペディアから取得されます。


いいえ、多くのラッチにはクロックピンがあります。nxp.com/documents/data_sheet/74HC_HCT373.pdf実際にあなたが示した回路は、フリップフロップではなくラッチです
...-jbord39

@ jbord39?どのクロックピン?また、イネーブルピンはクロックピンとは異なります。
ブラッドマン175

@ jbord39とあなたは正しい。下の2つの回路はラッチです。私の答えを再考してください。
ブラッドマン175

フリップフロップが各入力をチェックし、出力をオンにし、ラッチがクロックをチェックし、1の場合に動作してDの値を出力します。したがって、SRラッチはクロックされないため、フリップフロップです。しかし、Dラッチは真のラッチです。
ダニエルトーク

@DanielTork問題は、複数の「クロック」を取得し、クロックをピン間で切り替えることができず、データピンとしても機能することです。
ブラッドマン175
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.