Цифровой компаратор

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Цифрово́й компара́тор или компара́тор ко́дов логическое устройство с двумя входами, на которые подаются два разных двоичных слова равной в битах длины и тремя двоичными выходами, на которые выдаётся признак сравнения входных слов, — первое слово больше второго, меньше или слова равны.

Может быть построен на логических элементах, работа которых основана на самых различных физических принципах, но современные компараторы обычно представляют собой полупроводниковые электронные устройства.

Промышленностью компараторы выпускаются в виде законченных компонентов — микросхем с разной длиной сравниваемых слов и других параметров. Примеры микросхем цифровых компараторов: КМОП-логика — 4063 и 4585, ТТЛ — 7485 и 74682-89 и многие другие.

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

Аналоговым эквивалентом цифрового компаратора является аналоговый компаратор напряжений или токов. Некоторые микроконтроллеры имеют входные встроенные аналоговые компараторы, состояние выходов которых может быть считано программой контроллера или вызывать её прерывание подпрограммой.

Логические функции[править | править вики-текст]

Для примера рассмотрим два 4-х битных слова A и B, пусть эти слова представляют собой некоторые натуральные числа, представленные в двоичном виде, причем 3-й разряд будет старшим:

A=A_3,A_2,A_1,A_0,
B=B_3,B_2,B_1,B_0

Здесь каждая буква с нижним цифровым индексом представляет один из битов в числах.

Равенство (эквивалентность)

Двоичные числа A и B будут равны, если все пары соответственных битов обоих чисел равны, то есть:

A_3=B_3, A_2=B_2, A_1=B_1 и A_0=B_0.

В двоичной записи чисел их цифры это или 0, или 1. Булева функция для равенства любых двух цифр A_i и B_i (здесь логическая операция «ИЛИ» обозначена символом +, а «И» символом точки) может быть выражена как:

x_i= A_i \cdot B_i + \overline{A}_i \cdot \overline{B}_i.

При этом x_i равна 1 только если A_i и B_i равны.

Для равенства A_i и B_i, все функции x_i (для i = 0, 1, 2, 3) должны быть равны 1.

Поэтому признак равенства A_i и B_i записывается в виде логической функции как

\ (A=B) = x_3 \cdot x_2 \cdot x_1 \cdot x_0.

Двоичная функция (A=B) равна 1 только если все пары цифр двух чисел равны.

Неравенство (неэквивалентность)

Чтобы определить наибольшее из двух двоичных чисел, мы рассмотрим отношение величин пар значащих цифр, начиная со старших битов к младшим битам до нахождения неравенства в некоторой позиции. Когда неравенство найдено, то, если соответствующий бит A равен 1 и такой же бит B равен 0, то мы считаем, что A>B.

Это последовательное сравнение может быть выражено логическими выражениями как:

(A>B)=A_3 \cdot \overline{B}_3+x_3 \cdot A_2 \cdot \overline{B}_2+x_3 \cdot x_2 \cdot A_1 \cdot \overline{B}_1+x_3 \cdot x_2 \cdot x_1 \cdot A_0 \cdot \overline{B}_0,
(A<B)=\overline{A}_3 \cdot B_3+x_3 \cdot \overline{A}_2 \cdot B_2+x_3 \cdot x_2 \cdot \overline{A}_1 \cdot B_1+x_3 \cdot x_2 \cdot x_1 \cdot \overline{A}_0 \cdot B_0.

(A>B) и (A<B) — выходные двоичные переменные, которые равны 1 когда A>B или A<B соответственно.

Таблицы истинности компаратора[править | править вики-текст]

Для примеров приведены таблицы истинности тривиального однобитового и двухбитового компараторов.

Логическая функция однобитового цифрового компаратора описывается таблицей истинности:

Входы Выходы
A B A<B A=B A>B
0 0 0 1 0
0 1 1 0 0
1 0 0 0 1
1 1 0 1 0

Таблица истинности двухбитового компаратора:

Входы Выходы
A_1 A_0 B_1 B_0 A<B A=B A>B
0 0 0 0 0 1 0
0 0 0 1 1 0 0
0 0 1 0 1 0 0
0 0 1 1 1 0 0
0 1 0 0 0 0 1
0 1 0 1 0 1 0
0 1 1 0 1 0 0
0 1 1 1 1 0 0
1 0 0 0 0 0 1
1 0 0 1 0 0 1
1 0 1 0 0 1 0
1 0 1 1 1 0 0
1 1 0 0 0 0 1
1 1 0 1 0 0 1
1 1 1 0 0 0 1
1 1 1 1 0 1 0

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]