Счётчик подсчитывает импульсы и хранит их количество в двоичном виде. Его строят из триггеров — обычно T или D в режиме переключения.
Асинхронный счётчик (ripple counter): такт подаётся только на первый триггер, а каждый следующий тактируется выходом предыдущего. Схема простая, но переключения «прокатываются» по цепочке с задержкой — отсюда название ripple (рябь). На высоких частотах из-за накопления задержек возможны кратковременные ложные коды.
Синхронный счётчик: такт приходит на все триггеры одновременно, а нужные переключения задаёт логика на входах. Он сложнее, зато все разряды меняются строго синхронно, без ложных состояний и на высокой скорости.
Счётчики делают суммирующими, вычитающими и реверсивными; с произвольным модулем счёта (например, по основанию 10 — декадный). На диаграмме — состояния трёхразрядного счётчика, циклически проходящего значения от 000 до 111 и обратно к 000.