Вход 1 | Вход 2 | Выход |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Рис.
4.1.
Под функцией Исключающее ИЛИ понимается следующее: единица на выходе появляется тогда, когда только на одном входе присутствует единица . Если единиц на входах две или больше, или если на всех входах нули, то на выходе будет нуль. Таблица истинности двухвходового элемента Исключающее ИЛИ приведена в табл. 4.1. Обозначения, принятые в отечественных и зарубежных схемах, показаны на рис. 4.1. Надпись на отечественном обозначении элемента Исключающее ИЛИ "=1" как раз и обозначает, что выделяется ситуация, когда на входах одна и только одна единица .
Элементов Исключающее ИЛИ в стандартных сериях немного. Отечественные серии предлагают микросхемы ЛП5 (четыре двухвходовых элемента с выходом 2С), ЛЛ3 и ЛП12, отличающиеся от ЛП5 выходом ОК. Слишком уж специфическая функция реализуется этими элементами.
С точки зрения математики, элемент Исключающее ИЛИ выполняет операцию так называемого суммирования по модулю 2. Поэтому эти элементы также называются сумматорами по модулю два. Как уже отмечалось в предыдущей лекции, обозначается суммирование по модулю 2 знаком плюса, заключенного в кружок.
Основное применение элементов Исключающее ИЛИ, прямо следующее из таблицы истинности , состоит в сравнении двух входных сигналов. В случае, когда на входы приходят две единицы или два нуля (сигналы совпадают), на выходе формируется нуль (см. табл. 4.1) . Обычно при таком применении на один вход элемента подается постоянный уровень, с которым сравнивается изменяющийся во времени сигнал, приходящий на другой вход. Но значительно чаще для сравнения сигналов и кодов применяются специальные микросхемы компараторов кодов , которые будут рассмотрены в следующей лекции.
В качестве сумматора по модулю 2 элемент Исключающее ИЛИ используется также в параллельных и последовательных делителях по модулю 2, служащих для вычисления циклических контрольных сумм. Но подробно эти схемы будут рассмотрены в лекциях 14,15.
Важное применение элементов Исключающее ИЛИ - это управляемый инвертор (рис. 4.2) . В этом случае один из входов элемента используется в качестве управляющего, а на другой вход элемента поступает информационный сигнал. Если на управляющем входе единица , то входной сигнал инвертируется, если же нуль - не инвертируется. Чаще всего управляющий сигнал задается постоянным уровнем, определяя режим работы элемента, а информационный сигнал является импульсным. То есть элемент Исключающее ИЛИ может изменять полярность входного сигнала или фронта, а может и не изменять в зависимости от управляющего сигнала .
Рис. 4.2.
В случае, когда имеется два сигнала одинаковой полярности (положительные или отрицательные), и при этом их одновременный приход исключается, элемент Исключающее ИЛИ может быть использован для смешивания этих сигналов (рис. 4.3) . При любой полярности входных сигналов выходные сигналы элемента будут положительными. При положительных входных сигналах элемент Исключающее ИЛИ будет работать как элемент 2ИЛИ, а при отрицательных он будет заменять элемент 2И-НЕ. Такие замены могут быть полезны в тех случаях, когда в схеме остаются неиспользованными некоторые элементы Исключающее ИЛИ. Правда, при этом надо учитывать, что задержка распространения сигнала в элементе Исключающее ИЛИ обычно несколько больше (примерно в 1,5 раза), чем задержка в простейших элементах И, И-НЕ, ИЛИ, ИЛИ-НЕ.
Обозначается оборотом речи «либо…, либо…» Составное утверждение «либо A, либо B» считается истинным, когда истинно либо A, либо B, но не оба сразу; в противном случае составное утверждение ложно.
Т.е. результат истинен (равен 1), если A не равно B (A≠B).
Эту операцию нередко сравнивают с дизъюнкцией потому, что они очень похожи по свойствам, и обе имеют сходство с союзом «или» в повседневной речи. Сравните правила для этих операций:
1. истинно, если истинно или , или оба сразу.
2. истинно, если истинно или , но не оба сразу.
Операция исключает последний вариант («оба сразу») и по этой причине называется исключающим «ИЛИ». Неоднозначность естественного языка заключается в том, что союз «или» может применяться в обоих случаях.
5. Импликация (логическое следование) образуется соединением двух высказываний в одно с помощью оборота речи «если …, то ….».
Запись: А®В
Составное высказывание, образованное с помощью операции импликации, ложно тогда и только тогда, когда из истинной предпосылки (первого высказывания) следует ложный вывод (второе высказывание).
Т.е. если из 1 следует 0, то результат – 0, в остальных случаях – 1.
Например, высказывание «Если число делится на 10, то оно делится на 5» истинно, т.к. истинны и первое и второе высказывание.
Высказывание «Если число делится на 10, то оно делится на 3» ложно, т.к. из истинной предпосылки делается ложный вывод.
"Данный четырёхугольник - квадрат" (А ) и "Около данного четырёхугольника можно описать окружность" (В ). Тогда составное высказывание , читается как "Если данный четырёхугольник квадрат, то около него можно описать окружность".
В обычной речи связка "если..., то" описывает причинно-следственную связь между высказываниями. Но в логических операциях смысл высказываний не учитывается. Рассматривается только их истинность или ложность. Поэтому не надо смущаться "бессмысленностью" импликаций, образованных высказываниями, совершенно не связанными по содержанию. Например, такими: "если президент США - демократ, то в Африке водятся жирафы", "если арбуз - ягода, то в бензоколонке есть бензин".
6. Эквивалентность (логическое равенство, ~ º Û) образуется соединением двух высказываний в одно с помощью оборота речи « …тогда и только тогда, когда...»
Составное высказывание, образованное операцией эквивалентности, истинно тогда и только тогда, когда оба высказывания одновременно либо ложны, либо истинны.
Например, высказывание «Компьютер может производить вычисления тогда и только тогда, когда он включен» и «Компьютер не может производить вычисления тогда и только тогда, когда он не включен» - истинны, поскольку оба простых высказывания одновременно истинны.
Таблицы истинности
Для каждого составного высказывания (логической функции) можно построить таблицу истинности, которая определяет его истинность или ложность при всех возможных комбинациях исходных значений простых высказываний.
Таблица истинности это табличное представление логической схемы (операции), в котором перечислены все возможные сочетания значений истинности входных сигналов (операндов) вместе со значением истинности выходного сигнала (результата операции) для каждого из этих сочетаний.
Отразим выше рассмотренные логические операции в таблице истинности:
В алгебре высказываний все логические функции путем логических преобразований могут быть сведены к трем базовым: логическому сложению, логическому умножению и логическому отрицанию.
Докажем, что операция импликация А®В равносильна логическому выражению:
Поведение
Элементы Исключающее ИЛИ, Исключающее ИЛИ-НЕ, Нечётность и Чётность вычисляют соответствующую функцию от значений на входах и выдают результат на выход.
По умолчанию, неподключенные входы игнорируются - то есть, если входы действительно не имеют ничего подключенного к ним - даже провода. Таким образом, вы можете добавить 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 строго на одном входе (по умолчанию), или на нечётном количестве входов.
Операция исключающее ИЛИ (неравнозначность, сложение по модулю два) обозначается символом и отличается от логического ИЛИ только приA=1 и B=1.
Таким образом, неравнозначность двух высказываний Х1 и Х2 называют такое высказывание Y, которое истинно тогда и только тогда, когда одно из этих высказываний истинно, а другое ложно.
Определение данной операции может быть записано в виде таблицы истинности (таблица 6):
Таблица 6 – Таблица истинности операции «ИСКЛЮЧАЮЩЕЕ ИЛИ»
Как видно из таблицы 6, логика работы элемента соответствует его названию.
Это тот же элемент «ИЛИ» с одним небольшим отличием. Если значение на обоих входах равно логической единице, то на выходе элемента «ИСКЛЮЧАЮЩЕЕ ИЛИ», в отличие от элемента «ИЛИ», не единица, а ноль.
Операция «ИСКЛЮЧАЮЩЕЕ ИЛИ» фактически сравнивает на совпадение два двоичных разряда.
Каждая логическая связка рассматривается как операция над логическими высказываниями и имеет своё название и обозначение (таблица 7).
Таблица 7 – Основные логические операции
Обозначение операции |
Читается |
Название операции |
Альтернативные обозначения |
Отрицание (инверсия) |
Черта сверху |
||
Конъюнкция (логическое умножение) | |||
Дизъюнкция (логическое сложение) | |||
Если … то |
Импликация | ||
Тогда и только тогда |
Эквиваленция | ||
Либо … либо |
ИСКЛЮЧАЮЩЕЕ ИЛИ (сложение по модулю 2) |
Порядок выполнения логических операций в сложном логическом выражении
Система логических операций инверсии, конъюнкции, дизъюнкции позволяет построить сколь угодно сложное логическое выражение.
При вычислении значения логического выражения принят определённый порядок выполнения логических операций.
1. Инверсия.
2. Конъюнкция.
3. Дизъюнкция.
4. Импликация.
5. Эквивалентность.
Для изменения указанного порядка выполнения операций используются скобки.
Логические выражения и таблицы истинности
Логические выражения
Каждое составное высказывание можно выразить в виде формулы (логического выражения), в которую входят логические переменные, обозначающие высказывания, и знаки логических операций, обозначающие логические функции.
Для записи составного высказывания в виде логического выражения на формальном языке (языке алгебры логики) в составном высказывании нужно выделить простые высказывания и логические связи между ними.
Запишем в форме логического выражения составное высказывание «(2·2=5 или 2∙2=4) и (2∙2≠5 или 2∙2 ≠4)».
Проанализируем составное высказывание. Оно содержит два простых высказывания:
А = «2 2=5»-ложно (0),
В = «2 2=4»-истинно (1).
Тогда составное высказывание можно записать в следующей форме:
«(А или В ) и (Ā или В )».
Теперь необходимо записать высказывание в форме логического выражения с учётом последовательности выполнения логических операций. При выполнении логических операций определён следующий порядок их выполнения:
инверсия, конъюнкция, дизъюнкция.
Для изменения указанного порядка могут использоваться скобки:
F = (A v В ) & (Ā v В ).
Истинность или ложность составных высказываний можно определять чисто формально, руководствуясь законами алгебры высказываний, не обращаясь к смысловому содержанию высказываний.
Подставим в логическое выражение значения логических переменных и, используя таблицы истинности базовых логических операций, получим значение логической функции:
F = (A v В) & (Ā v В) = (0 v 1) & (1 v 0) = 1 & 1 = 1.
Таблицы истинности
Таблицы, в которых логические операции отражают результаты вычислений сложных высказываний при различных значениях исходных простых высказываний, называются таблицами истинности.
Простые высказывания обозначаются переменными (например, A и B).
При построении таблиц истинности целесообразно руководствоваться определённой последовательностью действий:
необходимо определить количество строк в таблице истинности. Оно равно количеству возможных комбинаций значений логических переменных, входящих в логическое выражение. Если количество логических переменных равно п, то:
количество строк = 2 n .
В
нашем случае логическая функция
имеет 2 переменные и, следовательно, количество строк в таблице истинности должно быть равно 4;
необходимо определить количество столбцов в таблице истинности, которое равно количеству логических переменных плюс количество логических операций.
В нашем случае количество переменных равно двум: А и В, а количество логических операций - пяти (таблица 8), то есть количество столбцов таблицы истинности равно семи;
необходимо построить таблицу истинности с указанным количеством строк и столбцов, обозначить столбцы и внести в таблицу возможные наборы значений исходных логических переменных;
необходимо заполнить таблицу истинности по столбцам, выполняя базовые логические операции в необходимой последовательности и в соответствии с их таблицами истинности.
Теперь мы можем определить значение логической функции для любого набора значений логических переменных.
Таблица 8 – Таблица истинности логической функции
Оператор | Синтаксис | Описание |
AND | A AND B | Конъюнкция: Если А и В имеют значение True, то - True. Иначе - False |
OR | A OR B | Дизъюнкция: Если любой из операндов имеет значение True, то - True. Иначе - False |
NOT | NOT A | Отрицание: Если А имеет значение False, то - True. Иначе - False |
XOR | A XOR B | Исключение: Если А имеет значение True или В имеет значение True, то - True. Иначе - False |
EQV | A EQV B | Эквивалентность: Если А имеет такое же значение что и В, то - True. Иначе - False |
IMP | A IMP B | Импликация: Если А имеет значение True и В имеет значение False, то - False. Иначе - True |
В качестве операнда для логического оператора можно использовать любое действительное выражение, имеющее результат типа Boolean, а также число, которое может быть преобразовано в значение типа Boolean.
Результатом логической операции является значение типа Boolean (или Null, если хотя бы один из операндов имеет значение Null).
Логический оператор AND
Синтаксис:
Операнд_1 AND Операнд_2
Оператор AND выполняет логическую конъюнкцию .
Результатом данной операции является значение True, только когда оба операнда имеют значение True, иначе - False.
Таблица истинности
Оператор AND можно использовать для нескольких операндов:
(5 3) AND (5=6) результатом будет False
Независимо от количества операндов результатом логической операции AND будет True только в том случае, когда все операнды выражения будут иметь значение True. В любом другом случае результатом будет False. Обратите внимание, что операнды заключаются в круглые скобки. VBA сначала вычисляет значение каждого операнда внутри скобок, а затем уже все выражение полностью.
Логический оператор OR
Синтаксис:
Операнд_1 OR Операнд_2
Оператор OR выполняет логическую дизъюнкцию .
Результатом данной операции является значение True, если хотя бы один из операндов имеет значение True, иначе - False.
Таблица истинности
Оператор OR можно использовать для нескольких операндов:
(5 3) OR (5=6) результатом будет True
Независимо от количества операндов результатом логической операции OR будет всегда True в том случае, если хотя бы один из операндов выражения будет иметь значение True. Иначе результатом будет False.
Операторы AND и OR можно комбинировать:
((5 3)) OR (5=6) результатом будет True
Логический оператор NOT
Синтаксис:
NOT Операнд
Оператор NOT выполняет логическое отрицание .
Оператор NOT использует только один операнд.
Таблица истинности
Операторы AND OR NOT можно комбинировать:
((5 3)) OR NOT (5=6) результатом будет True
Логический оператор XOR
Синтаксис:
Операнд_1 XOR Операнд_2
Оператор XOR выполняет логическое исключение .
Результатом данной операции является значение True, если операнды имеют разные значения, иначе - False.
Таблица истинности
((5 3)) OR NOT (5=6) XOR (5=5) результатом будет False
Логический оператор EQV
Синтаксис:
Операнд_1 EQV Операнд_2
Оператор EQV - это оператор логической эквивалентности .
Результатом данной операции является значение True, если операнды имеют одинаковые значения, иначе - False.
Таблица истинности
((5 3)) OR NOT (5=6) EQV (5=5) результатом будет True
Логический оператор IMP
Синтаксис:
Операнд_1 IMP Операнд_2
Оператор IMP выполняет логическую операцию импликации .
Таблица истинности
((5 3)) OR NOT (5=6) IMP (5=5) результатом будет True
Логический оператор IMP наименее интуитивно понятный из всех логических операторов. К счастью, необходимость в его применении возникает довольно редко.