Дешифраторы, шифраторы, преобразователи кодов

Риски в комбинационных схемах

Тема 14. Комбинационные функциональные узлы

Функциональные узлы выполняют типовые для цифровых устройств микрооперации.

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

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

Различают статические и динамические риски. Статические риски – это кратковременные изменения сигнала, который должен был бы оставаться неизменным. Если сигнал должен был оставаться единичным, то говорят о 1-риске, если нулевым – то о 0-риске. Если согласно логике работы комбинационного узла состояние выхода должно измениться, но вместо однократного перехода происходят многократные, то имеет место динамический риск. При динамических рисках первый и последний переходы всегда совпадают с алгоритмическими, предусмотренными логикой работы схемы. Статический риск такого свойства не имеет и считается более неблагоприятным.

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

а б

в г

Рис. 15

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

Для исключения возможных сбоев в работе ЦУ из-за явлений риска имеются два пути. Первый состоит в синтезе схем, свободных от рисков, и требует сложного анализа процессов в схеме и введения избыточных элементов для исключения рисков. Этот путь редко используется в практике.

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

Для определения временного интервала, на котором проходят переходные процессы, следует оценить задержки на путях распространения сигналов от входов к выходам комбинационного узла. Нужно взять пути с минимальной и максимальной задержками. Самый короткий путь до выхода обозначит начало интервала переходных процессов, самый длинный – когда переходные процессы завершатся.

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

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

Дешифраторы

Дешифратор или декодер (decoder), – это комбинационное устройство, предназначенное для преобразования параллельного двоичного кода в унитарный (позиционный) код, т. е. код «1 из N». Дешифраторы относятся к преобразователям кодов. При подаче на вход параллельного двоичного кода активный уровень сигнала появится на том выходе, номер которого соответствует десятичному эквиваленту двоичного кода. При этом в любой момент времени выходной сигнал будет иметь место только на одном выходе дешифратора, т. е. в зависимости от входного двоичного кода на выходе дешифратора возбуждается одна и только одна из выходных цепей.

В зависимости от типа дешифратора, этот сигнал может иметь как уровень логической единицы (при этом на всех остальных выходах уровень логического 0), так и уровень логического 0 (при этом на всех остальных выходах уровень логической 1).

В дешифраторах каждой выходной функции соответствует только один минтерм (конституента едиицы), а количество функций определяется количеством разрядов двоичного числа. Если дешифратор реализует все минтермы входных переменных, то он называется полным дешифратором – дешифратор. На вход такого дешифратора поступает n -разрядное двоичное кодовое слово, а на выходе возникает слово кода «1 из 2 n». Полный дешифратор применяется в том случае, когда необходимо активизировать точно один из выходов, определяемый n -разрядным двоичным числом на входе.

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

Схемотехнически полный дешифратор на входов (переменных) представляет собой совокупность элементов конъюнкции (количество входов каждого элемента И равно) и элементов отрицания (на рис. 16 показана схема полного дешифратора 3×8).

Рис. 16

Дешифраторы часто имеют разрешающий (управляющий, стробирующий) вход ЕN (Enable). При ЕN = 1 дешифратор работает как обычно, при ЕN = 0 на всех выходах устанавливаются неактивные уровни независимо от поступившего входного кода. Вход ЕN часто выполняют инверсным. Дешифратор, имеющий разрешающий вход, иногда называют декодер-демультиплексор. Если входов разрешения несколько, то сигнал разрешения работы образуется как конъюнкция сигналов отдельных входов. Условное графическое обозначение полного двоичного дешифратора показано на рис. 17. В условном обозначении дешифраторов проставляются буквы DC (от английского Decoder). Входы дешифратора принято обозначать их двоичными весами.

Рис. 17

Функционирование дешифратора описывается системой конъюнкций:

Линейный (одноступенчатый) дешифратор имеет наибольшее быстродействие, но его реализация при повышенной разрядности входного кода требует применения логических элементов с большим числом входов, что приводит к увеличению нагрузки на источники входных сигналов и снижению быстродействие логических элементов. Корпуса ИС с большим числом выводов изготовлять сложно, и они дороги. С этой точки зрения дешифраторы относятся к крайне неудачным схемам, так как у них при простой внутренней структуре и малом числе схемных элементов много внешних выводов. Для размещения в обычном недорогом корпусе годится только дешифратор с 4 информационными входами. Более «размерных» дешифраторов в сериях ИС нет.

Малоразрядность стандартных дешифраторов ставит вопрос о наращивании их разрядности. Из малоразрядных дешифраторов можно построить схему, эквивалентную дешифратору большей разрядности. Для построения дешифраторов с большим числом входов используется многоступенчатая схема. Для этого входное слово делится на поля. Разрядность поля младших разрядов соответствует числу входов имеющихся дешифраторов. Оставшееся поле старших разрядов служит для получения сигналов разрешения работы одного из дешифраторов, декодирующих поле младших разрядов. На рис. 18 показан пример двухступенчатого дешифратора 5×32.

Рис. 18

В примере 5-разрядный код разбивается на две группы в 2 и 3 разряда, что определяет структуру всей схемы. Два старших разряда входного кода и расшифровываются дешифратором 2×4 DC5, который по входам ЕN управляет четырьмя дешифраторами 3×8 второго каскада. Младшие разряды входного кода,, поступают на все дешифраторы второго каскада, но разрешенным по входу EN оказывается лишь один из них. Ему и будет принадлежать единственный из всех 32 возбужденный выход. Так, при поступлении кода у DC5 сигнал появится на выходе 1, и по входу EN будет разрешен DC2. Остальные дешифраторы второго каскада будут запрещены. Разряды входного кода вызовут появление 1 на выходе 7 дешифратора DC2, т. е. на выходе 15 всего составного дешифратора, что соответствует заданному входному коду.

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

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

Шифраторы

Шифратор, или кодер (encoder), выполняет функцию, обратную дешифратору. Двоичный шифратор преобразуют код «1 из N» в двоичный. Классический шифратор имеет m входов и n выходов, и при подаче сигнала на один из входов на выходе узла появляется двоичный код номера возбужденного входа. Число входов и выходов полного шифратора связано соотношением. Шифратор можно использовать, например, для отображения в виде двоичного кода номера нажатой кнопки или положения многопозиционного переключателя.

Приоритетные шифраторы выполняют более сложную операцию. При работе ЭВМ и в других устройствах часто решается задача определения приоритетного претендента на пользование каким-либо ресурсом. Несколько конкурентов выставляют свои запросы на обслуживание, которые не могут быть удовлетворены одновременно. Нужно выбрать того, кому предоставляется право первоочередного обслуживания. Простейший вариант решения указанной задачи – присвоение каждому источнику запросов фиксированного приоритета. Например, группа из восьми запросов (R от английского Request) формируется так, что высший приоритет имеет источник номер 7, а далее приоритет уменьшается от номера к номеру. Самый младший приоритет у нулевого источника – он будет обслуживаться только при отсутствии всех других запросов. Если имеются одновременно несколько запросов, обслуживается запрос с наибольшим номером.

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

В промышленных сериях элементов обычно имеются приоритетные шифраторы для восьмиразрядных слов. Функционирование такого шифратора описывается табл. 2.

Таблица 2

                           
    X X X X X X X          
      X X X X X X          
        X X X X X          
          X X X X          
            X X X          
              X X          
                X          
                           
                           
  X X X X X X X X          

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

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

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

которые определяют внутреннюю структуру приоритетного шифратора.

Наращивание размерности приоритетного шифратора показано на рис. 19, на котором изображено наращивание числа входов запросов вдвое (от 8 до 16). При этом показаны шифраторы с инверсными входами и выходами, как это свойственно большинству серий элементов.

Рис. 19

Шифратор 2 – старший по приоритету, его работа всегда разрешена подачей нуля на вход EI2. Если на входах есть хотя бы один запрос, то разрешения на работу младшего шифратора 1 нет (ЕO2 = 1). Выходы шифратора 1 пассивны, т. е. имеют единичные значения. При этом элементы И‑НЕ с номерами 1, 2, 3 играют роль инверторов для сигналов,,. Поэтому на выходах,, схемы в целом формируются сигналы от нуля до семи в зависимости от номера старшего запроса в шифраторе 2, что вместе с единицей на выходе Е02 дает номера от 8 до 15.

Если на входах шифратора 2 запросов нет, он разрешает работу младшего шифратора, вырабатывая сигнал ЕО2 = 0 и приводит свои выходы,, в пассивное единичное состояние. Теперь на выходы,, схемы в целом передаются инвертированные значения выходов,, младшего шифратора, что вместе с нулем в разряде соответствует номерам от нуля до семи.

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

Преобразователи кодов

Преобразователи кодов используются для шифрации и дешифрации цифровой информации – преобразования кода одного типа в другой (например, двоичного кода в код Грея) и имеют n входов и k выходов. Соотношения между числами n и k могут быть любыми: n = k, n > k и n < k. Преобразователи кодов можно разделить на два типа: с невесовым преобразованием и с весовым преобразованием кодов. Примером преобразователей первого типа являются преобразователи двоично-десятичного кода в код семисегментного индикатора десятичных цифр. Преобразователи второго типа используются, как правило, для преобразования числовой информации.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: