Логические операции и их свойства. Логическое сложение (дизъюнкция) Логическое объединение

Логические операции. Дизъюнкция, конъюнкция и отрицание

Так как же связываются между собой простые логические высказывания, образуя сложные? В естественном языке мы используем различные союзы и другие части речи. Например, «и», «или», «либо», «не», «если», «то», «тогда». Пример сложных высказываний: «у него есть знания и навыки», «она приедет во вторник,либо в среду», «я буду играть тогда , когда сделаю уроки», «5 не равно 6». Как мы решаем, что нам сказали правду или нет? Как-то логически, даже где-то неосознанно, исходя из предыдущего жизненного опыта, мы понимает, что правда при союзе «и» наступает в случае правдивости обоих простых высказываний. Стоит одному стать ложью и все сложное высказывание будет лживо. А вот, при связке «либо» должно быть правдой только одно простое высказывание, и тогда все выражение станет истинным.

Булева алгебра переложила этот жизненный опыт на аппарат математики, формализовала его, ввела жесткие правила получения однозначного результата. Союзы стали называться здесь логическими операторами.

Алгебра логики предусматривает множество логических операций. Однако три из них заслуживают особого внимания, т.к. с их помощью можно описать все остальные, и, следовательно, использовать меньше разнообразных устройств при конструировании схем. Такими операциями являются конъюнкция (И),дизъюнкция (ИЛИ) и отрицание (НЕ). Часто конъюнкцию обозначают & , дизъюнкцию - || , а отрицание - чертой над переменной, обозначающей высказывание.

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

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

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

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

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

Логические основы компьютера

В ЭВМ используются различные устройства, работу которых прекрасно описывает алгебра логики. К таким устройствам относятся группы переключателей, триггеры, сумматоры.

Кроме того, связь между булевой алгеброй и компьютерами лежит и в используемой в ЭВМ системе счисления. Как известно она двоичная. Поэтому в устройствах компьютера можно хранить и преобразовывать как числа, так и значения логических переменных.

Переключательные схемы

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

Вентили, триггеры и сумматоры

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

Триггеры и сумматоры – это относительно сложные устройства, состоящие из более простых элементов – вентилей.

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

Сумматоры широко используются в арифметико-логических устройствах (АЛУ) процессора и выполняют суммирование двоичных разрядов.

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

Вентель - это устройство, которое выдает результат булевой операции от введенных в него данных (сигналов).

Простейший вентиль представляет собой транзисторный инвертор, который преобразует низкое напряжение в высокое или наоборот (высокое в низкое). Это можно представить как преобразование логического нуля в логическую единицу или наоборот. Т.е. получаем вентиль НЕ .

Соединив пару транзисторов различным способом, получают вентили ИЛИ-НЕ и И-НЕ . Эти вентили принимают уже не один, а два и более входных сигнала. Выходной сигнал всегда один и зависит (выдает высокое или низкое напряжение) от входных сигналов. В случае вентиля ИЛИ-НЕ получить высокое напряжение (логическую единицу) можно только при условии низкого напряжении на всех входах. В случае вентиля И-НЕ все наоборот: логическая единица получается, если все входные сигналы будут нулевыми. Как видно, это обратно таким привычным логическим операциям как И и ИЛИ. Однако обычно используются вентили И-НЕ и ИЛИ-НЕ, т.к. их реализация проще: И-НЕ и ИЛИ-НЕ реализуются двумя транзисторами, тогда как логические И и ИЛИ тремя.

Выходной сигнал вентиля можно выражать как функцию от входных.

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

Для логических величин обычно используются три операции:

  1. Конъюнкция – логическое умножение (И) – and, &, ∧ .
  2. Дизъюнкция – логическое сложение (ИЛИ) – or, |, v .
  3. Логическое отрицание (НЕ) – not, .

Логические выражения можно преобразовывать в соответствии с законами алгебры логики :

  1. Законы рефлексивности
    a ∨ a = a
    a ∧ a = a
  2. Законы коммутативности
    a ∨ b = b ∨ a
    a ∧ b = b ∧ a
  3. Законы ассоциативности
    (a ∧ b) ∧ c = a ∧ (b ∧ c)
    (a ∨ b) ∨ c = a ∨ (b ∨ c)
  4. Законы дистрибутивности
    a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c)
    a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c)
  5. Закон отрицания отрицания
    (a) = a
  6. Законы де Моргана
    (a ∧ b) = a ∨ b
    (a ∨ b) = a ∧ b
  7. Законы поглощения
    a ∨ (a ∧ b) = a
    a ∧ (a ∨ b) = a

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

Если логическая функция выражена через дизъюнкцию, конъюнкцию и отрицание переменных, то такая форма представления называется нормальной . Среди нормальных форм выделяют такие, в которых функции записываются единственным образом. Их называют совершенными .

Особую роль в алгебре логики играют классы дизъюнктивных и конъюнктивных совершенных нормальных форм. В их основе лежат понятия элементарной дизъюнкции и элементарной конъюнкции.

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

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

ДНФ И СДНФ

Формула называется дизъюнктивной нормальной формой (ДНФ), если она является дизъюнкцией неповторяющихся элементарных конъюнкций. ДНФ записываются в виде: А1 v А2 v ... v Аn , где каждое Аn - элементарная конъюнкция.

Формула А от k переменных называется совершенной дизъюнктивной нормальной формой (СДНФ), если:
1.А является ДНФ, в которой каждая элементарная конъюнкция есть конъюнкция k переменных х1, х2, …, xk , причем на i-м месте этой конъюнкции стоит либо переменнаяхi либо ее отрицание;
2. Все элементарные конъюнкции в такой ДНФ попарно различны.

Например: А = х1 & НЕ х2 v х1 & х2

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

Она является примером однозначного представления булевой функции в виде формульной (алгебраической) записи.

Теорема о СДНФ

Пусть f(x1 х2, …, хn) – булева функция от n переменных, не равная тождественно нулю. Тогда существует совершенная дизъюнктивная нормальная форма, выражающая функцию f.

Алгоритм построения СДНФ по таблице истинности:

1.В таблице истинности отмечаем наборы переменных, на которых значение функции f = 1.
2.Записываем для каждого отмеченного набора конъюнкцию всех переменных следующим образом: если значение некоторой переменной в этом наборе равно 1, то в конъюнкцию включаем саму переменную, в противном случае – ее отрицание.
3.Все полученные конъюнкции связываем операциями дизъюнкции.

КНФ И СКНФ

Формула называется конъюнктивной нормальной формой (КНФ), если она является конъюнкцией неповторяющихся элементарных дизъюнкций. КНФ записываются в виде: А1 & А2 & ... & Аn , где каждое Аn – элементарная дизъюнкция.

Формула А от k переменных называется совершенной конъюнктивной нормальной формой (СКНФ), если:
1. А является КНФ, в которой каждая элементарная дизъюнкция есть дизъюнкция k переменных x1, х2, …, хk, причем на i-м месте этой дизъюнкции стоит либо переменная xi, либо ее отрицание;
2. Все элементарные дизъюнкции в такой КНФ попарно различны.

Например: А = (х1 v НЕ х2) & (х1 v х2)

Теорема о СКНФ

Пустьf(x1 х2, …, хn) – булева функция от n переменных, не равная тождественно нулю. Тогда существует совершенная конъюнктивная нормальная форма, выражающая функцию f.

Алгоритм построения СКНФ по таблице истинности:

1.В таблице истинности отмечаем наборы переменных, на которых значение функции f = 0.
2.Записываем для каждого отмеченного набора дизъюнкцию всех переменных следующим образом: если значение некоторой переменной в этом наборе равно 0, то в дизъюнкцию включаем саму переменную, в противном случае – ее отрицание.
3.Все полученные дизъюнкции связываем операциями конъюнкции.

Из алгоритмов построения СДНФ и СКНФ следует, что если на большей части наборов значений переменных функция равна 0, то для получения ее формулы проще построить СДНФ, в противном случае – СКНФ.

Минимизация логических функций при помощи карт Карно

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

Карты Карно были изобретены в 1952 Эдвардом В. Вейчем и усовершенствованы в 1953 Морисом Карно, физиком из «Bell Labs», и были призваны помочь упростить цифровые электронные схемы.

В карту Карно булевы переменные передаются из таблицы истинности и упорядочиваются с помощью кода Грея, в котором каждое следующее число отличается от предыдущего только одним разрядом.

Основным методом минимизации логических функций, представленных в виде СДНФ или СКНФ является операция попарного неполного склеивания и элементарного поглощения. Операция попарного склеивания осуществляется между двумя термами (членами), содержащими одинаковые переменные, вхождения которых (прямые и инверсные) совпадают для всех переменных, кроме одной. В этом случае все переменные, кроме одной, можно вынести за скобки, а оставшиеся в скобках прямое и инверсное вхождение одной переменной подвергнуть склейке. Например:

Возможность поглощения следует из очевидных равенств

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

На рисунке изображена простая таблица истинности для функции из двух переменных, соответствующий этой таблице 2-мерный куб (квадрат), а также 2-мерный куб с обозначением членов СДНФ и эквивалентная таблица для группировки термов:

Метод диаграмм Вейча.

" Метод позволяет быстро получать минимальные ДНФ булевой функции f небольшого числа переменных. В основе метода лежит задание булевых функций диаграммами некоторого специального вида, получившими название диаграмм Вейча. Для булевой функции двух переменных диаграмма Вейча имеет вид (табл. 4.4.1).

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

Добавление к ней еще такой же таблицы дает диаграмму для функции 4-х переменных (табл. 4.4.3).

Таким же образом, т. е. приписыванием еще одной диаграммы 3-х переменных к только что рассмотренной, можно получить диаграмму для функции 5-ти переменных и т. д., однако диаграммы для функций с числом переменных больше 4-х используются редко. Для приведенных диаграмм характерно следующее:

Синтез комбинационных схем можно проиллюстрировать решением простой задачи.

Задача 1

Приёмная комиссия в составе трех членов комиссии и одного председателя решает судьбу абитуриента большинством голосов. В случае равного распределения голосов большинство определяется той группой, в которой оказался председатель приемной комиссии. Построить автомат, обеспечивающий определение большинства голосов.

Решение

С учётом вышеуказанных допущений условие задачи можно однозначно представить в виде таблицы истинности.

Заполнение таблицы осуществляем с учётом того, что функция f является полностью определённой, т.е. она определена на всех возможных наборах переменных x1 - x4. Для n входных переменных существует N = 2n наборов переменных. В нашем примере N = 24 = 16 наборов.

Записывать эти наборы можно в любом порядке, но лучше в порядке возрастания двоичного кода.

Десятичная система счисления

Основание этой системы счисления p равно десяти. В этой системе счисления используется десять цифр. В настоящее время для обозначения этих цифр используются символы 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Число в десятичной системе счисления записывается как сумма единиц, десятков, сотен, тысяч и так далее. То есть веса соседних разрядов различаются в десять раз. Точно также записываются и числа, меньшие единицы. В этом случае разряды числа будут называться как десятые, сотые или тысячные доли единицы.

Рассмотрим пример записи десятичного числа. Для того чтобы показать, что в примере используется именно десятичная система счисления, используем индекс 10. Если же кроме десятичной формы записи чисел не предполагается использования никакой другой, то индекс обычно не используется:

A 10 =247,56 10 =2*10 2 +4*10 1 +7*10 0 +5*10 -1 +6*10 -2 = 200 10 +40 10 +7 10 +0,5 10 +0,06 10

Здесь самый старший разряд числа будет называться сотнями. В приведённом примере сотням соответствует цифра 2. Следующий разряд будет называться десятками. В приведённом примере десяткам соответствует цифра 4. Следующий разряд будет называться единицами. В приведённом примере единицам соответствует цифра 7. Десятым долям соответствует цифра 5, а сотым – 6.

Двоичная система счисления

Основание этой системы счисления p равно двум. В этой системе счисления используется две цифры. Чтобы не выдумывать новых символов для обозначения цифр, в двоичной системе счисления были использованы символы десятичных цифр 0 и 1. Для того чтобы не спутать систему счисления в записи числа используется индекс 2. Если же кроме двоичной формы записи чисел не предполагается использования никакой другой, то этот индекс можно опустить.

Число в этой системе счисления записывается как сумма единиц, двоек, четвёрок, восьмёрок и так далее. То есть веса соседних разрядов различаются в два раза. Точно также записываются и числа, меньшие единицы. В этом случае разряды числа будут называться как половины, четверти или восьмые доли единицы.

Рассмотрим пример записи двоичного числа:

A 2 =101110,101 2 = 1*2 5 +0*2 4 +1*2 3 +1*2 2 +1*2 1 +0*2 0 +1*2 -1 +0*2 -2 +1*2 -3 = 32 10 +8 10 +4 10 +2 10 +0,5 10 +0,125 10 =46,625 10

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

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

Восьмеричная система счисления

Основание этой системы счисления p равно восьми. Восьмеричную систему счисления можно рассматривать как более короткий вариант записи двоичных чисел, так как число восемь является степенью числа два. В этой системе счисления используется восемь цифр. Чтобы не выдумывать новых символов для обозначения цифр, в восьмеричной системе счисления были использованы символы десятичных цифр 0, 1, 2, 3, 4, 5, 6 и 7. Для того чтобы не спутать систему счисления в записи числа используется индекс 8. Если же кроме восьмеричной формы записи чисел не предполагается использования никакой другой, то этот индекс можно опустить.

Число в этой системе счисления записывается как сумма единиц, восьмёрок, шестьдесят четвёрок и так далее. То есть веса соседних разрядов различаются в восемь раз. Точно также записываются и числа, меньшие единицы. В этом случае разряды числа будут называться как восьмые, шестьдесят четвёртые и так далее доли единицы.

Рассмотрим пример записи восьмеричного числа:

A 8 =125,46 8 =1*8 2 +2*8 1 +5*8 0 +4*8 -1 +6*8 -2 = 64 10 +16 10 +5 10 +4 10 /8 10 +6 10 /64 10 = 85,59375 10

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

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

Виды цифровых компараторов

Компаратор для сравнения разнополярных сигналов

Компаратор для сравнения однополярных сигналов

Компаратор для сравнения однополярных напряжений с гистерезисной характеристикой. В рассмотренных компараторах могут быть получены характеристики с гистерезисными свойствами. Введение гистерезиса в работу компаратора несколько снижает точность сравнения, однако делает его невосприимчивым к шумам и помехам. Гистерезис достигается включением более высокого опорного напряжения, когда напряжение изменяется от низкого к высокому уровню по сравнению со значением, используемым, когда напряжение изменяется от высокого к низкому уровню. При этом высокое значение опорного напряжения называется верхним порогом срабатывания, а низкое - нижним порогом срабатывания. Это достигается путем введения положительной обратной связи.

Многоразрядные компараторы

Рассмотрим в качестве примера четырехразрядный цифровой компаратор серии К555СП1, восемь входов которого служат для подключения двух четырехразрядных слов: А0 . А3, В0 . B3, подлежащих сравнению. Управляющие входыI(А> В),(А = В) и I(А < В) могут быть использованы для наращивания разрядности компаратора. Предусмотрены три выхода результата сравнения: А> В, А = В и А<В.

Таблица истинности такого компаратора (табл. 1) разбита по строкам на три раздела.

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

Рис. 1. Условное графическое изображение компаратора типа СП1

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

Одноразрядные компараторы

Одноразрядный компаратор имеет два входа на которые одновременно поступают одноразрядные двоичные числа x1 и x2, и три выхода (=, >, <). Из таблицы истинности логические уравнения компаратора при сравнении x1 с x2 получаются в виде

Реализация такого компаратора в базисе И-НЕ приводит к следующему рисунку (рис. 2):

Рисунок 2. Одноразрядный компаратор двоичных чисел.

Таблица 1. Таблица истинности четырехразрядного компаратора типа СП1

Компаратор (аналоговых сигналов) (англ. comparator - сравнивающее устройство ) - электронная схема, принимающая на свои входы два аналоговых сигнала и выдающая логическую «1», если сигнал на прямом входе («+») больше, чем на инверсном входе («−»), и логический «0», если сигнал на прямом входе меньше, чем на инверсном входе.

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

Простейший компаратор представляет собой дифференциальный усилитель. Компаратор отличается от линейного операционного усилителя (ОУ) устройством и входного, и выходного каскадов:

  • Входной каскад компаратора должен выдерживать широкий диапазон входных напряжений между инвертирующим и неинвертирующим входами, вплоть до размаха питающих напряжений, и быстро восстанавливаться при изменении знака этого напряжения.
  • Выходной каскад компаратора выполняется совместимым по логическим уровням и токам с конкретным типом входов логических схем (технологий ТТЛ, ЭСЛ и т. п.). Возможны выходные каскады на одиночном транзисторе с открытым коллектором (совместимость с ТТЛ и КМОП логикой).
  • Для формирования гистерезисной передаточной характеристики компараторы часто охватывают положительной обратной связью. Эта мера позволяет избежать быстрых нежелательных переключений состояния выхода, обусловленном шумами во входном сигнале, при медленно изменяющемся входном сигнале.

При подаче эталонного напряжения сравнения на инвертирующий вход входной сигнал подаётся на неинвертирующий вход, и компаратор является неинвертирующим (повторителем, буфером).

При подаче эталонного напряжения сравнения на неинвертирующий вход входной сигнал подаётся на инвертирующий вход, и компаратор является инвертирующим (инвертором).

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

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

Счетчик импульсов – электронное устройство, предназначенное для подсчета числа импульсов, поданных на вход. Количество поступивших импульсов выражается в двоичной системе счисления.

Счетчики импульсов являются разновидностью регистров (счетные регистры) и строятся соответственно на триггерах и логических элементах.

Основными показателями счетчиков являются коэффициент счета К 2n - число импульсов, которое может быть сосчитано счетчиком. Например, счетчик, состоящий из четырех триггеров, может иметь максимальный коэффициент счёта 24=16. Для четырехтриггерного счетчика минимальный выходной код - 0000, максимальный -1111, а при коэффициенте счёта Кс = 10 выходной счет останавливается при коде 1001 = 9.

На рисунке 1, а представлена схема четырехразрядного счетчика на Т-триггерах, соединенных последовательно. Счетные импульсы подаются на счетный вход первого триггера. Счетные входы последующих триггеров связаны с выходами предыдущих триггеров.

Работу схемы иллюстрируют временные диаграммы, приведенные на рисунке 1, б. При поступлении первого счетного импульса по его спаду первый триггер переходит в состояние Q1 = 1, т.е. в счетчике записан цифровой код 0001. По окончании второго счетного импульса первый триггер переходит в состояние «0», а второй переключается в состояние «1». В счетчике записывается число 2 с кодом 0010.

Рисунок 1 – Двоичный четырехразрядный счетчик: а) схема, б) условно-графическое обозначение, в) временные диаграммы работы

Из диаграммы (рис. 1, б) видно, что, например, по спаду 5-го импульса в счетчике записан код 0101, по 9-му – 1001 и т.п. По окончании 15-го импульса все разряды счетчика устанавливаются в состояние «1», а по спаду 16-го импульса все триггеры обнуляются, т. е. счетчик переходит в исходное состояние. Для принудительного обнуления счетчика имеется вход «сброс».

Коэффициент счета двоичного счетчика находят из соотношения Ксч = 2n, где n - число разрядов (триггеров) счетчика.

Подсчет числа импульсов является наиболее распространенной операцией в устройствах цифровой обработки информации.

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

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

В шифраторе имеется m входов, последовательно пронумерованных десятичным числами (0, 1,2,..., m - 1), и n выходов. Число входов и выходов определяются зависимостью 2n = m (рис. 2, а). Символ «CD» образован из букв, входящих в английское слове Coder.

Подача сигнала на один из входов приводит к появлению на выходах n-разрядного двоичного числа, соответствующего номеру входа. Например, при подаче импульса на 4-й вход на выходах возникает цифровой код 100 (рис. 2, а).

Для обратного преобразования двоичных чисел в небольшие по значению десятичные числа используются дешифраторы (называемые также декодерами). Входы дешифратора (рис. 2, б) предназначаются для подачи двоичных чисел, выходы последовательно нумеруются десятичными числами. При подаче на входы двоичного числа появляется сигнал на определенном выходе, номер которого соответствует входному числу. Например, при подаче кода 110, сигнал появится на 6-м выходе.

Рисунок 2 – а) УГО шифратора, б) УГО дешифратора

Мультиплексор - устройство, в котором выход соединяется с одним из входов, в соответствии с кодом адреса. Т.о. мультиплексор представляет собой электронный переключатель или коммутатор.

Рисунок 3 – Мультиплексор: а) условно-графическое обозначение, б) таблица состояний

На входы А1, А2 подаётся код адреса, определяющий, какой из входов сигналов будет передан на выход устройства (рис. 3).

Для преобразования информации из цифровой формы в аналоговую применяют цифро-аналоговые преобразователи (ЦАП) , а для обратного преобразования - аналого-цифровые преобразователи (АЦП) .

Входной сигнал ЦАП - двоичное многоразрядное число, а выходной - напряжение Uвых, формируемое на основе опорного напряжения.

Процедура аналого-цифрового преобразования (рис. 4) состоит из двух этапов: дискретизации по времени (выборки) и квантования по уровню. Процесс дискретизации состоит из измерения значений непрерывного сигнала только в дискретные моменты времени.

Рисунок 4 – Процесс аналого-цифрового преобразования

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

Регистр – функциональный узел объединяющий несколько однотипных триггеров.

Типы регистров:

1) Регистры защелки – строятся на триггерах защелках (К155ТМ5; К155ТМ7), запись в которые ведется уровнем стробирующего сигнала.

В триггере К155ТМ8 - запись ведется положительным фронтом стробирующего сигнала.

2) Сдвигающие регистры – выполняют функцию только последовательного приема кода.

3) Универсальные регистры – могут принимать информацию в параллельном и последовательном коде.

4) Специальные регистры – К589ИР12 имеют дополнительные варианты использования.

Сдвигающий регистр

Это регистр, содержимое которого при подаче управляющего сигнала может сдвигаться в сторону старших или младших разрядов. Например, сдвиг влево приведен в таблице 9.

Таблица 9 Сдвиг кода влево

Универсальные регистры

Они имеют внешние выходы и входы для всех разрядов, а также последовательный вход DS.

Имеются два вида универсальных регистров:

1) регистр выполняющий сдвиг только в одном направлении и параллельный прием кода (например, К155ИР1; К176ИР3).

2) с четырьмя режимами работы: сдвиг вправо/влево; параллельный прием; хранение(например, 8 разрядный регистр К155ИР13; 4 разрядный К500ИР141).

Основной элементарной операцией, выполняемой над кодами чисел в цифровых устройствах, является арифметическое сложение.

Сумматор логический операционный узел, выполняющий арифметическое сложение кодов двух чисел. При арифметическом сложении выполняются и другие дополнительные операции: учет знаков чисел, выравнивание порядков слагаемых и тому подобное. Указанные операции выполняются в арифметическо-логических устройствах (АЛУ) или процессорных элементах, ядром которых являются сумматоры.

Сумматоры классифицируют по различным признакам.

В зависимости от системы счисления различают:

  • двоичные;
  • двоично-десятичные (в общем случае двоично-кодированные);
  • десятичные;
  • прочие (например, амплитудные).

По количеству одновременно обрабатываемых разрядов складываемых чисел:

  • одноразрядные,
  • многоразрядные.

По числу входов и выходов одноразрядных двоичных сумматоров:

  • четвертьсумматоры (элементы "сумма по модулю 2"; элементы "исключающее ИЛИ"), характеризующиеся наличием двух входов, на которые подаются два одноразрядных числа, и одним выходом, на котором реализуется их арифметическая сумма;
  • полусумматоры, характеризующиеся наличием двух входов, на которые подаются одноименные разряды двух чисел, и двух выходов: на одном реализуется арифметическая сумма в данном разряде, а на другом перенос в следующий (более старший разряд);
  • полные одноразрядные двоичные сумматоры, характеризующиеся наличием трех входов, на которые подаются одноименные разряды двух складываемых чисел и перенос из предыдущего (более младшего) разряда, и двумя выходами: на одном реализуется арифметическая сумма в данном разряде, а на другом перенос в следующий (более старший разряд).

По способу представления и обработки складываемых чисел многоразрядные сумматоры подразделяются на:

  • последовательные, в которых обработка чисел ведется поочередно, разряд за разрядом на одном и том же оборудовании;
  • параллельные, в которых слагаемые складываются одновременно по всем разрядам, и для каждого разряда имеется свое оборудование.

Параллельный сумматор в простейшем случае представляет собой n одноразрядных сумматоров, последовательно (от младших разрядов к старшим) соединенных цепями переноса. Однако такая схема сумматора характеризуется сравнительно невысоким быстродействием, так как формирование сигналов суммы и переноса в каждом i-ом разряде производится лишь после того, как поступит сигнал переноса с (i-1)-го разряда.Таким образом, быстродействие сумматора определяется временем распространения сигнала по цепи переноса. Уменьшение этого времени основная задача при построении параллельных сумматоров.

Для уменьшения времени распространения сигнала переноса применяют: конструктивные решения

Конъюнкция или логическое умножение (в теории множеств – это пересечение)

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

Обозначение: &, $\wedge$, $\cdot$.

Таблица истинности для конъюнкции

Рисунок 1.

Свойства конъюнкции:

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

Дизъюнкция или логическое сложение (в теории множеств это объединение)

Дизъюнкция является сложным логическим выражением, которое истинно практически всегда, за исключением, когда все выражения ложны.

Обозначение: +, $\vee$.

Таблица истинности для дизъюнкции

Рисунок 2.

Свойства дизъюнкции:

  1. Если хотя бы одно из подвыражений дизъюнкции истинно на некотором наборе значений переменных, то и вся дизъюнкция принимает истинное значение для данного набора подвыражений.
  2. Если все выражения из некоторого списка дизъюнкции ложны на некотором наборе значений переменных, то и вся дизъюнкция этих выражений тоже ложна.
  3. Значение всей дизъюнкции не зависит от порядка записи подвыражений (как в математике – сложение).

Отрицание, логическое отрицание или инверсия (в теории множеств это отрицание)

Отрицание - означает, что к исходному логическому выражению добавляется частица НЕ или слова НЕВЕРНО, ЧТО и в итоге получаем, что если исходное выражение истинно, то отрицание исходного – будет ложно и наоборот, если исходное выражение ложно, то его отрицание будет истинно.

Обозначения: не $A$, $\bar{A}$, $¬A$.

Таблица истинности для инверсии

Рисунок 3.

Свойства отрицания:

«Двойное отрицание» $¬¬A$ является следствием суждения $A$, то есть имеет место тавтология в формальной логике и равно самому значению в булевой логике.

Импликация или логическое следование

Импликация - это сложное логическое выражение, которое истинно во всех случаях, кроме как из истины следует ложь. То есть, данная логическая операция связывает два простых логических выражения, из которых первое является условием ($A$), а второе ($A$) является следствием условия ($A$).

Обозначения: $\to$, $\Rightarrow$.

Таблица истинности для импликации

Рисунок 4.

Свойства импликации:

  1. $A \to B = ¬A \vee B$.
  2. Импликация $A \to B$ ложна, если $A=1$ и $B=0$.
  3. Если $A=0$, то импликация $A \to B$ истинна при любом значении $B$, (из лжи может следовать истинна).

Эквивалентность или логическая равнозначность

Эквивалентность - это сложное логическое выражение, которое истинно на равных значениях переменных $A$ и $B$.

Обозначения: $\leftrightarrow$, $\Leftrightarrow$, $\equiv$.

Таблица истинности для эквивалентности

Рисунок 5.

Свойства эквивалентности:

  1. Эквивалентность истинна на равных наборах значений переменных $A$ и $B$.
  2. КНФ $A \equiv B = (\bar{A} \vee B) \cdot (A \cdot \bar{B})$
  3. ДНФ $A \equiv B = \bar{A} \cdot \bar{B} \vee A \cdot B$

Строгая дизъюнкция или сложение по модулю 2 (в теории множеств это объединение двух множеств без их пересечения)

Строгая дизъюнкция истинна, если значения аргументов не равны.

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

Порядок выполнения логических операций в сложном логическом выражении

  1. Инверсия(отрицание);
  2. Конъюнкция (логическое умножение);
  3. Дизъюнкция и строгая дизъюнкция (логическое сложение);
  4. Импликация (следствие);
  5. Эквивалентность (тождество).

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

Общие свойства

Для набора из $n$ логических переменных существует ровно $2^n$ различных значений. Таблица истинности для логического выражения от $n$ переменных содержит $n+1$ столбец и $2^n$ строк.

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

Логическое умножение (конъюнкция)

Логическое умножение есть соединение двух простых высказываний союзом "И". Например, возьмем два высказывания: «Дважды два равно четырем» (a), «Трижды три равно девяти» (a). Сложное высказывание «Дважды два равно четырем и Трижды три равно девяти» истинно, т.к. истинны оба высказывания a и b. Но если взять другие высказывания: «Дважды два равно четырем» (c), и «Стол имеет 2 ножки» (d), то сложное высказывание «Дважды два равно четырем и Стол имеет 2 ножки» будет ложным, т.к. ложно высказывание (d).

Конъюнкция: сложное высказывание, в простейшем случае являющееся соединением двух простых высказываний a и b, истинно тогда и только тогда, когда истинны оба высказывания a и b.

Обозначения операции «конъюнкция»: a & b, a and b, ab, a Λ b.

Знак & - амперсанд - читается как английское "and".

Таблица истинности функции «логическое умножение»:

Логическое умножение
Аргументы Функция
a b F = ab

Значение функции a = «2*2=4» =1, значение функции b = «3*3=8» = 0.

Значение функции ab = «(2*2=4) & (3*3=8)» = 0

Логическое сложение есть соединение двух простых высказываний союзом "ИЛИ". Например, возьмем два высказывания: «Дважды два равно четырем» (a), «Трижды три равно девяти» (b). Сложное высказывание «Дважды два равно четырем ИЛИ трижды три равно девяти» истинно, т.к. оно соответствует действительности. Формально, это сложное высказывание является истинным, т.к. истинны оба этих высказывания. С точки зрения здравого смысла, даже если взять два других высказывания: «Дважды два равно четырем» (c) и «Стол имеет 2 ножки» (d), то сложное высказывание «Дважды два равно четырем ИЛИ стол имеет 2 ножки» соответствует действительности и является истинным. Формально оно является истинным, т.к. в этом сложном высказывании есть одно истинное высказывание (c). Таким образом, исходя из обычного смысла союза "ИЛИ", приходим к определению соответствующей логической операции - дизъюнкции.

Дизъюнкция: сложное высказывание, в простейшем случае являющееся соединением двух простых высказываний a и b, истинно тогда и только тогда, когда истинным является хотя бы одно высказывание - a или b.

Обозначения операции «дизъюнкция»: a ! b, a or b, a + b, a V b.

Таблица истинности функции «логическое сложение»:

Логическое умножение
Аргументы Функция
a b F = a V b


1. Значение функции a = «2*2=4» =1, значение функции b = «3*3=8» = 0.

Значение функции a V b = «(2*2=4) V (3*3=8)» = 1

2. Значение функции a = «2*2=4» =1, значение функции b = «3*3=9» = 1.

Значение функции a V b = «(2*2=4) V (3*3=9)» = 1

3. Значение функции a = «2*2=5» =0, значение функции b = «3*3=8» = 0.

Значение функции a V b = «(2*2=5) V (3*3=8)» = 0

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

Пример. С помощью таблиц истинности определим равносильность двух выражений: &и .

Сравнивая эти две таблицы истинности, можно убедиться в равносильности двух сложных выражений.

Для обозначения равносильных логических выражений применяется знак «=».

Для рассмотренного случая можно записать: &= .

Конъюнкция: соответствует союзу: «и», обозначается знаком^, обозначает логическое умножение.

Конъюнкция двух логических ~ истинна тогда и только тогда, когда оба высказываний истинны. Можно обобщить для любого количества переменных А^В^С = 1 если А=1, В=1, С=1.

Таблица истинности для операции «Конъюнкция»:

Таблица №2

  1. Дизъюнкция

Логическая операция соответствует союзу ИЛИ, обозначается знаком v, иначе называется ЛОГИЧЕСКОЕ СЛОЖЕНИЕ.

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

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

A v В v С = 0, только если А = О, В = О, С - 0.

Таблица истинности для операции «Дизъюнкция»:

Таблица №3

  1. Инверсия

Логическая операция соответствует частице не, обозначается ¬ или ¯ и является логическим отрицанием.

Инверсия логической переменной истинна, если переменная ложна и наоборот: инверсия ложна, если переменная истинна.

Таблица истинности для операции «Инверсия»:

Таблица №5

Эквивалентность «А тогда В и только тогда», обозначается А ~ В

Таблица №6

При вычислении значения логического выражения (формулы) логические операции вычисляются в определенном порядке, согласно их приоритету:

    инверсия;

    конъюнкция;

    дизъюнкция;

    импликация и эквивалентность;

Операции одного приоритета выполняются слева направо. Для изменения порядка действий используются скобки.

Формализация высказываний

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

    Земля вращается вокруг своей оси и вокруг Солнца;

    орбиты всех планет проходят вокруг Солнца;

С помощью формальных языков строятся формальные информационные модели (математические, логические и др.). Одним из наиболее широко используемых формальных языков является математика. Модели, построенные с использованием математических понятий и формул, называются математическими моделями. Язык математики является совокупностью формальных языков.

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

Язык алгебры логики (алгебры высказываний) позволяет строить формальные логические модели. С помощью алгебры высказываний можно формализовать (записать в виде логических выражений) простые и сложные высказывания, выраженные на естественном языке. Построение логических моделей позволяет решать логические задачи, строить логические модели устройств компьютера (сумматора, триггера) и так далее.

Процесс построения информационных моделей с помощью формальных языков называется формализацией.

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

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

Дизъюнкция может быть операцией как бинарной (имеющей два операнда), так и n {\displaystyle n} -арной (имеющей n {\displaystyle n} операндов) для произвольного n {\displaystyle n} .

Запись может быть префиксной - знак операции стоит перед операндами (польская запись), инфиксной - знак операции стоит между операндами или постфиксной - знак операции стоит после операндов. При числе операндов более двух префиксная и постфиксная записи экономичнее.

Обозначения

Наиболее часто встречаются следующие обозначения для операции дизъюнкции:

a ∨ b , a {\displaystyle a\lor b,\;a} || b , a {\displaystyle b,\;a} | b , a OR b {\displaystyle b,\;a~{\mbox{OR}}\,\,b} , max (a , b) . {\displaystyle ,\;\max(a,b).}

При этом обозначение наиболее широко распространено в современной математике и математической логике . Появилось оно не сразу: Джордж Буль , положивший начало систематическому применению символического метода к логике, не работал с дизъюнкцией (используя вместо неё строгую дизъюнкцию , которую обозначал знаком + ), а Уильям Джевонс предложил для дизъюнкции знак ·|· . Эрнст Шрёдер и П. С. Порецкий вновь использовали знак + , но уже применительно к обычной дизъюнкции . Символ ∨ {\displaystyle \lor } как обозначение дизъюнкции впервые встречается в статье «Математическая логика, основанная на теории типов» Бертрана Рассела (1908); он образован от лат. vel что означает ‘или’ .

Обозначение ⋁ для дизъюнкции было использовано и в раннем языке программирования Алгол 60 . Однако из-за отсутствия соответствующего символа в стандартных наборах символов (например, в ASCII или EBCDIC), применявшихся на большинстве компьютеров , в получивших наибольшее распространение языках программирования были предусмотрены иные обозначения для дизъюнкции. Так, в Фортране IV и PL/I применялись соответственно обозначения.OR. и | (с возможностью замены последнего на ключевое слово OR) ; в языках Паскаль и Ада используется зарезервированное слово or ; в языках и C++ применяются обозначения | для побитовой дизъюнкции и || для логической дизъюнкции ).

Наконец, при естественном упорядочении значений истинности двузначной логики (когда полагают, что 0 < 1 {\displaystyle 0<1} ), оказывается, что (a ∨ b) = max (a , b) . {\displaystyle (a\lor b)\,=\,\max(a,b).} Таким образом, дизъюнкция оказывается частным случаем операции вычисления максимума ; это открывает наиболее естественный способ определить операцию дизъюнкции в системах многозначной логики .

Булева алгебра

Логическая функция MAX в двухзначной (двоичной) логике называется дизъюнкция (логи́ческое «ИЛИ» , логи́ческое сложе́ние или просто «ИЛИ» ). При этом результат равен наибольшему операнду.

В булевой алгебре дизъюнкция - это функция двух, трёх или более переменных (они же - операнды операции, они же - аргументы функции). Таким образом, результат равен , если все операнды равны ; во всех остальных случаях результат равен 1 {\displaystyle 1} .

Таблица истинности
a {\displaystyle a} b {\displaystyle b} a ∨ b {\displaystyle a\lor b}
1 {\displaystyle 1} 1 {\displaystyle 1}
1 {\displaystyle 1} 1 {\displaystyle 1}
1 {\displaystyle 1} 1 {\displaystyle 1} 1 {\displaystyle 1}

Таблица истинности для тернарной (трёхоперандной) дизъюнкции:

a {\displaystyle a} b {\displaystyle b} c {\displaystyle c} a ∨ b ∨ c {\displaystyle a\lor b\lor c}
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1

Многозначная логика

Операция, называемая в двоичной логике дизъюнкция , в многозначных логиках называется максимум : m a x (a , b) {\displaystyle max(a,b)} , где a , b ∈ [ 0 , . . . , n − 1 ] {\displaystyle a,b\in } , а n {\displaystyle n} - значность логики. Возможны и другие варианты [чего? ] . Как правило, стараются сохранить совместимость с булевой алгеброй для значений операндов 0 , 1 {\displaystyle 0,1} .

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

Классическая логика

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

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

Схемотехника

Мнемоническое правило для дизъюнкции с любым количеством входов звучит так: На выходе будет:

  • «1» тогда и только тогда, когда хотя бы на одном входе есть «1»,
  • «0» тогда и только тогда, когда на всех входах «0»

Теория множеств

Программирование

В компьютерных языках используется два основных варианта дизъюнкции: логическое «ИЛИ» и побитовое «ИЛИ». Например, в языках C/C++/Perl/PHP логическое «ИЛИ» обозначается символом "||", а побитовое - символом "|". В языках Pascal/Delphi оба вида дизъюнкции обозначаются с использованием ключевого слова «or », а результат действия определяется типом операндов. Если операнды имеют логический тип (например, Boolean) - выполняется логическая операция, если целочисленный (например, Byte) - поразрядная.

Логическое «ИЛИ» применяется в операторах условного перехода или в аналогичных случаях, когда требуется получение результата или . Например:

if (a || b ) { /* какие-то действия */ };

Результат будет равен f a l s e {\displaystyle false} , если оба операнда равны f a l s e {\displaystyle false} или . В любом другом случае результат будет равен t r u e {\displaystyle true} .

При этом применяется стандартное соглашение: если значение левого операнда равно t r u e {\displaystyle true} , то значение правого операнда не вычисляется (вместо b {\displaystyle b} может стоять сложная формула). Такое соглашение ускоряет исполнение программы и служит полезным приёмом в некоторых случаях. Компилятор Delphi поддерживает специальную директиву, включающую