use LoadStore1 and DCache in test_compldst_multi_mmu.py
authorTobias Platen <tplaten@posteo.de>
Sun, 3 Oct 2021 11:37:58 +0000 (13:37 +0200)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 8 Oct 2021 13:30:35 +0000 (14:30 +0100)
src/soc/experiment/test/test_compldst_multi_mmu.py

index 021851a48e4aafb0c5a33fdc05297ff52aefbad1..331bc93d1f854de68838fd9eec4fc7b37867a3fb 100644 (file)
@@ -24,6 +24,8 @@ from soc.config.test.test_loadstore import TestMemPspec
 from soc.experiment.mmu import MMU
 from nmutil.util import Display
 
+from soc.config.loadstore import ConfigMemoryPortInterface
+
 def wait_for_debug(sig, event, wait=True, test1st=False):
     v = (yield sig)
     print("wait for", sig, v, wait, test1st)
@@ -110,10 +112,16 @@ class TestLDSTCompUnitRegSpecMMU(LDSTCompUnit):
         from soc.experiment.l0_cache import TstL0CacheBuffer
         from soc.fu.ldst.pipe_data import LDSTPipeSpec
         regspec = LDSTPipeSpec.regspec
-        self.l0 = l0 = TstL0CacheBuffer(pspec) #this is wrong, see setup_mmu
+
+        # use a LoadStore1 here
+
+        cmpi = ConfigMemoryPortInterface(pspec)
+        self.cmpi = cmpi
+        ldst = cmpi.pi
+        self.l0 = ldst
+
         self.mmu = MMU()
-        pi = l0.l0.dports[0]
-        LDSTCompUnit.__init__(self, pi, regspec, 4)
+        LDSTCompUnit.__init__(self, ldst.pi, regspec, 4)
 
     def elaborate(self, platform):
         m = LDSTCompUnit.elaborate(self, platform)
@@ -123,11 +131,12 @@ class TestLDSTCompUnitRegSpecMMU(LDSTCompUnit):
         m.d.comb += self.ad.go_i.eq(self.ad.rel_o)
 
         # link mmu and dcache together
-        dcache = self.l0.pimem.dcache
+        dcache = self.l0.dcache
         mmu = self.mmu
         m.d.comb += dcache.m_in.eq(mmu.d_out) # MMUToDCacheType
         m.d.comb += mmu.d_in.eq(dcache.m_out) # DCacheToMMUType
 
+        # TODO: link wishbone bus
 
         return m