同名の履物については、フリップフロップまたはフリップフロップ(サンダル)を参照してください。電子工学におけるフリップフロップは、2つの安定な出力状態をもつ双安定素子、つまり1個の2進数字(ビット)を記憶する回路です。フリップフロップは同期順序論理における基本的な記憶要素であり、レジスタ、カウンタ、状態機械、その他多くのデジタル回路の構成要素になります。制御信号によって状態が変化するまでその状態を保持し、入力の組み合わせとクロック遷移を予測可能な出力動作へ変換します。

基本的な特性と動作

フリップフロップは、論理ゲートやトランジスタ間のフィードバックによって1ビットを保持し、出力が2つの安定状態の一方を強め合うように動作します。主な特性には、現在の状態(Q)、その補数(not-Q)、set、reset、clock、data などの制御入力、さらにセットアップ時間、ホールド時間、伝搬遅延といったタイミング条件があります。フリップフロップにはレベル感応型(しばしばラッチと呼ばれるもの)とエッジトリガ型があり、後者はクロック信号の立ち上がりまたは立ち下がりの遷移時にのみ状態を変えます。マスター・スレーブ構成は、レベル感応の段をエッジトリガ素子に変換する古典的な手法です。

代表的な種類

  • SR(Set–Reset): set と reset の入力を別々に持つ最も単純な形で、両方が有効なときにあいまいになります。
  • D(Data または Delay): 有効なクロックで入力Dを取り込み、SRのあいまいさを避けます。レジスタで広く使われます。
  • JK: SRを拡張した形式で、無効状態を解消し、両入力が真のときにトグル動作できます。
  • T(Toggle): T入力が有効になると出力を反転します。カウンタでよく使われます。

タイミング、実装、および重要な問題

設計者はタイミングパラメータを守る必要があります。セットアップ時間は「クロック前にデータが安定している時間」、ホールド時間は「クロック後もデータが安定している時間」、伝搬遅延は「出力が応答するまでの時間」を意味します。セットアップ時間やホールド時間を破るとメタスタビリティが発生し、回路が予測できない時間だけ不定状態に入ることがあります。そのため、同期化技術や同期用フリップフロップが非同期インターフェースでの問題を抑えるのに役立ちます。物理的には、フリップフロップは個別ゲート、バイポーラTTL、CMOSの静的構成、あるいは伝送ゲートを用いたマスター・スレーブ対として実装できます。速度、面積、消費電力の間にはそれぞれトレードオフがあります。

歴史と発展

双安定素子の起源は、初期のリレー回路や真空管回路にさかのぼります。双安定マルチバイブレータとエクルズ=ジョーダン・トリガーは、電子的な記憶素子を示した重要な節目でした。トランジスタの発明、さらに後の集積回路技術によって、フリップフロップはプロセッサやデジタルシステムの中で小型・高速・高信頼の部品になりました。数十年にわたる製造技術と設計の改善により、低消費電力、高速性、メタスタビリティへの耐性が最適化されてきました。

用途、例、そして区別

フリップフロップは、レジスタ、シフトレジスタ、有限状態機械、周波数分周器、同期カウンタの構築に使われます。レジスタ内では単一要素の粒度でビットを保持しますが、大容量メモリ(SRAM、DRAM)は通常、密度を重視した別のセル構造を用います。関連する区別として、ラッチはレベル感応型であり、イネーブルが有効な間は状態を変えられます。一方、フリップフロップは通常エッジトリガ型で、クロック遷移の瞬間にのみ変化します。デジタルシステムのタイミング、クロッキング、同期を設計するうえで、これらの違いを理解することは重要です。

参考として

  • クロック駆動回路を設計する際は、ラッチとフリップフロップの動作を比較してください。
  • クロックドメインをまたぐ場合は、メタスタビリティと同期回路の設計を検討してください。
  • 実装方式(CMOS と TTL)を比較し、速度・電力・面積のトレードオフを確認してください。