- •Лабораторная работа № 6 Исследование преобразователей кодов на сумматорах
- •6.1 Теоретическое введение
- •6.2 Пример построения пороговых схем в пакете Multisim
- •6.3 Пример построения мажоритарного элемента в пакете Multisim
- •6.4 Построение преобразователей
- •6.4.1 Прямой, обратный и дополнительный коды
- •6.4.2 Преобразователь прямого кода в дополнительный код
- •6.4.3 Преобразователь дополнительного кода в прямой код
- •6.4.4 Преобразователь прямого кода в обратный код
- •6.4.5 Преобразователь обратного кода в прямой
- •6.4.6 Построение преобразователя двоичного кода в двоично-десятичный
- •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;