Арифметический сдвиг действует как логический сдвиг, независимо от подписанной переменной

у нас есть регистр, объявленный так:

logic signed [15:0][2:0][15:0] registers;

Когда я ставлю 2 's дополняет число в массиве и арифметически сдвигает число, вместо этого оно логически сдвигается

registers[0][0] = 16'b1000000000000000;
registers[0][0] = registers[0][0]>>>2;

По-видимому, система будет логически сдвигаться вместо арифметического сдвига, если число не подписано. Однако, как вы можете ясно видеть,регистры определенно подписан.

Кто-нибудь знает, чего мне здесь не хватает?

Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос