ソフトの砂場(RAM)

最終更新日:1998年11月13日

 今回は、今までの論理ゲートやフリップフロップに比べると、ずいぶん馴染み深いメモリを作ってみます。今回もまたシミュレータを使うのですが、さすがに今まで使っていたものでは荷が重いので、参考文献[1]に付いてくる論理回路シミュレータを使っています。

デコーダ

 メモリを作ってみる前に、デコーダの動作を見てみます。デコーダは、入力を2進数とみなして、それに対応する出力をONにする回路です。例えば入力A1, A2、出力Y1, Y2, Y3, Y4があれば、(A1, A2)=(0, 0)ならY1だけがONになり、(1, 0)ならY2だけがONになる、といった動作をする回路です。

 下図は、このデコーダを論理ゲートで実現した例です。

デコーダの実現例

 これをシミュレーションしてみると、下図のように(A1, A2)=(L, L)のときはY1だけがHになり、(H, L)のときはY2だけがHになる、という動作をしていることが分かります。

デコーダの動作

マルチプレクサ

 マルチプレクサは、いくつかのデータ入力の中から、制御入力に従って、出力に出すものを決める回路です。下図に簡単なマルチプレクサの実現例を示します。制御入力S1, S2に従って、C1〜C4のどれをYに出力するかが決まります。

マルチプレクサの実現例

 この動作を見てみると、下図のようになります。少しわかりにくいのですが、(S1, S2)=(L, L)のときはC1が出力され、(H, L)のときはC2というようになっています。

マルチプレクサの動作

RAM

 RAM内には大量のデータを保存する場所(セル)があり、デコーダは、アドレスをもとにどのセルにアクセスするかを決めるために用いられます。セル自体は、前回扱ったSRラッチやフリップフロップを用いて実現できます。いくつかのセルの出力から、どれをRAMの出力とするかは、マルチプレクサを用いて決めます。このRAMから読み出されたときだけ出力し、それ以外のときは出力をハイインピーダンスにするために、マルチプレクサの出力を3ステートバッファを通してRAMの出力としています。

 下図に、今回作成したRAMの回路図を示します。このRAMの容量は、1ビット×4という、想像を絶する少なさです^^; 実現は、論理シミュレータで扱える素子数の制約や手間を省くため、デコーダなどを74シリーズから選んでいます。デコーダ(セルを選択)は74139, SRラッチ(セル)は74279, マルチプレクサ(セルの出力を選択)は74153です。これらを含む今回使った素子は、(原理的には)今まで作成してきた回路の組み合わせで実現できるものです。

 このRAMは、入力としてアドレス(A0, A1)、データ(DI0)、チップセレクト(CS)、Read/Write(RW)があり、出力はデータ(DO0)だけです。CSをHにするとこのRAMが選択されます。CSがLの場合、出力はハイインピーダンスになり、書き込みもできません。CSがHの時、RWをHにするとアドレスで指定したセルの内容をDO0に出力します。RWをLにすると、出力DO0はハイインピーダンスになり、データ入力DI0の内容をアドレスで指定したセルに書き込みます。

RAMを単純化した回路図

(クリックすると、拡大図を表示します。)

 これを実際にシミュレータを使って動かすと、下図のような結果が得られます。この図で、CSは常にH(このRAMが選択されている)です。左から、まず初期状態ではSRフリップフロップの内容が不定なので出力DO0も不定になっています。次にRWをLにすると、DI0の内容(L)が書き込まれます。次にRWをHにすると、書き込んだ内容がDO0に出ています。このとき、DI0をHにしていますが、出力には影響していません。

 次にアドレスA0をHにして別のセルを選択すると、RWがHなのでセルの内容を読み出そうとしますが、これも不定です。Hを書き込んで読み出すと正しく書けていることが分かります。またA0をLに戻すと、はじめに書いたセルの内容Lが読み出せます。以後、A1をHにして同様の操作を行っています。

 このように、アドレスを指定して書き込んだ内容を、後でそのまま読み出せることが分かり、RAMとして動作することが確認できました。

RAMの動作

雑感

 今回は論理回路シミュレータを使って2ビット×4のRAMを作るつもりだったのですが、扱える素子数の上限に達してしまい、残念ながらこの大きさであきらめました。回路が下手くそなのも原因なのですが・・・

参考文献

  1. DESIGN WAVE BOOKS 4, PCによるディジタル回路の設計とシミュレーション, CQ出版, 1996
  2. 池田克夫 編, 新コンピュータサイエンス講座 情報工学実験, オーム社, 1993
  3. 最新74シリーズIC規格表, CQ出版,1994
  4. 藤原秀雄, コンピュータ設計概論, 工学図書, 1998

ホーム