Estoy usando ModelSim PE Student Edition, y estoy tratando de escribir un módulo que cambie la aritmética correcta. Después de buscar en línea y consultar un libro de texto Verilog, encontré que para cambiar la aritmética derecha puedo usar "> > >" operador. Sin embargo, cuando intento hacerlo y simular el módulo, solo hace un cambio regular, es decir, si el msb es un 1, no copia los 1's en los lugares desplazados, en lugar de eso, está poniendo 0's. A continuación se muestra una muestra de lo que estoy haciendo.
module shifter(
input [31:0] shamt,
output reg [31:0] result
);
reg[31:0] temp;
always@(*)begin
temp=32'hfff00fff;
result[31:0]=temp[31:0]>>>shamt[4:0];
end
endmodule