フリップフロップ

フリップフロップ (flip-flop) は、1ビットの情報を保持する（記憶する）ことができる論理回路である。

 概要 
使われる場面によってはレジスタ (register) ともいう。コンピュータの主記憶装置やキャッシュメモリ、レジスタを構成する基本回路の一つである。組合わせ回路を単なる組合わせ論理を実現する回路としてでなく、入力に対して遅延した出力を入力側へフィードバックすることで情報の保持を実現し、順序回路とする所に特徴がある。これは組み合わせ回路では一般にネガティブな性質とされる入力信号に対する出力信号の遅延をフィードバック・ループを構成することで逆に利用しているところが興味深い。その構造は継電器（リレー）を用いた自己保持回路（セルフホールド回路）にも類似している。フリップフロップはその構造上揮発性である。即ち情報は通電中のみ保持され、電源が遮断されると保持していた情報は失われる。フリップフロップで構成するRAMをSRAMと呼ぶ。

ラッチの一種（エッジトリガータイプのラッチをフリップフロップ）とすることもあるが、セット・リセットとトランスペアレントタイプのみをラッチとすることもあり（タイプについてはラッチの項目を参照）、また、エッジトリガタイプを同期式フリップフロップ、セット・リセットとトランスペアレントタイプを非同期式フリップフロップ、などとすることもある。

フリップフロップの語源はシーソーが左右に傾くこと Renesas Engineer School 順序回路、フリップフロップやビーチサンダルを履いたときの音の flip、flop という擬音を表す英語に由来しフリップフロップ (flip-flop) の語源「flip-flop」とはビーチサンダルやトングサンダルを指す言葉である。これは、そのサンダルが歩くときに「ぱたぱた」と 、方向転換や態度や決定の転換なども英語では意味する読売新聞2008年12月6日夕刊2面「ニュースの英語」【”サンダル”だけじゃない】flip-flopの意味：意見を突然変える | 上級英語ウェブメディア らいトレ 。

　また、フリップフロップが使われていない電化製品はおそらく存在しない。

 得失 
フリップフロップは内部が論理回路で構成されデータの記憶機能を備えているため、例えばコンピュータの記憶装置を構成する回路、すなわちSRAMとしてよく用いられる。論理回路ではなく、コンデンサ（キャパシタとも言われる）の充電状態を使用した記憶方式であるDRAMと比較した場合、コンデンサの自然放電によるデータ消失を防ぐための定期的なリフレッシュ動作（再書き込み）を与える必要がないため、記憶領域へのシンプルかつ高速なアクセスが可能である。ただし、1ビットあたりのトランジスタ数やその配線がDRAMと比べ複雑になるため、ビットあたりのコストは高くなる。

このような性質から近年では、比較的小容量であっても高速性が求められる揮発性RAM領域においては、フリップフロップベースのSRAMをCPUのレジスタや、アドレスカウンタ回路と組み合わせ高速なバースト転送を行うことが可能なキャッシュメモリやDSP分野などに採用し、その一方で比較的低速であっても大容量が求められる一般的な揮発性RAM領域においては主にDRAMを利用するといったように、それぞれの特長を活かした使い分けが行われている。

フリップフロップはその構造と機能によってRS型（SR型とも呼ばれる。Set-Resetの略）、JK型（語源不明）、D型（Delayedの略）、T型（Toggleの略）といった種類に分類される。

 回路の種類 
 ラッチ回路 

 RS型 
RSという名称は、リセット (Reset) とセット (Set) の2入力の信号名に由来する。RS型フリップフロップのブロック図と真理値表を示す。

+ RSフリップフロップ 回路図  真理値表 x200px 入力  出力 S  R  Q 0  0  保持 0  1  0 1  0  1 1  1  禁止

表で「禁止」とした状態の入力とした場合の動作は一般に不定である。内部の実装方法によっては意図的に利用できる場合もあるが、集積された機能IC等で最も扱いが厳しい場合は、そのような入力にすることは禁止されている場合もあるので、ここでは安全側として「禁止」とした。詳細はラッチ回路の記事のSRラッチに関する記述を参照すること。

 JK型フリップフロップ 
class=skin-invert-image|frame|right|ポジティブ・エッジ・トリガのJK型フリップフロップの回路記号
class=skin-invert-image|thumb|right|128px |NANDゲートによるJK型フリップフロップ
class=skin-invert-image|thumb|right|JK型フリップフロップのタイミングダイアグラム

名前の由来は不明である。

JK型は同時に2つの入力をHにできるのがRS型と違い、そうした場合クロック毎に出力が反転する。

JK型フリップフロップの内部回路の構成図と真理値表を示す。

+ JKフリップフロップ 回路図  真理値表 x200px J  K  Q  次のステートのQ 0  0  0  0 0  0  1  1 0  1  X  0 1  0  X  1 1  1  0  1 1  1  1 0

名前の由来が不明であるため、集積回路の発明で有名なジャック・キルビー (Jack Kilby) がこの回路の開発に携わった際にセット用およびリセット用の入力端子の名前にJとKを割り当ててからJK-FFという名称が使われるようになったという斯界の功労者に付き物の都市伝説、QueenをJackとKingが奪い合う（端子の記号に掛けたジョーク・こじつけ）、などが代表的なものであるが、そういった俗説が多数あるのが変わった特徴ともされる。

 D型フリップフロップ 
class=skin-invert-image|frame|right|D型フリップフロップの回路記号

D型フリップフロップの内部回路の構成図と真理値表を示す。

+ Dフリップフロップ 回路図  真理値表 x200px D  C  次のステートのQ 0  ↑  0 1  ↑  1 X  ↓  前ステートのQを保持

D型フリップフロップはC (CLOCK) 端子の立ち上がりエッジでD入力の値がQ出力として保持される。

 T型フリップフロップ 
class=skin-invert-image|frame|right|T型フリップフロップの回路記号

JK型のJとKを１(真)にしたものと同じ。T型フリップフロップの内部回路の構成図と真理値表を示す。

+ Tフリップフロップ 回路図  真理値表 ファイル:Flipflop_T_type.png T  Q  次のQ 0  0  0 0  1  1 1  0  1 1  1  0

T型フリップフロップはカウンタ、トグルフリップフロップとも言われる。T端子の入力が1周期変化 (High→Low→High) するたびに出力が反転する。

 プリセットとクリア 
主にプリセット (preset) は機器に電源を投入し、電源電圧が所定の安定した値になった後にフリップフロップの出力状態を所定の値として機器の動作開始前の準備（初期化）のために使われる。クリア (Clear) もプリセットと同様な使い方をする場合があるが、機器の動作中のクリア（Qを0とする）に用いられる。ただし、プリセットとクリアをどの様に使うかはあくまで機器の論理回路の設計に依存する。

 フリップフロップと標準ロジックIC 
すべて標準ロジックICとして提供されている。必要なピン数は4つから6つ程度なので、1つのロジックICに2つ以上含まれていることがほとんどである。

 脚注 

 関連項目 
 論理回路
 順序回路
 ブール論理
 負論理 - 正論理
 Static Random Access Memory
 Dynamic Random Access Memory
 CPU
 カウンタ (電子回路)
 レジスタ (コンピュータ)
 キャッシュメモリ
 主記憶装置
 キャッシュ (コンピュータシステム)#記憶階層 (Memory Hierarchy)
 継電器
 シーケンス制御
 マルチバイブレータ
 双安定性

Category:論理ゲート
Category:記憶装置