make Memory accessible via TestSRAMBareLoadStoreUnit
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 27 Jun 2020 19:21:12 +0000 (20:21 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 27 Jun 2020 19:21:12 +0000 (20:21 +0100)
src/soc/bus/test/test_minerva.py
src/soc/fu/compunits/test/test_compunit.py

index c813a77c24cbf8540e3e3b9daafa0dae992f4d65..d9c7f101be25a92003cfe271e8de283c3d901f49 100644 (file)
@@ -11,7 +11,7 @@ class TestSRAMBareLoadStoreUnit(BareLoadStoreUnit):
         m = super().elaborate(platform)
         comb = m.d.comb
         # small 16-entry Memory
-        memory = Memory(width=self.data_wid, depth=16)
+        self.mem = memory = Memory(width=self.data_wid, depth=16)
         m.submodules.sram = sram = SRAM(memory=memory, granularity=8,
                                         features={'cti', 'bte', 'err'})
         dbus = self.dbus
index 7b4c41cf0ca4e8280fc8300f3bce6fdffcefd20e..3e5c3790efeaca47bb780932fdb7e2f7370bb123 100644 (file)
@@ -103,8 +103,13 @@ def get_inp_indexed(cu, inp):
             res[i] = inp[wrop]
     return res
 
+def get_l0_mem(l0): # BLECH!
+    if hasattr(l0.pimem, 'lsui'):
+        return l0.pimem.lsui.mem
+    return l0.pimem.mem.mem
+
 def setup_test_memory(l0, sim):
-    mem = l0.pimem.mem.mem
+    mem = get_l0_mem(l0)
     print ("before, init mem", mem.depth, mem.width, mem)
     for i in range(mem.depth):
         data = sim.mem.ld(i*8, 8, False)
@@ -120,7 +125,7 @@ def setup_test_memory(l0, sim):
 
 
 def check_sim_memory(dut, l0, sim, code):
-    mem = l0.pimem.mem.mem
+    mem = get_l0_mem(l0)
     print ("sim mem dump")
     for k, v in sim.mem.mem.items():
         print ("    %6x %016x" % (k, v))
@@ -161,7 +166,7 @@ class TestRunner(FHDLTestCase):
             from soc.experiment.l0_cache import TstL0CacheBuffer
             m.submodules.l0 = l0 = TstL0CacheBuffer(n_units=1, regwid=64,
                                                     addrwid=3,
-                                                    ifacetype='test_bare_wb')
+                                                    ifacetype='testpi')
             pi = l0.l0.dports[0]
             m.submodules.cu = cu = self.fukls(pi, awid=3)
             m.d.comb += cu.ad.go.eq(cu.ad.rel) # link addr-go direct to rel