Логический элемент Исключающее ИЛИ • Все своими руками
Опубликовал admin | Дата 23 сентября, 2014
Рубрика: Логические схемы
На практике наиболее часто используют двухвходовые элементы «исключающее ИЛИ. На рис. 1 показано условное графическое обозначение элемента без инверсии и его таблица состояний. По простому, суть данного элемента сводится к следующему, сигнал на выходе появляется только в том случае, когда логические уровни на входах не одинаковые.
В данной схеме три элемента «Исключающий ИЛИ» используются для задержки импульсов. DD1.4 — суммирующий. Выходные импульсы имеют стабильные фронты и срезы. Длительность каждого выходного импульса равна утроенному времени задержки переключения каждого из трех элементов. Временной промежуток между фронтами выходных импульсов равен длительности входного импульса. Так же это устройство удваивает частоту входного сигнала.
Есть еще одно интересное свойство «Исключающее ИЛИ». Если на один из входов подать постоянный «0», то сигнал на выходе элемента будет повторять входной сигнал, а если постоянный «0» поменять на постоянную «1», то выходной сигнал уже будет инверсией входного.
Иногда появляется необходимость получить элемент «исключающее ИЛИ» из отдельных стандартных логических элементов. Примером может служить схема элемента «исключающее ИЛИ» реализованная на четырех элементах 2-И-НЕ. На рисунке 3 показана схема «исключающее ИЛИ» в четырех ее состояниях. Здесь показаны все возможные логические уровни на каждом из используемых логически элементов 2-И-НЕ.
Такие элементы входят в схему контроллера шагового двигателя. В данной схеме элемент «Исключающий ИЛИ» выполнен на четырех элементах 2-И-НЕ, входящих в один корпус микросхемы К561ЛА7.
Схема формирователя показана на рисунке 4. Здесь логический элемент «исключающее ИЛИ» также реализован на четырех элементах 2-И-НЕ.
На входы 1 и 2 формирователя падают импульсы прямоугольной формы (см. графики 1 и 2), которые различаются частотой следования. Узел на логических элементах DD1.1—DDI.4 перемножает эти сигналы. Выходной импульсный сигнал (график 3) с элемента DD1. 4 подается на интегрирующую цепь R3, С1, преобразующую его в сигнал треугольной формы (график 4) с частотой, равной разности частот входных сигналов, а ОУ DA1 преобразует полученный сигнал в меандр (см. график 5). Резистором R1 регулируют длительность положительной и отрицательной полуволн выходного сигнала. Очень интересная схема. Радиоконструктору, есть над чем подумать. Например, сигнал, показанный на третьем графике, является сигналом ШИМ синусоиды.
Конечно диапазон использования элементов «исключающее ИЛИ» намного шире. Я привел здесь на мой взгляд более интересные для радиолюбителей.
Используемая литература:
• Б.И. Горшков Элементы радиоэлектронных устройств Издательство «Радио и связь»
• Цифровые интегральные схемы М.И. Богданович Справочник Минск «Беларусь»-«Полымя» 1996
Просмотров:12 298
Метки: Логика
2.4. Логические элементы Исключающее или
Элементы Исключающее ИЛИ (по-английски — Exclusive-OR) также можно было бы отнести к простейшим элементам, но функция, выполняемая ими несколько сложнее, чем в случае элемента И или элемента ИЛИ. Все входы элементов Исключающее ИЛИ равноправны, однако ни один из входов не может заблокировать другие входы, установив выходной сигнал к уровню единицы или нуля.
Под функцией Исключающим ИЛИ понимается следующее: единица на выходе появляется тогда, когда только на одном входе присутствует единица. Если единиц на входах две или больше, или если на всех входах нули, то на выходе будет нуль. Таблица истинности двухвходового элемента Исключающее ИЛИ приведена ниже (табл. 2.5). Обозначения, принятые в отечественных и зарубежных схемах, показаны на рис. 2.27. Надпись на отечественном обозначении элемента Исключающее ИЛИ «=1» как раз и обозначает, что выделяется ситуация, когда на входах одна и только одна единица.
Таблица 2.5. Таблица истинности элемента Исключающее ИЛИ
Вход 1 | Вход 2 | Выход |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Элементов Исключающее ИЛИ в стандартных сериях немного. Отечественные серии предлагают микросхемы ЛП5 (четыре двухвходовых элемента с выходом 2С), ЛЛЗ и ЛГИ 2, отличающиеся от ЛП5 выходом ОК. Слишком уж специфическая функция реализуется этими элементами.
Рис. 2.27. Обозначения элементов Исключающее ИЛИ: зарубежные (слева) и отечественные (справа).
С точки зрения математики, элемент Исключающее ИЛИ выполняет операцию так называемого суммирования по модулю 2. Поэтому эти элементы также называются сумматорами по модулю два. Как уже отмечалось в предыдущей главе, обозначается суммирование по модулю 2 знаком плюса, заключенного в кружок.
Основное применение элементов Исключающее ИЛИ, прямо следующее из таблицы истинности, состоит в сравнении двух входных сигналов. В случае когда на входы приходят две единицы или два нуля (сигналы совпадают), на выходе формируется нуль (см. табл. 2.5). Обычно при таком применении на один вход элемента подается постоянный уровень, с которым сравнивается изменяющийся во времени сигнал, приходящий на другой вход.
В качестве сумматора по модулю 2 элемент Исключающее ИЛИ используется также в параллельных и последовательных делителях по модулю 2. предназначенных для вычисления циклических контрольных сумм. Но подробно эти схемы будут рассмотрены в гл. 8.
Рис. 2.28. Элемент Исключающее ИЛИ как управляемый инвертор.
Важное применение элементов Исключающее ИЛИ — управляемый инвертор (рис. 2.28). В этом случае один из входов элемента используется в качестве управляющего, а на другой вход элемента поступает информационный сигнал. Если на управляющем входе единица, то входной сигнал инвертируется, если же нуль — не инвертируется. Чаще всего управляющий сигнал задается постоянным уровнем, определяя режим работы элемента, а информационный сигнал является импульсным. То есть элемент Исключающее ИЛИ может изменять полярность входного сигнала или фронта, а может и не изменять в зависимости от управляющего сигнала.
В случае когда имеется два сигнала одинаковой полярности (положительные или отрицательные), и при этом их одновременный приход исключается, элемент Исключающее ИЛИ может быть использован для смешивания этих сигналов (рис. 2.29). При любой полярности входных сигналов выходные сигналы элемента будут положительными. При положительных входных сигналах элемент Исключающее ИЛИ будет работать как элемент 2ИЛИ, а при отрицательных входных сигналах он будет заменять элемент 2И-НЕ. Такие замены могут быть полезны в тех случаях, когда в схеме остаются неиспользованными некоторые элементы Исключающее ИЛИ. Правда, при этом надо учитывать, что задержка распространения сигнала в элементе Исключающее ИЛИ обычно несколько больше (примерно в 1,5 раза), чем задержка распространения в простейших элементах И, И-НЕ, ИЛИ, ИЛИ-НЕ.
Рис. 2.29. Применение элемента Исключающее ИЛИ для смешивания двух неодновременных сигналов.
Рис. 2.30. Выделение фронтов входного сигнала с помощью элемента Исключающее ИЛИ.
Еще одно важнейшее применение элемента Исключающее ИЛИ — формирование коротких импульсов по любому фронту входного сигнала (рис. 2.30). В данном случае не важно, положительный фронт входного сигнала или отрицательный, на выходе все равно формируется положительный импульс. Входной сигнал задерживается с помощью конденсатора или цепочки элементов, а затем исходный сигнал и его задержанная копия поступают на входы элемента Исключающее ИЛИ. В обеих схемах в качестве элементов задержки используются также двухвходовые элементы Исключающее ИЛИ в неинвертирующем включении (на неиспользуемый вход подается нуль). В результате такого преобразования можно говорить об удвоении частоты входного сигнала, так как выходные импульсы следуют вдвое чаще, чем входные.
Данную особенность элементов Исключающее ИЛИ надо учитывать в том случае, когда на оба входа элемента поступают одновременно изменяющиеся сигналы. При этом на выходе элемента возможно появление коротких паразитных импульсов по любому из фронтов входных сигналов.
Если несколько реляционных и/или логических операторов используются последовательно в одном выражении, в некоторых случаях оно может не выполняться. Чтобы избежать этой потенциальной проблемы, используйте в выражении соответствующие круглые скобки, чтобы явно определить порядок выполнения операторов. Дополнительные сведения см. в разделе правил сложных операторов в статье Создание сложных операторов.
Для выполнения булевой оценки необходимы два входа.
Порядок ввода не имеет значения для этого оператора. 9б.
Если оба входных сигнала являются одноканальными растрами или один из входных данных является константой, выходным будет одноканальный растр.
Если оба входа являются многоканальными растрами, оператор выполнит операцию над каждым каналом из одного входа, и на выходе будет многоканальный растр. Количество полос на каждом многополосном входе должно быть одинаковым.
Если одним из входных данных является многоканальный растр, а другим входным значением является константа, оператор выполнит операцию над постоянным значением для каждого канала в многоканальном входном сигнале, и на выходе будет многоканальный растр.
Если оба входа являются многомерными растрами с одинаковым количеством переменных, оператор выполнит операцию для всех срезов с одинаковым значением размерности, а на выходе будет многомерный растр. Переменные во входных данных должны иметь одинаковые размерности или общие размерности, но не должны иметь необычных размерностей.
Если оба входных параметра имеют одну переменную, но разные имена, установите для среды геообработки matchMultidirectionalVariable значение False, чтобы выполнить операцию.
Если одним из входных данных является многомерный растр, а другим входным значением является константа, оператор выполнит операцию для всех срезов для всех переменных с постоянным значением, а на выходе будет многомерный растр. 9(логическое XOr) пример 2 (автономный скрипт)
В этом образце выполняется логическая операция XOR с двумя входными растрами.
# Имя: Op_BooleanOr_Ex_02.py # Описание: Выполняет логическую операцию ИЛИ над значениями ячеек # два входных растра # Требования: Расширение Spatial Analyst # Импорт системных модулей импортировать аркпи из окружения импорта arcpy импорт из arcpy.sa * # Установить параметры среды env.workspace = "C:/sapyexamples/данные" # Установить локальные переменные inRaster1 = Растр ("градусы") inRaster2 = Растр ("нег") # Выполнить BooleanOr outBooleanOr = inRaster1 | inRaster2 # Сохраняем вывод outBooleanOr.save("C:/sapyexamples/output/outboolor")
Как получить логическое xor двух переменных в Python?
Некоторые из предложенных здесь реализаций будут вызывать повторную оценку операндов в некоторых случаях, что может привести к непреднамеренным побочным эффектам, и поэтому их следует избегать.
Тем не менее, реализация xor
, которая возвращает либо True
, либо False
, довольно проста; тот, который возвращает один из операндов, если это возможно, гораздо сложнее, потому что не существует единого мнения относительно того, какой операнд должен быть выбран, особенно когда имеется более двух операндов. Например, если xor(None, -1, [], True)
return None
, []
или False
? Бьюсь об заклад, каждый ответ кажется некоторым людям наиболее интуитивным.
Для результата True или False существует до пяти возможных вариантов: вернуть первый операнд (если он совпадает с конечным результатом по значению, иначе логическое значение), вернуть первое совпадение (если хотя бы одно существует, иначе логическое значение ), вернуть последний операнд (если… иначе…), вернуть последнее совпадение (если… иначе…) или всегда возвращать логическое значение. В сумме это 5 ** 2 = 25 вкусов из 9. = значение # выбор текущего операнда, который может совпадать или не совпадать с конечным результатом выбор = выбор[значение] # если выбор — последнее совпадение; # или последний операнд и текущий операнд, если он последний, соответствует результату; # или первый операнд, а текущий операнд действительно первый; # или первое совпадение, а совпадения еще не было если выбор < -1 или (выбор == -1 и значение == результат) или (выбор == 1 и первое) или (выбор > 1 и значение не совпадает): # сохранить текущий операнд соответствует [значение] = операнд # следующий операнд больше не будет первым первый = Ложь # если в качестве результата выбран последний операнд, но они не совпадают если (выбор [результат] == -1) и (результат != значение): вернуть результат еще: # вернуть сохраненный соответствующий операнд, если он существует, иначе результат будет как bool вернуть match.get (результат, результат) тесткейсы = [ (-1, Нет, Истина, {Нет: Нет}, [], ‘а’), (Нет, -1, {Нет: Нет}, ‘а’, []), (Нет, -1, Истина, {Нет: Нет}, ‘а’, []), (-1, Нет, {Нет: Нет}, [], ‘а’)] варианты = {-2: ‘последнее совпадение’, -1: ‘последний операнд’, 0: ‘всегда логическое значение’, 1: ‘первый операнд’, 2: ‘первое совпадение’} для c в тестовых примерах: печать (с) для f в отсортированном (choices.