| | 163 | |
| | 164 | = 制御部の設計(2) = |
| | 165 | 各状態における出力信号を定義すると、以下のファイルのようになります。 |
| | 166 | ただし、このファイルでは、状態0と1の場合のみ記述してあります。 |
| | 167 | |
| | 168 | 未完成の制御回路 http://galaxy.u-aizu.ac.jp/note/raw-attachment/wiki/Ex08%E8%AA%B2%E9%A1%8C2015/ControlUnit_2.v |
| | 169 | |
| | 170 | == 課題3 == |
| | 171 | 全ての状態の場合の出力信号を定義して、主制御ユニット(ファイル名は"!ControlUnit.v")を完成させること。 |
| | 172 | |
| | 173 | === 制御回路の動作確認 === |
| | 174 | テストベンチファイルの例 http://galaxy.u-aizu.ac.jp/note/raw-attachment/wiki/Ex08%E8%AA%B2%E9%A1%8C2015/CUbench.v |
| | 175 | |
| | 176 | このテストベンチファイルを実行し、各命令(LW, SW, RTYPE命令, BEQ, JMP, ADDI, SLTI, ANDI, ORI)ごとに、 |
| | 177 | 状態番号stateごとに正しい信号が出力されていることを確認してください。 |
| | 178 | |
| | 179 | 例えばLW命令の場合は、state=0では: |
| | 180 | {{{ |
| | 181 | state= 0: MemRead=1,ALUSrcA=0,IorD=0,IRWrite=1,ALUSrcB=001,ALUOp=00,PCWrite=1,PCSource=00 |
| | 182 | }}} |
| | 183 | と出力されます。これを状態遷移図を比べて、正しいかどうかを確認してください。 |
| | 184 | |
| | 185 | [[Image(http://galaxy.u-aizu.ac.jp/comparch2014/image/comparch_ex8.png)]] |
| | 186 | |
| | 187 | 他の命令と他のstateについても同様に確認すること。 |
| | 188 | |
| | 189 | 注意:状態遷移図には各状態で変化する信号のみが書いてあります。例えばMemReadはstate = 0の時は真であるべきですが、それ以外の状態では偽になっている必要があります。そのためstate = 1ではMemReadは偽になっています。他のstateの時も同様です。 |
| | 190 | |
| | 191 | == 動作確認 == |
| | 192 | RTYPE命令とJMP命令の場合の波形を表示して、TAに動作確認を受けること。 |
| | 193 | |
| | 194 | |