Combined Memory【NandGame編】
はじめに
いつもブログをご覧いただきありがとうございます。
コーストFIRE中のIPUSIRONです😀
Combined Memoryレベル
Combined Memoryレベルのゴールは、複合メモリーを組むことです。
プロセッサーのメモリーは、AおよびDと呼ばれる2つの16ビットレジスターとRAMユニットで構成されます。
a、d、*aという書き込み用のフラグが用意されています。フラグは組み合わせられ、Xは同時に複数のレジスターに書き込めます。例えば、3つのフラグがすべて0の場合は、入力Xは無視されます。
入力 | ・a:書き込みフラグの1つ。AレジスターにXを書き込む。 ・d:書き込みフラグの1つ。DレジスターにXを書き込む。 ・*a:書き込みフラグの1つ。Aレジスターで指定されたアドレスのRAMにXを書き込む。 ・X:16ビットのデータ。 ・cl:クロック信号 |
出力 | ・A:Aレジスターの現在値。 ・D:Dレジスターの現在値。 ・*A:レジスターAで指定されたアドレスのRAMの現在値。 |
Combined Memoryレベルを解く
1:回路を設計する
複合メモリーの説明にあるように、2つのレジスターと1つのRAMを用意します。それぞれregisterコンポーネント、ramコンポーネントに対応します。
3つの書き込み用のフラグは、registerコンポーネントやramコンポーネントのstピンに接続すればよさそうです。
2:Aレジスターの周辺回路を実装する
3:Dレジスターの周辺回路を実装する
4:RAM周辺の回路を実装する。
ramコンポーネントのstピン、clピン、outputピンを接続します。
残されたAdピンについて考えます。Adピンにはアドレスを与えますが、当該回路では「Aレジスターで指定されたデータ値」をRAMにおけるアドレスとして扱います。つまり「AレジスターのOutputピン」と「RAMのAdピン」をつなげます。
この回路は3つのコンポーネントが使われており、内部的には480個のNandゲートから構成されています。