From 7b69616af05e35a3398a88f785d52faffd3cc30f Mon Sep 17 00:00:00 2001 From: Cesar Strauss Date: Mon, 3 Jan 2022 10:02:34 -0300 Subject: [PATCH] On inorder.py, after Execute, update the PC and go back to Fetch When removing SVP64 from inorder.py, this code block must have been deleted by mistake. "python test_issuer.py nosvp64 --inorder" now completes successfully, without going into an infinite loop. --- src/soc/simple/inorder.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/soc/simple/inorder.py b/src/soc/simple/inorder.py index 851d7f5f..5262f6eb 100644 --- a/src/soc/simple/inorder.py +++ b/src/soc/simple/inorder.py @@ -331,10 +331,15 @@ class TestIssuerInternalInOrder(TestIssuerBase): self.sv_changed): m.next = "ISSUE_START" - # returning to Execute? then, first update SRCSTEP with m.Else(): - # return to mask skip loop - m.next = "DECODE_SV" + # before going back to fetch, update the PC state + # register with the NIA. + # ok here we are not reading the branch unit. + # TODO: this just blithely overwrites whatever + # pipeline updated the PC + comb += self.state_w_pc.wen.eq(1 << StateRegs.PC) + comb += self.state_w_pc.i_data.eq(nia) + m.next = "ISSUE_START" with m.Else(): comb += dbg.core_stopped_i.eq(1) -- 2.30.2