回数 第13回 課題 簡易CPUの製作(2/3)
目的 CPUの製作を行う。CPUの製作を通じて、ハードウェア設計の流れを理解する。
CPUの構造について、理解を深める。CPU製作第2回の実験では、メモリ素子を
実装する。
到達目標 (8) 16ビット×64のメモリを定義して、[CP7]のスイッチで、メモリの内容が順次表示できるように、
  表示回路を作成する。[CP8]
(9) 3クロックで、命令のフェッチを実行する。[CP9]
  プログラムカウンタの内容をアドレスとし、IRにメモリの内容を読み出す。
(10) IRの上位ビットをデコードして、OPコードを取り出し、オペランドがメモリに存在する場合を
  判定する。該当する命令の場合には、[被演算数]レジスタに、メモリからデータを読み出す。
  [CP10]被演算数レジスタの中身と、OPコード、メモリの中身を表示させて、動作確認する。
  まず、Add, Sub, Xor, Andのみを定義すればよい。
(11) オペランドと、ACCの中身に、オペコードの値に応じて演算を実行する。[CP11]
  オペランドの読み出しの次のサイクルで、ACCに演算結果が格納されていることを確認する。
(12) シフト命令で、オペランドの領域を被演算数レジスタに転送し、シフト演算を実行する。[CP12]
(13) LD命令と、ST命令を実装する。デコード後に、ACCの内容とメモリの内容を比較して
  動作確認する。[CP13]
(14) 命令実行後に、PCをインクリメントし、次の命令のフェッチサイクルを動作させる。[CP14]
(15) 上記を実装できたなら、ジャンプ命令(PCの値を上書き)を実装する。[CP15]
作業手順 (1) CPUの設計は、前回の「FPGA導入」から4回連続と考えてよい。初回の課題は、CPU設計の
  第一段階も含んでいる。前回の課題を完全消化してから、今日の課題に入ること。
(2) 前回と異なり、メモリを利用できるようになった段階で、メモリからレジスタに値を
  転送するように書き換えていく。
(3) 内部動作を確認するために、「手動クロック」や「表示切替」をうまくスイッチに定義して
  割り振るとよい。
 
Aの条件は、特に設定しない。CPUの動作をどのように理解し、どう実装したか、各自自分なりに
考えをまとめて、報告して欲しい。
注意点 今後3回連続の実験では、毎回「積み上げ式」のチェックポイントを提示するが、連続的に
チェックポイントを消化して欲しい。日付にこだわらず、前回できなかった部分の作業を
行う。TAのチェックポイント記録は、前回分から継続して、連続して使用する。(この結果、
CPU設計の第3回では、Spartan導入の12/8日分から、全部で4回分のチェックシートを
用意して、記録を講師宛に再送して下さい。)過去にさかのぼって、CPを上乗せします。
元の教材とは、スイッチの使い方が若干変わっているが、作りやすい設計(内部動作がその都度
検証しやすい方法)として、この資料を参考にして、各自が工夫して欲しい。
内部動作が見やすいと、デバッグ効率が高い。
考察課題
報告内容
CPUの動作について、理解できた範囲で理論的に説明する。
経過報告でよい。