XNOR и равенство битов
← Все статьи

XNOR и равенство битов

4 мин

Зеркальное отражение XOR

XOR выдаёт 1, когда его входы различаются; XNOR — его точная противоположность: XNOR(A,B) = ¬(A⊕B) — выдаёт 1, когда A и B равны (оба 0 или оба 1), и 0, когда они различаются. Поэтому его иногда называют вентилем «эквивалентности» или «совпадения».

Один вентиль — одна проверка равенства бит

Два случая совпадения, два случая несовпадения:

  • XNOR(0,0) = 1 и XNOR(1,1) = 1 — биты совпадают.
  • XNOR(0,1) = 0 и XNOR(1,0) = 0 — биты не совпадают.
  • Сравнение двух многобитных чисел — это ровно N вентилей XNOR, по одному на разряд, за которыми следует AND от всех N выходов: AND равен 1, только если совпала каждая пара битов.

Где это уже применяется

Блоки компаратора в Boolflow используют внутри ровно эту структуру «XNOR, затем AND», чтобы вычислить выход равенства, а проверка чётности на приёмной стороне передачи — это по сути XNOR принятого бита чётности со свежевычисленным: несовпадение сигнализирует о повреждённом бите.

Попробуйте сами

Соберите 4-битный проверщик равенства в редакторе схем из четырёх вентилей XNOR, подающих сигнал на один AND4, подключите к нему две 4-битные группы переключателей INPUT и с помощью инструмента «Таблица истинности» убедитесь, что выход равен 1 ровно в тех 16 случаях, где оба входа идентичны.

Сравнить два бита вентилем XNOR →