"""MMU PortInterface Test
-quite basic, goes directly to the MMU to assert signals (does not
-yet use PortInterface)
+quite basic, calls pi_ld to get data via PortInterface. this test
+shouldn't really exist, it's superceded by test_ldst_pi.py
"""
from nmigen import (C, Module, Signal, Elaboratable, Mux, Cat, Repl, Signal)
from soc.minerva.wishbone import make_wb_layout
from soc.bus.sram import SRAM
+from nmutil.util import Display
@unique
with m.Case(State.MMU_LOOKUP):
with m.If(m_in.done):
with m.If(~self.instr_fault):
+ sync += Display("MMU_LOOKUP, done %x", self.addr)
# retry the request now that the MMU has
# installed a TLB entry
m.d.comb += self.d_validblip.eq(1) # re-run dcache req
sync += self.state.eq(State.ACK_WAIT)
with m.Else():
+ sync += Display("MMU_LOOKUP, exception %x", self.addr)
# instruction lookup fault: store address in DAR
comb += exc.happened.eq(1)
sync += self.dar.eq(self.addr)