Зеркальное отражение 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 случаях, где оба входа идентичны.