Арифметический сдвиг действует как логический сдвиг, независимо от подписанной переменной
у нас есть регистр, объявленный так:
logic signed [15:0][2:0][15:0] registers;
Когда я ставлю 2 's дополняет число в массиве и арифметически сдвигает число, вместо этого оно логически сдвигается
registers[0][0] = 16'b1000000000000000;
registers[0][0] = registers[0][0]>>>2;
По-видимому, система будет логически сдвигаться вместо арифметического сдвига, если число не подписано. Однако, как вы можете ясно видеть,регистры определенно подписан.
Кто-нибудь знает, чего мне здесь не хватает?
Спасибо!