理系学生日記

おまえはいつまで学生気分なのか

TAやったとき、みんなRS-FF理解してなさげだったので説明してみる

TAやるよ!

今日から本格的に実験とかいう講義のティーチング・アシスタント(TA)を務めることになりました。実験で何をしてるかというと、フリップ・フロップ(FF)回路をつくっています。FFというのは、情報/電子を学ぶ人はたぶんだけどみんな知ってるような、ちょう基本的な回路だったりします。今日は、RS-FFとかJK-FFを作ったった。学生さんはちゃんと動かせるようにはなってたみたいなのだけど、「で?」みたいな反応だったので、ここはTAたるぼくが、RS-FFのなんたるかを教えてやろうとおもいます!

RS-FFて、ホントはすごい

RS-FFはこんな動作をする回路です。ほかにクロックとかも入力するけど、メンドいのでむしする。

入力端子 Reset (R) 入力端子 Set (S) 出力端子 (Q(t+1))
0 0 Q(t)
0 1 1
1 0 0
1 1 ←入力禁止!!!

Set端子に1をいれたら、出力はSet (1)になるし、Reset端子に1を入れたら、出力はReset (0)される。ちょうかんたんですね。
じゃぁSetもResetも同時にしちゃえとかいうと、それは無理な話なので、ふつうSetとResetを同時に1にすることは禁止される。してもいいんだけど、しちゃうと出力にへんてこな値がでます。あんまし意味がない。


RS-FFでいちばん大事なのは、Set、Reset端子にともに0をいれた場合で、このときは前の出力の値Q(t)がそのままでてくる。前の値そのまま出るのって意味ねーじゃんとか思われてしまったぽいのですけど、じつはこれはすごいことです。だって、回路がじぶんの前の出力をおぼえているのです。回路が自分の前の出力を「記憶」してるのです。RS-FFすげぇぇぇ!!!!かしけぇぇえええ!!!!!!!

計算問題でたとえてみます

たとえばここに、2*(3+5)という計算問題がある。これはとても難しい問題で、たぶんだけどゴリラとかには解けない。
この問題を解くには、まず3+5をします。8です。これはたぶんだけど、かしこいゴリラには解ける。
でもいくらかしこいゴリラでも、次の2*(3+5の答え)を計算するときは、3+5の答えを忘れてしまってるんじゃないかとおもいます。もちろんこれはテキトーに言ってるので、答えを忘れないゴリラがいたら謝る。でもRS-FFは「記憶」ができるので、(3+5)の答えは8だったから、2*8をして、答えは16じゃん、みたくなる。記憶というのは、ちょうスゲー発明なのです。

ちょうイノベーティブ

単に入力から出力を出す回路は、組み合わせ回路とかいわれる。ORとかNANDとかですね。ORとかNANDとか考えた人は基本超偉いひとです。
RS-FFとかもNANDとかを組み合わせると取りあえず(論理的には)できる。でもこの回路は「記憶」ができます。つまり、RS-FFは組み合わせ回路から一歩も二歩も先をいったスゲー回路なのです。