From: Luke Kenneth Casson Leighton Date: Thu, 8 Apr 2021 23:02:24 +0000 (+0100) Subject: if no wb stall assume single-cycle mode X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2c1152b6219f5c5a63b762ae1ffd268445f635f1;p=c4m-jtag.git if no wb stall assume single-cycle mode --- diff --git a/c4m/nmigen/jtag/tap.py b/c4m/nmigen/jtag/tap.py index 44e0ad4..41174a3 100755 --- a/c4m/nmigen/jtag/tap.py +++ b/c4m/nmigen/jtag/tap.py @@ -791,8 +791,17 @@ class TAP(Elaboratable): m.d[domain] += wb.adr.eq(wb.adr + 1) m.next = "READ" + if hasattr(wb, "stall"): + m.d.comb += wb.stb.eq(fsm.ongoing("READ") | + fsm.ongoing("WRITEREAD")) + else: + # non-stall is single-cycle (litex), must assert stb + # until ack is sent + m.d.comb += wb.stb.eq(fsm.ongoing("READ") | + fsm.ongoing("WRITEREAD") | + fsm.ongoing("READACK") | + fsm.ongoing("WRITEREADACK")) m.d.comb += [ wb.cyc.eq(~fsm.ongoing("IDLE")), - wb.stb.eq(fsm.ongoing("READ") | fsm.ongoing("WRITEREAD")), wb.we.eq(fsm.ongoing("WRITEREAD")), ]