シフト演算部


シフト演算部は単純には以下のように4入力マルチプレクサを16個並べること で簡単に実現できます。入力については素通りも含めて、1ビット右からの入 力(左シフト、回転演算のため)、1ビット左からの入力(右シフト、回転演算の ため)、8ビット離れたビットの入力(バイトスワップ演算のため)をセレクタに より選択できるようにします。

なお、最下位ビットでは右ビットの代りに最上位ビットを、最上位ビットでは 左ビットの代りに最下位ビットを入力しておけば回転演算ができるようになり ます。しかし、このままではシフト演算ができなくなるので、シフトの際には 最上位または最下位が正しく出力されるように細工が必要です。

オーバーフローフラグおよびキャリーフラグは演算機能に応じて正しく出力さ れるように生成する必要があります。生成方法の概要は以下の通りです。

フラグ 生成方法
オーバーフロー 入力値の第15ビットと出力値の第15ビットとの排他的論理和
キャリー 右シフト回転命令においては入力値の第0ビット、左シフト回転命令においては入力値の第15ビットの値を出力するようにする。

なお、シフト系演算が指定されなかった時はフラグの値を常に"0"になるよう にしておけば、算術演算部のフラグと単に論理和を用いるだけで最終的なフラ グを生成できます。


次は、 各演算器間の接続です。


| Back | CAD Home |

Our mail address is kite@arch.cs.kumamoto-u.ac.jp .
Last modified on