Sequential Logic Tutorial - Flip-Flops and State Machines