| Version 1 (modified by nakasato, 11 years ago) (diff) |
|---|
トップ:http://galaxy.u-aizu.ac.jp/note/wiki/CAEX2015
準備
今週から、MIPSプロセッサを設計します。 そのために、VerilogHDLを用いた記述方法、シミュレータ、波形ビューアなどの各種CADツールの使いかたを習得します。
シミュレーションのためのログイン
ssh -X hdw1dc
simvisionのウインドウが開かない場合には、
/bin/ssh -X hdw1dc
でログインすること。
hostnameは各自の目の前の計算機にすること。
ALUモジュールの設計と検証
算術論理演算ユニット(arithmetic logic unit, ALU)は、加算や減算などの算術演算や、 ANDやORなどの論理演算を行うプロセッサの中枢部分です。 今週はMIPSプロセッサで使われる32ビットのALUを作成し、 さらにシミュレーションによって動作検証をします。
今回設計するALUの入出力信号は次の図の通りです。
AとBは入力でどちらも32ビット幅です。
ALU制御入力(ALUoperation)は4ビット幅の入力で、演算の種類を指定します。
演算結果(ALUresult)も32ビットで出力されます。
ゼロ判定出力(Zero)は演算結果が32ビットとも0であるときに1となる信号です。
このALUでは下に示す6種類の演算をサポートします。第4版上巻p.290参照。
| ALU制御入力 | 機能 |
| 0b0000 | AND |
| 0b0001 | OR |
| 0b0010 | 加算 |
| 0b0110 | 減算 |
| 0b0111 | Set on less than |
| 0b1100 | NOR |
ANDは2つの入力の各ビットの論理積、ORは論理和を実行することを意味します。 Set on less than は比較命令で利用される演算で、2つの入力の大小関係によって 0 または 1 を次の表のように出力します。
| ALUの出力 | |
| A < B | 0x00000001 |
| A ≧ B | 0x00000000 |
今回作成するプロセッサでは、加算、減算実行時にはオーバフローは想定しません。 オーバフローが発生した場合でも、下位のbitは正しい値が出力されるように設計します。
ALUモジュールの作成
Attachments (2)
- test.png (49.9 KB) - added by nakasato 11 years ago.
- alu.gif (1.7 KB) - added by nakasato 11 years ago.
Download all attachments as: .zip
