Найти в Дзене
Владимир С.

Синтез реверсивного счётчика

Предположим, что перед нами стоит задача реализовать реверсивный счётчик. Для начала разберёмся, что такое реверсивный счётчик. Для простоты будем делать счётчик с тремя состояниями: 0, 1 и 2. Алгоритм, по которому мы будем его реализовывать, подходит и для более сложных счётчиков, но для объяснения лучше сделать наиболее простой. Итак, для того чтобы сделать реверсивный счётчик, нам по сути нужно сделать два отдельных счётчика (суммирующий и вычитающий) и объединить их. Реализовывать счётчики будем на D-триггерах. Реализуем управление первым счётчиком, для этого составим его таблицу переходов (рис. 1). По таблице переходов нетрудно получить формулы триггеров: Реализуем управление вторым счётчиком, для этого составим его таблицу переходов (рис. 2). По таблице переходов нетрудно получить формулы триггеров: Теперь можно приступить к реализации счётчика, будем проводить её в системе Logisim. Итоговая схема изображена на рисунке 3. Контакты + и - отвечают за режим работы, суммирующий и вы

Предположим, что перед нами стоит задача реализовать реверсивный счётчик. Для начала разберёмся, что такое реверсивный счётчик.

  • Реверсивным называется счётчик, направлением счёта которого можно управлять в процессе работы.

Для простоты будем делать счётчик с тремя состояниями: 0, 1 и 2. Алгоритм, по которому мы будем его реализовывать, подходит и для более сложных счётчиков, но для объяснения лучше сделать наиболее простой. Итак, для того чтобы сделать реверсивный счётчик, нам по сути нужно сделать два отдельных счётчика (суммирующий и вычитающий) и объединить их. Реализовывать счётчики будем на D-триггерах.

Реализуем управление первым счётчиком, для этого составим его таблицу переходов (рис. 1).

Рисунок 1 - таблица переходов суммирующего счётчика с состояниями 0-1-2 (00-01-10 в двоичной системе счисления)
Рисунок 1 - таблица переходов суммирующего счётчика с состояниями 0-1-2 (00-01-10 в двоичной системе счисления)

По таблице переходов нетрудно получить формулы триггеров:

-2

Реализуем управление вторым счётчиком, для этого составим его таблицу переходов (рис. 2).

Рисунок 2 - таблица переходов вычитающего счётчика с состояниями 2-1-0 (10-01-00 в двоичной системе счисления)
Рисунок 2 - таблица переходов вычитающего счётчика с состояниями 2-1-0 (10-01-00 в двоичной системе счисления)

По таблице переходов нетрудно получить формулы триггеров:

-4

Теперь можно приступить к реализации счётчика, будем проводить её в системе Logisim. Итоговая схема изображена на рисунке 3.

Рисунок 3 - реверсивный счётчик, выполненный на D-триггерах
Рисунок 3 - реверсивный счётчик, выполненный на D-триггерах

Контакты + и - отвечают за режим работы, суммирующий и вычитающий соответственно. С - сигнал синхронизации, R - сброс в начальное состояние. На входы триггеров мы подаём объединённые через логическое "ИЛИ" схемы управления триггерами при включённом + и -. На входы дизъюнкций подаются значения с конъюнкций, отвечающих за режимы работы. Конъюнкция необходима, для того чтобы триггеры воспринимали сигналы только при активном уровне того или иного режима. Для более удобного восприятия состояния счётчика подключаем к нему шестнадцатеричный индикатор.

Протестируем работу вычитающего режима (рис. 4 - 7).

Рисунок 4 - счётчик в начальном состоянии, на вычитающем контакте активный уровень сигнала
Рисунок 4 - счётчик в начальном состоянии, на вычитающем контакте активный уровень сигнала
Рисунок 5 - при подаче переднего фронта на синхросигнале счётчик переключается в следующее состояние - 2
Рисунок 5 - при подаче переднего фронта на синхросигнале счётчик переключается в следующее состояние - 2
Рисунок 6 - опять подаём передний фронт, и счётчик переключается в состояние 1
Рисунок 6 - опять подаём передний фронт, и счётчик переключается в состояние 1
Рисунок 7 - при подаче очередного переднего фронта счётчик возвращается в начальное состояние
Рисунок 7 - при подаче очередного переднего фронта счётчик возвращается в начальное состояние

Теперь аналогично покажем работу суммирующего режима (рис. 8 - 11)

Рисунок 8
Рисунок 8
Рисунок 9
Рисунок 9
Рисунок 10
Рисунок 10
Рисунок 11
Рисунок 11

Таким образом, нам удалось реализовать реверсивный счётчик с диапазоном счёта 0-2 и шагом 1. По аналогичной схеме можно сделать любой подобный счётчик.