wiki:Ex04課題2015

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となる信号です。 http://galaxy.u-aizu.ac.jp/comparch2014/alu.gif

この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)

Download all attachments as: .zip