From e97d445908f39a3a1a215a824f52b283147e6195 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Sun, 2 Oct 2022 09:49:48 -0600 Subject: Major shifter-ALU redesign The shifter unit now works in parallel with the ALU and is no longer part of it. Instructions that use the shifter as input to the ALU will now take an additional cycle, unless the control unit can detect a "trivial shift" situation where the shifter's output will be the same as its input. This change improves Fmax substantially. --- rtl/core/uarch.sv | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'rtl/core/uarch.sv') diff --git a/rtl/core/uarch.sv b/rtl/core/uarch.sv index c382cba..0c5bc84 100644 --- a/rtl/core/uarch.sv +++ b/rtl/core/uarch.sv @@ -72,16 +72,15 @@ typedef struct packed sign_extend; logic[7:0] imm; logic[5:0] shift_imm; -} alu_decode; +} data_decode; typedef struct packed { - alu_op op; - logic shl, - shr, - ror, - put_carry, - sign_extend; -} alu_control; + logic shl, + shr, + ror, + put_carry, + sign_extend; +} shifter_control; `endif -- cgit v1.2.3