вход Вход Регистрация



Преобразование прямого кода в дополнительный (дополнение числа до 2n) реализуется сложнее. В этом случае операция преобразования не является поразрядной, и для определения значения кода в каком-либо разряде требуется анализ значений других разрядов. Для получения дополнительного кода нужно проинвертировать все разряды преобразуемого кода и затем прибавить к результату единицу (рисунок 3.1, б).

 

Рисунок 3.1 – Схемы преобразователей прямого кода в обратный (а),

дополнительный (б) и кода 8421>2421 (в)

Сопоставление прямого и дополнительного кодов показывает, что последний отличается от первого инвертированием старших разрядов от n-1 до i+l включительно, где i – номер первого справа разряда, содержащего единицу. Остальные разряды оста­ются неизменными. Например, для прямого кода 10100100 допол­нительным будет код 01011100. Аналитически это правило записы­вается в виде:

 

согласно чему для получения i-гo разряда дополнительного кода нужно сложить по модулю 2 исходный код этого разряда с дизъюнкцией всех предыдущих (младших) разрядов. Знаковый разряд преобразуемого кода может использоваться как управляющий сигнал (рисунок 3.1, б).

С ростом объемов постоянных запоминающих устройств стало рациональным выполнять преобразователи кодов на основе памяти (табличным методом). Таблица преобразования двоично-десятичных кодов в двоичные в пределах полутора тетрад, не включающая младших разрядов, одинаковых для обоих кодов, имеет следующий вид:

 

Таблица 3.1 – Преобразования двоично-десятичных кодов

Десятичные числа Входы

 

а5 а4 а3 а2 а1

 

Строб

 

Выходы

 

z5 z4 z3 z2 z1

0,1

 

2,3

4,5

6,7

8,9

10,11

12,13

14,15

…. …..

38,39

0 0 0 0 0

 

0 0 0 0 1

0 0 0 1 0

0 0 0 1 1

0 0 1 0 0

0 1 0 0 0

0 1 0 0 1

0 1 0 1 0

………………….

1 1 1 0 0

1

 

1

1

1

1

1

1

1

….

1

0 0 0 0 0

 

0 0 0 0 1

0 0 0 1 0

0 0 0 1 1

0 0 1 0 0

0 0 1 0 1

0 0 1 1 0

0 0 1 1 1

………………

1 0 0 1 1

Любые Х Х Х Х Х 0 1 1 1 1 1

Условное обозначение преобразователя кодов показано на рисунке 3.2, а.

Для преобразования кодов большей разрядности собираются схемы с каскадированием рассмотренных шестиразрядных преобразователей.

Схемы для преобразования двух и трех тетрад двоично-десятичного кода (рисунок 3.2, б, в) содержат соответственно 2 и 6 микросхем ПЗУ и имеют логическую глубину 2 и 5.

 

Рисунок 3.2 – Условное обозначение преобразователя кодов (а),

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

 

Покажем правильность функционирования схемы на рисунке 3.2, б. Анализ работы схемы требует знания таблицы ее функционирования.

Выше была для краткости приведена лишь часть таблицы функционирования шестиразрядного преобразователя, однако при необходимости легко получить любую строку этой таблицы, руко­водствуясь следующей закономерностью: в пяти первых строках таблицы выходы совпадают со входами; в пяти следующих строках выходное слово есть входное, из которого вычитается 3; в пяти следующих для получения выходного слова нужно вычесть из вход­ного 6; и наконец, в пяти последних строках выход равен входу за вычетом 9.

Возьмем для примера число 55, которое в двоично-десятичном коде выражается словом 01010101 и в двоичном коде словом 00110111. На рисунке 3.3 показаны сигналы, появляющиеся па выходах и входах шестиразрядных преобразователей при подаче на схему двоично-десятичного кода числа 55, свидетельствующие о правильности функционирования схемы.

С помощью каскадирования строятся и схемы большей разряд­ности. При этом для преобразователя шести тетрад, например, требуется 28 микросхем, а логическая глубина схемы равна 13.

 

Рисунок 3.3 – Пример преобразования конкретного кода

 

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

Таблица 3.2 – Преобразование двоично-десятичного кода в дополнительные

При преобразовании двоично-десятичного кода в дополнение до девяти общими для входного и выходного кодов оказываются вторые разряды справа, а при преобразовании в дополнение до десяти — первые. Поэтому можно применить схемы на рисунке 3.4, где программированию подлежат всего три выхода, которые не были заняты в преобразователе шестиразрядного двоично-десятичного кода в двоичный. Таблица программирования ПЗУ определяется столбцами, отмеченными в таблице символами выходов z6, z7, z8.

 

 

Рисунок 3.4 – Схемы для построения преобразователей кодов

с дополнительными возможностями

 

При работе в режимах преобразования двоично-десятичного кода в дополнение до 9 или 10 вход a5 остается не занятым информационными сигналами и используется как управляющий. Если на него подать нуль, то получится набор входных кодов, по которым запрограммирован один из видов преобразования (например, в дополнение до 9), а если подать единицу, то получится набор входных кодов, по которым запрограммирован другой вид преобразования (рисунок 3.4).

На ПЗУ реализуются и преобразователи двоичных кодов в двоично-десятичные. При этом на входе можно задать шестиразрядные коды (пять входов имеет ПЗУ, а младший разряд — общий для обоих кодов и не нуждается в преобразовании) и получить на выходе двоично-десятичный код в пределах полутора тетрад. Для преобразования слов большей разрядности составля­ются схемы из нескольких шестиразрядных преобразователей.

 

© 2018
  • Сайт "Литературка"
  • мы собираем различную техническую, образовательную, научную литратуру