<p><span class="h-card" translate="no"><a href="https://glauca.space/@r" class="u-url mention">@<span>r</span></a></span> <span class="h-card" translate="no"><a href="https://ioc.exchange/@azonenberg" class="u-url mention">@<span>azonenberg</span></a></span> <span class="h-card" translate="no"><a href="https://donotsta.re/users/mwk" class="u-url mention">@<span>mwk</span></a></span> <span class="h-card" translate="no"><a href="https://chaos.social/@dlharmon" class="u-url mention">@<span>dlharmon</span></a></span> </p><p>for QSPI it looks like this: <a href="https://github.com/GlasgowEmbedded/glasgow/blob/f72c4b9be073199c88bf44f8ff50df723335098d/software/glasgow/gateware/qspi.py#L12-L168" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">github.com/GlasgowEmbedded/gla</span><span class="invisible">sgow/blob/f72c4b9be073199c88bf44f8ff50df723335098d/software/glasgow/gateware/qspi.py#L12-L168</span></a></p><p>because you don't have to deal with I/O pins in most of your testsuite, only streams, testing is a lot easier, you put data in one side and check that it comes serialized out the other: <a href="https://github.com/GlasgowEmbedded/glasgow/blob/f72c4b9be073199c88bf44f8ff50df723335098d/software/tests/gateware/test_qspi.py#L116-L248" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">github.com/GlasgowEmbedded/gla</span><span class="invisible">sgow/blob/f72c4b9be073199c88bf44f8ff50df723335098d/software/tests/gateware/test_qspi.py#L116-L248</span></a></p>