The document discusses synchronous and asynchronous counters and registers. It begins with an introduction to counters and describes asynchronous ripple counters and how to construct counters with modulus less than 2^n. It then covers asynchronous down counters, cascading counters, and synchronous parallel counters. Finally, it discusses registers including shift registers and their applications.