プロセッサの追加設計 4(jal 命令)と動作実験 5-2
実験の概要
本実験では、プロセッサの追加設計と動作実験を行う。これにより、プロセッサの追加設計の手順とプロセッサの動作の理解を目指す。 本実験では、jal 命令が未実装なプロセッサを例とし、追加設計を行い、これらの命令が正しく実行されるプロセッサを完成させる。また、その動作を実際に動作させて観察する。
プロセッサの追加設計 4
動作実験 5-1 の jal 命令が未実装なプロセッサについて、追加設計を行い、これらの命令を正しく実行するプロセッサを完成させなさい。 また、そのプロセッサと動作実験 5-1 の my_print.bin を FPGA 上に実現し、その動作を確認せよ。
本実験を下記の 1, 2, 3 の手順で行いなさい。
1. jal 命令のためのメイン制御回路の追加設計
2. 論理合成
3. FPGA を用いた回路実現
なお、本実験で追加設計を行う jal 命令のアセンブリ言語は表 1 のとおりである。
表 1: jal 命令のアセンブリ言語
区分
命令
意味
手続きサポート(ジャンプ)
jal address
PC = address * 4; ra = PC + 4 (ra は 31 番目のレジスタ)
また、本実験で追加設計を行う jal 命令の機械語は図 1 のとおりである。
jal
000011
address
J 形式
6 ビット
26 ビット
31 26
25 0
図 1: jal 命令の機械語
1. jal 命令のためのメイン制御回路の追加設計
本実験では、動作実験 5-1 で動作を確認した jal 命令が未実装なプロセッサについて、追加設計を行う。
本実験では、動作実験 5-1 で使用したプロセッサのメイン制御回路の Verilog HDL 記述 main_ctrl.v を使用する。 main_ctrl.v は、ディレクトリ mips_de2-115 内のサブディレクトリ MIPS 内にある。
ソースファイル main_ctrl.v 中のコメント、追加設計 4 のヒント(1)〜(4)の周辺を、適切に変更せよ。
jal 命令実行時のプロセッサ内の信号の流れを
ブロック図
に示す。ブロック図中の青と緑の線で書かれた信号が jal 命令の実行に関わっている。信号の流れがブロック図のようになるように、ブロック図中の赤で書かれた制御信号を適切に設定する。
2. 論理合成
本実験では、追加設計後のプロセッサならびに命令メモリ、その他周辺回路の論理合成を行う。
論理合成には、追加設計後の main_ctrl.v と動作実験 5-1 で使用したその他プロセッサの Verilog HDL 記述一式、my_print.bin から生成した メモリ・イメージファイル rom8x1024_DE2.mif を使用する。
追加設計後の main_ctrl.v を、プロセッサなど一式のディレクトリ mips_de2-115 内の、サブディレクトリ MIPS 内に置く。
更に、
ディレクトリ mips_de2-115 に cd し、my_print.bin の rom8x1024_DE2.mif がそこにあるのを確認して、図 2 のように論理合成を行う。
quartus_sh --flow compile DE2_115_Default
図 2: quartus_sh を使ったプロセッサの論理合成
なお、論理合成には計算機の性能により 5 分から 20 分程度の時間がかかる。 論理合成が完了すると、ディレクトリ mips_de2-115 内に FPGA にダウンロード可能なプロセッサ等の回路一式のストリーム・アウト・ファイル DE2_115_Default.sof が生成される。
3. FPGA を用いた回路実現
本実験では、追加設計後のプロセッサの実際の動作を観察し、動作実験 5-1 で観察した結果との比較を行う。 本実験には、論理合成により生成された プロセッサなど回路一式のストリーム・アウト・ファイル DE2_115_Default.sof を使用する。
DE2_115_Default.sof を quartus_pgm を用いて DE2-115 ボード上の FPGA にダウンロードし、動作させよ。
プロセッサが実行するマシン・コード my_print.bin はディスプレイ下部に文字列を表示するプログラムである。
key3を連打してプロセッサにクロックパルスを送り、プロセッサにPC=0x0000番地から70個程度の命令を実行させ、ディスプレイ下部に文字列"HELLO!!"の一部が表示されるかどうかを確認せよ。
表示されるはずである。クロック供給モードを1000Hzにセットすると数秒で文字列"HELLO!!"が完全に表示される。
また、
動作実験 5-1 で確認された、動作実験 5-1 の 3 の 1, 2 で予想した結果と異なる動作について、その動作に変化がないかどうかを確認せよ。
動作実験 5-1 の 3 の 1, 2 で予想した結果と同じ動作になったはずである。
参考書
[1] パターソン&ヘネシー著(成田光彰訳):「コンピュータの構成と設計(上巻)第3版」, 日経BP社
[2] パターソン&ヘネシー著(成田光彰訳):「コンピュータの構成と設計(下巻)第3版」, 日経BP社
[3] パターソン&ヘネシー著(成田光彰訳):「コンピュータの構成と設計(上巻)第4版」, 日経BP社