From 55c0f926d26310bf562e66f74a2295c29f852cba Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Sun, 9 Aug 2020 22:18:16 +0100 Subject: [PATCH] fix combinatorial loop in ldst compunit --- src/soc/experiment/compldst_multi.py | 2 +- src/soc/simple/issuer.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/soc/experiment/compldst_multi.py b/src/soc/experiment/compldst_multi.py index f33237bf..847f96cd 100644 --- a/src/soc/experiment/compldst_multi.py +++ b/src/soc/experiment/compldst_multi.py @@ -348,7 +348,7 @@ class LDSTCompUnit(RegSpecAPI, Elaboratable): # store latch comb += sto_l.s.eq(addr_ok & op_is_st) - comb += sto_l.r.eq(reset_s | p_st_go) + sync += sto_l.r.eq(reset_s | p_st_go) # ld/st done. needed to stop LD/ST from activating repeatedly comb += lsd_l.s.eq(issue_i) diff --git a/src/soc/simple/issuer.py b/src/soc/simple/issuer.py index 4e8a7f16..d93e3782 100644 --- a/src/soc/simple/issuer.py +++ b/src/soc/simple/issuer.py @@ -109,7 +109,7 @@ class TestIssuer(Elaboratable): ldst = core.fus.fus['ldst0'] st_go_edge = rising_edge(m, ldst.st.rel_o) m.d.comb += ldst.ad.go_i.eq(ldst.ad.rel_o) # link addr-go direct to rel - m.d.sync += ldst.st.go_i.eq(st_go_edge) # link store-go to rising rel + m.d.comb += ldst.st.go_i.eq(st_go_edge) # link store-go to rising rel # PC and instruction from I-Memory current_insn = Signal(32) # current fetched instruction (note sync) -- 2.30.2