...
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 = 結果の再代入;
...
次は、 フラグの記述 についてみていきます。