Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Основные схемы включения триггеров



Говоря об областях применения триггеров, мы будем рассматривать исключительно D-триггеры, так как в большинстве случаев RS- и JK-триггеры могут быть заменены D-триггерами без ухудшения каких бы то ни было параметров схемы. Примеры такой замены показаны на рис. 7.5.

RS-триггер получается из D-триггера, если в D-триггере не использовать входы C и D, например, соединить их с общим проводом (а).


Рис. 7.5. Включение D-триггера для замены RS-триггера (а) и JK-триггера в счетном режиме (б)

Сложнее обстоит дело с заменой JK-триггера, в котором предусмотрено больше возможностей, чем в D-триггере. Однако обычно два информационных входа JK-триггера не так уж и нужны. А что касается счетного режима, в котором, пожалуй, наиболее часто работают JK-триггеры, то он легко реализуется на D-триггере в результате объединения информационного входа D с инверсным выходом (б). При этом по каждому положительному фронту сигнала С триггер будет менять свое состояние на противоположное: нуль на прямом выходе будет сменяться единицей и наоборот. То есть частота входного сигнала триггера будет меньше частоты входного тактового сигнала С в два раза.

Отметим также, что для реализации счетного режима чаще всего используются не триггеры, а счетчики, которые будут рассмотрены в следующей лекции.

Особенности триггеров обусловливают наиболее широкий диапазон схем их включения для решения самых разных задач.

Например, с помощью триггера (любого типа) очень просто и эффективно решается задача устранения влияния дребезга контактов механических переключателей (рис. 7.6). Правда в данном случае необходим тумблер (или кнопка) с тремя выводами, один из которых попеременно подключается к двум другим. При этом первый отрицательный импульс на входе –R перебрасывает триггер в состояние нуля, а первый отрицательный импульс на входе –S — в состояние единицы. Последующие же импульсы на обоих этих входах, вызванные дребезгом контактов, уже никак не влияют на триггер. Нижнее (по рисунку) положение выключателя соответствует нулю на выходе триггера, а верхнее — единице.


Рис. 7.6. Подавление дребезга контактов выключателя с помощью триггера

Основное применение триггеры находят в тех случаях, когда надо сформировать сигнал, длительность которого соответствует длительности какой-то выполняемой операции, какого-то продолжительного процесса в схеме. Выходной сигнал триггера при этом может разрешать этот самый процесс, а может информировать остальные узлы устройства о том, что процесс идет (или, как говорят, служить флагом процесса). Например, в схеме на рис. 7.7 в начале процесса (операции) по сигналу "Старт" триггер перебрасывается в единицу, а в конце процесса (операции) по сигналу "Стоп" — обратно в нуль.


Рис. 7.7. Использование триггера в качестве флага процесса

Для сигналов "Старт" и "Стоп" можно, конечно, использовать входы триггера -R и -S. Однако более правильным и универсальным решением будет выбор пары входов С и -R или С и -S, что предотвратит неоднозначность поведения триггера при одновременном приходе сигналов "Старт" и "Стоп". Если используются входы С и -R, то на вход D надо подать единицу, а если применяются входы С и -S, то на вход D надо подать нуль. Такое решение удобно еще и тем, что в качестве одного из сигналов "Старт" и "Стоп" может выступать не уровень, а фронт. Именно этот фронт (в нужной полярности) и надо подать в этом случае на тактовый вход триггера С.

Вторая важнейшая область применения триггеров — синхронизация сигналов.

Например, триггер позволяет наиболее просто избавиться от паразитных коротких импульсов на выходах комбинационных схем, возникающих при почти одновременном изменении нескольких входных сигналов (рис. 7.8). Для синхронизации в данном случае необходимо иметь синхросигнал (синхропереход), сопровождающий входные информационные сигналы (входной код) и задержанный относительно момента изменения этих сигналов на время tз, большее задержки комбинационной схемы. При подаче этого синхроимпульса на вход С триггера, а выходного сигнала комбинационной микросхемы (Вых. 1) на вход D триггера на выходе триггера получаем сигнал (Вых. 2), полностью свободный от паразитных импульсов.


Рис. 7.8. Синхронизация с помощью триггера

Более того, в случае, когда входной код комбинационной схемы изменяется регулярно, периодически, фронт синхросигнала может даже совпадать с моментом изменения входного кода (рис. 7.9).


Рис. 7.9. Синхронизация с помощью триггера при периодическом изменении входного кода

При этом, за счет конечной величины задержки комбинационной схемы сигнал на вход C триггера будет поступать раньше, чем начнет изменяться сигнал на его входе D. Поэтому паразитные импульсы в триггер не запишутся. Правда, в данном случае сигнал на выходе триггера (Вых. 2) будет задержан на период следования входных кодов T (или, что то же самое, на период синхросигнала) относительно выходного сигнала комбинационной схемы (Вых. 1).

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

Рассмотрим самый простой пример. Пусть необходимо с помощью внешнего сигнала разрешать и запрещать прохождение сигнала непрерывно работающего тактового генератора. В случае обычного RC-генератора эта задача иногда может быть решена довольно просто — путем запуска и остановки генератора (см. рис. 8.22). Однако далеко не всегда допускается останавливать работу тактового генератора, от которого работает вся схема. В случае же кварцевого генератора его остановка и запуск вообще никогда не применяются, так как такой генератор начинает работать после разрешения с задержкой, равной нескольким периодам тактовой частоты, причем количество этих периодов не постоянно. Поэтому будем считать, что тактовый генератор работает постоянно, а по внешнему управляющему сигналу мы будем разрешать или запрещать прохождение его выходных импульсов (рис.7.10).

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

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


Рис. 7.10. Синхронизация сигнала разрешения

Триггеры позволяют также строить линии задержки цифровых сигналов, для чего несколько триггеров соединяется в последовательную цепочку, причем все они тактируются единым тактовым сигналом С. Такое включение позволяет, например, одновременно обрабатывать комбинационными схемами несколько последовательных во времени состояний какого-то одного сигнала.

В качестве примера на рис. 7.11 приведена схема, которая выделяет во входном сигнале 3-х тактовую последовательность 010. Цепочка из трех триггеров Т1, Т2 и Т3, тактируемых единым синхросигналом, запоминает три последовательных состояния входного сигнала. Например, если на выходе триггера Т2 будет зафиксировано состояние входного сигнала в N-ом такте, то на выходе триггера Т1 будет состояние входного сигнала в такте (N+1), а на выходе триггера Т3 — в такте (N–1). Из-за конечной величины задержки переключения триггеров в каждый следующий триггер входной сигнал будет переписываться еще до того как он поменяет свое значение вследствие переключения предыдущего триггера.


Рис. 7.11. Выделение 3-тактовой последовательности тактов во входном сигнале

Подавая выходные сигналы триггеров (прямые или инверсные в зависимости от нужных уровней) на элемент И с нужным числом входов, можно зафиксировать любую 3-х тактовую последовательность во входном сигнале. Для предотвращения появления паразитных импульсов в выходном сигнале (они возможны, так как входные сигналы элемента И изменяются почти одновременно) применяется выходной триггер Т, тактируемый тем же самым общим синхросигналом. На выходе триггера Т получаем единичный сигнал, соответствующий последовательности 010 во входном сигнале. Правда, этот выходной сигнал будет задержан относительно конца выделяемой последовательности 010 на два такта.

Конечно, применение триггеров не ограничивается рассмотренными примерами, все области их применения трудно даже перечислить. Мы же рассмотрим здесь еще несколько примеров использования триггеров.


Рис. 7.12. Формирователь короткого импульса по фронту входного сигнала

D-триггер позволяет довольно просто формировать выходной короткий импульс по фронту входного сигнала. Для этого даже не нужно никаких времязадающих RC-цепочек. Длительность выходного импульса определяется задержкой срабатывания триггера. Формирователь короткого импульса по положительному фронту входного сигнала ( рис. 7.12) образуется путем подачи выходного сигнала триггера на вход сброса.

По положительному фронту на входе С триггер перебрасывается в единицу, но выходной сигнал триггера по цепи обратной связи тут же сбрасывает его обратно в нуль. Преимуществом данной схемы является то, что триггер имеет как прямой, так и инверсный выходы, поэтому мы получаем как положительный короткий импульс, так и отрицательный. В некоторых случаях в цепь этой обратной связи надо включать дополнительный инвертор для устойчивой работы схемы. Например, триггеры серии К155 не требуют инвертора, а триггеры серии КР1533 — требуют.


Рис. 7.13. Схема разделения коротких и длинных входных импульсов

Применение триггеров совместно с другими микросхемами часто позволяет избежать появления паразитных коротких импульсов, обеспечить надежную и уверенную работу схемы. Например, на рис. 7.13 представлена схема, которая различает короткие и длинные импульсы, приходящие на ее вход. Такая схема позволяет применять одну линию связи для передачи двух сигналов разного назначения, что бывает очень удобно при связи устройств, находящихся на большом расстоянии.

На вход схемы поступают короткие импульсы (длительностью tк) и длинные импульсы (длительностью tд). Конечно, на передающем конце надо обеспечить, чтобы эти импульсы формировались по очереди и с не слишком малой задержкой друг относительно друга. На выходе схемы формируются два сигнала, один из которых соответствует приходу короткого входного импульса, а другой — приходу длинного входного импульса.

Для различения входных импульсов используется одновибратор АГ1 с временем выдержки tв, большим tк, но меньшим tд. Применение одновибратора в данном случае оправдано, так как требуемая точность времени выдержки невысока (считаем, что длительности импульсов различаются существенно). Выходные сигналы схемы формируются с помощью двух триггеров, а не простых двухвходовых логических элементов, что полностью исключает появление паразитных импульсов на фронтах.

Принцип работы схемы ясен из приведенной временной диаграммы. Одновибратор запускается по переднему фронту входного сигнала. Выходной сигнал Вых.1, соответствующий приходу длинного импульса, начинается по заднему фронту импульса с одновибратора, а заканчивается по окончанию длинного входного импульса. Выходной сигнал Вых. 2, соответствующий приходу входного короткого импульса, начинается по заднему фронту входного импульса, а заканчивается с окончанием импульса с одновибратора.

Триггеры можно также использовать для обработки периодических последовательностей входных сигналов. При этом триггер, тактируемый кварцевым генератором, может очень точно различать частоты следования входных импульсов, то есть выполнять функцию простейшего цифрового фильтра. Такие схемы выгодно отличаются от схем с одновибраторами и времязадающими RC-цепочками возможностью полностью интегрального исполнения и отсутствием какой бы то ни было настройки.

Простейший пример подобной обработки состоит в формировании огибающей входного сигнала. То есть при приходе входного сигнала заданной частоты выходной сигнал должен быть равен единице, а при отсутствии входного сигнала — нулю. Эта задача, как уже отмечалось (см. рис. 3.35г), может быть решена с помощью одновибратора с перезапуском (типа АГ3). Однако применение триггеров значительно увеличивает точность срабатывания и позволяет работать с частотами, близкими к предельным для данного типа триггеров. Схема формирования огибающей состоит всего лишь из двух триггеров, тактируемых внешним синхросигналом, тактом (рис. 7.14). В данном случае предполагается, что частоты входного сигнала и тактового сигнала равны между собой.


Рис. 7.14. Формирователь сигнала огибающей входного сигнала на триггерах

Триггеры включены как двухтактная линия задержки с общим тактовым сигналом С и со сбросом входными сигналами. Первый же входной сигнал последовательности начинает выходной сигнал, а заканчивается выходной сигнал через 1–2 такта после окончания входной последовательности периода тактового сигнала (в зависимости от временного сдвига входного сигнала относительно тактового сигнала). Схема работает с входным сигналом любой частоты, большей половины частоты тактового сигнала (например, при тактовой частоте 10 МГц входной сигнал должен иметь частоту, большую 5 МГц). То есть за половину периода входной частоты не должно приходить больше одного положительного фронта тактового сигнала.

Этот же формирователь огибающей можно использовать в более сложных схемах. Примером может служить фильтр, который позволяет разделить две частоты входного сигнала, пропустить более высокочастотный сигнал и отсечь более низкочастотный (рис. 7.15).

Фильтр состоит из трех триггеров и элемента 2И, работающего в режиме пропускания положительных входных импульсов. Два триггера (левые по рисунку) образуют формирователь огибающей. Третий (правый по рисунку) триггер выдает сигнал пропускания в случае, когда сигнал огибающей непрерывен, то есть когда частота входного сигнала составляет больше половины тактовой частоты. Если в момент прихода положительного фронта входного сигнала сигнал огибающей на выходе второго триггера — нулевой, то пропускающий сигнал на выходе третьего триггера также нулевой и на выход импульсы не проходят. При этом первый входной импульс пропускаемого сигнала на выход не проходит. Цепочка из двух инверторов компенсирует задержку срабатывания третьего триггера, она задерживает входной сигнал перед подачей его на вход выходного пропускающего элемента 2И.


Рис. 7.15. Фильтр для пропускания высокочастотных сигналов на триггерах

Таким образом, фильтр надежно пропускает входные сигналы с частотой, большей половины тактовой частоты, и надежно задерживает сигналы с частотой, меньшей четверти тактовой частоты. Например, при тактовой частоте 10 МГц фильтр будет пропускать сигналы с частотой выше 5 МГц, и задерживать сигналы с частотой ниже 2,5 МГц. С частотами входного сигнала от 2,5 до 5 МГц работа фильтра не будет стабильной, она будет зависеть от временного сдвига между входным сигналом и тактовым сигналом.

Наконец, последняя схема на триггерах, которую мы рассмотрим, предназначена для кодирования входного сигнала в манчестерский код (или код Манчестер-II). Этот код широко используется при передаче сигналов на большие расстояния, в частности, в локальных сетях.


Рис. 7.16. Манчестерское кодирование

Суть манчестерского кодирования иллюстрируется рис. 7.16. Входной сигнал представляет собой последовательность бит равной длительности. В каждом такте передается один бит информации. Манчестерский код заменяет единичный информационный бит на отрицательный переход в центре битового интервала, а нулевой информационный бит — на положительный переход в центре битового интервала. Таким образом, в центре каждого битового интервала сигнала в манчестерском коде обязательно имеется фронт (положительный или отрицательный), который может быть использован приемником этого сигнала для синхронизации приема каждого информационного бита. Поэтому манчестерский код называется самосинхронизирующимся кодом.

Кодировщик (он же шифратор) манчестерского кода (рис. 7.17) включает в себя элемент Исключающее ИЛИ, который, собственно, и производит кодирование, а также три триггера для синхронизации. Один триггер (на рисунке слева) работает в счетном режиме, деля частоту тактового сигнала в два раза. Один триггер (на рисунке в центре) синхронизирует входной информационный сигнал с тактовым сигналом половинной частоты. Наконец, последний, третий триггер (на рисунке справа) синхронизирует выходной сигнал для устранения в нем паразитных коротких импульсов в моменты изменения входного сигнала. Он фиксирует выходной сигнал элемента Исключающее ИЛИ (уже готовый манчестерский код) через четверть периода после изменения входного сигнала Вход 1 (по отрицательному фронту исходного тактового сигнала).


Рис. 7.17. Кодировщик манчестерского кода на триггерах

 

8. Лекция: Регистры: версия для печати и PDA В лекции рассказывается о параллельных регистрах и регистрах сдвига, об алгоритмах их работы, параметрах, типовых схемах включения, а также о реализации на их основе некоторых часто встречающихся функций.
Регистры (англ. register) представляют собой, по сути, несколько D-триггеров (обычно от 4 до 16), соединенных между собой тем или иным способом. Поэтому принципиальной разницы между ними и отдельными D-триггерами не существует. Правда, триггеры, входящие в состав регистров, не имеют такого количества разнообразных управляющих входов, как одиночные триггеры. На схемах регистры обозначаются буквами RG. В отечественных сериях микросхем регистрам соответствуют буквы ИР. Все регистры делятся на две большие группы (рис. 8.1):
  • Параллельные регистры;
  • Регистры сдвига (или сдвиговые регистры).
Существуют регистры и других типов, но они применяются гораздо реже, чем параллельные и сдвиговые, так как имеют узкоспециальное назначение. В параллельных регистрах (а) каждый из триггеров имеет свой независимый информационный вход (D) и свой независимый информационный выход. Тактовые входы (С) всех триггеров соединены между собой. В результате параллельный регистр представляет собой многоразрядный, многовходовый триггер. Рис. 8.1. Структура параллельного регистра (а)и сдвигового регистра (б) В сдвиговых регистрах (б) все триггеры соединены в последовательную цепочку (выход каждого предыдущего триггера соединен со входом D следующего триггера). Тактовые входы всех триггеров (С) объединены между собой. В результате такой триггер может рассматриваться как линия задержки, входной сигнал которой последовательно перезаписывается из триггера в триггер по фронту тактового сигнала С. Информационные входы и выходы триггеров могут быть выведены наружу, а могут и не выводиться - в зависимости от функции, выполняемой регистром. Параллельные регистры, в свою очередь, делятся на две группы:
  • Регистры, срабатывающие по фронту управляющего сигнала С (или тактируемые регистры).
  • Регистры, срабатывающие по уровню управляющего сигнала С (или стробируемые регистры).
Чаще всего в цифровых схемах используются регистры, управляемые фронтом (то есть тактируемые), однако и стробируемые регистры имеют свой круг задач, в которых их ничто не может заменить. Регистры, срабатывающие по фронту Принцип действия регистров, срабатывающих по фронту тактового сигнала, ничем не отличается от принципа действия D-триггера. По положительному фронту тактового сигнала С каждый из выходов регистра устанавливается в тот уровень, который был в этот момент на соответствующем данному выходу входе D, и сохраняется таковым до прихода следующего положительного фронта сигнала С. То есть если триггер запоминает один сигнал (один двоичный разряд, один бит), то регистр запоминает сразу несколько (4, 6, 8, 16) сигналов (несколько разрядов, битов). Память регистра сохраняется до момента выключения питания схемы. Рис. 8.2. Параллельные регистры стандартных серий, срабатывающие по фронту В стандартные серии входит несколько типов параллельных регистров, срабатывающих по фронту (рис. 8.2). Различаются они количеством разрядов, наличием или отсутствием инверсных выходов, наличием или отсутствием входа сброса (–R) или разрешения записи (–WE), а также типом выходных каскадов (2С или 3С) и, соответственно, наличием или отсутствием входа разрешения –EZ. Иногда на схемах тактовый вход С обозначается WR - сигнал записи в регистр. Большинство регистров имеют восемь разрядов, то есть запоминают один байт информации. Регистр ТМ8 в справочниках обычно называется счетверенным D-триггером (он и в наименовании несет буквы ТМ), хотя он вполне может рассматриваться и как регистр, так как тактовый вход С и вход сброса –R у всех четырех триггеров объединены между собой. Таблицы истинности регистров очень просты и не отличаются принципиально от таблицы истинности D-триггеров. Отличие от триггеров появляется только в случае наличия у регистра дополнительных управляющих входов разрешения записи –WE и разрешения выхода –EZ. В качестве примеров в табл. 8.1 приведена таблица истинности регистра ИР27, а в табл. 8.2 - регистра ИР37. По переходу тактового сигнала С из 0 в 1 (положительный фронт) оба регистра записывают в себя входную информацию.
Таблица 8.1. Таблица истинности регистра ИР27
Входы Выходы
-WE C D Q
0 1
0 1
X Не меняется
Х Не меняется
Х Х Не меняется
Таблица 8.2. Таблица истинности регистра ИР37
Входы Выходы
-EZ C D Q
0 1
0 1
X Не меняется
Х Не меняется
Х Х Z
               

Все регистры, имеющие выход с тремя состояниями, обеспечивают повышенную нагрузочную способность. Задержка переключения регистров примерно соответствует задержке переключения триггеров. Все временные ограничения, накладываемые на входные сигналы в случае триггеров, справедливы и для входных сигналов регистров. Например, не должна быть слишком малой длительность сигнала С, а также не должна быть слишком малой задержка между установлением сигнала D и приходом положительного фронта сигнала С. Иначе работа регистра может быть нестабильной или даже неправильной.

Одно из основных применений регистров состоит в хранении требуемого кода в течение нужного времени. Если для работы остальной части схемы необходимо иметь входной код, который можно легко изменять, то для этого как раз подходит регистр.

На рис. 8.3 показана типичная схема включения регистра для хранения кода и временная диаграмма его работы. Код на входе регистра может изменяться произвольным образом, но в тот момент, когда этот код принимает необходимое значение, на вход С триггера подается синхросигнал (строб), который записывает код в регистр. Этот код будет храниться в регистре до прихода следующего строба. Причем важно и то, что все разряды выходного кода регистра будут переключаться одновременно даже в том случае, когда разряды входного кода переключаются не одновременно. Главное, чтобы к приходу положительного фронта строба (сигнала С) все разряды входного кода приняли нужное, устойчивое значение.


Рис. 8.3. Хранение кода в параллельном регистре

Еще одно важнейшее применение регистров связано с запоминанием нескольких последовательных значений изменяющегося входного кода. Это позволяет, например, сравнивать предыдущее значение кода с последующим значением этого же кода или производить арифметические операции над несколькими последовательными значениями одного и того же кода. То есть регистр в данном случае выступает как элемент линии задержки, хранящей в себе историю поведения входного кода.

Для примера на рис. 8.4 показана схема вычисления разности двух последовательных значений входного кода. Такая задача возникает, в частности, при цифровой обработке аналоговых сигналов. Последовательные значения входного 4-разрядного кода сопровождаются тактовым сигналом, по положительному фронту которого производится запись в два последовательно включенных регистра. Когда на выходе регистра RG1 присутствует N-ое значение входного кода, на выходе регистра RG2 будет (N–1)-ое значение этого же кода.


Рис. 8.4. Схема вычисления разности значений кодов в двух последовательных тактах

Подавая эти два кода с выходов регистров на 4-разрядный сумматор, включенный в режиме вычитания (см. рис. 8.5), мы получаем на выходе сумматора код разности между N-ым значением и (N–1)-ым значением. В данном случае очень удобен регистр ТМ8, имеющий инверсные выходы. Для обеспечения строго одновременного изменения выходных сигналов сумматора можно включить дополнительный выходной регистр RG3, тактируемый тем же самым общим тактовым сигналом. Правда, код разности при этом будет задержан на один такт.

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

Пусть, например, последовательность входных кодов, следующих с периодом T, поступает на вход цепочки из двух узлов, производящих обработку или преобразование этих кодов (рис. 8.5). Узлы эти могут представлять собой комбинационные микросхемы (например, сумматоры) или более сложные устройства, включающие в себя микросхемы счетчиков или микросхемы памяти. Главное состоит в том, что выходные сигналы этих узлов выставляются не мгновенно, а в течение какого-то конечного времени, величина которого определяется внутренним строением узла. Пусть задержка установления выходного кода первого узла равняется t1, а задержка установления выходного кода второго узла составляет t2. Очевидно, что период следования входных кодов T не должен быть меньше, чем сумма этих двух задержек:

T>t1+t2


Рис. 8.5. Работа последовательной цепочки двух узлов

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

Однако можно обойти это ограничение, если воспользоваться принципом конвейера, заставить узлы работать не последовательно, а параллельно. Это достигается включением между узлами регистра, тактируемого входным тактовым сигналом. Еще один регистр целесообразно включить на входе второго узла, что обеспечит длительность устойчивого кода на выходе всего устройства, равную длительности периода тактового сигнала Т (рис. 8.6). В результате ограничение на период тактового сигнала становится более мягким: Т не должно быть меньше максимальной из двух величин t1 и t2 с добавлением времени задержки регистра:

T>max{t1,t2}+tRG


Рис. 8.6. Конвейерная обработка с помощью регистров

То есть к следующему фронту тактового сигнала должен закончить свою работу самый медленный из узлов, и тогда его выходной код будет записан в регистр правильно.

Точно так же можно построить конвейер на любое количество последовательно включенных узлов. Конечно, в результате введения конвейера происходит задержка выполнения полной функции устройства на число тактов, равное числу введенных регистров. Однако в том случае, когда необходимо обрабатывать большие последовательности входных кодов, эта задержка наблюдается только один раз - в самом начале последовательности, а затем уже она не имеет значения.

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

Рассмотрим два примера схем таких вычислителей.

Первая схема известна как накапливающий сумматор, применяющийся, например, в цифровых генераторах аналоговых сигналов. В самом названии схемы отражена ее функция: она суммирует и накапливает результат. Накапливающий сумматор (рис. 8.7) состоит из сумматора и выходного регистра, охваченных обратной связью.


Рис. 8.7. Структура накапливающего сумматора

То есть на один вход сумматора подается код с выходов регистра, а на другой вход - входной код. В результате с каждым следующим фронтом тактового сигнала в регистр записывается код суммы входного кода с предыдущим содержимым регистра, с предыдущей суммой. Например, если входной код равен 3, а в регистре записан код 6, то в следующем такте в регистр будет записан код 9 (то есть 6 + 3), в следующем такте - код 12 (то есть 9 + 3) и т.д. Получается, что на выходе накапливающего сумматора формируется равномерно увеличивающийся двоичный код, и шаг этого увеличения можно менять. В данном случае удобно применять регистр со сбросом, например, ИР35.

Отметим три особенности накапливающего сумматора.

Во-первых, когда выходной код достигает максимальной величины (становится больше 2n, где n - количество разрядов регистра), происходит переполнение схемы и возобновление ее работы с минимальных значений кода. Однако совсем не обязательно в следующем цикле работы будут повторены те же значения кода, что и в предыдущем. Например, пусть n равняется 4, то есть максимальное число на выходе регистра равно 1111 в двоичном коде или 15 в десятичном коде. Пусть входной код равен 3. Тогда после начального сброса регистра выходной код будет нарастать так: 0, 3, 6, 9, 12, 15, 2, 5, 8, 11, 14, 1, 4, .… Это происходит потому, что суммирование чисел 15 и 3 даст 18 или, в двоичном коде, 10010, а так как мы работаем только с младшими четырьмя разрядами, у нас получится 0010 или 2.

Во-вторых, особенность накапливающего сумматора состоит в том, что при больших значениях входного кода (больших половины максимально возможной величины) он может рассматриваться как накапливающий вычитатель. Пусть, например, входной код 4-разрядного сумматора равен 15 (1111 в двоичном коде), а в регистре записано число 13 (1011 в двоичном коде). В следующем такте в регистр запишется сумма 1101 + 1111 = 11100, а без старшего разряда - 1100, то есть 12. То есть выходной код уменьшился на единицу.

Наконец, в-третьих, совсем не обязательно шаг нарастания выходного кода накапливающего сумматора должен быть целым числом (то есть 0, 1, 2, 3, ...). Если в качестве выходного кода берутся не все, а только старшие разряды регистра, то шаг нарастания вполне может быть дробным, например, 0,5, 1,25 или 3,75. Не вошедшие в выходной код разряды будут иметь вес 2-1 (то есть 0,5), 2-2 (то есть 0,25) и т.д. Правда результат суммирования в выходном коде будет представлен с точностью до целых чисел. При этом возможна ситуация, когда в течение нескольких тактов код на выходе не меняется, например, при входном коде 0,5 выходной код будет меняться один раз на два такта, а при входном коде 0,25 - один раз на четыре такта.


Рис. 8.8. Накапливающий сумматор

На рис. 8.8 показана схема 8-разрядного накапливающего сумматора на двух микросхемах сумматоров ИМ6 и одном регистре ИР35. В качестве выходного кода используется только 6 старших разрядов с выхода регистра, поэтому задание шага приращения возможно с точностью до 0,25. Максимально возможная частота тактового сигнала может быть определена по формуле T > tSM + tRG, где Т - период тактового сигнала, tSM - задержка 8-разрядного сумматора, а tRG - задержка регистра.

Последний пример применения регистров, который мы рассмотрим, - это вычислитель максимального значения входного кода. Такой вычислитель, например, может применяться в схемах цифровых осциллографов для измерения амплитуды входного аналогового сигнала.

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


Рис. 8.9. Вычислитель экстремального значения входного кода

В данном случае удобно использовать регистр со входом разрешения записи (ИР27). В регистре сохраняется код экстремума (максимума или минимума), а 8-разрядный компаратор, составленный из двух микросхем СП1, сравнивает содержимое регистра и текущее значение входного кода. Элемент Исключающее ИЛИ выполняет функцию управляемого инвертора, выбирая режим вычисления максимума (единица на управляющем входе) или минимума (нуль на управляющем входе).

Допустим, мы вычисляем максимум. При этом запись в регистр текущего значения входного кода будет производиться только в том случае, когда это текущее значение больше числа, содержащегося в регистре. На выходе ">" компаратора кодов будет тогда сигнал логической единицы, а на входе разрешения записи регистра –WE - сигнал логического нуля. Если же текущее значение входного кода меньше кода, содержащегося в регистре, запись не производится. После окончания входной последовательности кодов (или после окончания одного ее периода при периодической последовательности) в регистре останется максимальное значение входного кода.

Аналогично вычисляется и минимум, только в данном случае в регистр будет записываться не только код, меньший числа в регистре, но и код, равный этому числу. Понятно, что на конечный результат вычисления это никак не повлияет.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.