blob: df4b01d549fb6d4f95ad1d5d040de055592f12e7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
module shift_unit (
input signed [31:0] a,
input [4:0] b,
input [1:0] op,
output reg [31:0] result
);
always @ (*) begin
case (op)
2'b00: result <= a << b; // SLL
2'b01: result <= a >> b; // SRL
2'b11: result <= a >>> b; // SRA
default: result <= 32'b0;
endcase
end
endmodule
|