Hayami Kaito Web
← Apps

論理回路

NAND ゲートだけから NOT・AND・OR・XOR、半加算器・全加算器、4 ビットの加算器、SR ラッチ・D フリップフロップ・カウンタまでを組み立て、入力を切り替えて信号の伝わり方を確かめます。真理値表や、ゲートの遅れで途中の値が揺れる様子も見られます。

NAND から作る
足し算
記憶

NAND の 2 つの入力に同じ信号を入れると、1 のときだけ 0 になる NOT になります。

落ち着きました(入力を変えてから 0 単位時間)
NANDA=01Y = NOT A

左の入力を押すと 0 と 1 が切り替わります(CLK はボタンでも押せます)。太い線が 1 の信号です。NAND だけで作ると 1 個。

タイミング図
AY

横軸の 1 目盛りがゲート 1 つ分の遅れです。入力を変えてから出力が変わるまでの遅れや、途中で一瞬だけ違う値になる様子(グリッチ)が見られます。

真理値表

AY = NOT A
01
10

使い方

  • 上のボタンで回路を選び、回路図の左にある入力(A=0 など)を押して 0 と 1 を切り替えます。キーボードでは Tab で入力を選び、Enter で切り替えられます。
  • 「ゲートの遅れを見せる」をオンにすると、信号がゲートを 1 つずつ通って伝わる様子をゆっくり再生します。オフにすると、落ち着いた結果をすぐ表示します。
  • D フリップフロップとカウンタは「CLK を 1 回動かす」でクロックを 1 回入れます。下のタイミング図で、クロックの立ち上がりで値が変わる様子を確かめましょう。

NAND だけでコンピュータが作れる

NAND(AND の否定)は、それだけで NOT・AND・OR など、どんな論理関数も作れる「万能ゲート」です。トランジスタ 4 個で作れて小さく速いので、実際の集積回路でも NAND を基本の部品にすることがよくあります。足し算は 1 ビットの全加算器を桁の数だけつなげば作れ、CPU の演算装置の基本になります。

記憶する回路

ゲートの出力を自分の入力に戻すと、入力が変わらなくても前の状態を保つ回路になります。SR ラッチは 2 つの NAND をたすき掛けにした最も小さな記憶で、そこに入力の条件を足したのが D ラッチ、D ラッチを 2 段にしてクロックの立ち上がりの瞬間だけ値を取り込むようにしたのが D フリップフロップです。CPU のレジスタや、決まった間隔で処理を進める順序回路はこれでできています。

このアプリでは、どのゲートも同じ 1 単位時間で出力が変わるとしています。実際のゲートの遅れは数十ピコ秒ほどで、いちばん長い道のり(クリティカルパス)の遅れがクロックの速さの上限を決めます。