- •Лабораторная работа № 6 Исследование преобразователей кодов на сумматорах
- •6.1 Теоретическое введение
- •6.2 Пример построения пороговых схем в пакете Multisim
- •6.3 Пример построения мажоритарного элемента в пакете Multisim
- •6.4 Построение преобразователей
- •6.4.1 Прямой, обратный и дополнительный коды
- •6.4.2 Преобразователь прямого кода в дополнительный код
- •6.4.5 Преобразователь обратного кода в прямой
- •6.4.6 Построение преобразователя двоичного кода в двоично-десятичный
- •6.4.3 Преобразователь дополнительного кода в прямой код
- •6.4.4 Преобразователь прямого кода в обратный код
- •6.4.7 Построение преобразователя двоично-десятичного кода в двоичный код
- •6.4.8 Построение преобразователя двоичного кода в код Грея
- •6.5 Моделирование исследуемых схем на эвм с применением пакета Multisim
- •6.7 Контрольные вопросы
6.4.8 Построение преобразователя двоичного кода в код Грея
Преобразование А(х) = (n ,..., р ,..., 1) , где = xp xp , если р = 1, 2, ..., n-1, и р = xn , если р = n, определяет алгоритм построения кода Грея.
Код Грея используют в преобразованиях аналоговых физических сигналов в цифровые сигналы с погрешностью, не превышающей значение младшего разряда двоичного числа X.
Важно:
код Грея относится к таким, в которых
при переходе от любой кодовой комбинации
к следующей изменяется только один
разраяд. Код Грея можно получить по
соотношению
,
где
- значение разряда кода грея,
- значение разряда двоичного кода,
преобразуемого в код грея. Ряд левее
старшего для двоичного кода считается
нулевым.
Пример:
Записать число
в коде Грея. Перепишем это число в
двоичном коде: 1010, тогда преобразование
будет выглядеть следующим образом:
|
1 |
0 |
1 |
0 |
Х |
|
* |
1 |
0 |
1 |
0 |
|
1 |
1 |
1 |
1 |
Х |
(*-всегда
ноль). Сложив столбцы в таблице по модулю
2 и отбросив последний (где есть «Х»),
получили число
или двоичное 1010 в коде Грея. Оно имет
значение 1111. Это можно увидеть и на
временных диаграммах (рис. 6.38)

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

Рис. 6.39 Структура преобразователя двоичного кода в код Грея (блок Bin_to_Gray)

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

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

Рис. 6.42 Матрица временных задержек
Программа:
CONSTANT t=3
SUBDESIGN preobraz_dvoich_v_kod_greay
( X[3..0] : INPUT;
Y[3..0] : OUTPUT;
)
VARIABLE q[3..0] : NODE;
BEGIN
FOR i IN 0 TO t GENERATE
X[i+1] = q[i];
END GENERATE;
q[3] = GND;
Y[3..0] = X[3..0] $ q [3..0];
END;
Преобразование кода Грея в двоичный код описывается выражением xp = p xp+1, если р = 1, 2, ..., n-1, и x = n , если р = n. Схема преобразователя А(х) для четырехразрядных двоичных чисел Х = (x4, х3, x2, x1) показано на рис. 6.43.
Пример: Получить из числа 1011, записанного в коде Грея, его двоичное значение.
|
1 |
0 |
1 |
1 |
|
1 |
1 |
0 |
1 |
Тут нужно пояснить. Бинарное число в старшем разряде всегда будет иметь то значение, которое было в старшем разряде кода Грея. Остальные значения получаются после сложения по модулю 2 соответствующих разрядов (если записаны как в таблице, тогда по диагонали).

Рис. 6.43 Работа преобразователя кода Грея в двоичный код (*)

Рис. 6.44 Внутренняя структура элемента Gray_to_Bin
(преобразователя кода Грея в двоичный код)
(*) Примечание. Для получения кода Грея, из которого нужно получить двоичный код, можно воспользоваться рассмотренным в предыдущем примере преобразователем двоичного кода в код Грея (модуль Bin_to_Gray).

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

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

Рис. 6.46 Матрица временных задержек
Программа:
CONSTANT t=3;
SUBDESIGN
( X[3..0] : INPUT;
Y[3..0] : OUTPUT;
)
BEGIN
Y[3] = X[3];
FOR i IN 0 TO t GENERATE
y[t-1] = X[t-1] $ Y[t+1-i];
END GENERATE;
END;
