Сдвиг
// <переменная> <оператор> <выражение>
module shift_operators_tb;
reg [3:0] a; int i;
initial begin
a = 8'h1; $display("a = 'd%0d ('b%0b)", a, a);
for (i = 0; i < 8; i +=1 ) begin
$display("a << %0d = 'b%b", i, a << i); // логический сдвиг влево
end
a = 8'h80; $display("a = 'd%0d ('b%0b)", a, a);
for (i = 0; i < 8; i +=1 ) begin
$display("a >> %0d = 'b%b", i, a >> i); // логический сдвиг вправо
end
a = 8'h1; $display("a >> 1 = 'b%b", a >> 1);
a = 8'h1; $display("a = 'd%0d ('b%0b)", a, a);
for (i = 0; i < 8; i +=1 ) begin
$display("a <<< %0d = 'b%b", i, a <<< i); // арифметический сдвиг влево
end
a = 8'h80; $display("a = 'd%0d ('b%0b)", a, a);
for (i = 0; i < 8; i +=1 ) begin
$display("a >>> %0d = 'b%b", i, a >>> i); // арифметический сдвиг вправо
end
end
endmoduleлогический сдвиг
арифметический сдвиг
Last updated