第13回: 実習(8): FPGAへのCPUの実装(3)

全体設計

最後にこれまでに設計した要素回路を統合してCPUとメモリを含む 全体cpu_topを設計し、をつくってみましょう。 (もちろんcpu_topにはスイッチやLEDなどがつきます) 入出力の構成は、例えば7セグメントLED表示回路のseg7.vhdと スイッチPSW(0), PSW(1)を交互に押すことでクロック信号を生成する sw_clk.vhdを使い、 次のようにするとわかりやすいでしょうか。 (もちろん他の構成でも構いません)

プログラムの動作

mem.vhdにいろいろなプログラムを書き込み、それを動作させて 正しい結果が得られるかを確認してみましょう。

プログラム1: レジスタへの値の代入

addr data
0    00000001 : mov 1, r0
1    00010010 : mov 2, r1
2    01100010 : jmp 2

プログラム2: 乗算(3×4=12)

addr data
0    00000000 : mov 0, r0
1    00010100 : mov 4, r1
2    00100011 : add r0, 3, r0
3    01011111 : add r1, 15, r1
4    01110110 : jz 6
5    01100010 : jmp 2
6    01100110 : jmp 6
この他にも、例えば除算の実行などのいろいろなプログラムを記述して 実行させてみましょう。

CPUの機能拡張

ここまでで設計したCPUは、非常に基本的な機能しかありません。 しかしHDLの機能拡張が容易である特長を生かして、 機能を拡張させてみましょう。 例えば、以下のような拡張が考えられます。

レポート

今回設計したCPU、またはそれを独自に拡張したCPUをFPGA上で動作させ、 そこでプログラムを実行させて、その実行結果などをまとめる。
戻る