前回は、自己保持回路を使って「1ビット記憶回路」を作り、実際に動作を確認しました。
今回からは、この「1ビット記憶回路」を4個並べて、1ビット×4アドレスのメモリを構成してゆきます。
なお、ラダー図でメモリを構成するという作業は、現代では実用上の意味はありません。
一種のパズルと思って、読んでください。
9.1 1ビット記憶回路
まず、前回作った「1ビット記憶回路」を、振り返ってみます。
図9.1が「1ビット記憶回路」です。
この回路をブラックボックスとみなし、入出力に着目すると、図9.2のように表せます。
この記憶回路は、書込指示(WR)を1にすることで、その時点のデータ入力(DI)の値が記憶されます。
書込指示(WR)が0のときは、読出モードとなるため、データ出力(DO)には以前記憶された値が出力されます。
この動作を真理値表に表すと、表9.1のようになります。
表9.1 DOの真理値表
(表8.2の再掲)WR\DI 0 1 0 以前の状態を保持 以前の状態を保持 1 0 1
9.2 1ビット×4アドレスのメモリのブロック図
では、この「1ビット記憶回路」を4個並べて、1ビット×4アドレスのメモリを構成してみます。
図9.3が、1ビット×4アドレスのメモリのブロック図です。
データ入力をDI、データ出力をDO、書込指示をWRとするのは、1ビット記憶回路の場合と同様です。
さらに、4個の「1ビット記憶回路」のどれに対して書込または読出を行なうのかを指定するため、2本のアドレス入力を設けました。
このアドレス入力の下位ビットをA0、上位ビットをA1とすることにします。
このメモリの動作は、次の通りです。
(1)書込指示(WR)を1にすると、その時点のアドレス入力(A0、A1)で示す番地のメモリに、データ入力(DI)の値を書込む。
(2)書込指示(WR)を0にすると、その時点のアドレス入力(A0、A1)で示す番地のメモリの内容をデータ出力(DO)に出力する。
この動作を表に表すと、表9.2のようになります。
WR/DI | 0 | 1 |
0 | 読出動作 (A0、A1で示す番地のメモリの内容をDOに出力) |
読出動作 (A0、A1で示す番地のメモリの内容をDOに出力) |
1 | 書込動作 (A0、A1で示す番地のメモリに0を書込む) |
書込動作 (A0、A1で示す番地のメモリに1を書込む) |
9.3 アドレスデコーダ
ではまず、図9.3のアドレスデコーダを検討してみます。
図9.3のメモリでは、外部からの書込指示(WRへの1入力)を、4つの「1ビット記憶回路」のうちアドレス指定した1つにのみ与える必要があります。
言い換えると、アドレス指定されていない残りの3つの「1ビット記憶回路」には、データを書き込んではいけません。
この動作を、図9.3中のアドレスデコーダ(緑色の部分)を中心に考えると、次の動きをしなければなりません。
(1)WRが0のとき、A0、A1の値にかかわらず、Y0〜Y3の値は全て0になる。
(2)WRが1のとき、A0、A1の値が表す番号を仮にnとすると、Ynの値のみ1になり、Yn以外の値は0になる。
この(1)、(2)の動作をするラダー図を、いきなりラダー図に書くと図9.4のようになります。
なぜ、いきなり書けるのかと聞かれたら「ラダー図は、ロジックが直視できるから」としか説明できないのですが・・・
図9.4では、I/O番号を適当に決めました。
横に3つ並んだ接点のうち、左端の入力信号X(図9.3のWRに相当)が1のとき、真中と右端の2つの入力信号A0、A1(図9.3のA0、A1に相当)で指定された番地の行のみ導通となりコイルを励磁する、と読んでください。
ロジックが「直視」できるはずです。
次回は、データセレクタのラダー図を組んだあと、1ビット×4アドレスのメモリ全体のラダー図を動作させてみることにします。
理屈の上では、正しく動作するはずなんですが・・・