竹下徹の応用電磁気学II-2002 第八回
計算回路ーメモリー
メモリにはFlip-Flop( フリップ・フロップ)を使う
メモリーとは記憶のことであり、内容の変化がある。ある時は1である時は0である、さらに回路の外からの指令により内容(0か1か)を書き換えられなければならない。また情報(ゼロか1)を保持するという観点からもここで時間概念を導入する必要がある。次の回路を考えよう。NAND回路がこの動きをする事を考えると、次の真理表(といっても順番により結果が異なる)をえる。またこれを新しいタイミングを考慮に入れた図(タイミングチャート)で次のように表す。この図は横軸に時間をとり、外から変化させる入力(S,R)を順次変更してゆくようすを示すことができる。またその出力(Q,P)を同時にみている。ベースラインが低い電圧でデジタルの0を示し、電圧の高いレベルがデジタルの1を示す。本当は有限の時間がかかって電圧は上昇、下降をするが、ここでは理想的な場合として無限小時間で立ち上がり、立ち下がる事とする。また回路中では遅延が本来存在するがこれも無視する。例えば タイミング b でSを 0レベルから1へあげたとき、同時に Qが0から1へ上がっている。(本当はちょっと遅れてQが上がるはずである)全ての組み合わせを試した訳では無いので、これでは十分ではない。自分で試したほしい。この回路の問題点は、S=R=1やS=R=0で値が安定でない(Q,P)=(0,1),(1,0)のどちらの組も可能ということである。この回路はS-R-Flip-Flop (SRFF)と呼ばれるがこのため、S=R=1の入力を禁止している。(単にやっちゃだめと行っているだけでやったら、どうなるか判らないよということではあるが)。SR-FFは次の形でかかれる。
問題:SR-FFと以下の回路は同等であることを示せ。
同期式メモリー回路: clock-SR-FF:外部入力としてもう一つタイミングをパルス(C)が入る型のSR-FF
これはコンピュータなどを意識してタイミング調整のために同期タイミングパルスの入力を持つ場合である。出力Q 、P=Qはclock-timingで変化する事に注意。C端子を付けてタイミング入力(clock)として使う。さらに同期式メモリー回路:
D-FF
SR-FFでは入力SとRは自由に決定できた。そのため、S=R=1は禁止などと言わねばならぬ。D-FFではR=S としてしまう。2入力(DとC)1出力(QとQは独立では無いので)の回路である。タイミングチャートは例えば次のようになる。こうしてどうしてもSとRは同じになれないようにしてしまうこともできる。こうすると D-FFではクロックCが一つ入るごとにDが1なら Qをあげ、Dが0ならQを下げるように働く。 D-FFの応用として シフトレジスターがある。その回路を示す。そのタイミングチャートはとなる。データが右へ右へシフトしてゆくようすが見える。例えばQ3の点をずっと見ているとすると、クロックとともに0->1->1と状態が変化してゆく。
これを二進数"110"と考えると、10進数で6である、これを同じタイミングまで送り続けると、二進数"1100"と考えると、10進数で12である,
この"0110"と"1100"という1ビットずれた状態は2倍の違いがある。つまり、1ビットのシフトは2倍の計算をしていることになる。
さらに進化するメモリー回路:JK-FF
SR-FFでは S=R=1を禁止したり、S=R=0が不定になった。そこでD-FFでは無理矢理、必ず S=Rとした。JK-FFではJ=K=1もOKなのだ。これがそのタイミングチャートでJ=0->1へ変化するとQ=0->1へ変化、K=0->1へ変化するとQ=1->0へ変化する。これはSR-FFと同じ振る舞いである。もう一つ、J=K=1のときは、Qが反転することに注意。clock - timingでこの変化は起こること、QnはQn+1の一つ前の状態を表す。真理表である。タイミングを考慮に入れるため、nというタイミング番号をつけた。
T-FF : JK-FFの簡単進化版:J=Kとしてしまった!JK-FFでは J=K=1のときは、Qが反転する, これを利用するFFがT-FFである。タイミングチャートT=1のときは、Qが反転すること:このことをToggle動作とよぶので、T-FFなのだ。T-FFの応用:カウンタ:入力パルスの数(何個入ったか)を数える回路
INに五番目のパルスがはいるとき、Q1の出力は前のステップからずうと0なのでもつづいて1であり、Q2はトグルして反転しそうであるが、AND回路は信号が上向きに上がるときときのみ変化をすることを義務付けているので、ここでは Q2は反転しない。そのままである。