This example uses shift registers and counters instead of an explicit FSM, which makes it very compact in terms of generated logic, and more concise too.