KITE マイクロプロセッサの 16 ビット ALU


実験に先立ち、サブテーマ3用の作業ディレクトリを作成し、その中で作業して 下さい。

ALUを設計するために、まず設計する ALU の仕様を明確にする必要があります。 KITEマイクロプロセッサのALUは、KITEの命令およびアドレス計算等に使用す るため、以下に挙げる演算機能を備えておく必要があります。

算術系命令
演算種類 動作 備考
加算(ADD) 被演算数 + 演算数 算術的な加算を行います。またインデクスアドレッシングにおけるアドレス計算の際にも使用されます。
デクリメント(DEC) 被演算数 − 1 デクリメント命令や、スタックポインタ変更に使用します。
インクリメント(INC) 被演算数 + 1 インクリメント命令や、スタックポインタ変更に使用します。
減算(SUB) 被演算数 − 演算数 算術的な減算を行います

論理系命令
演算種類 動作 備考
論理和(OR) 被演算数 or 演算数 論理な和(or)を取ります。
排他的論理和(XOR) 被演算数 xor 演算数 排他的な論理和(xor)を取ります。
論理積(AND) 被演算数 and 演算数 論理な積(and)を取ります。
論理否定(NOT) not 被演算数 1の補数を取ります。

シフト系命令
演算種類 動作 備考
算術右シフト(ASR) 被演算数/2 算術的な1ビットの右シフトをします。意味的には2で割ったことになります。
算術左シフト(ASL) 被演算数×2 算術的な1ビットの左シフトをします。意味的には2をかけたことになります。
論理右シフト(LSR) (被演算数/2)&0x7fff 論理的な1ビットの右シフトをします。
論理左シフト(LSL) 被演算数×2 論理的な1ビットの左シフトをします。結果は算術左シフトと同じ結果に なりますが、フラグの変化が算術左シフトとは異なります。
右回転(ROR) 被演算数の1ビット右回転  
左回転(ROL) 被演算数の1ビット左回転  
バイトスワップ(SWP) 上位バイトと下位バイトの交換 バイト単位の操作を行えるよう設けられた命令です。

特別な演算機能
演算種類 動作 備考
パス(PAS) 被演算数 演算的には意味がありません。しかし、3バス構成のプロセッサでは、レ ジスタ間データ転送命令などにおいて使用されます。1バス構成のプロセッサでは 必要ない機能です。


ALUを以下の手順で設計・シミュレーションします。

では、 デコーダ・シーケンサの入出力定義 についてみていきます。


| CAD Home |