This was my initial fix-attempt for 48MHz not working, but this failed, for the same reason: Sampling 10ns after the falling edge is not enough. ```diff diff --git a/software/glasgow/gateware/qspi.py b/software/glasgow/gateware/qspi.py index b54c5b1a..739e2392 100644 --- a/software/glasgow/gateware/qspi.py +++ b/software/glasgow/gateware/qspi.py @@ -212,6 +212,14 @@ class QSPIController(wiring.Component): deframer.frames.valid.eq(io_streamer.i_stream.valid), io_streamer.i_stream.ready.eq(deframer.frames.ready), ] + if self._ddr: + with m.If(self.divisor == 0): + m.d.comb += [ + deframer.frames.p.port.io0.i.eq(io_streamer.i_stream.p.port.io0.i[1]), + deframer.frames.p.port.io1.i.eq(io_streamer.i_stream.p.port.io1.i[1]), + deframer.frames.p.port.io2.i.eq(io_streamer.i_stream.p.port.io2.i[1]), + deframer.frames.p.port.io3.i.eq(io_streamer.i_stream.p.port.io3.i[1]), + ] connect(m, deframer=deframer.octets, controller=flipped(self.i_octets)) ```