From: Luke Kenneth Casson Leighton Date: Sun, 9 Aug 2020 21:18:16 +0000 (+0100) Subject: fix combinatorial loop in ldst compunit X-Git-Tag: semi_working_ecp5~412^2~2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=55c0f926d26310bf562e66f74a2295c29f852cba;p=soc.git fix combinatorial loop in ldst compunit --- 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)