diff options
| author | Alejandro Soto <alejandro@34project.org> | 2022-10-02 09:49:48 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2022-10-02 09:49:48 -0600 |
| commit | e97d445908f39a3a1a215a824f52b283147e6195 (patch) | |
| tree | 74baa4d5ee535c12dbbe400f8e6c2fda342b8e37 /rtl/core/uarch.sv | |
| parent | 5e2f6be247018699d71d32887010830ba45b8349 (diff) | |
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.
Diffstat (limited to 'rtl/core/uarch.sv')
| -rw-r--r-- | rtl/core/uarch.sv | 15 |
1 files changed, 7 insertions, 8 deletions
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 |
