expand_less
メインビジュアル

monologue

第4回:フリップフロップ

こんにちは。 第4回目は“フリップフロップ”です。
前回ご紹介した「組み合わせ回路」に続き、今回はデジタル回路の基本要素のひとつであるフリップフロップを取り上げます。
少々長くなりますが、“ひとり言”としてお付き合いいただければ幸いです。

■フリップフロップ(Flip-Flop、F/F)とは
フリップフロップは0と1の2つの状態を持ち、1ビットのデータを記憶できるデジタル回路です。
クロック信号の立ち上がりや立ち下りで動作を制御するタイプが一般的で、過去の入力履歴と現在の入力によって出力が決定されます。
複数のフリップフロップを組み合わせることで、レジスタやカウンタ、SRAMなどの記憶回路、またはデータの一時保持回路を構成できます。さらに、異なるタイミングで発生する信号を同期させる用途にも広く用いられます。
回路設計では、カウンタやデータの保持、外部からの非同期信号や異なるクロックで生成された信号を処理回路(例えば、フリップフロップの2段構成)で動作するクロックへの同期化処理などに使用します。
なお、フリップフロップはクロックの立ち上がり、または立ち下がりのタイミングでデータを取り込むため、このタイミング以外で変化する場合の信号(クロック間で発生するパルスなどの非同期信号)は保持できない場合があります。
その場合はラッチを使用して保持したデータをフリップフロップで同期化するなどの対応をします。
カウンタでは、多ビットのカウンタ(64ビットなど)を1つのカウンタとするより、8ビット単位のカウンタを接続することで、カウンタの総ビット数変更の容易化、回路規模の縮小化、検証時に8ビット単位で実施することで検証時間を短縮することができ、設計・検証効率の向上が期待できます。

■フリップフロップの主な種類
フリップフロップには主に以下の種類があります。
・RSフリップフロップ
・Dフリップフロップ
・JKフリップフロップ
・Tフリップフロップ
以下、それぞれについて簡単に説明します。

1.RSフリップフロップ
2つの入力R(リセット)、S(セット)によって、出力(保持した値の出力Q、保持した値の反転出力Q’)を制御するデジタル回路における基本的な記憶素子です。
通常、NANDゲート、またはNORゲートで構成されます。
NANDゲート構成では、(S, R)=(1, 0)で(Q, Q’)=(0, 1)となりリセット状態になります。また、(S, R)=(0, 1)で(Q, Q’)=(1, 0)となりセット状態になります。
(S, R)=(1, 1)ではQ、Q’の出力状態を保持しますが、(S, R)=(0, 0)は禁止状態(エラー)となり、出力が不定になります。
NORゲート構成では、(S, R)=(0, 1)で(Q, Q’)=(0, 1)となりリセット状態になります。また、(S, R)=(1, 0)で(Q, Q’)=(1, 0)となりセット状態になります。
(S, R)=(0, 0)ではQ、Q’の出力状態を保持しますが、(S, R)=(1, 1)は禁止状態(エラー)となり、出力が不定になります。
以下、JKフリップフロップの真理値表です。

RSフリップフロップ真理値表

2.Dフリップフロップ
入力クロック信号の立ち上がり、または立ち下がりのタイミングで入力信号の値を取り込み、保持して出力します。
入力信号とクロックのみで動作し、RSフリップフロップのような禁止状態がない単純な構造が特長です。データ保持、レジスタ、同期化回路などの同期式回路で広く使用されます。
デメリットとして、JKフリップフロップやTフリップフロップのように、入力によって出力をトグル(反転)させる機能を持たないため、そのような動作が必要な場合は外部回路が必要になります。
また、カウンタや分周回路を構成する場合は入力信号を適切に処理する必要があるため、JKフリップフロップより回路が複雑になることもあります。
以下、Dフリップフロップの真理値表です。

Dフリップフロップ真理値表

3.JKフリップフロップ
J入力とK入力によって出力Qの状態を制御できる回路です。
RSフリップフロップの禁止状態を解消し、セット、リセット、出力反転、出力状態保持を可能にした回路で、クロック信号に同期して動作するタイプが多く、カウンタや分周器などのデジタル回路に広く利用されています。
一方で、J=K=1のとき、出力が反転し続ける発振現象が発生する可能性があるため、これを防ぐために前後のデータ入力を分離するマスタ・スレーブ構造などが用いられます。
そのため、JKフリップフロップでは回路構成が複雑になりやすく、素子数の増加やタイミング設計への注意が必要です。
以下、JKフリップフロップの真理値表です。

JKフリップフロップ真理値表

4.Tフリップフロップ
Tフリップフロップは、クロック信号に同期して、T=1のとき出力を反転し、T=0のとき現在の状態を保持するフリップフロップです。
JKフリップフロップのJ入力とK入力を共通化してT入力とした構成とみなすことができ、比較的単純な構造で反転動作を実現できます。
クロックごとに出力を反転できるため、分周回路やカウンタ回路に広く用いられます。
また、実際の回路では起動時の状態を明確にするため、リセット機能を備えた構成が用いられることが多いです。
以下、Tフリップフロップの真理値表です。

Tフリップフロップ真理値表

CAREER PLAN

思い描く未来を
MGICと共に成長する