El cambio aritmético actúa como un cambio lógico, independientemente de la variable con signo

Tengo un registro declarado como tal:

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

Cuando coloco un número de complemento de 2 en la matriz y cambio aritméticamente el número, en su lugar cambia lógicamente:

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

Aparentemente, el sistema cambiará lógicamente en lugar de cambiarse aritméticamente si el número no está firmado. Sin embargo, como puede ver claramente, los "registros" están firmados definitivamente.

¿Alguien sabe lo que me podría estar perdiendo aquí?

¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta