ПТЦА - Лекции / Лекция 6
.pdf
Синтез устройства сравнения кодов (компараторов)
Компараторы вырабатывают управляющие сигналы, на основе которых принимаются те или иные решения. В основу их работы положен некоторый алгоритм сравнения двух совокупностей данных. Простейшие компараторы формируют на выходе однобитовый сигнал равенства — 1 или неравенства — 0 двух чисел. Более сложные компараторы, в случае неравенства определяют, которое из чисел больше.
Операция сравнения двух чисел по модулю, знаку и порядку очень часто встречается при обработке информации в цифровых системах при решении задач контроля информации, при сравнении значений выходных сигналов дублированных каналов, для формирования управляющих сигналов при выходе заданных параметров за пределы допустимых значений, при выполнении логических операций. Операция сравнения определяет равенство и неравенство двух чисел. Соотношения между числами в позиционных системах счисления, в которых вес любого старшего разряда больше веса любого младшего, довольно просто могут быть установлены на основании последовательного сравнения разрядов. Сравнения чисел можно проводить, начиная как с младшего, так и со старшего разряда. Первый вариант сравнения чисел предпочтительнее, поскольку допускается естественный способ наращивания их разрядности.
Пусть необходимо построить схему сравнения двух 8-ми разрядных чисел. Особенность задачи в том, что для её решения практически невозможно построить таблицу: число строк в ней должно быть 2 8 8 =65536 . Простейшим и наиболее распространенным алгоритмом обработки многоразрядных чисел являются такие алгоритмы, которые над каждым разрядом числа или пары чисел производят одну и ту же операцию. Два числа равны если попарно равны все их одноименные разряды. Выявленная возможность разбить алгоритм на части позволяет построить структурную схему (рисунок 1).
Рисунок 1 Используем схему сложения по модулю 2. Учитывая, что
a≡b=a Åb ,
получаем
a1≡b1 a2≡b2 a3≡b3 ... a8≡b8 =
= a1 Åb1 a2 Åb2 a3 Åb3 ... a8 Åb8 =
= a1 Åb1 a2 Å b2 a3 Åb3 ... a8 Åb8 .
Это решение показано на рисунке 2. Схемы на 8 элементов ИЛИ-НЕ не существует, поэтому используются 2 на четыре входа.
Рисунок 2
Рисунок 3 Можно производить сравнение кодов с помощью вычитающих сумматоров,
однако это будет уменьшать быстродействие из-за увеличения времени выполнения операций в арифметических устройствах. Поэтому пользуются специальными комбинационными схемами, позволяющими реализовать все операции сравнения, в частности определение равенства или неравенства кодов. Рассмотрим сравнение двух одноразрядных чисел а и b по всем видам операций сравнения. В таблице 1 приведены функции сравнения одноразрядных чисел.
Таблица 1
ai |
|
bi |
|
F a=b |
|
F a≠b |
|
F a b |
F a b |
0 |
0 |
|
1 |
|
0 |
|
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
0 |
|
1 |
|
0 |
|
1 |
|
|
|
|
|
|
|
|
|
|
1 |
0 |
|
0 |
|
1 |
|
1 |
|
0 |
|
|
|
|
|
|
|
|
|
|
1 |
1 |
|
1 |
|
0 |
|
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
Из таблицы 1 легко получить признаки равенства и неравенства разрядов всех функций сравнения:
F |
a=b |
=a |
b |
i |
a |
b |
i |
; |
F |
a≠b |
=a |
b |
a |
b |
i |
; |
||||||
|
i |
|
|
b |
i |
|
|
i |
i |
|
b |
i |
|
|||||||||
|
F |
a b |
=a |
i |
; |
|
|
|
F |
a b |
=a |
i . |
|
|
||||||||
|
|
|
|
|
i |
|
|
|
|
|
|
i |
|
|
|
|||||||
Функциональная схема устройства, синтезированного с учетом полученных выражений, приведена на рисунке 4.
Рисунок 4 — Схема устройства сравнения одноразрядных чисел. Используя данный принцип, можно построить схемы сравнения многоразрядных двоичных чисел. В сериях цифровых элементов обычно имеются компараторы с тремя выходами: «равно», «больше» и «меньше».
Как было сказано выше, компаратор можно на основе сумматора, выполнив на
нем операцию вычитания А−В |
и проанализировав результат. Он имеет три |
выхода: «A>B», «A=B» и «A<B» и в зависимости от соотношения величин A и |
|
B активный уровень появляется |
на одном из этих выходов. Для этого на |
сумматор нужно число В (в отличие от числа А) подать в инверсной форме (т. е. заменив в нем все нули единицами, а все единицы — нулями), а на вход переноса P сумматора подать единицу. Тогда выходной перенос P1 будет равен 0 лишь в том случае, когда А строго меньше В. Равенство суммы 0 будет признаком того, что А=В . Единица переноса при ненулевой сумме говорит о том, что А строго больше B. Сказанное иллюстрируют примеры:
Правила справедливы, если числа А и В рассматриваются как положительные величины, без знака. Если же их старшие разряды трактуются как знаки, то правила будут несколько иные. Их легко вывести самостоятельно. Схема, реализующая описанный алгоритм, показана на рисунке 5.
Рисунок 5 — Компаратор величин:
а) — простейший вариант схемы; б) — выводы корпуса микросхемы компаратора величин.
Три входа «>», «=», «<» предназначены для наращивания разрядности.
