フリップフロップ回路とは? ラッチとの違いや種類別の基本構造・動作原理・使用例を解説
- 半導体用語集

情報の記憶や制御に欠かせない要素として「フリップフロップ回路」があります。代表的なフリップフロップ回路には、RS型・D型・JK型・T型があります。
本記事では、フリップフロップ回路とは何か、種類別の動作原理、具体的な使用例までを詳しく解説します。
フリップフロップ回路とは
フリップフロップ(Flip-Flop)という名前は、回路の動作を表す擬音的な表現に由来しています。「flip(ひっくり返る)」と「flop(切り替わった後の状態)」の2つの安定した状態を交互に切り替える動作のイメージです。これは、シーソーが左右に傾く様子や、ビーチサンダルが歩くたびにひっくり返る動作を連想するとわかりやすいです。
デジタル回路では、フリップフロップの2つの状態は「0(Low)」と「1(High)」で表現されます。フリップフロップはこの状態を保持し、必要に応じて外部信号で状態を切り替えられます。
Flip:状態が「0」から「1」へ変化する動作
Flop:状態が「1」から「0」へ戻る動作
入力信号やクロック信号に応じて状態を保持または変更し、過去の入力履歴に基づいて出力を決定する順序回路として機能します。そのため、組み合わせ回路とは異なり、時間的な要素を考慮した動作が可能です。
【種類別】フリップフロップ回路の構造・動作原理
フリップフロップ回路は、主に以下の4種類に分けられます。
1. RSフリップフロップ(RS-FF)
RSフリップフロップとは、デジタル回路において基本的な記憶素子の一種で、2つの入力信号「R(Reset)」と「S(Set)」によって出力を制御する回路です。
RSフリップフロップは入力信号を使って、2つの状態(0=Lowまたは1=high)を保持し、出力を変更できます。
基本構造
RSフリップフロップは通常、NANDゲートまたはNORゲートを使って構成され、以下の入力・出力が行われます。
入力
S(Set):出力を1に設定する
R(Reset):出力を0に設定する
出力
Q(出力):現在の状態を示す出力
Q'(反転出力):Q の反転値
動作原理
RSフリップフロップの入力端子は、SとRの2つで、出力端子はQ(通常出力)とQ'(反転出力)で表されます。S端子に高電位(1)が入力されるとQが1に、R端子に1が入力されるとQが0になります。
そして、QとQ'は互いに反転の関係であるべき、というルールがあります。
NANDゲート構成では、SとRがともに1の場合に状態を保持します。ただし、SとRが同時に0になると禁止状態(エラー)となり、出力が不定になります。
NORゲート構成では、SとRが0の場合に状態を保持しますが、SとRが同時に1になると禁止状態(エラー)となります。
この禁止状態を回避するために、改良されたDフリップフロップやJKフリップフロップが主に使用されます。
NANDゲート構成
S(Set) | R(Reset) | Q(出力) | Q' (反転出力) | 動作 |
1 | 1 | 前の状態を保持 | 前の状態を保持 |
保持状態(無変更)
|
1 | 0 | 0 | 1 | リセット |
0 | 1 | 1 | 0 | セット |
0 | 0 | 不定 | 不定 |
禁止状態(エラー)
|
NORゲート構成
S(Set) | R(Reset) | Q(出力) | Q' (反転出力) | 動作 |
0 | 0 | 前の状態を保持 | 前の状態を保持 |
保持状態(無変更)
|
0 | 1 | 0 | 1 | リセット |
1 | 0 | 1 | 0 | セット |
1 | 1 | 不定 | 不定 |
禁止状態(エラー)
|
RSフリップフロップは、機械式スイッチのチャタリング防止など、信号の安定化に使用されます。
2. Dフリップフロップ(D-FF)
Dフリップフロップは、単一のデータ入力(D:Data)を用いることで、RSフリップフロップの不定状態(禁止状態)を解消したものです。
クロック信号のタイミングに基づいて動作し、同期型回路で広く使用されます。
基本構成
入力
D(データ):記憶するデータを入力(SetとResetを1本の信号に統合)
CLK(クロック):データをサンプリングするタイミングを制御するクロック信号
出力
Q(出力):現在の状態(記憶されたデータ)
Q′(反転出力):Qの反転値
RSフリップフロップでは、禁止状態(S=1、R=1またはS=0、R=0)を排除するため、入力Dは内部で「S」と「R」を制御します。
動作原理
Dフリップフロップは、クロック信号のエッジ(信号が変化する瞬間)に基づいて動作します。一般的には、立ち上がりエッジ(クロックが0→1になる瞬間)でDをサンプリングして、Qに反映します。
CLK(エッジ) | D(Data) | Q(出力) | Q'(反転出力) |
上昇エッジ | 0 | 0 | 1 |
上昇エッジ | 1 | 1 | 0 |
他の状態 | 無視 | 前の状態を保持 | 前の状態を保持 |
Dフリップフロップは、レジスタやシフトレジスタ、カウンタなど、クロック同期型のデジタル回路で広く使用されます。
3. JKフリップフロップ(JK-FF)
JKフリップフロップは、RSフリップフロップの改良版で、JとKの2つの入力端子を持ちます。
内部的にはRSフリップフロップを基礎とし、フィードバック回路を加えて不定状態を防止します。J=1とK=1のとき、出力が反転するよう改良され、RSフリップフロップの禁止状態を解消しています。
基本構成
入力
J:Setに対応する入力(出力を1に設定)
K:Resetに対応する入力(出力を0に設定)
CLK(クロック信号):タイミング制御
出力
Q:現在の状態(記憶されたデータ)
Q′:Qの反転値
動作原理
JKフリップフロップは、J、K、クロック信号の状態に応じて以下の動作を行います。
J | K | Q(出力) | 動作 |
0 | 0 | 現在の状態を保持 | 保持 |
0 | 1 | 0 | リセット |
1 | 0 | 1 | セット |
1 | 1 | Q を反転 | 出力反転 |
JKフリップフロップは、カウンタ回路や分周回路など、出力の反転動作を利用する場面で使用されます。
4. Tフリップフロップ(T-FF)
Tフリップフロップ(Toggle Flip-Flop)は、出力をクロック信号に同期して反転させる(トグル動作)フリップフロップ回路です。
JKフリップフロップを簡略化した特殊なフリップフロップ回路で、JKフリップフロップのJとKを1つの入力としてTに統合した構造をしています。
基本構造
入力
T(Toggle):切り替え操作の指示を行う単一の入力
CLK(クロック信号):動作タイミングを制御
出力
Q:現在の状態(記憶されたデータ)
Q′:Qの反転出力
内部構造
Tの値によって、JKフリップフロップの次の入力が以下のように制御されます。
T=0:J=0、K=0(保持)
T=1:J=1、K=1(トグル)
動作原理
Tフリップフロップは、入力Tの値とクロック信号の状態に基づいて動作します。
T | Q(出力) | 動作 |
0 | 現在のQを保持 | 保持 |
1 | Qを反転 |
トグル(切り替え)
|
Tフリップフロップは、カウンタ回路や分周回路で、出力の反転動作を利用する際に使用されます。
フリップフロップ回路の使用例
フリップフロップ回路は、デジタル回路のさまざまな分野で活用されています。
以下に代表的な使用例を紹介します。
1. レジスタ
複数のDフリップフロップを並べて構成されるレジスタは、複数ビットのデータを一時的に保持するために使用されます。データを一時的に保持することで、一括転送や処理が可能です。
2. カウンタ回路
JKフリップフロップやTフリップフロップを連結して構成されるカウンタ回路は、クロック信号に同期して数値を増減させます。イベントの回数を数えたり、特定のタイミングを生成したりすることが可能です。
3. シフトレジスタ
Dフリップフロップを直列に接続して構成されるシフトレジスタは、データを順次シフトさせることで、直列-並列変換や並列-直列変換を行う際に使用されます。データの形式変換や移動が効率的に行えます。
4. 周波数分周回路
Tフリップフロップを用いた周波数分周回路は、クロック信号の周波数を整数分の1に減少させ、クロック信号をゆっくりにさせます。この動作により、異なるクロック周波数が必要な回路ブロック間での同期が容易です。
フリップフロップ回路とラッチの違い
フリップフロップ回路とラッチはどちらもデジタル回路の記憶素子であり、1ビットの情報を保持するため、よく比較されます。
それぞれ異なる設計と用途で使用されるので、ラッチとは何かも含めて解説します。
ラッチとは
ラッチ(Latch)とは、デジタル回路の一種で、1ビットのデータを保持する記憶素子です。ラッチは、外部からの入力信号に応じて現在の状態(出力)を変更したり、保持したりする機能を持ちます。
ラッチはクロック信号を必要とせず、入力信号や制御信号(通常はイネーブル信号)の状態に合わせて動作します。
動作タイミング
フリップフロップ回路
クロック信号のエッジ(立ち上がりまたは立ち下がり)で動作するクロック同期型です。入力信号がクロックエッジに基づいてサンプリングされ、出力に反映されます。一定のタイミングで動作するため、高速で正確な処理が可能です。
ラッチ
イネーブル信号のレベル(HighまたはLow)に基づいて動作します。レベル信号が1(アクティブ)の場合、入力が常時出力に反映されます。設計がシンプルですが、入力信号の変動やノイズに敏感で、誤動作を起こす場合があります。
その他の違いについては、以下にまとめました。
フリップフロップ回路 | ラッチ | |
動作タイミング | クロック信号のエッジ(立ち上がり/立ち下がり)で動作 |
イネーブル信号のレベル(High/Low)で動作
|
制御方式 | エッジトリガ型 |
レベルトリガ型
|
タイミングの精密さ |
高い エッジでのみ入力をサンプリング |
比較的低い イネーブル信号がアクティブな間、入力を追従 |
用途 | クロック同期型回路(カウンタなど) |
非同期型回路、簡単なデータ保持
|
回路構造 |
複雑 ラッチを2段階で構成 |
シンプル 基本ゲートで構成可能 |
記憶能力 | エッジの瞬間にデータを記憶 |
クロックのアクティブ状態中にデータを保持
|
ノイズ耐性 |
エッジでのみデータを受け付けるため安定 |
ノイズや入力変化に敏感だが、イネーブル信号が適切に制御されていれば影響は軽減 |
動作速度 | クロック速度による |
高速(即座に動作可能)
|