Changes between Initial Version and Version 1 of Ex04課題2015


Ignore:
Timestamp:
Apr 30, 2015 6:06:35 PM (11 years ago)
Author:
nakasato
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Ex04課題2015

    v1 v1  
     1トップ:http://galaxy.u-aizu.ac.jp/note/wiki/CAEX2015 
     2 
     3= 準備 =  
     4今週から、MIPSプロセッサを設計します。 
     5そのために、VerilogHDLを用いた記述方法、シミュレータ、波形ビューアなどの各種CADツールの使いかたを習得します。 
     6 
     7== シミュレーションのためのログイン == 
     8{{{ 
     9ssh -X hdw1dc 
     10}}} 
     11 
     12simvisionのウインドウが開かない場合には、 
     13 
     14{{{ 
     15/bin/ssh -X hdw1dc 
     16}}} 
     17でログインすること。 
     18 
     19hostnameは各自の目の前の計算機にすること。 
     20 
     21 
     22= ALUモジュールの設計と検証 = 
     23算術論理演算ユニット(arithmetic logic unit, ALU)は、加算や減算などの算術演算や、 
     24ANDやORなどの論理演算を行うプロセッサの中枢部分です。 
     25今週はMIPSプロセッサで使われる32ビットのALUを作成し、 
     26さらにシミュレーションによって動作検証をします。 
     27 
     28今回設計するALUの入出力信号は次の図の通りです。 
     29AとBは入力でどちらも32ビット幅です。 
     30ALU制御入力(ALUoperation)は4ビット幅の入力で、演算の種類を指定します。 
     31演算結果(ALUresult)も32ビットで出力されます。 
     32ゼロ判定出力(Zero)は演算結果が32ビットとも0であるときに1となる信号です。  
     33  
     34[[Image(http://galaxy.u-aizu.ac.jp/comparch2014/alu.gif)]] 
     35 
     36このALUでは下に示す6種類の演算をサポートします。第4版上巻p.290参照。 
     37 
     38|| ALU制御入力 || 機能 || 
     39|| 0b0000      || AND  ||  
     40|| 0b0001      || OR   ||  
     41|| 0b0010      || 加算  ||  
     42|| 0b0110      || 減算  ||  
     43|| 0b0111      || Set on less than ||  
     44|| 0b1100      || NOR  ||  
     45 
     46ANDは2つの入力の各ビットの論理積、ORは論理和を実行することを意味します。 
     47Set on less than は比較命令で利用される演算で、2つの入力の大小関係によって 0 または 1 を次の表のように出力します。 
     48 
     49|| || ALUの出力 || 
     50|| A < B || 0x00000001 || 
     51|| A ≧ B || 0x00000000 || 
     52 
     53今回作成するプロセッサでは、加算、減算実行時にはオーバフローは想定しません。 
     54オーバフローが発生した場合でも、下位のbitは正しい値が出力されるように設計します。 
     55 
     56== ALUモジュールの作成 == 
     57 
     58 
     59 
     60