Дешифратор (decoder) – комбинационная схема (КС), выполняющая преобразование (n + 1)-разрядного кода X = xn xn-1…x0 (представляющего собою натуральное число) в (m + 1)-разрядный унитарный код Y (унитарный код Y = ym ym-1…y0, – код, у которого во всех разрядах стоят нули, а в разряде номер X записана единица).

Дешифратор, у которого m + 1 = 2n+1, называют полным. Говорят, что полный дешифратор выполняет преобразование (n + 1) ® (m + 1), например 3 ® 8, когда трехразрядный двоичный позиционный код трансформируется в восьмиразрядный унитарный. Дешифратор, у которо­го m + 1 < 2n+1, называют неполным. Таким является, к примеру, двоично-десятичный дешифратор.

На рис. 1.1 показано условно-графическое обозначение (УГО) для дешифратора. Здесь xnxn-1…x0 – преобразуемый код, ym ym-1…y0 – результат преобразования. Вход Е – разрешающий (стробирующий). На него подается сигнал z так, что при z = 1 дешифратор реализует свою функцию, а при z = 0 на всех выхо­дах дешифратора , независимо от входного набора.

Рис. 1.1. Условно-графическое обозначение дешифратора

Аналитически функция полного дешифратора задается так:

, (1.1)

.

Как известно, в половине из 2n+1минтермов (1.1) каждый аргумент записан прямо, а в другой половине – под знаком инверсии. Поэтому в состав дешифратора обычно включают усилители-инверторы для каждого хk так, как это показано на рис. 1.2, тем самым формиру­ют и прямое, и инверсное его значение, а кроме того, еще и снижают до единицы нагрузку на источник сигнала хk.

Рис. 1.2. Усилители-инверторы

На рис. 1.3 показан дешифратор 3 ® 8, построенный по формулам (1.1). Такой дешифратор называется линейным, поскольку он представляет собою линейку конъюнкторов, а каждый конъюнктор вычисляет один из минтермов системы (1.1).

Рис. 1.3. Дешифратор 3 ® 8

На рис. 1.4 приведены возможные способы стробирования дешифраторов. На рис. 1.4, а сигнал z поступает на все конъюнкторы. Такой способ стробирования не вносит дополнительной задержки, но требует увеличения числа входов конъюнкторов. На рис. 1.4, б к (m + 1) основным конъюнкторам добавлены еще два, один из них реализует операцию x = z, а второй – операцию (здесь k = 2, хотя оно может быть и другим). При z = 0 обе эти конъюнкции имеют результатом нуль, которым закрываются все основные конъюнкторы декодера. Такой способ стробирования не связан с увеличением числа входов конъюнкторов, но увеличивает задержку в формировании выходного кода.

Рис. 1.4. Возможные способы стробирования дешифраторов

В номенклатуру интегральных микросхем (ИС) той или иной серии наряду с другими узлами входят и дешифраторы. В ТТЛШ-сериях дешифраторы обычно имеют инверсные выходы, в КМДП-сериях – прямые. ИС декодеров имеют малую разрядность и выполняют преобразования 2 ® 4 (два таких декодера в одном корпусе ИС), 3 ® 8 и редко 4 ® 16. Из таких малоразрядных схем приходится строить дешифраторы требуемой разрядности. К примеру, на рис. 1.5 показано, как из дешифраторов 2 ® 4 построить декодер 4 ® 16. Здесь заданный входной код x3x2x1x0 разбивают на две части x3x2 и x1x0. Старшие цифры x3x2 подают на вход дешифрато­ра DCz, который управляет работой дешифраторов DC3, DC2, DC1 и DC0 по их входам Е. На информационные входы этих дешифраторов подаются младшие цифры входного кода x1x0. Подобные дешифраторы называются двухступенчатыми. На рис. 1.6 приведен еще один способ построения двухступенчатого дешифратора 4 ® 16. Здесь каждая пара цифр x3x2 и x1x0 входного кода обрабатывается своим декодером DCY и DCX, со­ответственно. Это первая ступень преобразования. Выходы этих деши­фраторов образуют сеть из вертикальных и горизонтальных линий, а в узлах этой сетки включены двухвходовые конъюнкторы. Они образуют матричный дешифратор второй ступени. Стробируют двухступенчатые дешифраторы по разрешающему входу декодера первой ступени.

Шифратор (encoder) – КС, которая реализует функцию, обратную функции дешифратора [преобразует (m + 1)-разрядный уни­тарный код в позиционный код длиною в (n + 1) разрядов]. Таким образом, можно говорить, что шифратор выполняет преобразование (m + 1) ® (n + 1).

Рис. 1.5. Декодер 4 ® 16, состоящий из дешифраторов 2 ® 4

Рис. 1.6. Двухступенчатый дешифратор 4 ® 16

На рис. 1.7, а представлено условное графическое обозначение шифратора 8 ® 3, а на рис. 1.7, б – его функциональная схема. Как видим, здесь

(1.2)

то есть единица из разряда номер X входного унитарного кода Y коммутируется на дизъюнкторы тех разрядов выходного позиционного кода, которые содержат единицы в двоичном изображении X. Скажем, x5 ис­пользуется и при формировании у2, и при формировании у0. Отметим, что цифра x0 не участвует в формировании выходного кода шифратора.

Рис. 1.7. Условное графическое обозначение и функциональная схема шифратора

Шифраторы, как и дешифраторы, допускают каскадное построение для достижения требуемой разрядности.

Преобразователи произвольных кодов.

В общем случае преобразователь кода – КС, которая выполняет трансформацию входного (n + 1)‑разрядного кода, построенного по одному закону, в выходной – (m + 1)‑разрядный код, построенный по другому закону. Трансформа­цию кода X = xnxn-1…x0 в код Y = ymym-1… y0 всегда можно описать таблицей, в которой каждому значению xn xn-1…x0 ставится в соответствие значение ymym-1…y0. Входы этой таблицы можно рассматривать – как перечень наборов логических переменных xnxn-1… x0, а каждую цифру уi выходного кода ymym-1…y0 – как значение ПФ yi(xn, xn-1,…, x0). С помощью этой таблицы можно синтезировать КС, свою для каждого уi, i = .

Пусть, например, преобразование Y = f(X) задано графиком на рис. 1.8. По этому графику составлена табл.1.1. А теперь, рассматривая каждую колонку уi, i = как ПФ от переменных x2x1x0, можно построить для них схемы в заданном базисе.

Таблица 1.1

Табличное представление преобразования У = f(X), заданного графиком (рис. 1.8)

X, α

Y

y1

y2

y3

0

0

0

0

0

1

2

0

1

0

2

1

0

0

1

3

0

0

0

0

4

0

0

0

0

5

-2

1

1

0

6

-1

1

1

1

7

0

0

0

0

Рис. 1.8. Преобразование Y = f(x)