stringtranslate.com

XOR-ворота

XOR-вентиль (иногда EOR или EXOR и произносится как Exclusive OR ) — это цифровой логический вентиль , который выдает истинный (1 или HIGH) выход, когда число истинных входов нечетно. XOR-вентиль реализует исключающее ИЛИ ( ) из математической логики ; то есть истинный выход получается, если один и только один из входов вентиля является истинным. Если оба входа ложны (0/LOW) или оба истинны, получается ложный выход. XOR представляет функцию неравенства, то есть выход истинен, если входы не одинаковы, в противном случае выход ложен. Способ запомнить XOR — «должен быть один или другой, но не оба».

XOR-вентиль может служить «программируемым инвертором», в котором один вход определяет, инвертировать ли другой вход или просто передать его без изменений. Следовательно, он функционирует как инвертор ( не-вентиль), который может быть активирован или деактивирован переключателем. [1] [2]

XOR также можно рассматривать как сложение по модулю 2. В результате, вентили XOR используются для реализации двоичного сложения в компьютерах. Полусумматор состоит из вентиля XOR и вентиля AND . Вентиль также используется в вычитателях и компараторах . [3]

Алгебраические выражения или или или все представляют собой вентиль XOR с входами A и B. Поведение XOR суммировано в таблице истинности, показанной справа.

Символы

Существует три схематических символа для вентилей XOR: традиционные символы ANSI и DIN и символ IEC . В некоторых случаях символ DIN используется с ⊕ вместо ≢. Для получения дополнительной информации см. Символы логических вентилей .

«=1» на символе IEC указывает, что выход активируется только одним активным входом.

Логические символы ⊕, J pq и ⊻ могут использоваться для обозначения операции XOR в алгебраических выражениях.

Языки, подобные языку C, используют символ вставки^ для обозначения побитового исключающего ИЛИ. (Обратите внимание, что в этих языках символ вставки не обозначает логическое соединение (И), несмотря на схожесть символа.)

Выполнение

XOR-вентиль чаще всего реализуется с использованием схем MOSFET . Некоторые из этих реализаций включают:

И-ИЛИ-Инвертировать

Элементы XOR могут быть реализованы с использованием логики И-ИЛИ-Инверт ( AOI ) или ИЛИ-И-Инверт (OAI). [4]

КМОП

Ниже показаны реализации вентиля XOR на основе КМОП-структуры, соответствующие логике AOI, описанной выше.

Слева nMOS и pMOS транзисторы расположены так, что входные пары и активируют 2 pMOS транзистора верхнего левого или 2 pMOS транзистора верхнего правого соответственно, подключая Vdd к выходу для логического высокого уровня. Оставшиеся входные пары и активируют каждый из двух nMOS путей внизу к Vss для логического низкого уровня. [5]

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

Реализация AOI без инвертированного входа использовалась, например, в процессоре Intel 386. [6]

Трансмиссионные ворота

Логический элемент XOR также может быть реализован с использованием передающих вентилей с логикой проходного транзистора .

Реализация шлюза передачи вентиля XOR

Эта реализация использует два передающих вентиля и два инвертора, не показанных на схеме, для генерации и для всего восьми транзисторов, на четыре меньше, чем в предыдущей конструкции. Функция XOR реализуется путем передачи на выход инвертированного значения A, когда B имеет высокий уровень, и передачи значения A, когда B имеет низкий логический уровень. Таким образом, когда оба входа имеют низкий уровень, передающий вентиль внизу выключен, а тот, что сверху, включен и пропускает A, который имеет низкий уровень, поэтому выход имеет низкий уровень. Когда оба входа имеют высокий уровень, активен только тот, что внизу, и пропускает инвертированное значение A, и поскольку A имеет высокий уровень, выход снова будет низким. Аналогично, если B остается высоким, но A имеет низкий уровень, выход будет , который имеет высокий уровень, как и ожидалось, а если B имеет низкий уровень, но A имеет высокий уровень, значение A проходит, и выход имеет высокий уровень, завершая таблицу истинности для вентиля XOR. [7]

Компромисс с предыдущей реализацией заключается в том, что, поскольку затворы передачи не являются идеальными переключателями, с ними связано сопротивление, поэтому в зависимости от силы входного сигнала их каскадирование может ухудшить выходные уровни. [8]

Оптимизированная схема проходной логики

Предыдущая реализация передаточного затвора может быть дополнительно оптимизирована с восьми до шести транзисторов путем реализации функциональности инвертора, который генерирует , и нижнего проходного затвора всего с двумя транзисторами, расположенными как инвертор, но с источником pMOS, подключенным к вместо Vdd , и источником nMOS, подключенным к вместо GND. [8]

Оптимизированная передача Gate Logic подключение вентиля XOR

Два крайних левых транзистора, упомянутых выше, выполняют оптимизированную условную инверсию A, когда B находится на высоком логическом уровне, используя логику проходного транзистора для уменьшения количества транзисторов, а когда B находится на низком логическом уровне, их выход находится в состоянии высокого импеданса. Два в середине являются передаточным вентилем , который приводит выход к значению A, когда B находится на низком логическом уровне, а два крайних правых транзистора образуют инвертор, необходимый для генерации, используемой передаточным вентилем и схемой проходного транзистора. [9]

Как и в предыдущей реализации, следует учитывать прямое соединение входов с выходами через проходные транзисторы или через два крайних левых транзистора, особенно при их каскадировании. [8]

Альтернативы

Схема XOR с тремя смешанными вентилями

Если определенный тип вентиля недоступен, схема, реализующая ту же функцию, может быть построена из других доступных вентилей. Схема, реализующая функцию XOR, может быть тривиально построена из вентиля XNOR, за которым следует вентиль NOT . Если мы рассмотрим выражение , мы можем построить схему вентиля XOR напрямую, используя вентили AND, OR и NOT . Однако этот подход требует пяти вентилей трех различных видов.

В качестве альтернативы, если доступны различные вентили, мы можем применить булеву алгебру для преобразования, как указано выше, и применить закон де Моргана к последнему члену, чтобы получить , который может быть реализован с использованием всего четырех вентилей, как показано справа. Интуитивно, XOR эквивалентен OR, за исключением случая, когда оба A и B имеют высокий уровень. Таким образом, AND для OR с NAND, который дает низкий уровень только тогда, когда оба A и B имеют высокий уровень, эквивалентен XOR.

Схема вентиля XOR может быть сделана из четырех вентилей NAND . Фактически, как вентили NAND, так и NOR являются так называемыми «универсальными вентилями», и любая логическая функция может быть построена либо из логики NAND , либо из логики NOR . Если четыре вентиля NAND заменить вентилями NOR , это приведет к вентилю XNOR , который может быть преобразован в вентиль XOR путем инвертирования выхода или одного из входов (например, с помощью пятого вентиля NOR ).

Альтернативное расположение — пять вентилей ИЛИ-НЕ в топологии, которая подчеркивает построение функции из , отмечая из закона де Моргана , что вентиль ИЛИ-НЕ является вентильом И с инвертированным входом . Другое альтернативное расположение — пять вентилей И-НЕ в топологии, которая подчеркивает построение функции из , отмечая из закона де Моргана , что вентиль И-НЕ является вентильом ИЛИ с инвертированным входом .

Для конструкций NAND верхняя компоновка требует меньше вентилей. Для конструкций NOR нижняя компоновка дает преимущество более короткой задержки распространения (временной задержки между изменением входа и изменением выхода).

Стандартные корпуса чипов

Philips 4070 четырехъядерный чип XOR с двумя входами на печатной плате

Чипы XOR легкодоступны. Наиболее распространенные стандартные коды чипов:

Более двух входов

Буквальное толкование названия «исключающее или» или наблюдение за прямоугольным символом МЭК поднимает вопрос о правильном поведении с дополнительными входами. [12] Если бы логический вентиль принимал три или более входов и выдавал истинный выход, если бы только один из этих входов был истинным, то он был бы фактически одноконтактным детектором (и это действительно так только для двух входов). Однако на практике это редко реализуется таким образом.

Чаще всего последующие входы рассматриваются как поданные через каскад двоичных операций «исключающее ИЛИ»: первые два сигнала подаются на вентиль XOR, затем выход этого вентиля подается на второй вентиль XOR вместе с третьим сигналом и так далее для всех оставшихся сигналов. Результатом является схема, которая выводит 1, когда число единиц на ее входах нечетное, и 0, когда число входящих единиц четное. Это делает ее практически полезной в качестве генератора четности или сумматора по модулю 2 .

Например, микросхема 74LVC1G386 рекламируется как трехвходовой логический вентиль и реализует генератор четности. [13]

Приложения

Вентили XOR и AND являются двумя наиболее часто используемыми структурами в приложениях VLSI . [14]

Добавление

Пример полного сумматора
Пример полусумматора

Логический вентиль XOR можно использовать как однобитный сумматор , который складывает любые два бита вместе для вывода одного бита. Например, если мы добавляем 1плюс 1в двоичном формате , мы ожидаем двухбитный ответ 10(т. е. 2в десятичном формате). Поскольку конечный бит суммы в этом выводе достигается с помощью XOR, предыдущий бит переноса вычисляется с помощью вентиля AND . Это основной принцип в полусумматорах . Немного большая схема полного сумматора может быть соединена вместе для сложения более длинных двоичных чисел.

В определенных ситуациях входы вентиля ИЛИ (например, в полном сумматоре) или вентиля XOR никогда не могут быть оба равны 1. Поскольку это единственная комбинация, для которой выходы вентилей ИЛИ и XOR различаются, вентиль ИЛИ можно заменить на вентиль XOR (или наоборот) без изменения результирующей логики. Это удобно, если схема реализуется с использованием простых интегральных микросхем, которые содержат только один тип вентиля на микросхему.

Генератор псевдослучайных чисел

Пример 16-битного генератора псевдослучайных чисел Галуа LFSR

Генераторы псевдослучайных чисел (PRN) , в частности, регистры сдвига с линейной обратной связью (LFSR), определяются в терминах операции «исключающее ИЛИ». Следовательно, подходящая настройка вентилей XOR может моделировать регистр сдвига с линейной обратной связью для генерации случайных чисел.

Фазовые детекторы

В простейших фазовых детекторах могут использоваться вентили XOR . [15] : 425 

Буферизация или инвертирование сигнала

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

Корреляция и обнаружение последовательности

XOR-вентили создают , 0когда оба входа совпадают. При поиске определенного битового шаблона или последовательности PRN в очень длинной последовательности данных можно использовать ряд XOR-вентилей для параллельного сравнения строки бит из последовательности данных с целевой последовательностью. 0Затем можно подсчитать количество выходов, чтобы определить, насколько хорошо последовательность данных соответствует целевой последовательности. Корреляторы используются во многих устройствах связи, таких как приемники и декодеры CDMA для исправления ошибок и кодов каналов. В приемнике CDMA корреляторы используются для извлечения полярности определенной последовательности PRN из объединенного набора последовательностей PRN.

Коррелятор, ищущий 11010последовательность данных, 1110100101будет сравнивать входящие биты данных с целевой последовательностью при каждом возможном смещении, подсчитывая количество совпадений (нулей):

1110100101 (данные)11010 (цель)00111 (XOR) 2 нулевых бита1110100101 11010 00000 5 нулевых бит1110100101 11010 01110 2 нулевых бита1110100101 11010 10011 2 нулевых бита1110100101 11010 01000 4 нулевых бита1110100101 11010 11111 0 нулевых битовСовпадения по смещению: .  : :: : : : : -----------0 1 2 3 4 5

В этом примере наилучшее совпадение происходит, когда целевая последовательность смещена на 1 бит и все пять бит совпадают. При смещении на 5 бит последовательность точно соответствует своей инверсии. Рассматривая разницу между количеством единиц и нулей, которые выходят из банка вентилей XOR, легко увидеть, где находится последовательность и инвертирована ли она. Более длинные последовательности легче обнаружить, чем короткие.

Аналитическое представление

представляет собой аналитическое представление вентиля XOR:

является альтернативным аналитическим представлением.

Смотрите также

Ссылки

  1. ^ Broesch, James D. (2012). Практические программируемые схемы: руководство по PLD, конечным автоматам и микроконтроллерам. Elsevier Science. стр. 20. ISBN 978-0323139267.
  2. ^ Ван Хаутвен, Лоуренс (2017). Крипто 101 (PDF) . п. 17.
  3. ^ Флетчер, Уильям (1980). Инженерный подход к цифровому проектированию . Prentice-Hall. стр. 98. ISBN 0-13-277699-5.
  4. ^ Фишер, П. «Aussagenlogik und Gatter» (PDF) . Гейдельбергский университет . Проверено 21 января 2024 г.
  5. ^ Педрони, Вольней А. (25 января 2008 г.). Цифровая электроника и проектирование с использованием VHDL. Морган Кауфманн. ISBN 978-0-08-055755-7. Получено 8 ноября 2022 г. .
  6. ^ Шириф, Кен. "Две интересные схемы XOR внутри процессора Intel 386" . Получено 14.01.2024 .
  7. ^ Oklobdzija, Vojin G. (26 декабря 2001 г.). Справочник по компьютерной инженерии. CRC Press. ISBN 978-0-8493-0885-7. Получено 8 ноября 2022 г. .
  8. ^ abc Проектирование комбинационных логических вентилей в КМОП (PDF) . стр. 233 . Получено 9 ноября 2022 г. .
  9. ^ Аннаратоне, Сильвия (6 декабря 2012 г.). Цифровая схема CMOS. Springer Science & Business Media. ISBN 978-1-4613-2285-6. Получено 8 ноября 2022 г. .
  10. ^ ab Ferdjallah, Mohammed (15 июня 2011 г.). Введение в цифровые системы: моделирование, синтез и имитация с использованием VHDL. John Wiley & Sons. стр. 38. ISBN 978-1-118-00770-9. Получено 9 ноября 2022 г. .
  11. ^ Росс, Дикон; Лоу, Дуг (24 сентября 2013 г.). Электроника All-in-One для чайников - Великобритания. John Wiley & Sons. стр. 647. ISBN 978-1-118-58971-7. Получено 9 ноября 2022 г. .
  12. ^ Шустов, Михаил А. (2023-07-04). ««Исключающее ИЛИ» против «Суммы по модулю 2»». www.edn.com .
  13. ^ 74LVC1G386 Архивировано 29 декабря 2009 г. в техническом описании Wayback Machine
  14. ^ "Сравнение различных методов проектирования вентилей XOR и AND с использованием инструмента моделирования EDA". Вентили XOR и AND являются важнейшими базовыми строительными блоками любых приложений VLSI.
  15. ^ Rabaey, Jan M. (1996). Цифровые интегральные схемы: перспектива проектирования . Upper Saddle River, NJ: Prentice-Hall. ISBN 978-0-13-178609-7.