Преобразователь обратного кода в прямой

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

 

6.4.6 Построение преобразователя двоичного кода в двоично-десятичный

Десятичные сумматоры применяются в тех случаях, когда числа X и Y представлены в десятичной системе счисления двоично-десятичным кодом 8-4-2-1 и требуется представлять сумму S в этом же коде. Числа X и Y записываются в виде:

Х’=хn,...х1х0 Y’=yn,... у10

Код 8 - 4 - 2 - 1 неудобен для выполнения арифметических операций, в частности из-за сложности обнару­жения переноса в следующую тетроду при Хр + Yр > 10. При вычитании десятичных чисел X' и Y’ дело обстоит еще сложнее – требуется вводить преобразователь кода 8 - 4 - 2 - 1 отрицательных чисел в допол­нение до 9 (или до 10).

Десятичные сумматоры для сложения и вычитания чисел Х и Y можно построить на двоичных суммато­рах, если использовать код с избытком 3. Код 8 - 4 - 2 - 1 для числа Хр + 3 называется кодом с избытком 3 числа Хри обозначается через {Ар}. Для сложения 4-разрядных двоичных кодов {Хр} и {Yр} можно использовать 4-разрядные двоичные сумматоры.

Рассмотрим особенности сложения положительных чисел Ар и Yр в коде с избытком 3. Если Хр + Yр > 10, то {Хр} + {Yр} = Хр + 3 + Yр + 3 > 16, и на выходе двоичного сумматора возникает перенос Сp+1= 1 в следующий десятичный разряд, а остаток суммы будет равен {Хр} + {Ур} - 16, в то время как он должен быть равен

{Xp+Yp-10}=Xp+Yp-10+3={Xp}+{Yp}-16+3.

Поэтому к остатку суммы {Xp}+{Yp}-16 следует прибавлять число 3.

Если Хр + Yр < 10, то {Xp}+{Yp}<16 и на выходе двоичного сумматора перенос отсутствует (Cp+1 = 0), а сумма {Хр} + {Yр} = {Хр + Yр} + 3. Поэтому из суммы {Хр} + {Yр} следует вычесть число 3, чтобы получить величину {Хр + Yр}, которая является кодом с избытком 3 суммы Хр+Yр. Вычитание какого-либо числа эквивалентно сложению его с дополнением до 2n, поэтому вместо вычитания числа 3 можно прибавить число 24 – 3 = 13 = 1101.

Таким образом, если перенос возникает, то к остатку суммы следует прибавить число 3, а если он от­сутствует, то к сумме следует прибавить число 13. Итак, одноразрядный десятичный сумматор для деся­тичных разрядов, представленных в коде с избытком 3, описывается соотношениями:

(6.6)

где Cp+1 — перенос в следующий десятичный разряд; {Sp}значение р-го десятичного разряда суммы чисел X и Y; Ср = 0 или 1 – перенос из предыдущего десятичного разряда. Сложение с числами 3 и 13 называется коррекцией суммы. Из соотношения (6.6) видно, что вычисление суммы {Sp}можно вы­полнить с помощью двух последовательно включенных 4-разрядных двоичных сумматоров: первый сумматор вычисляет вспомогательную сумму

и перенос Сp+1, а второй сумматор – сумму

так как Cp+1 Cp+1 Cp+1 1 = 13 при Ср+1 = 0 и Ср+1Cp+1Cp+1 1 = 3 при Cp+1 = 1. Такое устройство называ­ется сумматором кодов с избытком 3.

Рассмотрим теперь вычитание n-разрядных десятичных чисел X и Y с использованием кода с избытком 3.

Так как S’=X-Y=X-10n+(10n-Y)= X-10n+W , где W=10n-Y,

То вычитание из X числа Y эквивалентно сложению X с дополнением Y до 10n с коррекцией результата на 10n.

При Х ³ 5 надо производить сложение числа Х (x4, x4, x4 , x4) с числом 3. Таким образом, данный преобразователь выполняет функцию Y = X, если 0 £ Х £ 4 и Y = X + 3, если 5£ Х£9.

 

Таблица 6.3Таблица истинности преобразователя

двоичного кода в двоично-десятичный

Х4 Х3 Х2 X1 Y4 Y3 Y2 Y1

 

Построим преобразователь двоично-десятичного кода в двоичный на ЛЭ.

Для получения логических выражений представим переменные Y1, Y2, Y3, Y4 в форме таблиц Вейча:

 

Тогда для Y4 можно записать: , или иначе:

.

Аналогично, для остальных Y:

 

 

Теперь при помощи полученных логических выражений на элементах И-НЕ построим преобразователь двоичного кода в двоично-десятичный код (рис. 6.25).

 

Рис. 6.25 Схема преобразователя двоичного кода в двоично-десятичный код

Рис. 6.26 Блок преобразователя двоичного кода в

двоично-десятичный код

Рис. 6.27 Заданная последовательность входных сигналов

для схемы (рис. 6.20)

Рис. 6.28 Временные диаграммы для преобразователя двоичного кода в двоично-десятичный код

Рис. 6.29 Преобразователь двоичного кода в двоично-десятичный код в пакете MAX+Plus II

Рис. 6.30 Временные диаграммы

Рис. 6.31 Матрица временных задержек

Программа:

SUBDESIGN preobraz_dvoichnogo_v_dvoichno_desayt

(

X[3..0] : INPUT;

Y[3..0] : OUTPUT;

)

BEGIN

IF X[3..0] <= B"0100"

THEN Y[3..0] = X[3..0];

ELSE Y[0] = X[0];

TABLE

X[3..1] => Y[3..1];

B"010" => B"101";

B"011" => B"110";

B"100" => B"111";

END TABLE;

ENDIF;

END;

Примечание. В пакете Max+ Plus2 имеются микросхемы, реализующие преобразование из двоичного кода в двоично-десятичный и обратно (74184/74185).








Дата добавления: 2015-04-25; просмотров: 2791;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.016 сек.