Цифровые компараторы
← Все статьи

Цифровые компараторы

5 мин

Что выдаёт компаратор

Компаратор принимает два двоичных числа, A и B, и выдаёт три взаимоисключающих выхода: A>B, A=B и A<B — ровно один из них активен для любой пары входов.

1-битный компаратор из вентилей

Для однобитных A и B все три выхода сводятся к простым булевым выражениям:

  • A=B → ¬(A ⊕ B) (XNOR — равенство, когда оба бита совпадают)
  • A>B → A · ¬B (равно 1 только когда A=1 и B=0)
  • A<B → ¬A · B (равно 1 только когда A=0 и B=1)

Каскадирование битов в 4-битный компаратор

Сравнение многобитных чисел идёт от старшего бита вниз: если старшие биты уже различаются, это одно уже решает результат, независимо от всех младших битов. Только когда старшие биты равны, сравнение должно перейти к следующему биту. 4-битный компаратор соединяет четыре однобитных каскада компаратора с этой приоритетной логикой — тот же принцип каскадирования, что используется в приоритетных энкодерах.

Компаратор против вычитателя

Вычитатель (построенный из полных сумматоров, как в статье «Полусумматор и полный сумматор») тоже может сказать, какое число больше — если A−B уходит в заём, A было меньше — но выделенный компаратор проще и быстрее, когда нужен только результат сравнения, а не сама числовая разность.

Где они применяются

Компараторы управляют условными переходами в процессоре (сравнение регистра с нулём или с другим регистром), логикой проверки границ в контроллерах памяти и обнаружением порога в системах управления. Встроенные блоки Boolflow Comparator (1-бит) и CMP4 (4-бит) реализуют ровно это — загрузите пример компаратора и переключайте входы, чтобы увидеть, как GT/EQ/LT меняются в реальном времени, затем проверьте поведение по таблице истинности.

Загрузить пример схемы компаратора