■論理ゲート
これまでICが判断・計算を行うための簡単な回路をいくつか見てきた。ではICはどのようにデータを記憶するのだろうか?ICは多くのトランジスタから構成されているが、トランジスタを使ってデータを記憶するときに問題となることがある。それはトランジスタには履歴の機能がないということだ。例えば、MOSFETのゲートに電圧をかけるとスイッチが入り、電圧を取り除けば再びスイッチが切れるが、一度スイッチが入れられていたという記録はなにも残らない。記録を残すには信号を蓄えるか捕まえて離さないようにする必要がある。これを実現するための装置が「フリップ・フロップ(flip-flop)」という一風変わったループ状の回路だ。例えばパソコンのSRAM(Static
Random Access Memory)などにこの原理が利用されている。
・D型フリップフロップ
では実際に機能するフリップフロップを見てみることにしよう。フリップフロップにはいくつかのタイプがあるが、ここでは最も簡単な「D型フリップフロップ(Delayed FF)」について紹介しよう。下にD型フリップフロップの論理式、真理値表、論理記号、NOT・NANDゲートを用いた具体的な構成回路例について示した。入力にはD,CLK(クロック、clock)の二つ、出力にはQ, (Qの反転信号)を表している。
D型フリップフロップは、クロック(CLK)と呼ばれるパルス状の同期信号が加えられた時点での入力Dの理論値「1」、「0」を記憶する。このデータは次のクロックが加えられるまではその状態を保持される。
また、回路構成例で、右の2個のNANDゲート部分で、出力端子Qと がたすきがけ状に入力端子にフィードバックされている点に注目しよう。
(A)論理式

(B)真理値表
入力
D |
クロック
CLK |
出力 |
Q |
 |
0 |
1(↑) |
0 |
1 |
1 |
1(↑) |
1 |
0 |
X |
0 |
Q0 |
 |
※真理値表で用いられている、上向きの矢印(↑)はクロックの立ち上がり時(CLK信号が「0」から「1」に変わる時点)を、×印は入力に無関係であることを、またQ0(および も)は前の状態を示す。
(C)論理記号

(D)構成回路例

・レジスタ
D型フリップフロップ(D-FF)を使った応用例を一つ見てみよう。D-FFをn個用いて下図のように構成すると、nビットの「レジスタ」を作ることができる。各FFのクロック(CLK)とクリア(CLR)端子を共通に接続し、各FFの入力端子Dに入るデータが「1」のときにクロックを加えると、出力端子Qにはデータ「1」が、逆に入力データが「0」のときにはデータ「0」が出力される。つまり、クロックパルス波形の立ち上がり時にのみ、入力データがFFに取り込まれて、次の立ち上がりで出力するまでデータを保持する。
こうした仕組みによって、D1〜Dnに入力されたn個の「1」、「0」情報を記憶し、次のクロックでその情報を出力Q1〜Qnから取り出すことができる。クリア信号は各FFのそれまでの状態に関係なく、すべての内容をリセットすることができる(「0」にする)。

|
|