Двоичные счётчики
← Все статьи

Двоичные счётчики

6 мин

От триггера к счётчику

Один D-триггер, подключённый так, чтобы переключать собственный выход на каждом фронте такта (Q подаётся обратно на D через вентиль NOT), делит частоту такта на два — он считает 0,1,0,1... в одном бите. Соедините несколько таких переключающихся каскадов вместе — и получится схема, считающая вверх в двоичной системе, по одному счёту на каждый тактовый импульс.

Асинхронные (волновые) счётчики

Простейший двоичный счётчик подаёт выход каждого триггера на тактовый вход следующего. Первый бит переключается на каждом тактовом импульсе, второй бит переключается каждый раз, когда падает первый бит, и так далее — ровно как при счёте в двоичной системе вручную. Это называется волновым (асинхронным) счётчиком, потому что изменение «проходит волной» по цепочке поэтапно, а не все каскады обновляются одновременно.

Недостаток: эта волновая задержка накапливается. В 4-битном волновом счётчике старший бит может обновиться немного позже фронта такта, после того как изменение прошло через все 4 каскада — это вызывает сбои, если другая логика читает значение счёта в момент распространения волны.

Синхронные счётчики

Синхронный счётчик решает эту проблему, подавая один и тот же тактовый сигнал напрямую на каждый триггер и используя дополнительную комбинационную логику (обычно вентили AND) для вычисления следующего значения каждого бита на основе текущего счёта. Все биты обновляются в один и тот же момент, что устраняет волновую задержку за счёт небольшого увеличения числа вентилей.

Счётчики вверх/вниз и по модулю N

Добавление входа направления позволяет счётчику считать вниз вместо вверх. Добавление логики сброса, срабатывающей перед естественной точкой переполнения, создаёт счётчик по модулю N — например, счётчик, сбрасывающийся после достижения 9 вместо 15, что полезно для управления десятичной цифрой на 7-сегментном индикаторе.

Проверьте сами

Загрузите пример счётчика в Boolflow, подключите элемент CLOCK и наблюдайте, как биты OUTPUT считают вверх в двоичной системе. Сравните последовательность с таблицей истинности ожидаемой последовательности, чтобы убедиться в правильности соединений.

Загрузить пример двоичного счётчика