Flip-Flops and Sequential Circuit Design