フリップフロップとは
フリップフロップとは、入力された値を保ち、次の合図が来るまでその値を出力し続ける、1ビット分の記憶素子です。 回路に過去を持ち込むだけでなく、クロックの合図で時間を区切り、その瞬間の値だけを次の段へ渡す関門にもなっています。ラッチとの違いは、いつ入力を取り込むかにあります。
順序回路に過去を持ち込むのが、フリップフロップ
Section titled “順序回路に過去を持ち込むのが、フリップフロップ”論理ゲートを組み合わせた回路には、2つの系統があります。入力信号の組み合わせだけで出力が定まる組み合わせ回路と1、内部に記憶回路と同期回路を備えた順序回路です。組み合わせ回路は、いま入力されている信号だけで出力が1つに定まります。順序回路は2、いまの入力に加え、過去の入力によっても出力が決まります。順序回路が過去の入力を現在の出力に反映させるには記憶が要り、その記憶を受け持つ部品がフリップフロップです。
同期式順序回路は、状態を記憶するフリップフロップ群と、出力関数および次状態関数を計算する組合せ回路部からなります3。
RS型は、最後に乗った側を覚えるシーソー
Section titled “RS型は、最後に乗った側を覚えるシーソー”フリップフロップという名前は、日本語のギッタンバッコンにあたる英語の擬音から付けられました2。RSフリップフロップの動作は、少し錆びていて、傾いた姿勢がそのまま保たれるシーソーにたとえられます。シーソーの両端が出力QとQ#、左右に乗る2人が入力RとSで、乗ることが論理のHに、降りた状態がLに対応します。S側が乗ればQがHになり、降りた後も傾きは保たれます。R側が乗ればQがLになり、こちらも降りた後まで保たれます。
真理値表は4つの行からなります。S=H、R=LのセットでQ=H、Q#=Lになり、S=L、R=HのリセットでQ=L、Q#=Hになります。S=L、R=Lでは直前の出力がそのまま保たれ、S=H、R=Hは禁止入力です。
RSフリップフロップは最も簡単なフリップフロップで、主に機械式スイッチのばたつきによる誤動作を抑える用途などに使われます2。基本要素は、Q=1とQ=0の二つの状態をもつSRラッチと呼ばれる回路で、NANDゲートで組めます。1ビットの記憶が、論理ゲートの組み合わせから生まれます。
D型は、クロックが切り替わる瞬間だけ入力を取り込む
Section titled “D型は、クロックが切り替わる瞬間だけ入力を取り込む”フリップフロップには構造と機能の違いでRS型、JK型、D型、T型といった種類があり2、実際のチップで最もよく使われるのはD型です。Dフリップフロップは、クロック信号(CK)が立ち上がってLからHへ移る瞬間、あるいは立ち下がってHからLへ移る瞬間に、入力の状態を保持して出力を切り替えます2。シーソーにたとえれば、公園の普通のシーソーと違ってCKが立ち上がった瞬間にだけ傾き、CKがHに安定した状態でD側の人が乗り降りしても傾きは保たれます。
D-FFは遅延素子と同じ動作をし、入力Dを次時刻の状態として出力します。クロック入力CKの周期を時間単位とした時刻tに対して Q(t+1)=D(t) となり、順序回路の次状態の値をそのまま入力できるため、順序回路の記憶回路として最もよく用いられます。多段につなげればシフトレジスタや分周回路が作れ2、CPU内部のレジスタなどにも用いられます。
D-FFのほかに、SR-FF、T-FF、JK-FFがあります。T-FFは入力T=1で状態が変化する機能をもち、JK-FFはSR-FFとT-FFを組み合わせた機能をもちます。SR-FFで禁止入力だった(J,K)=(1,1)は、JK-FFではT-FFとして動作します。
ラッチの弱点を、2段構成とエッジ動作で解いた
Section titled “ラッチの弱点を、2段構成とエッジ動作で解いた”広義にはラッチも含めてフリップフロップと呼ぶことがありますが、両者は別の部品です。ラッチには、クロックが1の間に入力が変化すると状態も変化し得るという問題点があります。1つのクロックパルスの間の状態遷移を1回までに収めるにはパルス幅に上限を設ける必要があり、回路設計が難しくなります。
この点を解決した記憶素子がフリップフロップで、マスタースレーブ型とエッジトリガ型があります。エッジトリガ型は、入力読込みと出力変化の両方を、クロックの立ち上がりまたは立ち下がりのいずれか一方だけで行います。立ち上がりで行うものはポジティブエッジトリガ型、立ち下がりで行うものはネガティブエッジトリガ型と呼ばれます。
マスタースレーブ型は、2つのSRラッチを直列につなぎ、両者のクロック入力を互いに否定の関係にしたものです。クロック入力が1の間は、前段のマスターラッチが入力を取り込んで状態を変え、後段のスレーブラッチは前の状態を保持します。クロック入力が0になると逆になり、マスターラッチの状態が固まって、スレーブラッチの状態がマスターラッチと同じになります。入力が複数回変化しても、フリップフロップ全体の状態の変化は1回に収まります。
CMOSでは、伝送ゲートを用いたラッチ回路を2段直列につなぎ、それぞれの段のクロックを逆位相にしてDフリップフロップを作ります4。ラッチ2段でフリップフロップ1個という関係は、実際の回路図でも同じです。
クロックで揃えるのは、組み合わせ回路のグリッチを避けるため
Section titled “クロックで揃えるのは、組み合わせ回路のグリッチを避けるため”組み合わせ回路では、わずかな信号伝達の遅延により、グリッチと呼ばれるごく短時間の信号が出力されることがあります。グリッチは論理回路の誤動作を招くため、それを避ける手立てとしてクロック同期回路が使われます。
クロック同期回路は、フリップフロップとフリップフロップの間に組み合わせ回路が挟まる構造です。グリッチは組み合わせ回路の出力が安定するまでの短い間に出る信号なので、出力が落ち着いてからクロックを動かし、その値をフリップフロップに保持させれば、誤動作を避けられます。フリップフロップが担っているのは、記憶と時間の区切りの両方です。
SRAMのセル、スキャンテスト、クロックスキューにも出てくる
Section titled “SRAMのセル、スキャンテスト、クロックスキューにも出てくる”フリップフロップは、論理回路の教科書を離れても半導体製品のあちこちに出てきます。ロジックチップの回路は、インバーターやNANDと並んでフリップフロップを決まった高さの長方形に描いた標準セルを並べて組みます。
SRAMは、記憶の1マスをフリップフロップで作るメモリで5、書き込んだ値は電源が入っている間そのまま保たれます。中身を定期的に書き直すリフレッシュを省ける分、動作の間合いを取りやすく速度も出しやすいため、キャッシュメモリや小型の電子機器に使われます。
スキャンテストは、大規模な論理ICで欠かせない検査で、検査する回路の経路上にフリップフロップを組み込み、端子から順に走査しながら動作を観測します5。短絡や断線、配線どうしの架橋、遅れといった不具合を自動で洗い出せます。テストパターンを作りやすいため、テスト容易化設計(DFT)のなかでいちばん広く使われています。フリップフロップの端子に起きる故障には縮退故障があり、ICの論理素子やフリップフロップの端子が、入力が何であっても「0」か「1」の一方に張り付いてしまう故障です5。
クロックスキューは、同期回路へ届くクロックの到着時刻のずれで、広がると速度を上げにくくなるうえ、誤動作の元にもなります。ロジックICでは普通、CTS(Clock Tree Synthesis)を使い、クロック発生回路から数段のバッファツリーを経由させて、フリップフロップやRAMへの到着時刻をできるだけ揃えたクロックを配ります。チップの規模が大きくなるほど、同じ瞬間のクロックを全てのフリップフロップへ届ける難しさが増し、1ビットの記憶素子がチップ全体の設計を左右します。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”フリップフロップとは何ですか?
1ビット分の値を保つ記憶素子です。順序回路が過去の入力を現在の出力へ反映させるには記憶が要り、その記憶を受け持つ部品をフリップフロップと呼びます。
組み合わせ回路と順序回路は、どこが異なるのですか?
過去の入力が出力へ届くかどうかです。組み合わせ回路は、いま入力されている信号だけで出力が1つに定まります。順序回路は、いまの入力に加えて過去の入力によっても出力が決まります。
名前の由来は何ですか?
擬音です。日本語のギッタンバッコンにあたる英語の擬音から名付けられ、RSフリップフロップの動作は、傾いた姿勢がそのまま保たれるシーソーにたとえられます。
種類にはどんなものがありますか?
構造と機能の違いからRS型、JK型、D型、T型などに分けられます。D-FFは順序回路の次状態の値をそのまま入力できるため、順序回路の記憶回路として最もよく用いられます。
ラッチとフリップフロップは同じものですか?
広義にはラッチも含めてフリップフロップと呼ぶことがあります。ラッチはクロックが1の間に入力が変化すると状態も変化し得るため、この問題点をマスタースレーブ型やエッジトリガ型で解決した記憶素子がフリップフロップです。
なぜクロックの合図を待つのですか?
グリッチを避けるためです。組み合わせ回路では、わずかな信号伝達の遅延でグリッチと呼ばれるごく短時間の信号が出ることがあり、誤動作を引き起こすため、出力が落ち着いてから値を取り込むクロック同期回路を使います。
半導体製品のどこで使われていますか?
SRAMの記憶の1マスがフリップフロップで組まれています。回路の途中にフリップフロップを差し込んで動きを観測するスキャンテストは、テスト容易化設計(DFT)のなかで最も広く使われている手法で、大規模な論理ICでは欠かせない検査です。
比較・違いを学ぶ
Section titled “比較・違いを学ぶ”- 論理ゲートとは── いまの入力だけで出力が定まる部品で、フリップフロップの中身もこれで組まれます
5件を表示
- 1
- 2
- 3電子情報通信学会:知識の森 1群8編3章「有限状態機械と順序回路」ieice-hbkb.org ↩
- 4電子情報通信学会:知識の森 1群7編6章「スイッチング回路」ieice-hbkb.org ↩
- 5JEITA(電子情報技術産業協会)半導体部会:半導体用語集semicon.jeita.or.jp abc