Logic and Sequential Circuit Design