РЕГИСТРЫ И СЧЕТЧИКИ
Регистры и счетчики являются цифровыми узлами последова-тельностного типа: они строятся на основе триггеров и имеют ту особенность, что их состояние оказывается зависимым не только от сигналов, воздействующих на входы в данный момент времени, но также и от предыдущих состояний. Иными словами, регистры и счетчики относятся к цифровым автоматам с памятью. Эти узлы могут быть реализованы на интегральных триггерах, а также в виде микросхемы повышенного уровня интеграции [14, 34, 35, 36, 37].
Регистром называют цифровой узел, предназначенный для записи и хранения числа. Помимо хранения информации некоторые виды регистров могут преобразовывать информацию, например, из последовательной во времени формы представления в параллельную, сдвигать записанную информацию на один или несколько разрядов в сторону младшего разряда (вправо) или старшего разряда (влево), инвертировать код.
В соответствии с назначением различают регистры хранения и регистры сдвига.
Рис. 4.34. Регистр хранения:
а — функциональная схема; б — условное обозначение
По принципу хранения информации регистры делят на статические и динамические. Статические регистры строят на потенциальных элементах памяти (триггерах), которые могут хранить записанную информацию сколь угодно долго (конечно, при наличии напряжения питания). Динамические регистры строят на элементах памяти такого типа, как конденсатор. Практически в таких регистрах используется входная емкость МДП-транзистора. Подобный элемент памяти может хранить информацию лишь в течение некоторого промежутка времени. Поэтому в динамических регистрах записанная информация находится в постоянном движении.
В книге рассмотрены только статические регистры.
Важнейшие характеристики регистров — разрядность и быстродействие. Разрядность определяется количеством триггеров для хранения числа. Быстродействие характеризуется максимальной тактовой, частотой, с которой может производиться запись, чтение и сдвиг информации.
Основу регистра хранения составляют одноступенчатые асинхронные RS-триггеры. Каждый триггер служит для хранения одного разряда числа А={ак ... a2ai}, так что количество триггеров в регистре равно N (рис. 4.34).
Перед записью информации положительным импульсом по шине «Уст. О» все триггеры устанавливаются в нулевое состояние. Число А подводится к триггерам через схемы совпадения, управляемые сигналом С3 «Запись». При сигнале С3=1 информация попадает на входы триггеров и записывается в регистр. При сигнале Сз=0 обеспечивается режим хранения записанной информации.
Информация из регистра может выводиться в прямом и обратном коде через схемы совпадения, управляемые сигналами CC4i и ССч2- Для считывания информации в требуемом коде на соответствующую шину необходимо подать единичный сигнал. Таким образом, для записи, хранения и считывания одного разряда слова необходим элемент памяти и логические элементы на входе и выходе. Эту элементарную часть схемы регистра будем называть разрядом регистра.
Регистр с такими же свойствами, но с однофазной записью информации, получается при использовании в- качестве элемента памяти одноступенчатого D-триггера или D-триггера с динамическим управлением. Достоинство регистров на D-триггерах состоит в существенном уменьшении числа соединений в узле. Прзи использовании D-триггеров с динамическим управлением повышается устойчивость регистра к помехам, поскольку воздействие помех возможно в течение меньшего интервала времени, чем у регистров на триггерах со статическим управлением (см. § 4.3).
Регистры сдвига предназначены для преобразования информации путем ее сдвига под воздействием тактовых импульсов. Такие регистры представляют совокупность последовательно соединенных триггеров, как правило, двухступенчатой структуры. Число триггеров определяется разрядностью записываемого слова. По направлению сдвига информации различают регистры прямого сдвига (вправо, т. е.
в сторону младшего разряда), обратного сдвига (влево, т. е. в сторону старшего разряда) и реверсивные, допускающие сдвиг в обоих направлениях.
Рис. 4.35. Регистр сдвига:
a — функциональная схема; б — условное обозкачение
Наиболее широко распространены регистры сдвига на D-триг-герах со статическим (рис. 4.35) или с динамическим управлением. Такие регистры имеют один информационный вход, вход для тактовых импульсов (импульсов сдвига) и установочный вход. Выходы в регистре могут быть с каждого разряда для считывания информации одновременно со всех разрядов, т. е. параллельным кодом. Также может быть один выход с последнего относительно входа разряда для считывания информации последовательно во времени, т, е. последовательным кодом.
Вход регистра для импульсов сдвига получается объединением С-входов всех триггеров, а установочный вход — R-входов.
Перед записью информации регистр устанавливается в нулевое состояние подачей положительного импульса по шине «Уст О». Записываемая информация должна быть представлена последовательным кодом. Запись осуществляется поразрядно со стороны старшего (рис. 4.35) или младшего разряда (направление сдвига указывается стрелкой на условном обозначении регистра) путем продвижения кодовой комбинации с каждым тактовым импульсом от разряда к разряду. Следовательно, для записи N-разрядного слова Необходимы N импульсов сдвига.
Считывание информации последовательным кодом осуществляется, как и запись, поразрядным сдвигом записанной кодовой комбинации к выходу с каждым тактовым импульсом. Следовательно, для считывания N-разрядного слова необходимы N импульсов сдвига. Считывание информации параллельным кодом происходит в паузе между последним импульсом сдвига одного цикла записи и первым импульсом сдвига другого цикла записи, т. е. в интервале времени, когда на С-входах триггеров нулевой уровень и они находятся в режиме хранения
Таким образом, с помощью регистра сдвига можно осуществлять преобразование информации из последовательной формы представления в параллельную.
Очевидно, если предусмотрена запись информации параллельным кодом, то можно преобразовать информацию из параллельной формы представления в последовательную. Регистры сдвига могут быть построены И на триггерах одноступенчатой структуры. В этом случае в каждом разряде регистра нужно использовать два RS-триггера, которые управляются двумя сдвинутыми во времени тактовыми импульсами. Наличие двух триггеров в одном разряде позволяет поразрядно продвигать информацию в регистре от входа к выходу. Если бы в регистре были применены одноступенчатые триггеры по одному на разряд, то правило работы регистра сдвига было бы нарушено: при первом же импульсе сдвига информация, записавшись в первый разряд, перешла бы во второй, затем в третий и т. д.
Рис. 4.36. Разряд реверсивного регистра
Реверсивные регистры сдвига объединяют в себе свойства регистров прямого и обратного сдвига. Строятся они по тем же схемотехническим принципам, что и рассмотренные регистры, но с использованием дополнительных логических элементов в межразрядных связях. Указанная особенность реверсивного регистра показана ча примере i-гo разряда (рис. 4.36), состоящего из D-триггера с динамическим управлением и логической схемы, на входы которой поааны: Qi-i — сигнал с выхода младшего разряда, Qi+i — сигнал с выхода старшего разряда, V — сигнал, управляющий направлением сдвига: V=l — вправо, V=0 — влево.
Цифровым счетчиком импульсов называют последовательност-ный цифровой узел, который осуществляет счет поступающих на его вход импульсов. Результат счета формируется счетчиком в заданном коде и может храниться требуемое время.
Счетчики строят на T-триггерах и TV-триггерах с применением при необходимости логических элементов в цепях межразрядных связей. Количество триггеров N должно быть таким, чтобы множество внутренних состояний счетчика 2N было не меньше максимального числа импульсов, которое должно быть зафиксировано. С приходом очередного счетного импульса изменяется состояние счетчика, которое в заданном коде отображает результат счета.
Считывание результата параллельным jV-разрядным кодом мо жет быть произведено после каждого счетного импульса. Если количество счетных импульсов не ограничивать, то счетчик будет работать в режиме деления их числа на коэффициент (модуль) счета Kсч, равный 2N. Через каждые 2-v импульсов он будет возвращаться в начальное состояние и снова считать импульсы. Эта операция часто называется пересчетом, а счетчики, ее осуществляющие, пересчетными устройствами, либо делителями, либо счетчиками-делителями.
Если необходимый коэффициент счета не равен 2N, применяют различные способы сокращения числа внутренних состояний счетчика. Для построения счетчика могут применять не только триггеры со счетным входом, но и D-триггеры, и JK-триггеры, двухступенчатой структуры или с динамическим управлением.
Таблица 4.10
Номер состояния |
Q3 |
Q2 |
Q1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
2 |
0 |
1 |
0 |
3 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
5 |
1 |
0 |
1 |
6 |
1 |
1 |
0 |
7 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
Номер состояния |
Qs |
Qt |
Q. |
7 |
1 |
1 |
1 |
6 |
1 |
1 |
0 |
5 |
1 |
0 |
1 |
4 |
1 |
0 |
0 |
3 |
1 |
] |
t |
2 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
7 |
1 |
1 |
1 |
Счетчики можно классифицировать по ряду признаков. По направлению счета их делят на суммирующие (с прямым счетом), вычитающие (с обратным счетом) и реверсивные. В суммирующих счетчиках с приходом очередного счетного импульса результат увеличивается на единицу, в вычитающих — уменьшается на единицу. Реверсивными называются счетчики, которые могут работать как в режиме суммирующего счетчика, так и в режиме вычитающего счетчика.
По способу организации переноса различают счетчики с последовательным, параллельным и комбинированным (параллельно-последовательным) переносом.
Конструктивно цифровые счетчики могут быть выполнены в виде совокупности интегральных микросхем-триггеров, определенным образом соединенных, и в виде одной микросхемы повышенного уровня интеграции, содержащей сформированную на единой подложке схему многоразрядного счетчика.
Рассмотрим пример реализации трехразрядного суммирующего в коде 8 — 4 — 2 — 1 счетчика с последовательным переносом.
Порядок смены состояний счетчика задан табл. 4.10. В качестве исходного принято состояние, которое определяется нулевым уровнем на выходах всех триггеров, т. е. Qt=Q2=Q3=0. Как следует из таблицы, с приходом очередного счетного импульса к содержимому счетчика прибавляется единица. При этом увеличивается на единицу номер состояния, являющийся десятичным эквивалентом соответствующего данному состоянию двоичного числа.
Изменение состояния каждого последующего разряда происходит при изменении состояния предыдущего разряда от 1 к 0. Это означает, что всякий-раз, когда данный триггер в счетчике переходит из состояния;! в состояние 0, на его выходе должен формироваться сигнал переноса, опрокидывающий следующий триггер. Если же данный триггер переходит из 0 в 1, то сигнала переноса на его выходе не должно быть.
Из таблицы 4.10 также следует, что триггер первого, самого младшего разряда должен менять свое состояние каждый раз с приходом очередного счетного импульса, а триггер каждого последующего разряда — вдвое реже триггера предыдущего разряда.
Описанные порядок смены состояний счетчика и характер процесса их установления могут быть реализованы, если счетчик будет построен на последовательно соединенных Г-триггерах. Каждый последующий разряд при этом будет переключаться сигналом переноса, формируемым на выходе предыдущего разряда. Счетные импульсы должны быть поданы на вход триггера самого младшего разряда. Счетчики, построенные таким образом, получили название счетчиков с последовательным переносом.
Рис. 4.37. Счетчик с последовательным переносом: а — функциональная схема; б — условное обозначение; в — временные диаграммы
При соединении триггеров необходимо учитывать вид сигнала, которым Г-триггер переключается. Напомним, что триггеры с динамическим управлением опрокидываются при поступлении на прямой Г-вход перепада уровня от 0 к 1, а на инверсный T-вход от 1 к 0.
Триггеры двухступенчатой структуры с прямым T-входом изменяют свое состояние с окончанием входного импульса, т. е. после перепада уровня от 1 к 0. Если вход инверсный, то изменение состояния триггера происходит после перепада входного уровня от 0 к 1. Следовательно, если суммирующий счетчик строится на триггерах двухступенчатой структуры с прямым статическим входом или триггерах с инверсным динамическим входом, то следует соединять вход каждого последующего триггера с прямым выходом предыдущего. Формируемый при этом на выходе каждого разряда сигнал переноса в виде перепада уровня от 1 к 0 опрокидывает триггер последующего разряда. Пример трехразрядного счетчика на Г-триггерах двухступенчатой структуры приведен на рис. 4.37. Для установки исходного состояния служит шина «Уст. О», которой объединены R-входы всех триггеров. Нулевое состояние триггеров устанавливается подаваемым по этой шине положительным импульсом напряжения между уровнями 0 и 1. Если R-входы инверсные, установочный импульс должен быть отрицательным между уровнями 1 и 0. На левом поле условного графического обозначения счетчика (рис. 4.37,6) показано, что его входом является Tгвход первого разряда, а на правом поле указан «вес» каждого разряда.
Широко применяют также и триггеры с прямым динамическим входом, которые для опрокидывания требуют перепада уровня от О к 1. При использовании таких триггеров для построения суммирующего счетчика с последовательным переносом необходимо вход каждого последующего триггера соединять с инверсным выходом предыдущего. Пример такого счетчика на Г-триггерах, полученных из D-триггеров с динамическим управлением, приведен на рис. 4.38.
Вычитающий счетчик с последовательным переносом имеет обратный порядок смены состояний: с приходом очередного счетного импульса содержащееся в счетчике число уменьшается на единицу (табл. 4.11).
Из таблицы следует еще одна особенность вычитающего счетчика, отличающая его от суммирующего и состоящая в том, что триггер каждого последующего разряда опрокидывается при изменении уровня на выходе триггера предыдущего разряда от 0 к 1, т.
е. при сигнале займа, обратном сигналу переноса в суммирующем счетчике. Строится вычитающий счетчик так же, как суммирующий, но с тем отличием, что со входом каждого последующего триггера соединяется другой выход предыдущего триггера.
Рис. 4.38. Счетчик на D-триггерах с динамическим управлением:
а — функциональная схема; б — условное обозначение
Из временных диаграмм (рис. 4.37,в) видно, что в наихудшем случае новое состояние счетчика устанавливается с задержкой, равной утроенной задержке переключения одного триггера, что вызвано последовательным по времени распространением сигнала переноса через все разряды счетчика. Таким образом, в счетчике с последовательным переносом неэффективно используется быстродействие триггеров, особенно при большом числе разрядов. В этом состоит существенный недостаток счетчиков с последовательным переносом, из-за .которого, несмотря на простоту и удобство реализации схемы, область их применения ограничивается цифровыми устройствами с небольшим числом разрядов и невысоким быстродействием.
Для повышения быстродействия счетчиков применяют различные способы ускорения переноса, как это делают и в сумматорах для сокращения времени сложения чисел.
Один из широко применяемых способов ускорения переноса в счетчиках основан на введении логических элементов, с помощью которых достигается возможность одновременного (параллельного) формирования сигналов переноса для всех разрядов. Для реализации этого способа применяют ГУ-триггеры. На Г-входы всех триггеров одновременно подаются счетные импульсы, а на V-вход каждого триггера поступает сигнал переноса, формируемый логической схемой в виде уровня 1. Триггеры, на V-входе которых имеется сигнал переноса, одновременно опрокидываются с приходом очередного счетного импульса, и, таким образом, устанавливается новое состояние счетчика. Для определения вида цепи переноса в счетчике обратимся к уже рассмотренной табл. 4.10. Из нее следует, что первый разряд, как и в счетчике с последовательным переносом, должен быть построен на Г-триггере.
Если применяется ТV-триггер, то на его V-вход следует подать 1 или соединить его с Г-входом.
Второй триггер опрокидывается счетным импульсом при наличии 1 на выходе первого триггера, а третий триггер опрокидывается при наличии 1 на выходах двух предыдущих триггеров. Обобщая эту закономерность на случай jV-разрядного счетчика, получим, что каждый последующий триггер должен опрокинуться под воздев стием счетного импульса при наличии 1 на выходах всех предыдущих триггеров. Следовательно, для формирования сигнала переноса в каждый разряд счетчика необходимо включить элемент И и соединить его входы с прямыми выходами всех предыдущих разрядов, а выход — с V-входом триггера данного разряда. Пример суммирующего счетчика с параллельным переносом на ГК-триггерах приведен на рис. 4.39. Быстродействие этого счетчика выше, чем счетчика с последовательным переносом, поскольку оно равно быстродействию одного разряда.
Это является важным достоинством счетчиков с параллельным переносом, обеспечившим им широкое применение. Недостаток — необходимость включения в схему логических элементов с разным, причем нарастающим от разряда к разряду, числом входов. Это нарушает регулярность структуры счетчика и ограничивает возможность наращивания его схемы. Частично этот недостаток можно устранить при использовании триггеров с входной логикой.
Многие серии микросхем содержат JK-триггеры с входной логикой. Для преобразования JK-триггера в TV-триггер необходимо объединить входы J и K в один, это и будет К-вход. У триггера с тремя коньюнктивно связанными J-входами и тремя конъюнктивно связанными K-входами могут быть образованы, следовательно, три конъюнктивно связанных V-входа. При реализации счетчика на таких триггерах исключаются дополнительные логические элементы в цепях переноса. Однако ограничение в разрядности счетчика остается. Поскольку имеющиеся интегральные JK-триггеры позволяют получить до трех F-входов, на них может быть построен лишь четырехразрядный счетчик с параллельным переносом (рис. 4.40).
Рис. 4.39. Счетчик с параллельным переносом
Вычитающий счетчик с параллельным переносом строится так же, как и суммирующий, но сигналы переноса снимаются с инверсных, относительно используемых в суммирующем счетчике, выходов триггеров.
Реверсивный счетчик, объединяющий возможности суммирующего и вычитающего, строится таким образом, чтобы обеспечивалось управление направлением счета с помощью сигналов на сложение С0 и вычитание Св. Поэтому его схема содержит дополнительную комбинационную часть, выполняющую указанную функцию.
Рис. 4.40- Счетчик на JK-триггерах с входной логикой
Рис. 4.41. Реверсивный счетчик на ГУ-триггерах
Нередко счетчики с параллельным переносом, выпускаемые в виде микросхем, имеют помимо основных выходов — дополнительные, как это показано, например, на рис. 4.41. На одном из выходов, обозначенном «>15», сигнал 1 появляется при заполнении счетчика единицами, т. е. когда он перешел в состояние с номером 15. Следовательно, на этом выходе формируется сигнал переноса в следующий счетчик. На другом выходе, обозначенном «<0», сигнал появляется при заполнении счетчика нулями и является сигналом займа в следующий счетчик в режиме вычитания.
Реверсивный счетчик можно построить и на Г-триггерах (рис. 4.42,а). Как и в рассмотренном ранее суммирующем счетчике, счетные импульсы поступают на T-вход триггера через логические элементы только в том случае, если они открыты единичными сигналами с выходов предыдущих разрядов.
В счетчике на рис. 4.42,а для счетных импульсов предусмотрены два входа. Если счетчик должен работать в режиме прямого счета, импульсы следует подавать на вход «+1», в режиме обратного счета — на вход « — 1». При использовании такого счетчика в качестве реверсивного с одним источником импульсов необходимо предусмотреть внешнее устройство коммутации счетных импульсов на суммирующий «+1» либо на вычитающий « — 1» входы. Вариант такой коммутирующей приставки к счетчику приведен на рис. 4.426.
При подаче положительного импульса на S-вход RS-триггера на его прямом выходе установится единичный уровень, который откроет элемент 1 для счетных импульсов С0. Счетчик будет работать в режиме сложения. Если подать положительный импульс на R-вход триггера, откроется для счетных импульсов элемент 2 и счетчик будет работать в режиме вычитания.
Рис. 4.42. Реверсивный счетчик на 7-триггерах:
а — функциональная схема; б — схема, управляющая направлением счета
Рис. 4.43. Многоразрядный счетчик с комбинированным переносом
Комбинированный, т. е. параллельно-последовательный перенос применяется при построении многоразрядных счетчиков, которые должны иметь высокое быстродействие. Функциональная схема таких счетчиков состоит из группы триггеров, внутри каждой из которых организуется параллельный перенос, а между группами — последовательный. В примере на рис. 4.43 счетчик состоит из четырехразрядных счетчиков с параллельным переносом. На выходе каждой группы триггеров включен элемент И, который формирует сигнал переноса в следующую группу при заполнении триггеров единицами.
Рис. 4.44. Восьмиразрядный реверсивный счетчик на микросхемах К155ИЕ7
Интегральные четырехразрядные счетчики с выходами переноса и займа объединяются с использованием этих выходов. Например, при объединении суммирующих счетчиков необходимо соединить выход «>15» одного со счетным входом другого. При объединении реверсивных счетчиков, имеющих выходы сигналов переноса «>15» и займа «<0», необходимо эти выходы соединить соответственно с суммирующим и вычитающим входами следующего счетчика. Пример восьмиразрядного реверсивного счетчика на двух микросхемах К155ИЕ7 приведен на рис. 4.44. Возможности указанной микросхемы допускают установку заданного исходного состояния счетчика путем записи в него по D-входам (Di-nD.;) нужной кодовой комбинации (а0 ... а?) при наличии разрешающего сигнала на входе Сзап. Кроме того, по шинам «Уст. О» и Уст. 1» счетчик можно заполнить нулями или единицами.Назначение коммутирующей приставки на входе рассмотрено ранее (см. рис. 4.42,6).
Результат счета снимается с выходов Q1-Q8. При необходимости счетчик можно использовать для деления числа (частоты повторения) импульсов на 16, если использовать выход «>15» первой микросхемы, и на 256, если использовать аналогичный выход второй микросхемы.