...
  reg    [16:0] tmp;	// 演算結果
  ...
  always @( A or B or CB )
  begin
    case ( CB )
    `IADD   : tmp <= { 1'b0, A } + { 1'b0, B }; // 加算
       ...
       ...
       ...
       ...
       ...
       ...
       ...
       ...
       ...
    `ILSR   : tmp <= { A[0],  1'b0, A[15:1] };	// 論理右シフト
       ...
       ...
       ...
       ...
    default : tmp <= { 1'b0, A }; 		// パス演算(IPAS)
    endcase
  end
  ...
  assign Y    = 結果の再代入;
  ...
次は、 フラグの記述 についてみていきます。