<p>Aha! It's the "bytes valid" field being pipelined down from earlier on when the frame ended.</p><p>It seems like when I added an extra pipeline stage earlier on to fix timing problems, I introduced a regression where the extra pipeline stage could lead to padding bytes not being counted properly towards the alignment of the frame endpoint.</p>