forked from Github_Repos/cvw
alu pre-shift
-changed ALU pre shift logic to use a 2 bit shifter instead of mux
This commit is contained in:
parent
b0f152de28
commit
4b1ee5a196
@ -94,14 +94,8 @@ module alu #(parameter WIDTH=32) (
|
||||
end else assign rotA = A;
|
||||
|
||||
if (`ZBA_SUPPORTED) begin: zbamuxes
|
||||
// Pre-Shift Mux
|
||||
always_comb
|
||||
case (Funct3[2:1] & {2{PreShift}})
|
||||
2'b00: CondShiftA = shA[WIDTH-1:0];
|
||||
2'b01: CondShiftA = {shA[WIDTH-2:0],{1'b0}}; // sh1add
|
||||
2'b10: CondShiftA = {shA[WIDTH-3:0],{2'b00}}; // sh2add
|
||||
2'b11: CondShiftA = {shA[WIDTH-4:0],{3'b000}}; // sh3add
|
||||
endcase
|
||||
// Pre-Shift
|
||||
assign CondShiftA = shA[WIDTH-1:0] << (Funct3[2:1] & {2{PreShift}});
|
||||
end else assign CondShiftA = A;
|
||||
|
||||
// Addition
|
||||
|
Loading…
Reference in New Issue
Block a user