summaryrefslogtreecommitdiff
path: root/hdl/core/alu.py
diff options
context:
space:
mode:
Diffstat (limited to 'hdl/core/alu.py')
-rw-r--r--hdl/core/alu.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/hdl/core/alu.py b/hdl/core/alu.py
index b4261bd..f8a1a25 100644
--- a/hdl/core/alu.py
+++ b/hdl/core/alu.py
@@ -2,7 +2,7 @@ from amaranth import *
from amaranth.sim import Simulator, Settle, Delay
from enum import Enum, unique
-from hdl.utils import cmd, step, sim
+from hdl.utils import *
from hdl.lib.in_out_buff import InOutBuff
@unique
@@ -31,11 +31,12 @@ class ALUFlags(Enum):
negative = 3
class ALU(Elaboratable):
+
def __init__(self, **kargs):
self.in1 = Signal(32, reset_less=True)
self.in2 = Signal(32, reset_less=True)
self.c_in = Signal(1)
- self.op = Signal(4, reset_less=True)
+ self.op = Signal(e2s(AluOpCodes), reset_less=True)
self.tmp = Signal(33, reset_less=True)
@@ -44,7 +45,7 @@ class ALU(Elaboratable):
self.zero = Signal(1, reset_less=True)
self.neg = Signal(1, reset_less=True)
- self.alu_flags = Signal(4, reset_less=True)
+ self.alu_flags = Signal(len(ALUFlags), reset_less=True) # alu flags is one hot
self.out = Signal(32, reset_less=True)
self.sim = kargs["sim"] if "sim" in kargs else None