add special-case LDSTFunctionUnit
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 6 Jun 2020 12:40:28 +0000 (13:40 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 6 Jun 2020 12:40:28 +0000 (13:40 +0100)
src/soc/fu/compunits/compunits.py
src/soc/fu/compunits/test/test_ldst_compunit.py

index c8bf762e3f8985b3336bf1df4b76253671a1d924..a3e95038cd3975cf9d84a4dea1195e10313d2aa5 100644 (file)
@@ -125,6 +125,15 @@ class ShiftRotFunctionUnit(FunctionUnitBaseSingle):
     fnunit = Function.SHIFT_ROT
     def __init__(self): super().__init__(ShiftRotPipeSpec, ShiftRotBasePipe)
 
+# special-case
+class LDSTFunctionUnit(LDSTCompUnit):
+    fnunit = Function.ALU
+    def __init__(self, pi, awid):
+        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)
+
 
 #####################################################################
 ###### actual Function Units: these are "multi" stage pipelines #####
index a223554d9356a26cde01070bd18107d9a1665c25..525f88a1eab12e72c44a7ccd3d15a9a2f8d73c47 100644 (file)
@@ -10,7 +10,7 @@ from soc.fu.compunits.test.test_compunit import TestRunner
 class LDSTTestRunner(TestRunner):
     def __init__(self, test_data):
         super().__init__(test_data, LDSTFunctionUnit, self,
-                         Function.LOGICAL)
+                         Function.LDST)
 
     def get_cu_inputs(self, dec2, sim):
         """naming (res) must conform to LDSTFunctionUnit input regspec