Die arithmetische Verschiebung wirkt unabhängig von der vorzeichenbehafteten Variablen als logische Verschiebung

Ich habe ein Register wie folgt deklariert:

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

Wenn ich die Komplimentzahl einer 2 in das Array setze und die Zahl arithmetisch verschiebe, verschiebt sie sich stattdessen logisch:

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

Anscheinend verschiebt sich das System logisch anstatt arithmetisch, wenn die Nummer nicht signiert ist. Wie Sie jedoch deutlich sehen können, ist "register" definitiv signiert.

Weiß jemand, was ich hier vermissen könnte?

Vielen Dank!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage