upate dsisr and dar using sync
authorTobias Platen <tplaten@posteo.de>
Tue, 4 May 2021 18:32:39 +0000 (20:32 +0200)
committerTobias Platen <tplaten@posteo.de>
Tue, 4 May 2021 18:32:39 +0000 (20:32 +0200)
src/soc/fu/mmu/fsm.py

index af92d68d7b0befa5fdb701d4eab13c81fdf9dfdf..05d1f899c02849a3caad293ac4ba419d882a88fc 100644 (file)
@@ -359,10 +359,11 @@ class FSMMMUStage(ControlBase):
                     # subset SPR: first check a few bits
                     with m.If(~spr[9] & ~spr[5]):
                         comb += self.debug0.eq(3)
+                        #if matched update local cached value
                         with m.If(spr[0]):
-                            comb += dsisr.eq(a_i[:32])
+                            sync += dsisr.eq(a_i[:32])
                         with m.Else():
-                            comb += dar.eq(a_i)
+                            sync += dar.eq(a_i)
                         comb += done.eq(1)
                     # pass it over to the MMU instead
                     with m.Else():