Счетчик (CT) – это последовательностное устройство, предназначенное для подсчета числа входных импульсов и хранения результатов счета в двоичном коде (преобразование последовательности импульсов в параллельный двоичный код), а также для деления частоты входных импульсов. В ЦВМ они используются для образования адресов команд, подсчета количества циклов и т.п. Счетчики выполняются на основе триггеров. По целевому назначению счетчики могут быть простыми (для суммирования или вычитания) или реверсивными (для работы в обоих режимах). По принципу работы различают:
· Асинхронные счетчики, информация у которых передается последовательно по цепочке триггеров, начиная с входного;
· Синхронные счетчики, у которых входные импульсы поступают одновременно на все триггеры счетчика.
Основным параметром счетчика является коэффициент или модуль счета К – это наибольшее число, которое может быть подсчитано счетчиком. В зависимости от значения модуля счета счетчики делятся на двоичные (К=2n , где n – число триггеров), декадные (К=10), с произвольным модулем счета.
Типичный четырехразрядный асинхронный счетчик-делитель на JK-триггерах. Диаграммы работы счетчика показаны на рис. Каждый из триггеров делит частоту пополам, поэтому частота выходного сигнала Q4 равна 1/16 частоты входного сигнала синхронизации.
Перед началом счета на входы R всех триггеров кратковременно подается низкий уровень сигнала (R=0) для предварительной очистки счетчика (для установки на всех прямых выходах Q триггеров логического ноля). Как видно из диаграммы счетчик на прямых выходах формирует линейно нарастающие кодовые наборы от 0000 до 1111, являющиеся двоичными эквивалентами десятичных чисел от 0 до 15. Шестнадцатый импульс переводит все триггеры в нулевое состояние. Модуль счета этого счетчика К=24=16.
Очевидно, что при счете импульсов на инверсных выходах триггеров формируются линейно убывающие коды от 1111 до 0000, что используется для реализации вычитающих счетчиков. В вычитающем счетчике синхронизирующий вход каждого триггера связан с инверсным выходом предыдущего триггера. Перед началом счета должна быть выполнена предварительная установка счетчика в состояние 1111.
Для увеличения скорости счета применяют синхронные (параллельные) счетчики, у которых счетные импульсы поступают одновременно на входы синхронизации всех триггеров. Порядок переключения триггеров в таких счетчиках определяют логические схемы совпадения «И». В схеме первый импульс при условии J=K=1 изменит состояние только первого триггера (Q1=1) и одновременно подготовит к переключению второй триггер, т. к. для него будет J2=K2=1.
При модуле счета К<2n двоичный счетчик будет иметь избыточные состояния, которые необходимо исключить с помощью дополнительной комбинационной схемы. Например, если требуется создать суммирующий счетчик с К=6, то потребуется не менее 3-х триггеров, т.к. 22<6<23. Счетчик из 3-х триггеров возвращается в исходное состояние после 8-го импульса, а надо после 6-го. Избыточные состояния исключаются с помощью комбинационной схемы И-НЕ, которая после 6-го импульса, когда будет набран двоичный код 110, эквивалентный заданному К=6, подаст сигнал 0 на сбросовые R- входы триггеров и возвратит триггеры в исходное состояние Q1=Q2=Q3=0. Для исключения избыточных состояний входы логического элемента И-НЕ надо соединять только с выходами тех разрядов счетчика, на которых будут единицы при достижении кодового набора, соответствующего требуемому модулю счета К.
Широкое распространение получили декадные (десятичные) счетчики с К=10. Декадный счетчик можно реализовать на основе схемы, если дополнить ее логическим элементом 2И-НЕ, подав на его входы сигналы Q2=Q4=1 (1010 – двоичный код числа 10) для очистки счетчика по входу R с приходом 10-го импульса.
Различные счетчики изготовляются в виде готовых микросхем.
Регистры
Регистр (RG) – это последовательностное устройство, предназначенное для записи, хранения и (или) сдвига информации, представленной в виде многоразрядного двоичного кода. В зависимости от функционального назначения различают регистры сдвига (последовательные) и памяти (параллельные). Регистры выполняются на основе триггеров.
В четырехразрядном регистре сдвига, выполненном на JK-триггерах, с приходом каждого спадающего фронта тактового импульса синхронизации на входы «С» происходит запись сигналов с прямых и инверсных выходов на информационные входы каждого последующего триггера, от младшего разряда к старшему.
Если на входе данных первого триггера имеем 0, т.е. J=0, К=1, то в исходном состоянии на выходах Q1=0, =1. Эти же уровни сигналов последовательно передаются каждому триггеру после прихода тактовых импульсов, но не изменяют их состояния. Если же на входе первого триггера J=1, К=0, то после первого тактового импульса на его выходах установятся новые логические уровни Q1=1, =0; вторым тактовым импульсом в это состояние переключится второй триггер и т.д. Очевидно, что четвертый тактовый импульс сдвинет уровень логической единицы в четвертый триггер, и на выходах разрядов регистра появится кодовый набор 1111.
Регистры памяти применяются для хранения информации, представленной в виде двоичного кода. Такие регистры должны по тактовому разрешающему импульсу принимать параллельный код входной информации и хранить его до прихода следующего тактового импульса. Для построения регистров памяти наиболее удобны D–триггеры. Схема четырехразрядного регистра памяти К155ТМ5. Он содержит четыре тактируемых потенциалом D–триггера. Если на тактовые входы триггеров подан потенциал С=1, то информация с входов D1–D4 устанавливает триггеры в соответствующие состояния и эта информация появляется на выходах регистра. При С=0 триггеры хранят запомненную информацию вне зависимости от того, какие потенциалы присутствуют при этом на входах D1–D4.