add in TstL0CacheBuffer but disable temporarily
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 15 Jun 2020 14:26:05 +0000 (15:26 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 15 Jun 2020 14:26:05 +0000 (15:26 +0100)
src/soc/fu/compunits/compunits.py
src/soc/simple/core.py

index 1ffe7d8de4a9d0fd49a7693ef181719ad7197bc3..cfc7c80c14f8ed44697cc400d6b38af7e2a7274c 100644 (file)
@@ -156,7 +156,7 @@ class AllFunctionUnits(Elaboratable):
      * type of FU required
 
     """
-    def __init__(self, pi=None):
+    def __init__(self, pilist=None, addrwid=6):
         self.fus = {}
         for (name, qty, kls) in (('alu', 1, ALUFunctionUnit),
                                  ('cr', 1, CRFunctionUnit),
@@ -166,10 +166,10 @@ class AllFunctionUnits(Elaboratable):
                                 ):
             for i in range(qty):
                 self.fus["%s%d" % (name, i)] = kls()
-        if pi is None:
+        if pilist is None:
             return
-        for i in enumerate(pi):
-            self.fus["ldst%d" % (i)] = LDSTFunctionUnit(pi[i])
+        for i, pi in enumerate(pilist):
+            self.fus["ldst%d" % (i)] = LDSTFunctionUnit(pi, addrwid)
 
     def elaborate(self, platform):
         m = Module()
index 4c5f4d788bb7950292a63d984032346dfc169f52..19ffc46f77e1b5884552c5877bfd9ee6e5e5c6f1 100644 (file)
@@ -29,6 +29,7 @@ from soc.fu.compunits.compunits import AllFunctionUnits
 from soc.regfile.regfiles import RegFiles
 from soc.decoder.power_decoder import create_pdecode
 from soc.decoder.power_decoder2 import PowerDecode2
+from soc.experiment.l0_cache import TstL0CacheBuffer # test only
 import operator
 
 
@@ -50,8 +51,12 @@ def sort_fuspecs(fuspecs):
 
 
 class NonProductionCore(Elaboratable):
-    def __init__(self):
-        self.fus = AllFunctionUnits()
+    def __init__(self, addrwid=6):
+        self.l0 = TstL0CacheBuffer(n_units=1, regwid=64, addrwid=addrwid)
+        pi = self.l0.l0.dports[0].pi
+
+        #self.fus = AllFunctionUnits(pilist=[pi], addrwid=addrwid)
+        self.fus = AllFunctionUnits(pilist=None, addrwid=addrwid)
         self.regs = RegFiles()
         self.pdecode = pdecode = create_pdecode()
         self.pdecode2 = PowerDecode2(pdecode)   # instruction decoder
@@ -64,6 +69,7 @@ class NonProductionCore(Elaboratable):
 
         m.submodules.pdecode2 = dec2 = self.pdecode2
         m.submodules.fus = self.fus
+        m.submodules.l0 = l0 = self.l0
         self.regs.elaborate_into(m, platform)
         regs = self.regs
         fus = self.fus.fus