From 6b7e293c39dcb17f9f435e6c1c27f4ee0b1f589f Mon Sep 17 00:00:00 2001 From: Raptor Engineering Development Team Date: Sat, 9 Apr 2022 15:19:22 -0500 Subject: [PATCH] Avoid timing violation on ECP5 PHY PAUSE signal --- gram/phy/ecp5ddrphy.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/gram/phy/ecp5ddrphy.py b/gram/phy/ecp5ddrphy.py index 32a6792..007c143 100644 --- a/gram/phy/ecp5ddrphy.py +++ b/gram/phy/ecp5ddrphy.py @@ -101,10 +101,28 @@ class _DQSBUFMSettingManager(Elaboratable): with m.State("Idle"): with m.If(self.rdly_csr.w_stb): m.d.sync += self.pause.eq(1) - m.next = "RdlyUpdateRequested" + m.next = "RdlyUpdateRequestedDelay1" + + with m.State("RdlyUpdateRequestedDelay1"): + m.next = "RdlyUpdateRequestedDelay2" + + with m.State("RdlyUpdateRequestedDelay2"): + m.next = "RdlyUpdateRequestedDelay3" + + with m.State("RdlyUpdateRequestedDelay3"): + m.next = "RdlyUpdateRequested" with m.State("RdlyUpdateRequested"): m.d.sync += self.readclksel.eq(self.rdly_csr.w_data) + m.next = "ResetPauseDelay1" + + with m.State("ResetPauseDelay1"): + m.next = "ResetPauseDelay2" + + with m.State("ResetPauseDelay2"): + m.next = "ResetPauseDelay3" + + with m.State("ResetPauseDelay3"): m.next = "ResetPause" with m.State("ResetPause"): -- 2.30.2