アサインメント オペレータ
通常の代入演算子=の他に、C言語と同様の次の演算子が追加になっています。
+=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, <<<=,
>>>=
例えば、
a +=2;
は、a=a+2と等価です。「a+2 をaに代入する」、
というよりも、aに2を足すと、考えた方が自然な場面があるでしょう。
あるいは、
a -=2;
は、aから2を引く
そういうときに便利な演算子です。
module test;
int i;
initial begin
i = 10;
do begin
i -= 5;
i *=1;
i %=10;
i /=1;
i +=1;
i ^=0;
i &=8'hff;
i |=8'h00;
i <<=1;
i >>=1;
i <<<=1;
i >>>=1;
$display("%0d", i);
if (i==254) break;
end while(i !==0);
$display("\nFor Loop:");
for (int j=10; j>=0; j -=2) begin
$display("%0d", j);
end
$finish;
end
endmodule
結果です。
***** Veritak SV Engine Version 0.430 Build Oct.5.2011 *****
6
2
254
For Loop:
10
8
6
4
2
0
Info: $finishコマンドを実行します。time=0ns