| 演算種類 | 制御コード | 
|---|---|
| 加算(ADD) | 0000 | 
| 減算(SUB) | 0001 | 
| インクリメント(INC) | 0010 | 
| デクリメント(DEC) | 0011 | 
| 論理和(OR) | 0100 | 
| 排他的論理和(EOR) | 0101 | 
| 論理積(AND) | 0110 | 
| 論理否定(NOT) | 0111 | 
| 論理左シフト(LSL) | 1000 | 
| 算術左シフト(ASL) | 1001 | 
| 論理右シフト(LSR) | 1010 | 
| 算術右シフト(ASR) | 1011 | 
| 左回転(ROL) | 1100 | 
| 右回転(ROR) | 1101 | 
| パス(PAS) | 1110 | 
| バイトスワップ(SWP) | 1111 | 
演算のコードを `define を使用して記述してみましょう。この定義により, ソース中で 0や1 のようなビットパターンではなく任意のラベルとして演算を 参照することができます.これらの定義は "alu_op.v" ファイル中に記述しセー ブします。
  `define IADD 4'b0000
  `define ISUB 4'b0001
     ...
     ...
alu.v ファイルからは alu_op.v ファイルを参照するように記述しておきます。
`include "alu_op.v" module alu ( ... ); ... endmodule
次は、 演算の記述 についてみていきます。
My mail address is
 kuga@cs.kumamoto-u.ac.jp .
Last modified on