Исключающее или таблица истинности для 3 переменных. Базовые логические элементы. Порядок выполнения логических операций в сложном логическом выражении

Нормальные формы Дизъюнктивная x ¯ ⋅ y + x ⋅ y ¯ {\displaystyle {\overline {x}}\cdot y+x\cdot {\overline {y}}} Конъюнктивная (x ¯ + y ¯) ⋅ (x + y) {\displaystyle ({\overline {x}}+{\overline {y}})\cdot (x+y)} Полином Жегалкина x ⊕ y {\displaystyle x\oplus y} Принадлежность предполным классам Сохраняет 0 Да Сохраняет 1 Нет Монотонна Нет Линейна Да Самодвойственна Нет

Сложе́ние по мо́дулю 2 (исключа́ющее «ИЛИ» , XOR , строгая дизъюнкция , поразрядное дополнение , побитовый комплемент , инвертирование по маске , жегалкинское сложение , логическое вычитание , логи́ческая неравнозна́чность ) - булева функция , а также логическая и битовая операция . В случае двух переменных результат выполнения операции истинен тогда и только тогда, когда один из аргументов истинен, а второй - ложен. Для функции трёх и более переменных результат выполнения операции будет истинным только тогда, когда количество аргументов, равных 1, составляющих текущий набор, - нечётное. Такая операция естественным образом возникает в кольце вычетов по модулю 2 , откуда и происходит название операции.

Сложение по модулю 2 следует отличать от простого сложения, которое соответствует обыкновенному неисключающему «или» (логической дизъюнкции).

В теории множеств сложению по модулю 2 соответствует операция симметричной разности двух множеств.

В префиксной записи m a x (a , b) − m i n (a , b) {\displaystyle max(a,b)-min(a,b)} .

Обозначения [ | ]

Запись может быть префиксной («польская запись ») - знак операции ставится перед операндами, инфиксной - знак операции ставится между операндами и постфиксной - знак операции ставится после операндов. При числе операндов более 2 префиксная и постфиксная записи экономичнее инфиксной записи. Чаще всего встречаются следующие варианты записи:
⊕ 2 (a , b) , a {\displaystyle \oplus _{2}(a,b),~a} ^ b , a ⊕ b , a ⊕ 2 b , a + 2 b , {\displaystyle b,~a\oplus b,a\oplus _{2}b,a+_{2}b,} a ≠ b, a ≠ b , (a , b) ⊕ 2 , a X O R b {\displaystyle a\neq b,(a,b)\oplus _{2},a~XOR~b}

В таблице символов Юникод есть символы для сложения по модулю 2: XOR - U+22BB (⊻), CIRCLED PLUS - U+2295 (⊕) и PLUS SIGN WITH SUCSCRIPT TWO - U+2A27 (⨧), а также символ для суммы по модулю 2: MODULO TWO SUM - U+2A0A (⨊).

Свойства [ | ]

Булева алгебра [ | ]

В булевой алгебре сложение по модулю 2 - это функция двух, трёх и более переменных (они же - операнды операции, они же - аргументы функции). Переменные могут принимать значения из множества . Результат также принадлежит множеству { 0 , 1 } {\displaystyle \{0,1\}} . Вычисление результата производится по простому правилу, либо по таблице истинности . Вместо значений 0 , 1 {\displaystyle 0,1} может использоваться любая другая пара подходящих символов, например f a l s e , t r u e {\displaystyle false,true} или F , T {\displaystyle F,T} или «ложь», «истина», но при этом необходимо доопределять старшинство, например, t r u e > f a l s e {\displaystyle true>false} .

Таблицы истинности:

a {\displaystyle a} b {\displaystyle b} a ⊕ b {\displaystyle a\oplus b}
0 0 0
1 0 1
0 1 1
1 1 0

Правило: результат равен , если оба операнда равны; во всех остальных случаях результат равен 1 {\displaystyle 1} .

a {\displaystyle a} b {\displaystyle b} c {\displaystyle c} a ⊕ b ⊕ c {\displaystyle a\oplus b\oplus c}
0 0 0 0
1 0 0 1
0 1 0 1
1 1 0 0
0 0 1 1
1 0 1 0
0 1 1 0
1 1 1 1

Правило: результат равен , если нет операндов, равных 1 {\displaystyle 1} , либо их чётное количество.

Программирование [ | ]

В языках /C++ , Java , , Ruby , PHP , JavaScript , Python и т. д. битовая операция поразрядного дополнения обозначается символом « ^ », в языках Паскаль , Delphi , Ada , Visual Basic - зарезервированным словом xor , в языке ассемблера - одноимённой логической командой. При этом сложение по модулю 2 выполняется для всех битов левого и правого операнда попарно. Например,

Если

A = 01100101 2 {\displaystyle a=01100101_{2}}

B = 00101001 2 {\displaystyle b=00101001_{2}} , начиная со стандарта C99 , оператор « ^ » над операндами логического типа возвращает результат применения логической операции XOR. В С++ оператор « ^ » для логического типа bool возвращает результат согласно описанным правилам, для остальных же типов производится его побитовое применение.

Связь с естественным языком [ | ]

В естественном языке операция «сложение по модулю» эквивалентна двум выражениям:

  1. «результат истинен (равен 1), если A не равно B (A≠B)»;
  2. «если A не равно B (A≠B), то истина (1)».

Часто указывают на сходство между сложением по модулю 2 и конструкцией «либо … либо …» в естественном языке. Составное утверждение «либо A, либо B» считается истинным, когда истинно либо A, либо B, но не оба сразу; в противном случае составное утверждение ложно. Это в точности соответствует определению операции в булевой алгебре, если «истину» обозначать как 1 {\displaystyle 1} , а «ложь» как .

Эту операцию нередко сравнивают с дизъюнкцией потому, что они очень похожи по свойствам, и обе имеют сходство с союзом «или» в повседневной речи. Сравните правила для этих операций:

Операция ⊕ {\displaystyle \oplus } исключает последний вариант («оба сразу») и по этой причине называется исключающим «ИЛИ». Операция ∨ {\displaystyle \lor } включает последний вариант («оба сразу») и по этой причине иногда называется включающим «ИЛИ». Неоднозначность естественного языка заключается в том, что союз «или» может применяться в обоих случаях.

Квантовые вычисления [ | , могут быть поставлены под сомнение и удалены. Вы можете улучшить статью, внеся более точные указания на источники.

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

    ИЛИ - логическое сложение (дизъюнкция ) - OR ;

    И - логическое умножение (конъюнкция ) - AND ;

    НЕ - логическое отрицание (инверсия ) - NOT .

Примем за основу позитивную логику, где высокий уровень будет "1", а низкий уровень примем за "0". Чтобы можно было более наглядно рассмотреть выполнение логических операций, существуют таблицы истинности для каждой логической функции. Сразу нетрудно понять, что выполнение логических функций «и» и «или» подразумевают количество входных сигналов не менее двух, но их может быть и больше.

Логический элемент И.

На рисунке представлена таблица истинности элемента "И " с двумя входами. Хорошо видно, что логическая единица появляется на выходе элемента только при наличии единицы на первом входе и на втором. В трёх остальных случаях на выходе будут нули.

Вход X1 Вход X2 Выход Y
0 0 0
1 0 0
0 1 0
1 1 1

На принципиальных схемах логический элемент "И" обозначают так.

На зарубежных схемах обозначение элемента "И" имеет другое начертание. Его кратко называют AND .

Логический элемент ИЛИ.

Элемент "ИЛИ " с двумя входами работает несколько по-другому. Достаточно логической единицы на первом входе или на втором как на выходе будет логическая единица. Две единицы так же дадут единицу на выходе.

Вход X1 Вход X2 Выход Y
0 0 0
1 0 1
0 1 1
1 1 1

На схемах элемент "ИЛИ" изображают так.

На зарубежных схемах его изображают чуть по-другому и называют элементом OR .

Логический элемент НЕ.

Элемент, выполняющий функцию инверсии «НЕ » имеет один вход и один выход. Он меняет уровень сигнала на противоположный. Низкий потенциал на входе даёт высокий потенциал на выходе и наоборот.

Вход X Выход Y
0 1
1 0

Вот таким образом его показывают на схемах.

В зарубежной документации элемент "НЕ" изображают следующим образом. Сокращённо называют его NOT .

Все эти элементы в интегральных микросхемах могут объединяться в различных сочетаниях. Это элементы: И-НЕ, ИЛИ-НЕ, и более сложные конфигурации. Пришло время поговорить и о них.

Логический элемент 2И-НЕ.

Рассмотрим несколько реальных логических элементов на примере серии транзисторно-транзисторной логики (ТТЛ) К155 с малой степенью интеграции. На рисунке когда-то очень популярная микросхема К155ЛА3, которая содержит четыре независимых элемента 2И - НЕ . Кстати, с помощью её можно собрать простейший маячок на микросхеме .

Цифра всегда обозначает число входов логического элемента. В данном случае это двухвходовой элемент «И» выходной сигнал которого инвертируется. Инвертируется, это значит "0" превращается в "1", а "1" превращается в "0". Обратим внимание на кружочек на выходах - это символ инверсии . В той же серии существуют элементы 3И-НЕ, 4И-НЕ, что означает элементы «И» с различным числом входов (3, 4 и т.д.).

Как вы уже поняли, один элемент 2И-НЕ изображается вот так.

По сути это упрощённое изображение двух объёдинённых элементов: элемента 2И и элемента НЕ на выходе.

Зарубежное обозначение элемента И-НЕ (в данном случае 2И-НЕ). Называется NAND .

Таблица истинности для элемента 2И-НЕ.

Вход X1 Вход X2 Выход Y
0 0 1
1 0 1
0 1 1
1 1 0

В таблице истинности элемента 2И - НЕ мы видим, что благодаря инвертору получается картина противоположная элементу «И». В отличие от трёх нулей и одной единицы мы имеем три единицы и ноль. Элемент «И - НЕ» часто называют элементом Шеффера.

Логический элемент 2ИЛИ-НЕ.

Логический элемент 2ИЛИ - НЕ представлен в серии К155 микросхемой 155ЛЕ1. Она содержит в одном корпусе четыре независимых элемента. Таблица истинности так же отличается от схемы "ИЛИ" применением инвертирования выходного сигнала.

Таблица истинности для логического элемента 2ИЛИ-НЕ.

Вход X1 Вход X2 Выход Y
0 0 1
1 0 0
0 1 0
1 1 0

Изображение на схеме.

На зарубежный лад изображается так. Называют как NOR .

Мы имеем только один высокий потенциал на выходе, обусловленный подачей на оба входа одновременно низкого потенциала. Здесь, как и на любых других принципиальных схемах, кружочек на выходе подразумевает инвертирование сигнала. Так как схемы И - НЕ и ИЛИ - НЕ встречаются очень часто, то для каждой функции имеется своё условное обозначение. Функция И - НЕ обозначается значком "& ", а функция ИЛИ - НЕ значком "1 ".

Для отдельного инвертора таблица истинности уже приведена выше. Можно добавить, что количество инверторов в одном корпусе может достигать шести.

Логический элемент "исключающее ИЛИ".

К числу базовых логических элементов принято относить элемент реализующий функцию «исключающее ИЛИ». Иначе эта функция называется «неравнозначность».

Высокий потенциал на выходе возникает только в том случае, если входные сигналы не равны. То есть на одном из входов должна быть единица, а на другом ноль. Если на выходе логического элемента имеется инвертор, то функция выполняется противоположная - «равнозначность». Высокий потенциал на выходе будет появляться при одинаковых сигналах на обоих входах.

Таблица истинности.

Вход X1 Вход X2 Выход Y
0 0 0
1 0 1
0 1 1
1 1 0

Эти логические элементы находят своё применение в сумматорах. «Исключающее ИЛИ» изображается на схемах знаком равенства перед единицей "=1 ".

На зарубежный манер "исключающее ИЛИ" называют XOR и на схемах рисуют вот так.

Кроме вышеперечисленных логических элементов, которые выполняют базовые логические функции очень часто, используются элементы, объединённые в различных сочетаниях. Вот, например, К555ЛР4. Она называется очень серьёзно 2-4И-2ИЛИ-НЕ.

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

Если посмотреть в справочной литературе схему, допустим, элемента 2И - НЕ из микросхемы К155ЛА3, то там можно увидеть несколько транзисторов и резисторов. На самом деле ни резисторов, ни диодов в этих микросхемах нет. На кристалл кремния через трафарет напыляются только транзисторы, а функции резисторов и диодов выполняют эмиттерные переходы транзисторов. Кроме того в ТТЛ логике широко используются многоэмиттерные транзисторы. Например, на входе элемента 4И стоит четырёхэмиттерный

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

Суть задачи заключаются в следующем. Дана логическая функция XOR – исключающее ИЛИ. Это функция от двух аргументов, каждый из которых может быть нулем или единицей. Она принимает значение , когда один из аргументов равен единице, но не оба, иначе . Проблему можно проиллюстрировать с помощью однослойной однонейронной системы с двумя входами, показанной на рисунке ниже.

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

Точки Значение Значение Требуемый выход
0 0 0
1 0 1
0 1 1
1 1 0

Один нейрон с двумя входами может сформировать решающую поверхность в виде произвольной прямой. Для того, чтобы сеть реализовала функцию XOR, заданную таблицей выше, нужно расположить прямую так, чтобы точки были с одной стороны прямой, а точки – с другой. Попытавшись нарисовать такую прямую на рисунке ниже, убеждаемся, что это невозможно. Это означает, что какие бы значения ни приписывались весам и порогу, однослойная нейронная сеть неспособна воспроизвести соотношение между входом и выходом, требуемое для представления функции XOR.

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

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

Тогда результат работы такой нейронной сети можно представить в виде следующей таблицы:

Точки Значение Значение Требуемый выход
0 0 0 0 0 0
1 0 1 1 0 1
0 1 1 0 1 1
1 1 0 0 0 0

Каждый из двух нейрон первого слоя формирует решающую поверхность в виде произвольной прямой (делит плоскость на две полуплоскости), а нейрон выходного слоя объединяет эти два решения, образуя решающую поверхность в виде полосы, образованной параллельными прямыми нейронов первого слоя:

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

В данной статье расскажем что такое логические элементы, рассмотрим самые простые логические элементы.

Любое цифровое устройство — персональный компьютер, или современная система автоматики состоит из цифровых интегральных микросхем (ИМС), которые выполняют определённые сложные функции. Но для выполнения одной сложной функции необходимо выполнить несколько простейших функций. Например, сложение двух двоичных чисел размером в один байт происходит внутри цифровой микросхемы называемой «процессор» и выполняется в несколько этапов большим количеством логических элементов находящихся внутри процессора. Двоичные числа сначала запоминаются в буферной памяти процессора, потом переписываются в специальные «главные» регистры процессора, после выполняется их сложение, запоминание результата в другом регистре, и лишь после результат сложения выводится через буферную память из процессора на другие устройства компьютера.

Процессор состоит из функциональных узлов: интерфейсов ввода-вывода, ячеек памяти – буферных регистров и «аккумуляторов», сумматоров, регистров сдвига и т.д. Эти функциональные узлы состоят из простейших логических элементов, которые, в свою очередь состоят из полупроводниковых транзисторов, диодов и резисторов. При конструировании простых триггерных и других электронных импульсных схем, сложные процессоры не применить, а использовать транзисторные каскады – «прошлый век». Тут и приходят на помощь – логические элементы .

Логические элементы , это простейшие «кубики», составные части цифровой микросхемы, выполняющие определённые логические функции. При этом, цифровая микросхема может содержать в себе от одного, до нескольких единиц, десятков, …и до нескольких сотен тысяч логических элементов в зависимости от степени интеграции. Для того, чтобы разобраться, что такое логические элементы , мы будем рассматривать самые простейшие из них. А потом, наращивая знания, разберёмся и с более сложными цифровыми элементами.

Начнём с того, что единица цифровой информации это «один бит». Он может принимать два логических состояния – логический ноль «0», когда напряжение равно нулю (низкий уровень), и состояние логической единицы «1», когда напряжение равно напряжению питания микросхемы (высокий уровень).

Поскольку простейший логический элемент это электронное устройство, то это означает, что у него есть входы (входные выводы) и выходы (выходные выводы). И входов и выходов может быть один, а может быть и больше.

Для того, чтобы понять принципы работы простейших логических элементов используется «таблица истинности» . Кроме того, для понимания принципов работы логических элементов, входы, в зависимости от их количества обозначают: Х1, Х2, … ХN, а выходы: Y1, Y2, … YN.

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

Рассмотрим простейшие логические элементы

«НЕ» (NOT) – функция отрицания (инверсии сигнала). Потому его чаще называют — «инвертор» . Графически, инверсия обозначается пустым кружочком вокруг вывода элемента (микросхемы). Обычно кружок инверсии ставится у выхода, но в более сложных логических элементах, он может стоять и на входе. Графическое обозначение элемента «НЕ» и его таблица истинности представлены на рисунке слева.

У элемента «НЕ» всегда один вход и один выход. По таблице истинности следует, что при наличии на входе элемента логического нуля, на выходе будет логическая единица. И наоборот, при наличии на входе логической единицы, на выходе будет логический ноль. Цифра «1» внутри прямоугольника обозначает функцию «ИЛИ», её принято рисовать и внутри прямоугольника элемента «НЕ», но это ровным счётом ничего абсолютно не значит.

Обозначение D1.1 означает, что D — цифровой логический элемент, 1 (первая) — номер микросхемы в общей схеме, 1 (вторая) — номер элемента в микросхеме. Точно также расшифровываются и другие логические элементы.

Часто, чтобы отличить цифровые микросхемы от аналоговых микросхем, применяют обозначения из двух букв: DD – цифровая микросхема, DA – аналоговая микросхема. В последующем, мы не будем заострять внимание на это обозначение, а вернёмся лишь тогда, когда это будет необходимым.

Самой распространённой микросхемой «транзисторно-транзисторной логики» (ТТЛ), выполняющей функцию «НЕ», является интегральная микросхема (ИМС) К155ЛН1, внутри которой имеется шесть элементов «НЕ». Нумерация выводов этой микросхемы показана справа.

«И» (AND) – функция сложения (если на всех входах единица, то на выходе будет единица, в противном случае, если хотя бы на одном входе ноль, то и на выходе всегда будет ноль). В алгебре-логике элемент «И» называют «конъюнктор» . Графическое обозначение элемента «2И» и его таблица истинности представлены слева.

Название элемента «2И» обозначает, что у него два входа, и он выполняет функцию «И» . На схеме внутри прямоугольника микросхемы рисуется значок «&» , что на английском языке означает «AND» (в переводе на русский — И).

По таблице истинности следует, что на выходе элемента «И» будет логическая единица только в одном случае — когда на обоих входах будет логическая единица. Если хотя бы на одном входе ноль, то и на выходе будет ноль.

Самой распространённой микросхемой «транзисторно-транзисторной логики» (ТТЛ) , выполняющей функцию «2И», является интегральная микросхема (ИМС) К155ЛИ1, внутри которой имеется четыре элемента «2И». Нумерация выводов этой микросхемы показана справа.

Для того, чтобы вам было понятнее что такое «2И», «3И», «4И», и т.д., приведу графическое обозначение и таблицу истинности элемента «3И».

По таблице истинности следует, что на выходе элемента «3И» будет логическая единица только в том случае — когда на всех трёх входах будет логическая единица. Если хотя бы на одном входе будет логический ноль, то и на выходе элемента также будет логический ноль. Самой распространённой микросхемой ТТЛ, выполняющей функцию «3И», является микросхема К555ЛИ3, внутри которой имеется три элемента «3И».

«И-НЕ» (NAND) – функция сложения с отрицанием (если на всех входах единица, то на выходе будет ноль, в противном случае на выходе всегда будет единица). Графическое обозначение элемента «2И-НЕ» и его таблица истинности приведены слева.

По таблице истинности следует, что на выходе элемента «2И-НЕ» будет логический ноль только в том случае, если на обоих входах будет логическая единица. Если хотя бы на одном входе ноль, то на выходе будет единица.

Самой распространённой микросхемой ТТЛ, выполняющей функцию «2И-НЕ», является ИМС К155ЛА3, а микросхемами КМОП (комплементарный металлооксидный полупроводник) – ИМС К561ЛА7 и К176ЛА7, внутри которых имеется четыре элемента «2И-НЕ». Нумерация выводов этих микросхем показана справа.

Сравнив таблицы истинности элемента «2И-НЕ» и элемента «2И» можно догадаться об эквивалентности схем:

Добавив к элементу «2И» элемент «НЕ» мы получили элемент «2И-НЕ». Так можно собрать схему, если нам необходим элемент «2И-НЕ», а у нас в распоряжении имеются только элементы «2И» и «НЕ».

И наоборот:

Добавив к элементу «2И-НЕ» элемент «НЕ» мы получили элемент «2И». Так можно собрать схему, если нам необходим элемент «2И», а у нас в распоряжении имеются только элементы «2И-НЕ» и «НЕ».

Аналогичным образом, путём соединения входов элемента «2И-НЕ» мы можем получить элемент «НЕ»:

Обратите внимание, что было введено новое в обозначении элементов – дефис, разделяющий правую и левую часть в названии «2И-НЕ». Этот дефис непременный атрибут при инверсии на выходе (функции «НЕ»).

«ИЛИ» (OR) – функция выбора (если хотя бы на одном из входов – единица, то на выходе – единица, в противном случае на выходе всегда будет ноль). В алгебре-логике, элемент «ИЛИ» называют «дизъюнктор». Графическое обозначение элемента «2ИЛИ» и его таблица истинности приведены слева.

Самой распространённой микросхемой ТТЛ, выполняющей функцию «2ИЛИ», является ИМС К155ЛЛ1, внутри которой имеется четыре элемента «2ИЛИ». Нумерация выводов этой микросхемы показана справа.

Предположим, что нам в схеме необходим элемент, выполняющий функцию «2ИЛИ», но у нас есть в распоряжении только элементы «НЕ» и «2И-НЕ», тогда можно собрать схему, которая будет выполнять функцию «2ИЛИ»:

«ИЛИ-НЕ» (NOR) – функция выбора (если хотя бы на одном из входов – единица, то на выходе – ноль, в противном случае на выходе всегда будет единица). Как вы поняли, элемент «ИЛИ-НЕ» выполняет функцию «ИЛИ», а потом инвертирует его функцией «НЕ».

Графическое обозначение элемента «2ИЛИ-НЕ» и его таблица истинности приведена слева.

Самой распространённой микросхемой ТТЛ, выполняющей функцию «2ИЛИ-НЕ», является ИМС К155ЛЕ1, а микросхемами КМОП – К561ЛЕ5 и К176ЛЕ5, внутри которых имеется четыре элемента «2ИЛИ-НЕ». Нумерация выводов этих микросхем показана справа.

Предположим, что нам в схеме необходим элемент, выполняющий функцию «2ИЛИ-НЕ», но у нас есть в распоряжении только элементы «НЕ» и «2И-НЕ», тогда можно собрать следующую схему, которая будет выполнять функцию «2ИЛИ-НЕ»:

По аналогии с элементом «2И-НЕ», путём соединения входов элемента «2ИЛИ-НЕ» мы можем получить элемент «НЕ»:

«Исключающее ИЛИ» (XOR) — функция неравенства двух входов (если на обоих входах элемента одинаковые сигналы, то на выходе – ноль, в противном случае на выходе всегда будет единица). Операция, которую он выполняет, часто называют «сложение по модулю 2».

Графическое обозначение элемента «Исключающее ИЛИ» и его таблица истинности приведены слева.

Самой распространённой микросхемой ТТЛ, выполняющей функцию «Исключающее ИЛИ», является ИМС К155ЛП5, а микросхемами КМОП – К561ЛП2 и К176ЛП2, внутри которых имеется четыре элемента «Исключающее ИЛИ». Нумерация выводов этих микросхем показана справа.

Предположим, что нам в схеме необходим элемент, выполняющий функцию «Исключающее ИЛИ», но у нас есть в распоряжении только элементы «2И-НЕ», тогда можно собрать следующую схему, которая будет выполнять функцию «Исключающее ИЛИ» :

В цифровой схемотехнике процессоров главная функция — «Суммирование двоичных чисел», поэтому сложный логический элемент – «Сумматор» является неотъемлемой частью арифметико-логического устройства любого, без исключения процессора. Составной частью сумматора является набор логических элементов, выполняющих функцию «Исключающее ИЛИ с переносом остатка» . Что это такое? В соответствии с наукой «Информатика», результатом сложения двух двоичных чисел, две единицы одного разряда дают ноль, при этом формируется «единица переноса» в следующий старший разряд, который участвует в операции суммирования в старшем разряде. Для этого в схему добавляется ещё один вывод «переноса» — «Р».

Графическое обозначение элемента «Исключающее ИЛИ с переносом» и его таблица истинности представлена слева.

Такая функция сложения одноразрядных чисел в простых устройствах обычно не используется, и как правило, интегрирована в состав одной микросхемы – сумматора, с минимальным количеством разрядов – четыре, для сложения четырехбитных чисел. По причине слабого спроса, промышленность таких логических элементов не выпускает. Поэтому, в случае необходимости, функцию «Исключающее ИЛИ с переносом» можно собрать по следующей схеме из элементов «2И-НЕ» и «2ИЛИ-НЕ», которая активно применяется как внутри простых сумматоров, так и во всех сложных процессорах (в том числе Pentium, Intel-Core, AMD и других, которые появятся в будущем):

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

Поведение

Элементы Исключающее ИЛИ, Исключающее ИЛИ-НЕ, Нечётность и Чётность вычисляют соответствующую функцию от значений на входах и выдают результат на выход.

По умолчанию, неподключенные входы игнорируются - то есть, если входы действительно не имеют ничего подключенного к ним - даже провода. Таким образом, вы можете добавить 5-входовый элемент, но подключить только два входа, и он будет работать как 2-входовый элемент; это избавляет вас от необходимости беспокоиться о настройке количества входов каждый раз при создании элемента. (Если все входы не подключены, то на выходе значение ошибки X .) Некоторые пользователи, однако, предпочитают, чтобы Logisim настаивал, чтобы все входы были подключены, поскольку это соответствует реальным элементам. Вы можете включить это поведение, выбрав меню Проект > Параметры…, перейдя на вкладку Моделирование, и выбрав вариант Ошибка для неопределённых входов для Выход элемента при неопределённости.

Двухвходовая таблица истинности для элементов следующая.

x y Исключающее ИЛИ Исключающее ИЛИ-НЕ Нечётность Чётность
0 0 0 1 0 1
0 1 1 0 1 0
1 0 1 0 1 0
1 1 0 1 0 1

Как вы можете видеть, элементы Нечётность и Исключающее ИЛИ ведут себя одинаково в случае двух входов; аналогично, элементы Чётность и Исключающее ИЛИ-НЕ ведут себя одинаково. Но если входов с определённым значением больше двух, то элемент Исключающее ИЛИ будет давать на выходе 1, когда единица строго на одном входе, тогда как элемент Нечётность даст на выходе 1, когда единица на нечётном количестве входов. Элемент Исключающее ИЛИ-НЕ будет давать на выходе 1, когда входов с единицей строго не один, тогда как элемент Чётность даст 1, когда входов с единицей чётное количество. Элементы Исключающее ИЛИ и Исключающее ИЛИ-НЕ имеют атрибут, названный Многовходовое поведение, который позволяет настроить их на использование поведения элементов Нечётность и Чётность.

Если на каких-либо входах значение ошибки (например, если противоречивые значения поступают на один и тот же провод) или плавающее значение, то на выходе будет значение ошибки.

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

Примечание: многие специалисты утверждают, что поведение фигурного элемента Исключающее ИЛИ должно соответствовать поведению элемента Нечётность, но по этому вопросу нет согласия. Поведение Logisim по умолчанию для элемента Исключающее ИЛИ основано на стандарте IEEE 91. Это также согласуется с интуитивным пониманием термина Исключающее ИЛИ : официант, спрашивающий, хотите вы гарнир из картофельного пюре, моркови, зеленого горошка, или шинкованной капусты, примет только один выбор, а не три, независимо от того, что вам могут сказать некоторые специалисты. (Должен признать, однако, что я не подвергал это заявление серьезным испытаниям.) Вы можете настроить элементы Исключающее ИЛИ и Исключающее ИЛИ-НЕ на использование одного из вариантов, меняя его атрибут Многовходовое поведение.

Контакты (предполагается, что компонент направлен на восток)

Западный край (входы, разрядность соответствует атрибуту Биты данных)

Входы компонента. Их будет столько, сколько указано в атрибуте Количество входов.

Заметьте, что если вы используете фигурные элементы, то западный край элементов Исключающее ИЛИ и Исключающее ИЛИ-НЕ будет искривлён. Тем не менее, входные контакты расположены вряд. Logisim отрисовывает короткие отрезки чтобы показать это; если вы перекроете отрезок, программа будет без предупреждений предполагать, что вы не хотели перекрыть его. При использовании "Вида для печати", эти отрезки не будут отрисованы, если не подключены к проводам.

Восточный край (выход, разрядность соответствует атрибуту Биты данных)

Выход элемента, значение на котором вычисляется на основании текущих значений на входах, как описано выше.

Атрибуты

Когда компонент выбран, или уже добавлен, клавиши от 0 до 9 меняют его атрибут Количество входов, комбинации от Alt-0 до Alt-9 меняют его атрибут Биты данных, а клавиши со стрелками меняют его атрибут Направление.

Направление Направление компонента (его выхода относительно его входов). Биты данных Разрядность входов и выходов компонента. Размер элемента Определяет, следует отрисовывать широкую или узкую версию компонента. Это не влияет на количество входов, которое определяется атрибутом Количество входов; правда, если количество входов превышает 3 (для узкого компонента) или 5 (для широкого), то элемент будет отрисовываться с "крыльями", чтобы вместить запрошенное количество входов. Количество входов Определяет, сколько контактов на западном крае будет иметь компонент. Многовходовое поведение (только для Исключающее ИЛИ и Исключающее ИЛИ-НЕ) Когда входов три или более, то значение на выходе элементов Исключающее ИЛИ и Исключающее ИЛИ-НЕ будет основано или на том, что 1 строго на одном входе (по умолчанию), или на нечётном количестве входов.

Понравилась статья? Поделиться с друзьями: