Remove unnecessary logic.
Don't write unless we're actually at the end of a packet.
Move dataReady and shifting logic to happen on negedge, so we don't load the next packet early.
Update tests.