from soc.fu.trap.pipe_data import TrapPipeSpec
from soc.fu.div.pipeline import DivBasePipe
-from soc.fu.div.pipe_data import DivPipeSpecDivPipeCore
+from soc.fu.div.pipe_data import DivPipeSpecFSMDivCore
from soc.fu.mul.pipeline import MulBasePipe
from soc.fu.mul.pipe_data import MulPipeSpec
fnunit = Function.DIV
def __init__(self, idx):
- super().__init__(DivPipeSpecDivPipeCore, DivBasePipe, idx)
+ super().__init__(DivPipeSpecFSMDivCore, DivBasePipe, idx)
class MulFunctionUnit(FunctionUnitBaseSingle):
def __init__(self, idx):
super().__init__(SPRPipeSpec, SPRBasePipe, idx)
-# special-case
+# special-case: LD/ST conforms to the CompUnit API but is not a pipeline
class LDSTFunctionUnit(LDSTCompUnit):
fnunit = Function.LDST
def __init__(self, pi, awid, idx):
+ alu_name = "ldst_%s%d" % (self.fnunit.name.lower(), idx)
pspec = LDSTPipeSpec(id_wid=2) # spec (NNNPipeSpec instance)
opsubset = pspec.opsubsetkls # get the operand subset class
regspec = pspec.regspec # get the regspec
- super().__init__(pi, regspec, awid, opsubset)
+ super().__init__(pi, regspec, awid, opsubset, name=alu_name)
#####################################################################