目次番外編 Chap.11 ラダー図でメモリをつくる(4)

今回は「ラダー図でメモリをつくる」の最終回です。
次は、いよいよ計算機か?と考えてはみたのですが、なかなか難しいということだけはわかりました。
ということで、次回テーマは、未定です。

11.1 I/O番号を決める
すでに、アドレスデコーダ(黄緑色)と1ビット記憶回路(黄色)とデータセレクタ(水色)の回路は、前回までで設計済みです。
あとは、これらの接続するだけです。

ブロック図上で「接続」することは、ラダー図上では「同じI/O番号を使う」ことに相当します。
接続された線の出力側にコイル、入力側に接点を使います。
ブロック図上で、適当にI/O番号を割り当てたのが図11.1です。
なるべく、Chap.8からChap.10で作成したラダー図がそのまま流用できるように割り当てました。

図11.1 メモリのブロック図(I/O番号を割り当てた)

では、ラダー図開発ツールLD Cv!で順に書いてゆきます。

まず、アドレスデコーダは、Chap.9の図9.4をそのまま使います。
次に、1ビット記憶回路は、Chap.8の図8.5を使えばよいのですが、4回路必要なため、I/O番号を変えて4回路書きます。
その次に、データセレクタですが、これもアドレスデコーダと同様、Chap.10の図10.5がそのまま使えます。
最後に、処理系の都合でプログラム末にEND命令が必用なため、これを書きます。
これで、おしまいです。
図11.2〜図11.4に、これらの回路を示します。
なお、処理系の都合で、各I/O番号の頭に記号Mが付きます。

図11.2 メモリのラダー図(1/3)
図11.3 メモリのラダー図(2/3)
図11.4 メモリのラダー図(3/3)

11.2 動作確認
1ビット×4アドレスのメモリのラダー図が完成したところで、動作確認してみます。
確認は、次の@〜Gの手順でおこなってみました。

@1番地に1を書き込む。
A2番地に0を書き込む。
B1番地から読み出し、1であることを確認する。
C2番地から読み出し、0であることを確認する。
D1番地に0を書き込む。
E2番地に1を書き込む。
F1番地から読み出し、0であることを確認する。
G2番地から読み出し、1であることを確認する。

もう少し詳しく書くと、表11.1の通りになります。

表11.1 メモリの動作確認手順
A1 A0 DI WR DO 備考
@1番地に1を書き込む。
A2番地に0を書き込む。
B1番地から読み出し、1であることを確認する。
C2番地から読み出し、0であることを確認する。
D1番地に0を書き込む。
E2番地に1を書き込む。
F1番地から読み出し、0であることを確認する。
G2番地から読み出し、1であることを確認する。

ラダー図開発ツールLD Cv!のシミュレーション機能を使って、この動作を確認しました。

11.3 まとめ(というか感想・・・)
Chap.4〜5とChap.8〜11では、計算機の構成要素ということで、加算器とメモリの設計・実行(ラダー図上でのシミュレーション)をおこなってきました。
AND,OR,NOTの論理回路をラダー図に置き換えただけのことですから、理屈の上では、動いて当然です。
ただ、ラダー図で表現できたということは、機械的にリレーに置き換えられることを意味していますので、
リレーで計算機の構成要素を作れたといえると思います。
それにしても、たかか4ビットの容量のメモリで、かなりの手間が、かかったというのが実感です。

参考までに「ラダー図開発ツールLD Cv!」上で動作するプログラム(prog020.zip)をダウンロードできるようにしてあります。
ただ、加算器と違って入力に手間がかかる割には、派手な動作はしませんので、そんなに面白いものではありません。

目次