module extension_shifts( input logic [7:0] value, input logic [2:0] shift, output logic [31:0] zero_extended, output logic [31:0] sign_extended, output logic [31:0] logical_right, output logic [31:0] arithmetic_right ); assign zero_extended = {24'b0, value}; assign sign_extended = {{24{value[7]}}, value}; assign logical_right = zero_extended >> shift; assign arithmetic_right = $signed(sign_extended) >>> shift; endmodule