Арифметические операторы
Если второй операнд оператора деления или модуля равен нулю, то результатом будет X.
Если любой из операндов оператора возведения в степень является вещественным, то результат также будет вещественным. Результат будет равен 1, если второй операнд оператора возведения в степень равен 0.
Пример
// <переменная/выражение> <оператор> <переменная/выражение>
// <переменная> <оператор>= <переменная/выражение>
module arithmetic_operators_tb;
reg [7:0] a, b;
real c, d;
initial begin
a = 8'd4; b = 8'd5;
$display("a = %0d; b = %0d", a, b);
$display("a + b = %0d", a + b); // сложение
$display("a - b = %0d", a - b); // вычитание
$display("a * b = %0d", a * b); // умножение
$display("a / b = %0d", a / b); // деление
$display("a %% b = %0d", a % b); // остаток от деления
$display("a ** b = %0d", a ** b); // возведение в степень
$display("a++ = %0d", a++); // инкремент (постфикс)
$display("++a = %0d", ++a); // инкремент (префикс)
$display("a-- = %0d", a--); // декремент (постфикс)
$display("--a = %0d", --a); // декремент (префикс)
$display("a * 8'd0 = %0d", a * 8'd0);
$display("a / 8'd0 = %0d", a / 8'd0);
$display("a %% 8'd0 = %0d", a % 8'd0);
$display("a ** 8'd0 = %0d", a ** 8'd0);
c = 1.5; d = 3.14;
$display("c = %0f; d = %0f", c, d);
$display("2 ** c = %0f", 2 ** c);
$display("d ** 3 = %0f", d ** 3);
end
endmodule
Результат исполнения
a = 4; b = 5
a + b = 9
a - b = 255
a * b = 20
a / b = 0
a % b = 4
a ** b = 0
a++ = 4
++a = 6
a-- = 6
--a = 4
a * 8'd0 = 0
a / 8'd0 = x
a % 8'd0 = x
a ** 8'd0 = 1
c = 1.500000; d = 3.140000
2 ** c = 2.828427
d ** 3 = 30.959144
Last updated