blob: 1983e66b834a096e57b6c29709d5dd9ac47ea4eb [file] [log] [blame]
module shifter (input logic signed [31:0] a,
input logic [ 4:0] shamt,
input logic [ 1:0] shtype,
output logic [31:0] y);
always_comb
case (shtype)
2'b00:
begin
y = a << shamt;
end
2'b01:
begin
y = a >> shamt;
end
2'b10:
begin
y = a >>> shamt;
end
default:
begin
y = a;
end
endcase // case (shtype)
endmodule // shifter