Регистры. Счетчики импульсов.
Регистры — самые распространенные узлы цифровых устройств. Они оперируют с множеством связанных переменных, составляющих слово. Над словами выполняется ряд операций: прием, выдача, хранение, сдвиг в разрядной сетке, поразрядные логические операции.
Регистры состоят из разрядных схем, в которых имеются триггеры и, чаще всего, также и логические элементы.
По количеству линий передачи переменных регистры делятся на однофазные и парафазные, по системе синхронизации на однотактные, двухтактные и многотактные. Однако главным классификационным признаком является способ приема и выдачи данных. По этому признаку различают параллельные (статические) регистры, последовательные (сдвигающие) и параллельно- последовательные.
В параллельных регистрах прием и выдача слов производятся по всем разрядам одновременно. В них хранятся слова, которые могут бьггь подвергнуты поразрядным логическим преобразованиям.
В последовательных регистрах слова принимаются и выдаются разряд за разрядом. Их называют сдвигающими, т. к. тактирующие сигналы при вводе и выводе слов перемещают их в разрядной сетке. Сдвигающий регистр может быть нереверсивным (с однонаправленным сдвигом) или реверсивным (с возможностью сдвига в обоих направлениях).
Рисунок 1 - Схема статического регистра (а), усл.-граф. обозначение (б)
Последовательно-параллельные регистры имеют входы-выходы одновременно последовательного и параллельного типа. Имеются варианты с последовательным входом и параллельным выходом (SIPO, Serial Input — Parallel Output), параллельным входом и последовательным выходом (PISO), а также варианты с возможностью любого сочетания способов приема и выдачи слов.
В параллельных (статических) регистрах схемы разрядов не обмениваются данными между собой. Общими для разрядов обычно являются цепи тактирования, сброса/установки, разрешения выхода или приема, т. е. цепи управления. Пример схемы статического регистра, построенного на триггерах типа D с прямыми динамическими входами, имеющего входы сброса R и выходы с третьим состоянием, управляемые cm налом EZ, показан на рис. 1.
Для современной схемотехники характерно построение регистров именно на D-триггерах, преимущественно с динамическим управлением. Многие имеют выходы с третьим состоянием, некоторые регистры относятся к числу буферных, т. е. рассчитаны на работу с большими емкостными и/или низкоомными активными нагрузками. Это обеспечивает их работу непосредственно на магистраль (без дополнительных схем интерфейса).
Из статических регистров составляются блоки регистровой памяти — регистровые фойлы. Информационные входы регистров соединены параллельно (рис. 2). Входы адресов записи WA и WB (от Write) дают четыре комбинации, каждая из которых разрешает 'защелкнуть" данные, присутствующие в настоящее время на выводах D1-4. Содержимое файла (регистра) вызывается на выходы блока Q1-4 с помощью дешифратора считывания (адресных входов мультиплексора) адресами RA и RB (от английского Read). Таких адресов четыре.
Если на входе разрешения записи WE (Write Enable) действует активный низкий уровень, то данные поступают в соответствующий регистр, при высоком уровне WE входы для данных и адресов запрещены. Выходные данные выдаются в прямом коде.
Размерность регистровой памяти можно наращивать, составляя из нескольких ИС блок памяти. При наращивании числа хранимых слов выходы отдельных ИС с тремя состояниями соединяются в одной точке. Допускается соединять непосредственно до I28 выходов, что дает 5I2 хранимых слов. Ограничение на число соединяемых в одной точке выходов вызвано токовым режимом выхода, оно может быть преодолено при подключении к выходной точке специальных внешних резисторов. При наращивании разрядности слова соединяют параллельно входы разрешения и адресации нескольких ИС, выходы которых в совокупности дают единое информационное слово.
Рисунок 2 - Схема регистрового файла
Сдвигающие регистры
Последовательные (сдвигающие) регистры представляют собою цепочку разрядных схем, связанных цепями переноса.
В однотактных регистрах со сдвигом на один разряд вправо (рис. 3, а) слово сдвигается при поступлении синхросигнала. Вход и выход последовательные (DSR — Data Serial Right). На рис. 3, б показана схема регистра со сдвигом влево (вход данных DSL — Data Serial Left), а на рис. 3, в иллюстрируется принцип построения реверсивного регистра, в котором имеются связи триггеров с обоими соседними разрядами, но соответствующими сигналами разрешается работа только одних из этих связей (команды "влево" и "вправо" одновременно не подаются).
Согласно требованиям синхронизации, рассмотренным в предыдущем параграфе, в сдвигающих регистрах, не имеющих логических элементов в межразрядных связях, нельзя применять одноступенчатые триггеры, управляемые уровнем, поскольку некоторые триггеры могут за время действия разрешающего уровня синхросигнала переключиться неоднократно, что недопустимо. Появление в межразрядных связях логических элементов и, тем более, логических схем неединичной глубины упрощает выполнение условий работоспособности регистров и расширяет спектр типов триггеров, пригодных для этих схем.
Рисунок 3 - Схемы регистров сдвига влево (а), вправо (б), реверсивно (в)
Многотактные сдвигающие регистры управляются несколькими синхропоследовательностями. Из их числа наиболее известны двухтактные с основным и дополнительным регистрами, построенными на простых одноступенчатых триггерах, управляемых уровнем. По такту С1 содержимое основного регистра переписывается в дополнительный, а по такту С2 возвращается в основной, но уже в соседние разряды, что соответствует сдвигу слова. По затратам оборудования и быстродействию этот вариант близок к однотактному регистру с двухступенчатыми триггерами.
В общем случае счетчиком называют любую тактируемую последовательностную схему, у которой диаграмма состояний представляет собой единственное кольцо (рис. 4). Модулем счета называется число состояний в этом кольце. О счетчике с т состояниями говорят как о счетчике с модулем счета т, иногда его называют также делителем частоты на т. У счетчика с модулем счета, не равным степени 2, есть лишние состояния, в которые он не попадает при нормальной работе.
Рисунок 4 - Диаграмма состояний счетчика - единое кольцо
По-видимому, самыми распространенными являются п-разрядные двоичные счетчики. Такой счетчик состоит из п триггеров, и у него имеется 2n состояний, через которые он проходит в последовательности 0, 1,2, ... , 2n - 1, 0, 1, ... . Кодом каждого состояния служит соответствующее n-разрядное двоичное число.
Счетчики с последовательным переносом
При любом значении п можно так построить n-разрядный двоичный счетчик, что в нем будут только n триггеров и не будет никаких других компонентов. Для n = 4 такой счетчик показан на рис. 5. Напомним, что состояние Т-триггера меняется (на противоположное) с каждым нарастающим фронтом сигнала на его тактовом входе. Таким образом, содержимое того или иного разряда в счетчике меняется на противоположное тогда и только тогда, когда значение бита в разряде, непосредственно предшествующем этому разряду, изменяется с 1 на 0. Это соответствует двоичному счету в прямом направлении: когда бит, хранящийся в данном разряде, изменяется с 1 на 0, возникает перенос в следующий по старшинству разряд. Такой счетчик называют счетчиком с последовательным переносом, так как информация о переносе поочередно передается от младших разрядов к старшим, по одному биту за раз.
Рисунок 5 - 4-разрядный двоичный счетчик с последовательным переносом
Хотя для счетчика с последовательным переносом требуется меньше компонентов, чем для двоичного счетчика любого другого типа, за это приходится платить наименьшим быстродействием по сравнению с любыми другими счетчиками. В худшем случае, когда должен измениться бит в самом старшем разряде, выходной сигнал примет правильное значение только спустя время, равное п · tTQ, после нарастающего фронта тактового сигнала CLK, где tTQ - задержка распространения в Т-триггере от входа до выхода.
В синхронном счетчике к тактовым входам всех триггеров подводится один и тот же общий тактовый сигнал CLK, так что изменения значений сигналов на выходах всех триггеров происходят в один и тот же момент времени с задержкой только на tTQ наносекунд. Как видно из рис. 6, для этого нужно воспользоваться Т-триггерами со входом разрешения; сигнал на выходе триггера примет противоположное значение в момент, задаваемый нарастающим фронтом сигнала на его входе Т, только в том случае, если сигнал разрешения EN имеет активный уровень. Какие именно триггеры перейдут в состояние, противоположное предыдущему, на очередном нарастающем фронте сигнала на входе Т, определяется комбинационной логикой, включенной на входах разрешения EN.
Рисунок 6 - 4-разрядный синхронный двоичный счетчик с последовательной логикой разрешения (синхронный)
На рис. 6 показано, что счетчик можно снабдить главным сигналом разрешения CNTEN. Любой из Т-триггеров может переключиться тогда и только тогда, когда сигнал CNTEN имеет единичное значение и равны 1 биты во всех разрядах, младше данного. Как и в случае двоичного счетчика с последовательным переносом, n-разрядный синхронный счетчик можно построить так, чтобы на один разряд приходилось фиксированное число логических схем, в данном случае в каждом разряде необходимы Т-триггер с входом разрешения и 2-входовой вентиль И.
Счетчик, изображенный на рис. 6, иногда называют последовательным синхронным счетчиком, поскольку сигналы разрешения проходят через комбинационную логику последовательно от младшего разряда к старшему. Если период тактового сигнала слишком мал, то изменение в младшем разряде счетчика может не успеть дойти за это время до старшего разряда. Это затруднение преодолено в схеме на рис. 7, где сигнал разрешения на входе разрешения EN каждого триггера вырабатывается соответствующим вентилем И всего лишь с одним уровнем логики. В результате получается схема двоичного счетчика с самым высоким быстродействием, который носит название параллельного синхронного счетчика.
Рисунок 7 - 4-разрядный синхронный двоичный счетчик с параллельной логикой разрешения