МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Саровский физико-технический институт филиал федерального государственного автономного образовательного учреждения высшего профессионального образования «Национальный исследовательский ядерный университет «МИФИ» (СарФТИ НИЯУ МИФИ) ФАКУЛЬТЕТ ИНФОРМАЦИОННОЙ ТЕХНИКИ и ЭЛЕКТРОНИКИ Кафедра вычислительной и информационной техники В.В. Алексеев Элементы алгебры логики Методическое пособие по курсу “ДИСКРЕТНАЯ МАТЕМАТИКА” г. Саров 2015 г. 1 Логические основы цифровых автоматов. Конечные цифровые автоматы. (Общие сведения). Все многообразие элементов, узлов, блоков, устройств, из которых состоит любая ЭВМ, является примером различных типов преобразователей информации - цифровых автоматов. Методы теории цифровых автоматов (ЦА), являющихся математической моделью цифровых устройств, используются в качестве теоретической базы для анализа и синтеза различных цифровых устройств ЭВМ. Под цифровым автоматом будем понимать устройство предназначенное для преобразования цифровой (дискретной) информации, способное переходить под воздействием входных сигналов из одного состояния в другие и выдавать выходные сигналы. Отличительные особенности ЦА заключаются в том, что они имеют дискретное множество внутренних состояний и переход из одного в другое осуществляется скачкообразно. Дискретность информации проявляется в том, что она представляется посредством набора слов конечной длины в некотором алфавите. Реальные ЦА конечны, т. е. множество входных и выходных сигналов, а также число входных и выходных каналов и множество состояний автомата конечны. ЦА функционируют в дискретные моменты времени, временной интервал между которыми Т называется тактом. В зависимости от того, чем определяется время Т, различают автоматы синхронного и асинхронного действия. Для ЦА синхронного действия входные сигналы действуют в строго определенные моменты времени при Т = const, определенные генератором синхроимпульсов, в которые возможен переход из одного состояния в другое. Для ЦА асинхронного действия Т const и работа ЦА определяется моментами поступления входных сигналов, а переход из одного состояния в другое осуществляется при неизменном состоянии входа. Для идеализированных ЦА не учитывается переходные процессы в схемах и разница в фактических величинах Т для правильного функционирования не имеет значение. Для описания законов функционирования ЦА вводят абстрактное время. По степени детализации описания ЦА различают автоматы абстрактные и структурные. В соответствии с этим различают абстрактную и структурную теорию ЦА. Абстрактные ЦА рассматриваются как " черный ящик ", имеющий один вход и один выход, т. е. отвлекаются от структуры ЦА и его входных Х (t) и выходных Y (t) сигналов. X (t) Y(t) ЦА Для задания абстрактного автомата необходимо задать три алфавита : 2 - входной X = { x0 ,x1 ,x2 , ,xm } - выходной Y = { y0 ,y1 , ,yn } - состояний S = { s0 ,s1 , ,sk } Тогда закон функционирования абстрактного автомата может быть задан уравнениями: S( t 1 ) f [ s( t ),x( t )]; Y ( t ) p [ x( t ),s( t )]; S( 0 ) s0 ; 1.1 где (s, x) - функция переходов автомата ; (x, s) - функция выходов автомата ; S0 - начальное состояние автомата . ЦА, закон функционирования которых определяется уравнениями (1.1), называются автоматами Мили. ЦА, выходные сигналы в которых только от состояния автомата и не зависят от значения входных сигналов, называются автоматами Мура, т. е. для них уравнения (1.1) преобразуются в форму X ( t 1 ) f [ s( t ),x( t )]; Y ( t ) [ s( t )]; S ( 0 ) s0 ; 1.2 где [ s (t) ] -сдвинутая функция выхода. ЦА, имеющая более одного внутреннего состояния, называются автоматами с памятью. Частный случай абстрактных ЦА - автоматы с одним внутренним состоянием. Такие тривиальные автоматы называют автоматами без памяти или комбинационными схемами. Закон функционирования таких автоматов будет определяться одним уравнением : Y (t) = [ x(t)] , т.е. каждому входному сигналу х(t) сопоставляется свой выходной сигнал y(t). Наиболее распространенными стандартными способами задания абстрактных цифровых автоматов является задание их с помощью матриц, таблиц переходов и выходов или одной совмещенной таблицей, с помощью направленных графов, вершины которого отождествляются с состояниями автомата, а соединяющие их стрелки – с входными и выходными сигналами. Таблица переходов и выходов или граф цифрового автомата в явном виде задает функцию переходов и выходов и реализует отображение множества слов входного алфавита в множество слов выходного алфавита, т.е. любому входному слову из входного алфавита автомата будет соответствовать вполне определенное выходное слово из выходного алфавита. Наряду со стандартными способами задания абстрактных цифровых автоматов существуют так называемые начальные языки, с помощью которых цифровой автомат описывается на поведенческом уровне, т.е. могут быть заданы отображения последовательностей состояний входа в последовательность состояний выхода. 3 Функция переходов и выходов с помощью таких языков в явном виде не задается. К таким языкам, например, относят языки регулярных выражений алгебры событий, предикатный, операторных схем алгоритмов и др. Одна из задач абстрактной теории цифровых автоматов – рассмотрение вопросов преобразования описания цифрового автомата на начальном языке в описание на одном из стандартных языков. Структурный цифровой автомат в отличие от абстрактного является его дальнейшей детализацией, когда рассматривается как его внутренняя структура, так и структура входных и выходных сигналов. Это означает, что в теории таких автоматов изучаются методы построения автоматов из элементарных автоматов, способы кодирования внутренних состояний автомата, а также способы кодирования входных и выходных сигналов элементарными сигналами, подаваемыми по реальным физическим входным и выходным каналам. При решении вопросов кодирования каждому состоянию абстрактного автомата ставится в соответствие комбинации состояний элементарных автоматов, имеющих два внутренних состояния, а каждому входному (выходному) сигналу – комбинация элементарных двузначных сигналов. Одна из основных задач теории цифровых автоматов, решаемых применительно к построению различных цифровых устройств ЭВМ, заключается в том, чтобы задачу анализа и синтеза таких устройств свести к задаче анализа и синтеза комбинационных схем. При этом в качестве основного математического аппарата используется аппарат алгебры логики, что связано с двоичным представлением структурного алфавита цифровых устройств ЭВМ. 4 1. Функции алгебры логики и их основные свойства. 1.1 Основные определения Для формального описания цифровых автоматов (ЦА) широко применяют аппарат алгебры логики (АЛ), являющейся одним из разделов математической логики. Создатель алгебры логики - английский математик Джордж Буль (1815 1864). Определение 1. Основное понятие АЛ - высказывание. Высказывание некоторое предложение, о котором можно утверждать, что оно истинно или ложно. Любое высказывание можно обозначить символом, например, X и считать, что X=1, если высказывание истинно, X=0 если высказывание ложно. Определение 2. Логическая (Булева) переменная - такая величина X, которая может принимать только два значения: X = { 0, 1 }. Определение 3. Высказывание абсолютно истинно, если соответствующая ей логическая величина X принимает единичное значение при любых условиях. Определение 4. Высказывание абсолютно ложно, если соответствующая ей логическая переменная X принимает нулевое значение при всех условиях. Логическая функция ( функция алгебры логики - ФАЛ ) - функция (x 1 , x 2 ,....x n ) , принимающая значение, равное нулю или единице на наборе логических переменных x 1 , x 2 ,....x n Рассмотрим множество векторов x̂ x 1 , x 2 ,....x n , где x i - (координаты векторов) могут принимать значения 0 или 1. Таким образом, множество состоит из 2 n различных векторов. Совокупность координат некоторого фиксированного из множества x будем называть двоичным набором. Сопоставим вектора x каждому вектору из x число 0 и 1, т. е. произведем однозначное отображение множества X̂ на множество Y { 0, 1}. Определение 5 Функцией алгебры логики (ФАЛ) называется функция, дающая однозначное отображение X в Y. Т. к. число различных наборов значений аргументов является конечным, то любая ФАЛ может быть полностью задана конечной таблицей. В левой части этой таблицы перечислены все наборы значений аргументов этой функции, а в правой части - значения функции на этих наборах. Логические переменные Функция ... ... ... xn x2 xn1 ... x1 0 0 0 0 0 0 0 0 1 0 0 ... ... ... ... 1 1 0 0 1 ... ... ... ... ... 1 1 ... ... ... ... ... ... ... ... ... 1 1 ... ... ... ... 0 0 0 ... ... ... ... ... ... ... ... ... 5 Определение 6. Если две ФАЛ 1 ( x 1 x 2 x n ) и 2 ( x 1 x 2 x n ) принимают на всех возможных наборах значений аргументов одинаковые значения, то функции 1 и 2 называются равносильными или равными, т.е.: 1 ( x 1 x 2 x n ) = 2 ( x 1 x 2 x n ) Определение 7. Функция ( x1x i1 ,x i ,x i1x n ) существенно зависит от аргумента xi , если имеет место соотношение: ( x1, x i1 ,0,x i1x n ) ( x1,x i1 ,1,x i1x n ) В противном случае говорят, что от x i функция зависит несущественно и x i является фиктивным аргументом. ФАЛ не изменится, если к ее аргументам дописать любое число фиктивных аргументов, или зачеркнуть все фиктивные аргументы. Теорема 1.1 Число различных ФАЛ, зависящих от n аргументов конечно и 2n равно 2 . Для доказательства составим таблицу: x1 , x2 ,..., xn1 , xn 0 0 ... 0 0 0 0 ... 0 1 0 0 ... 1 0 f (x1 , x2 ,..., xn ) 1 2 3 ... ... 1 1 ... 1 2 1 n В этой таблице справа стоит одна из ФАЛ, зависящая от n аргументов. Задавая тот или иной конкретный двоичный набор < 1 ,2 , 2 >, мы будем тем самым задавать одну из возможных функций алгебры логики. Но различное n n число таких наборов равно 2 (2 ) . Теорема доказана. Значения функции могут быть заданы не на всех возможных наборах аргументов. На некоторых наборах значения ФАЛ могут быть не определены. Такие ФАЛ называют не полностью определенными или недоопределенными. Функцию можно доопределить. Если ФАЛ не определена на m наборах аргументов, то путем ее произвольного доопределения можно получить 2 m различных полностью определенных функций. 6 1.2 Элементарные функции алгебры логики В число ФАЛ, подсчитываемых с помощью теоремы 1.1 входят как функции существенно зависящие от всех n аргументов, так и функции, для 21 которых часть из этих аргументов фиктивна. Например, для n=1 имеем 2 =4 различных функций, приведенных в следующей таблице: f 1 (x1 ) f 2 (x1 ) f 3 (x1 ) f 4 (x1 ) x1 0 1 0 0 1 1 0 1 1 0 Из таблицы видно, что только f 3 и f 4 существенно зависят от x1 , а для f 1 и f 2 этот единственный аргумент является фиктивным. Функция f 3 (x), повторяющая значение логической переменной - тождественная функция ( f 3 (x) x ), а функция f 4 (x) - принимающая значения, обратные значениям x - логическое отрицание, или функция отрицания, или инверсии, или функция НЕ ( f 4 (x) = x ). Теорема 1.2. Число ФАЛ, существенно зависящих от n определяется следующим рекуррентным соотношением: n A n 2 2 C nn1 A n1 C nn2 A n2 C1n A 1 A 0 , где C kn - биномиальные коэффициенты. C kn аргументов, (1.3) n! , Ai - число ФАЛ, k !( n k )! существенно зависящих от i аргументов. Правая часть соотношения есть разность между числом всех ФАЛ и суммой всех ФАЛ, существенно зависящих от любого числа аргументов, меньших чем n. Вместо рекуррентного соотношения 1.3 можно найти прямое выражение для значений A m . Как показал Крылов Г. А. m A m ( 1) k C k 2 2 m k . (1.4) k 0 Пример Найти число ФАЛ, существенно зависящих от 3-х переменных. Имеем: A0 =2. Действительно A0 2 20 2 1 2. 1 A1 2 2 A 0 4 2 2 . 2 A 2 2 2 C12 A 1 A 0 2 4 2! 2 2 10 . 1!1! 3 A 3 2 2 C 23 A 2 C13A 1 A 0 256 30 6 2 218 . 7 Итак, в случае n=0 имеем в силу теоремы 1.1 две функции, совпадающие с константами 0 и 1. (1.5) f 1 = 0; f2 = 1 При n =1 имеем 2 функции, существенно зависящих от x (1.6) f 3 = x; f 4 = x (не ' x '). Рассмотрим логические функции от 2 x переменных: Функции f1 f2 f3 f4 f5 f6 f7 f8 f9 f 10 f 11 f 12 f 13 f 14 f 15 f 16 x1 x2 x1 x2 x1 x2 x1 x2 Примечание. 00 0 01 0 10 0 11 0 0 0 0 1 = x1 x 2 = x1 x 2 = x1 & x 2 конъюнкция. 0 0 1 0 = x1 x 2 (запрет x 2 ) 0 0 1 1 = x1 0 1 0 0 = x1 x 2 (запрет x1 ) 0 1 0 1 = x 2 (тождественность x 2 ) 0 1 1 0 = ( x1 x 2 ) (сложение по модулю 2) 0 1 1 1 = x1 x 2 = x1 + x 2 (дизъюнкция) 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 f x1 x 2 ( Функция Пирса ) f (x1 x2 ) (x1 ~ x2 )(Равнозначность) = x 2 (Отрицание x 2 ) = ( x 2 x1 ) (Импликация) = x1 (Отрицание x1 ) = ( x1 x 2 ) (Импликация) = ( x1 / x 2 ) ( Функция Шеффера) 1 1 1 1 0 (тождественность x1 ) 1 В силу теоремы 1.2 имеем 10 различных функций, существенно зависящих от аргументов x1 и x 2 . Из них рассмотрим семь, которые играют большую роль в построении теории ФАЛ и ее приложениях. (Помимо рассмотренных 1.5 и 1.6). а). Функция = x1 x2 = x1 x2 = x1 & x2 конъюнкция (логическое умножение, или функция И) истинна тогда и только тогда, когда и x1 и x 2 истинны. x1 x2 0 0 0 8 0 1 1 1 0 1 б). Функция = x1 x 2 - 0 0 1 дизъюнкция (логическое сложение, или функция ИЛИ) истинна тогда, и только тогда, когда истинны или x1 , или x 2 , или обе переменные. x1 x2 0 0 1 1 0 1 0 1 0 1 1 1 в). Функция = ( x1 x 2 ) Функция сложения по модулю 2 (или функция разноименности, или функция исключающее ИЛИ) истинна тогда, когда истинна или x1 , или x 2 , но не обе вместе. x1 x2 0 0 1 1 0 1 0 1 0 1 1 0 г).Функция - f (x1 x2 ) (x1 ~ x 2 ) функция равнозначности, которая истинна тогда и только тогда, когда обе переменные или истинны, или ложны. x2 x1 0 0 1 1 0 1 0 1 1 0 0 1 д.) Функция = ( x 2 x1 ) (импликация x 2 в x1 ), которая ложна тогда и только тогда, когда x 2 истинна, а x1 ложна x1 x2 = x1 x 2 = x 2 x1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 . 9 f x1 x 2 - функция Пирса ( Вебба ), которая истинна тогда и только тогда, когда x1 и x 2 ложны. x2 x1 е.) Функция 0 0 1 1 0 1 0 1 1 0 0 0 ж.) Функция = ( x1 / x 2 ) (Функция Шеффера), которая ложна только тогда, когда x1 и x 2 истинны. x1 x2 0 0 1 1 0 1 0 1 1 1 1 0 Для наглядности рассмотренные функции сведены в общую таблицу: x1 x2 x1 & x 2 x1 x 2 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 1 x1 x 2 x 1 x 2 0 1 1 0 1 0 0 0 x1 x 2 1 1 0 1 x2 x1 x1 x2 1 0 1 1 1 0 0 1 x1 / x 2 1 1 1 0 Рассмотренные 11 функций алгебры логики называются элементарными и позволяют строить новые ФАЛ двумя основными путями: 1. Путем перенумерации аргументов (для некоторых функций) 2. Путем подстановки в функцию новых функций вместо аргументов. Функцию, полученную из функций f1 , f 2 f k путем применения (возможно многократного) этих двух правил, называют суперпозицией функций f1 , f 2 f k . 1.3 Свойства элементарных ФАЛ. Из рассмотренных определений ФАЛ видно, что все они находятся в определенной взаимосвязи друг с другом. Используя основные положения АЛ, нетрудно убедиться в справедливости следующих восьми аксиом. Пусть x некоторая логическая переменная. Тогда: 1. x =x (Означает возможность исключение из логического выражения всех членов, 10 имеющих двойное отрицание, заменив их исходной величиной x). Эти правила позволяют сократить длину логических преобразований). 2. xx=x xx=x 3. 4. 5. 6. 7. 8. x0=x x1=1 x0=0 x1=x x x =0 x x =1 (1.7) 1.3.1 Выражение одних элементарных функций через другие. Установим ряд формул, которые в дальнейшем будут широко применяться. Для доказательства всех формул будем пользоваться единообразным методом. Этот метод заключается в непосредственной проверке совпадения функций, образующих правую и левую часть доказываемых соотношений (См. определение 6) 1. (1.8) x1 x 2 = x 1 x 2 x1 x2 0 0 1 1 0 1 0 1 2. x1 x2 1 1 0 1 x1 x2 x1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 x1 x 2 = x 1 x 2 x1 x2 0 0 1 1 0 1 0 1 (1.9 ) x1 x2 0 1 1 0 x1 x2 x1 ~ x2 0 0 1 1 0 1 0 1 1 0 0 1 x1 x2 0 0 1 0 1 0 x1 ~ x2 1 0 0 x1 ~ x2 0 1 1 0 x 1 ~ x 2 = ( x1 x 2 )( x1 x 2 ) 3. x1 x 2 (1.10) x1 x2 x1 x 2 x1 x2 1 1 0 1 0 1 1 1 0 11 1 0 1 (x1 x2 )(x1 x2 ) 1 0 0 1 1 4. 1 0 0 1 1 1 x1 = x1 (1.11) x1 x1 x1 0 1 1 0 0 1 5. x 1 x 2 ( x 1 x 2 )( x 1 x 2 ) (1.12) Справедливость этой формулы вытекает из (1.9) и (1.10.) 6. x1x 2 = x 1 x 2 (1.13) x1 x2 x1 x 2 x1 x2 x1 x2 x1 x 2 x1 x 2 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 7. x 1 x 2 = x 1 x 2 (1.14) x1 x2 x1 x2 x1 x2 x1 x2 x1 x 2 x1 x 2 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 Выражения (1.13) и (1.12) известны как правила де Моргана. Аналогично можно установить ряд взаимоотношений между другими функциями алгебры логики. Теперь, используя установленные “взаимоотношения” между элементарными ФАЛ и аксиомы алгебры логики, можно аналитически выразить одни ФАЛ через другие. Например, используя “табличный метод” доказательства, было установлено: x 1 x 2 x 1 x 2 . Тогда справедливо отношение: x 1 x 2 x 1 x 2 . Учитывая, что x x , получаем следующее выражение: x 1 x 2 x 1 x 2 . Аналогично, используя правила де Моргана получаем следующее выражение для функции сложения по модулю два: 12 x 1 x 2 ( x 1 x 2 )( x 1 x 2 ) ( x 1 x 2 ) ( x 1 x 2 ) ( x 1 x 2 ) ( x 1 x 2 ) x 1 x 2 x 1 x 2 x1 x 2 x1 x 2 x1 x 2 x1 x 2 1.3.2 Свойства конъюнкции, дизъюнкции, отрицания Функции конъюнкции (функция И), дизъюнкции (функция ИЛИ) обладают рядом свойств, аналогичным свойствам обычных операций умножения и сложения. Для них справедливы: 1. Свойство ассоциативности (сочетательный закон): x1 ( x 2 x 3 ) ( x1 x 2 ) x 3 ( x1 x 3 ) x 2 . x1 (x 2 x 3 ) (x1 x 2 ) x 3 (x1 x 3 ) x 2 . 2. Свойство коммутативности (переместительный закон): x1 x 2 x 2 x1 . x1 x 2 x 2 x1 . 3. Свойство дистрибутивности (распределительный закон): для конъюнкции относительно дизъюнкции: x1 & (x 2 x 3 ) (x1 & x 2 ) (x1 & x 3 ) . для дизъюнкции относительно конъюнкции: x1 x 2 & x 3 (x1 x 2 ) & (x1 x 3 ) . Действительно: ( x1 x 2 ) ( x1 x 3 ) x1 x1 x1 x 3 x 2 x1 x 2 x 3 x1 x1 x 3 x1 x 2 x 2 x 3 x1 (1 x 3 x 2 ) x 2 x 3 x1 x 2 x 3 . Обобщение формул (1.13) и (1.14) позволяет получить формулы, известные как законы Де-Моргана: (1.15) x 1 x 2 x 3 x n x 1 & x 2 & x 3 && x n . x1 & x 2 & x 3 & & x n x1 x 2 x 3 x n . (1.16) Из логических функций устанавливаются соотношения, известные как законы (правило) поглощения: x1 x1 x 2 x1 ; x1 ( x1 x 2 ) x1 . Доказательство этих соотношений не вызывает затруднений. Например, для первого соотношения имеем: x1 x1 x 2 x1 (1 x 2 ) x1 1 x1 . Второе соотношение доказывается аналогично: x1 (x1 x 2 ) x1 x1 x1 x 2 x1 x1 x 2 x1 (1 x 2 ) x1 . Из логических функций устанавливается правило склеивания: x1x 2 x1x 2 x1 Также для логических функций установлено правило вычеркивания: x1 x1 x 2 x1 x 2 . Действительно: 13 x 1 x 1 x 2 x 1 1 x 1 x 2 x 1 ( x 2 x 2 ) x 1 x 2 x 1 x 2 x 1 x 2 x 1 x 2 (x 1 x 2 x 1 x 2 ) ( x 1 x 2 x 1 x 2 ) x 1 ( x 2 x 2 ) x 2 ( x 1 x 1 ) x 1 1 x 2 1 x 1 x 2 . Знание свойств, законов и правил элементарных ФАЛ необходимо для аналитического описания функций алгебры логики, их преобразований. 1.3.3 Свойства функций сложения по модулю два, импликации, Шеффера, Пирса 1. Функция сложения по модулю два Эта функция может быть выражена через другие функции следующим образом: x1 x 2 x1 x 2 ( x1 x 2 ) (x1 x 2 ) ( x1 x 2 ) (x1 x 2 ) (1.17) x 1 x 2 x1 x 2 ( x 1 x 2 ) ( x1 x 2 ) . Функция сложения по модулю два обладает следующими свойствами: коммутативности (переместительный закон) x1 x 2 x 2 x1 ; ассоциативности (сочетательный закон) x1 (x 2 x 3 ) (x1 x 2 ) x 3 ; дистрибутивности (распределительный закон) x1 ( x 2 x 3 ) x1 x 2 x1 x 3 . Для этой функции справедливы законы: x x 0; x 1 x ; x 0 x ; x x 1. На основании аксиом и свойств можно вывести правила перевода функций И, ИЛИ, НЕ через функцию сложения по модулю два и наоборот. x x 1 ; x1 x 2 x1 x 2 x1 x 2 ; x1 x 2 ( x1 x 2 ) ( x1 x 2 ) . 2. Функция импликации Чаще всего функция импликации выражается через дизъюнкцию и отрицание следующим образом: (1.18) x 1 x 2 x1 x 2 . Для данной функции справедливы следующие законы: x x 1; x 1 1; 0 x 1; x x x; x 0 x; 1 x x . Из этих законов следует, что функция импликации обладает только свойством коммутативности (переместительный закон) в измененном виде: x 1 x 2 x 2 x1 . Свойство ассоциативности (сочетательный закон) для этой функции не справедливо, т.е. x 1 ( x 2 x 3 ) ( x 1 x 2 ) x 3 . Действительно: 14 x 1 ( x 2 x 3 ) x1 ( x 2 x 3 ) x1 x 2 x 3 x 1 x 2 x 3 ; ( x 1 x 2 ) x 3 ( x 1 x 2 ) x 3 ( x1 x 2 ) x 3 x 1 x 2 x 3 . Функции НЕ, ИЛИ, И выражаются через импликацию следующим образом: x x 0; x1 x 2 x1 x 2 (x1 0) x 2 ; x 1 x 2 x 1 x 2 x 1 ( x 2 0) [ x 1 ( x 2 0)] . 3 Функция Шеффера x1 / x 2 x1 x 2 . (1.19) Для функции Шеффера справедливы следующие законы: x / x 1; x / 0 1; x / x x; x /1 x. x /1 x; x / 0 1; Для функции Шеффера справедливо только свойство коммутативности x1 / x 2 x 2 / x1 . Однако для трех и более переменных x1 /( x 2 / x 3 ) ( x1 / x 2 ) / x 3 . Свойство ассоциативности для функции Шеффера несправедливо. Действительно, рассмотрим функции трех переменных: ( x 1 / x 3 ) / x 2 и ( x 1 / x 2 ) / x 3 . Имеем: ( x 1 / x 3 ) / x 2 x 1 x 3 x 2 x 1 x 3 x 2 , а ( x 1 / x 2 ) / x 3 = x 1 x 2 x 3 x 1 x 2 x 3 , т.е. получены совершенно разные функции. Следовательно, свойство ассоциативности несправедливо для трех переменных и будет несправедливо и для n переменных. Свойство дистрибутивности также несправедливо для функции Шеффера, т.е. x1 /( x 2 / x 3 ) x1 x 2 / x1 x 3 . Это можно показать следующим образом: x1 ( x 2 / x 3 ) x1 x 2 x 3 x1 ( x 2 x 3 ) x1 x 2 x1 x 3 = x1 x 2 x1 x 3 x1 x 2 / x1 x 3 , что не соответствует распределительному закону (свойству дистрибутивности). Формулы преобразования, полученные из основных свойств алгебры логики, для функции Шеффера имеют вид: x 1 x 2 x 1 / x 2 ( x 1 / x 2 ) /( x 1 / x 2 ) ; x x/x; x 1 x 2 x 1 x 2 x 1 / x 2 ( x 1 / x 1 ) /( x 2 / x 2 ) . 4 Функция Пирса (Вебба) x1 x 2 x1 x 2 x1 x 2 (1.20) Для функции Пирса справедливы законы: x x 0; xx x; x0x; x 1 0. Для функции Пирса справедливо только свойство коммутативности: x1 x 2 x 2 x1 . 15 Функции И, ИЛИ, НЕ выражаются через функцию Пирса следующим образом (формулы преобразования): x1 x 2 (x1 x1 ) (x 2 x 2 ) ; x1 x 2 x1 x 2 ( x1 x 2 ) ( x1 x 2 ) ; x x x. Функции Шеффера и Пирса связаны между собой соотношениями, аналогичными формулам Де-Мограна для конъюнкции и дизъюнкции: x1 / x 2 x1 x 2 (1.21) x1 x 2 x1 / x 2 Действительно, например, для первого равенства имеем: x1 / x 2 x 1 x 2 x1 x 2 x1 x 2 x1 x 2 . Аналогично доказывается справедливость и второго равенства: x1 x 2 x1 x 2 x1 x 2 x1 x 2 x1 / x 2 . 1.4 Аналитическое представление ФАЛ. Существует несколько способов заданий логических функций. Табличный метод не является компактным. Проще выглядит аналитическая запись в виде формул. Пусть мы имеем двоичный набор < x 1* x *2 x *n >, на котором задана ФАЛ. Сопоставим ему число i, определяемое следующим образом : * i= x1 2 n 1 x*2 2n 2 x*n 20 Число i будем называть номером набора < x 1* x *2 x *n >. Рассмотрим функцию Fi (x1 , x 2 x n ) , определяемую следующим соотношением: 1, если номер набора есть i Fi 0, если номер набора не равен i (1.22) Такую функцию называют характеристической функцией единицы, или конъюнктивным термом, или минтермом. Теорема 1.3 Любая таблично заданная ФАЛ может быть задана в следующей аналитической форме : f ( x 1 , x 2 x n ) Fi1 Fi 2 Fi k Fi j (1.23) i jT1 где Ti - множество номеров наборов, на которых функция обращается в единицу. Действительно, если на каком-либо наборе функция =( x 1* x *2 x *n )=1, то вследствие того, что x 1 1 в правой части 1.23 всегда найдется элемент, равный единице ( Fi j ), у которого i j соответствует номеру рассматриваемого набора. Если же на наборе i функция =( x 1* x *2 x *n )=0, то в правой части не найдется ни одного элемента, равного единице, т.к. 0v0v ... v 0=0. Т.о. каждому набору i, для которого f i =1 соответствует элемент Fi j =1, а наборам i, на которых fi =0 не соответствует ни одного элемента Fi j =1. Поэтому таблица истинности однозначно отображается аналитической записью вида 1.23 (дизъюнкция минтермов). 16 В теории мы воспользовались дизъюнкцией минтермов. Посмотрим, нельзя ли вместо дизъюнкции использовать какую-либо другую функцию. Для того чтобы выполнялось соотношение 1.23, необходимо чтобы при обращении любого Fi в 1 все выражение обращалось в 1, а при обращении всех Fi в 0 все выражения также становились равными 0. Сформулированные условия можно записать в виде таблицы: Fi Fj Fi Fj 0 0 1 1 0 1 0 1 0 1 1 ? где значком условно обозначена некоторая неизвестная операция. Знак "?" в последней строке таблицы соответствует такой комбинации значений Fj , которая никогда не может встретиться (ij). Поэтому искомая функция (операция) может быть определена двумя различными способами. Если в определяющую таблицу вместо “?” поставить ‘1’, то будет дизъюнкцией (=V). Этот случай рассматривался в теореме 1.3. Если же знак “?” заменить нулем (имеется в виду логическая переменная равная нулю), то будет функцией сложения по модулю два (= ). Следствие Любая таблично заданная ФАЛ может быть представлена в следующей аналитической форме : (1.24) f ( x 1 , x 2 x n ) Fi1 Fi2 Fi k Fi j i jT1 Представление функции в виде 1.23 называется представлением, а в виде 1.24- полиноминальным представлением. дизъюнктивным Для получения представления другого типа рассмотрим функцию i (x1 , x 2 x n ) и определяется как : 0, если номер набора есть i (1.25) Фi 1, если номер набора не равен i Такие функции называют характеристическими функциями нуля, или макстермы. Из соотношения 1.22 и 1.25 видно, что Fi ( x1 , x2 xn ) = i ( x1 , x2 xn ) Теорема 1.4 Любая таблично заданная ФАЛ может быть задана в следующей аналитической форме : f ( x 1 , x 2 x n ) i1 i2 i k & i j (1.26) i jT0 где T0 - количество номеров наборов, на которых функция обращается в 0. Доказательство этой теоремы аналогично доказательству теоремы теореме 1.3 Вместо конъюнкции в соотношении 1.26 можно взять любую функцию, которая удовлетворяет следующим условиям: 17 i j i j 0 0 1 1 0 1 0 1 ? 0 0 1 При записи в первой строке вместо "?" нуля , получаем конъюнкцию, рассмотренную в теореме 1.4 (=), а при замене "?" единицей - функцию эквивалентности ( = ) Следствие Любая таблично заданная ФАЛ может быть представлена в аналитической форме : (1.27) f ( x 1 , x 2 x n ) i1 i2 i k i j i jT0 Представление ФАЛ в виде 1.26 называется конъюнктивным представлением. Определение. Логические переменные, объединенные знаком V или & называются термом. Определение. Ранг терма r определяется количеством переменных, входящих в данный терм. Введем в рассмотрение степень аргумента х, которую будем обозначать x x; 1 x (1.28) x; 0 при этом x x ax 1.5 Совершенные нормальные формы. 1.5.1 СНДФ. Рассмотрим конъюнкцию x11 x 2 2 x n n (1.29) Набор < 1 2 n > двоичный и существует 2 n таких различных наборов. Т.о., число различных конъюнкций вида 1.29 также равно 2 n . Сопоставим каждой конъюнкции (1.29) номер, определяемый номером набора < 1 2 n >. Тогда запись : V(x i 1 1 x 2 2 x n n ) означает дизъюнкцию всех конъюнкций с номерами из множества . Аналогично, запись & ( x11 x 2 2 x n n ) означает конъюнкцию всех i дизъюнкций с номерами из множества . Покажем, что x ai i =1 тогда и только тогда, когда выполняется равенство x i a i . Это вытекает из рассмотрения следующих четырех возможных случаев. x i 0 a i x i 1 a i 1. 3. x i x i 1 x i x i 0 ai 0 a i 0 18 x i 0 a i x i 1 a i 4. x i x i 0 x i x i 1 ai 1 a i 1 Таким образом, конъюнкция x11 x 2 2 x n n не обращается в нуль только в том случае, если одновременно выполняются следующие i равенств. x1 a1 x 2 a 2 (1.30) x i a i Из 1.30 вытекает, что Fi ( x1 , x 2 x n )= x11 x 2 2 x n n при условии, что i a 1 2 n 1 a 2 2 n 2 a n 2 0 Тогда на основании теоремы 1.3 можно утверждать, что любая ФАЛ, кроме нуля, может быть представлена в виде: ( x1 , x 2 x n )= V ( x11 x 2 2 x n n ) (1.31) 2. 1 При этом дизъюнкция берется только по тем номерам наборов аргументов, на которых функция, заданная таблицей, обращается в единицу. Представление функции в виде 1.31 называется дизъюнктивной совершенной нормальной формой, (ДСНФ) или совершенной нормальной дизъюнктивной формой (СНДФ). 1.5.2 Алгоритм перехода из таблично заданной ФАЛ к СНДФ . 1. Выбрать в таблице задания функции все наборы аргументов, на которых функция обращается в единицу. 2. Выписать конъюнкции, соответствующие этим наборам аргументов. При этом, если аргумент x i входит в данный набор как 1, он выписывается без изменения в конъюнкцию, соответствующую данному набору. Если же x i =0, то в соответствующую конъюнкцию вписывается его отрицание. 3. Все полученные конъюнкции соединяются между собой знаками дизъюнкции. Пример. Пусть имеем таблично заданную ФАЛ: Табл. 1.5.1. x1 0 0 x2 0 0 x3 0 0 x4 0 1 ( x 1 , x 2 , x 3 , x 4 ) 0 1 x1x 2 x 3 x 4 0 0 1 0 1 x1x 2 x 3 x 4 0 0 0 1 1 0 1 0 0 1 x1x 2 x 3 x 4 0 0 1 1 0 1 1 0 0 1 x1x 2 x 3 x 4 0 1 1 0 1 0 1 0 0 0 19 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 x1x 2 x 3x 4 1 1 1 1 0 0 0 1 0 1 x1x 2 x 3x 4 1 1 1 0 1 x 1x 2 x 3 x 4 1 1 1 1 0 и тогда имеем: ( x 1 , x 2 , x 3 , x 4 )= x1x 2 x 3 x 4 v x1x 2 x 3 x 4 v x1x 2 x 3 x 4 v x1x 2 x 3 x 4 v v x 1x 2 x 3 x 4 v x 1x 2 x 3 x 4 v x 1x 2 x 3 x 4 Если вместо соотношения 1.23 воспользоваться соотношением 1.24, то получим совершенно нормальную полиноминальную форму СНПФ. СНПФ получается из СНДФ заменой знака V на . Так, в рассмотренном примере функция в СНПФ будет иметь вид: ( x 1 , x 2 , x 3 , x 4 )= x1x 2 x 3 x 4 x1x 2 x 3 x 4 x1x 2 x 3 x 4 x1x 2 x 3 x 4 x1x 2 x 3 x 4 x 1x 2 x 3 x 4 x 1x 2 x 3 x 4 1.5.3. Совершенная нормальная конъюктивная форма(СНКФ) Теорема 1.5. Любая ФАЛ, кроме единицы, может быть представлена в виде: f ( x 1 , x 2 ,.....x т ) &( x 11 , x 2 2 ,......x n n ) 0 (1.32.) Символ & означает, что & берется только по тем наборам 1 , 2 ,....... n , 0 для которых выполняется равенство: f (1 , 2 ,....... n ) =0. Доказательство: Имеем: f ( x1 , x 2 ,... x n ) V x 11 x 2 2 ....x n n или 1 f ( x 1 , x 2 ,...., x n ) V x x 2 2 ....x n n f ( 1 , 2 ,...., n ) . 1 1 1 Равенство не нарушается, если от обеих частей взять отрицание: . f ( x 1 , x 2 ,...., x n ) V x 11 x 2 2 ....x n n f ( 1 , 2 ,...., n ) 1 Применяя закон де - Моргана получаем: f ( x 1 , x 2 ,...., x n ) & [ x 11 , x 2 2 ..., x n n f ( 1 , 2 ,...., n )] &[ x 11 x 2 2 .... x 1 n f ( 1 , 2 ,.... n )] На тех наборах, для которых f (1 , 2 ,... n ) 1 , соответствующая дизъюнкция x11 x 2 2 .... x1 n f (1 , 2 ,....n ) 1. И такие наборы на значение конъюнкции не влияют ( x 1 x ) и ими можно пренебречь, и тогда: f ( x 1 , x 2 ,...x n ) &( x 11 x 2 n ... x n n ) 0 Теорема доказана для всех n 1 . Представление функции в виде 1.32 называется СНКФ – совершенной нормальной конъюктивной формой. 20 Из сравнения (1.26) и (1.32) вытекает, что Ф i ( x 1 , x 2 .....x n ) x 11 x 2 2 .... x n n , при условии, что i 2 n 1 2 2 n 2 ... n 2 0 . 1.5.4 Алгоритм построения СНКФ 1. Выбрать в таблице задания функции все наборы аргументов, на которых функция обращается в нуль. 2. Выписать дизъюнкции, соответствующие этим наборам аргументов. При этом, если x i входит в данный набор как 0, он выписывается без изменения в x дизъюнкцию, соответствующему данному набору. Если же i входит в данный аргумент набор как 1, то в соответствующую дизъюнкцию выписывается его отрицание. 3. Все полученные дизъюнкции соединяются между собой знаками конъюнкций. Пример (см. табл. 1.5.1.): f ( x 1 , x 2 , x 3 , x 4 ) = ( x1 vx 2 vx 3 vx 4 ) ( x1vx 2 vx 3 vx 4 ) ( x1vx 2 vx 3 vx 4 ) & & ( x1 v x 2 v x 3 v x 4 ) ( x1 vx 2 vx 3 vx 4 ) ( x1 vx 2 vx 3 v x 4 ) ( x1 v x 2 vx 3 vx 4 ) & & ( x1 v x 2 v x 3 v x 4 ) Если в выражении 1.32 использовать вместо конъюнкции эквивалентность, то мы получим представление в форме 1.27. 1.5.5 Представление ФАЛ в импликативной форме Теорема 1.6. Любая ФАЛ, кроме тождественной единицы, может быть представлена в следующей форме: ѓ ( x1 , x 2 , x 3 x n ) =. &( x1 1 x 2 2 x nn11 x n n ) (1.33) Доказательство. Для любого набора значений аргументов x1* , x *2 x *n , для которого f ( x1 , x 2 , x 3 x n ) =0, найдется в конъюнкции импликация i i = x1*1 x 2 2 x nn11 x n n , обращающаяся в нуль на этом наборе и принимающая значения 1 на всех остальных наборах. Для этого достаточно вхождения всех аргументов x i , кроме x 1 в i с * отрицанием, если x i =1 и без отрицания в противном случае. Для x 1 условия вхождения противоположны. Конъюнкцию в 1.33 можно заменить при желании импликацией и отрицанием т.к. x 1 x 2 = x1 x 2 * Пример. Записать ФАЛ табл. 1.5.1 в импликативной форме. 1 ( x1 x 2 x 3 x 4 ) 5 ( x1 x 2 x 3 x 4 ) 2 ( x1 x 2 x 3 x 4 ) 6 ( x1 x 2 x 3 x 4 ) 3 ( x1 x 2 x 3 x 4 ) 7 ( x1 x 2 x 3 x 4 ) 4 ( x1 x 2 x 3 x 4 ) 8 ( x1 x 2 x 3 x 4 ) 9 ( x1 x 2 x 3 x 4 ) 21 и тогда ѓ ( x1 , x 2 , x 3 , x 4 ) = ( x1 x 2 x 3 x 4 ) ( x1 x 2 x 3 x 4 ) & & ( x1 x 2 x 3 x 4 ) ( x1 x 2 x 3 x 4 ) ( x1 x 2 x 3 x 4 ) & & (x1 x 2 x 3 x 4 ) (x1 x 2 x 3 x 4 ) (x1 x 2 x 3 x 4 ) & & ( x1 x 2 x 3 x 4 ) . Применив * получим: f ( x1 , x 2 , x 3 , x 4 ) = 1 { 2 [ 3 ((( 4 (( 3 2 ) 1 ))))]} Импликативная форма записи является аналогом СНКФ. Теорема 1.7. Любая ФАЛ, кроме тождественного нуля, может представлена в форме: f ( x1 , x 2 , x 3 , x 4 ) = V x1 1 x 2 2 x n n быть (1.34) 1 1 Для доказательства 1.34 i x 11 x 2 2 x n n достаточно устроены так, заметить, что что функции такая функция каждая 1 обращается в единицу на наборе, соответствующем набору < 1 2 n > и равна 0 на остальных. Дизъюнкция 1.34 может быть заменена через импликацию ** и отрицание x1v x 2 x1 x 2 Пример. Записать ФАЛ табл. 1.5.1. в импликативной форме ( ИДФ) . 1 ( x1 x 2 x 3 x 4 ) . 4 ( x1 x 2 x 3 x 4 ) 2 ( x1 x 2 x 3 x 4 ) 5 ( x1 x 2 x 3 x 4 ) 3 ( x1 x 2 x 3 x 4 ) 6 ( x1 x 2 x 3 x 4 ) 7 ( x1 x 2 x 3 x 4 ) и тогда f ( x1 , x 2 , x 3 , x 4 ) = ( x1 x 2 x 3 x 4 ) V ( x1 x 2 x 3 x 4 ) V V ( x1 x 2 x 3 x 4 ) V ( x1 x 2 x 3 x 4 ) V ( x1 x 2 x 3 x 4 ) V V (x1 x 2 x 3 x 4 ) V (x1 x 2 x 3 x 4 ) и применив ** получим: f ( x1 , x 2 , x 3 , x 4 ) = ( x 1 x 2 x 3 x 4 ) ( x1 x 2 x 3 x 4 ) ( x 1 x 2 x 3 x 4 ) ( x1 x 2 x 3 x 4 ) ( x1 x 2 x 3 x 4 ) ( x1 x 2 x 3 x 4 ) ( x1 x 2 x 3 x 4 ) . 22 1.5.6 Представление ФАЛ в виде полинома Жегалкина Согласно свойствам функции сложения по модулю два, которая имеет еще множество различных названий (неравнозначности, исключающее ИЛИ, нетождественности, разноименности и т.п.) для двух переменных мы имеем следующие равносильности: x1 x2 x2 x1 (свойство коммутативности); x1 ( x2 x3 ) ( x1 x2 ) x3 (свойство ассоциативности); x1 ( x2 x3 ) x1 x2 x1 x3 (свойство дистрибутивности). На основе свойства ассоциативности рассматривается многоместная операция n сложения по модулю два xi x1 x2 xn , которая принимает значения i 1 логической единицы тогда и только тогда, когда в ней содержится четное количество единиц. Именно на этой операции основан контроль передачи двоичных слов по линиям связи в цифровых устройствах. Теорема Жегалкина. Любая ФАЛ может быть представлена в виде: f ( x1 , x2 , xn ) k 0 k1 x1 k 2 x2 k n 1 x1 x2 k n 2 x1 x3 k n m x1 x2 xn , где k i 0,1 . Доказательство. Запишем ФАЛ в совершенной полиноминальной форме: f ( x1 , x2 , xn ) n f ( 1 2 n )1 Поскольку x x x 1, 0 i (1.35) вместо xi x11 x2 2 xn n . (1.35) x1 x x 0 , то x x . Подставив в выражение xi i , получаем: f ( x1 , x2 , xn ) n ( x1 1 ) ( x2 2 )( xn n ) . f ( 1 2 n )1 Раскрыв скобки (свойство дистрибутивности) и на основании правила A A 0 , приводим функцию к виду f ( x1 , x2 , xn ) n kis xi1 xi2 xis , i1 ,i2 ,is где коэффициенты k i s равны 0 или 1. Коэффициент, соответствующий пустому множеству индексов i1 i s представляет собой свободный член полинома. Указанное представление носит название полинома Жегалкина. 1.5.7 Разложение ФАЛ по переменным Итак мы установили, что для логической переменной x и { 0, 1 } x , если 1, x x , если 0. Вполне очевидно, что x 1тогда и только тогда, когда x . Следовательно, конъюнкция x1 1 x 2 2 xn n равна 1 на единственном наборе значений аргументов, когда i | xi i , т.е. x1 1 , x2 2 , xn n . 23 Теорема о разложении ФАЛ. Любая ФАЛ (1 k n ) может быть представлена в виде: f ( x1 , x2 ,...,xk , xk 1 xn ) 1 , 2 k f ( x1 , x2 , . . x. n, ) для любого k x11 x2 2 xk k f ( 1 , 2 , k , xk 1 , , xn ) , где дизъюнкция берется по всевозможным наборам 1 2 k значений аргументов x1 x 2 x k . Доказательство. Для доказательства необходимо и достаточно показать, что для любого набора аргументов ( 1 2 n ) левая и правая часть формулы принимают одинаковые значения. Рассмотрим правую часть. Поскольку 1 1 2 2 k k 0 когда 1 2 k 1 2 k и 11 2 2 k k 1, то 1 , 2 k 11 2 2 k k f ( 1 , 2 , k , k 1 , , n ) 11 2 2 k k f ( 1 , 2 , k , k 1 , , n ) f ( 1 , 2 , , n ) , т.е совпадает со значением левой части. Теорема доказана. Например, если функцию f ( x1 , x2 , x3 xn ) представить в виде разложения, например, по переменной x 2 , то она будет выглядеть следующим образом: f ( x1 , x2 , x3 xn ) x 2 f ( x1 ,0, x3 xn ) x2 f ( x1 ,0, x3 xn ) . Пример. Функцию f ( a ,b,c ) ( a c ) b c разложить по переменным а и b. Т.к. функцию требуется разложить по двум переменным, следовательно, она будет представлена четырьмя слагаемыми: f ( a ,b,c ) ( a c ) b c ab[( 0 c ) 0 c ] ab[( 0 c ) 1 c ] ab[( 1 c ) 0 c ] ab[( 1 c ) 1 c ] . Нетрудно увидеть, что метод разложения ФАЛ по переменным является простым и эффективным средством упрощения ФАЛ для представления их, например, в ДНФ. 1.6. Основные классы ФАЛ Для решения ряда принципиальных вопросов, связанных с теорией функций алгебры логики и с практическим применением результатов этой теории для анализа и синтеза схем, полезно рассмотреть основные классы функций алгебры логики. Пусть имеются логические функции q( y1 , y2 ,..., yn ) и f1 , f 2 ,..., f n . Будем считать, что функции f1 , f 2 ,..., f n зависят от одних и тех же аргументов x1 , x2 ,....xm (этого можно достигнуть, добавив, при необходимости, к аргументам некоторых из функций фиктивные аргументы). Функцию h( x1 , x2 ,...,xm ) q( f1( x1 ,...xm ),...., f n ( x1 ,.....xm )) называют суперпозицией функций q и f1 , f 2 ,..., f n . Рассмотрим некоторый класс A логических функций. 24 Определение: Класс А называется замкнутым, если для всяких функций q( y1 ,....yn ) и f1 , f 2 ,..., f n из А их суперпозиция q( f1 ,.... f m ) содержится в А. Приведем некоторые важные примеры замкнутых классов. Класс функций, сохраняющих константу нуль, т.е. таких функций, для которых имеет место f(0,0,0,...,0)=0. Обозначим этот класс 0 . Очевидно, что при фиксированном n число функций этого класса составляет половину всех ФАЛ, т.е. 22 n1 . Аналогично, класс функций, сохраняющих константу единица определен как класс функций, для которых f(1,1,...,1)=1. Этот класс, состоящий также из 22 n1 функций, обозначен символом 1 . * Определение: Функция f ( x1 , x 2 ,..., x n ) называется двойственной к функции f ( x1 , x 2 ,..., x n ) , если имеет место равенство: f * ( x1 , x 2 ,..., x n ) = f ( x1 , x2 ,..., x n ) Принципы и законы двойственности. Принципы двойственности можно записать следующим образом: Если имеет место тождество f ({x},0,1 / V,&) g({x},0,1 / V,&) , где {x} x1 , x 2 ,..., x n , то справедливо также тождество f ({x},1,0/&, V) g({x},1,0/&, V) , т.е. если в какомлибо тождестве произвести взаимную замену символов 0 и 1 (если они имеются) и операций V и &, то будет получено также тождество. Два тождества, связанные между собой таким образом, являются двойственными. Истинность самого принципа двойственности не доказывается, т.к. данный принцип является внутренним свойством алгебры логики (заключен в ее аксиомах). Законы двойственности (теоремы деМоргана) устанавливают способ отыскания инверсных функций, представляющих собой V и & 2-х переменных. Клод Шеннон предложил обобщение этих теорем, позволяющее отыскивать инверсию любой функции fx, где x= x 1 , x 2 , x n . Закон двойственности, установленный Шенноном имеет вид: f (x / V, & ) f (x/& , V) , где x= x 1 , x 2 , x n , x = x 1 , x 2 , x n . Т.е. инверсию любой функции f(x) можно получить взаимной заменой переменных x i и их инверсий x i (i=1,2, .....n) и операций V и &. Пример: f (x) x 1 x 2 x1 x 2 , тогда f (x) ( x1 x 2 ) (x 1 x 2 ) . На основании закона двойственности легко показать, что n n i 1 i 1 V xi & xi : n n i=1 i 1 & xi V xi . Определение Функция f ( x 1 , x 2 , x n ) называется самодвойственной, если она совпадает с двойственной себе функцией, т.е. имеет место равенство 25 f ( x 1 , x 2 , x n ) = f ( x 1 , x 2 , x n ) . Класс самодвойственных функций обозначим символом S. Число членов этого 2 n 1 класса равно 2 , т.к. самодвойственная функция от n аргументов полностью определяется на половине наборов значений аргументов. Определение. Функция f ( x 1 , x 2 , x n ) называется линейной, если она представима в следующем виде: f c 0 c1 x 1 c n x n , где c i может принимать значения 0 или 1. Класс линейных функций обозначим n1 буквой L. Число членов этого класса равно 2 . Набор значений аргументов X 1 x11 , x 12 , x 1n не меньше набора значений 1 и X 2 аргументов X 2 x12 , x 22 , x n2 , если между всеми компонентами наборов X установлено соотношение x i x i ( i 1,2 , n ) . Например, набор 1,1,0, 1,0 не меньше набора 1,0,0,1,0, а наборы 1,1,0,1,0 и 1,0,1,1,0 несравнимы. Определение. Функция f ( x 1 , x 2 , x n ) называется монотонной, если для 1 2 1и X 2 таких, что X 1 X 2 имеет место равенство двух наборов X f ( X̂ 1 ) f ( X̂ 2 ) . Класс монотонных функций обозначим буквой M. Число функций класса M оценивается асимптотически формулой n 2 C n 2 ( n ) n 2 AC n 2 , где (n) - число монотонных функций алгебры логики, A- константа. Нижняя оценка получена Э.Н. Гильбертом, верхняя- В.К. Коробовым. Определение. Функция f ( x 1 , x 2 , x n ) называется симметричной, если она не изменяется при произвольной перенумерации аргументов. f ( x 1 , x 2 , x n ) = f ( y 1 , y 2 , y n ) , где ( y 1 , y 2 , y n ) - любая перестановка аргументов ( x 1 , x 2 , x n ) . 1.7 Полные системы функций Определение. Система функций алгебры логики f1 , f2 , fn называется полной в классе R, если любая функция , принадлежащая R, может быть представлена суперпозицией функций f1 , f 2 , f n . Определение. Система функций f1 , f 2 , f n , являющаяся полной в классе R, называется базисом. Или: Базисом называется полная система ФАЛ, с помощью которой любая ФАЛ может быть представлена суперпозицией исходных функций. Определение. Минимальным базисом называется такой базис, для которого удаление хотя бы одной из функций f i , образующих этот базис, превращает систему функций f1 , f 2 , f n в неполную. 26 В силу теоремы 1.1, общее число различных функций, зависящих от n аргументов, равно 2 2n . Поэтому существует тривиальная полная система M n , 2n состоящая из всех 2 функций этого класса. Т.к. любая ФАЛ может быть представлена в СНДФ или СНКФ, то, следовательно, будет верным и утверждение о полноте системы, состоящей из трех функций: отрицания, конъюнкции, и дизъюнкции. Воcпользовавшись правилом де-Моргана: x1 x2 x1 x2 и x1 x2 x1 x2 видим, что в СНДФ и СНКФ можно заменить конъюнкцию () через отрицание ( ) и дизъюнкцию (), или дизъюнкцию через конъюнкцию и отрицание. Т.е. базисы { , } и {, } являются минимальными. Из того факта, что всякая ФАЛ представима в СНПФ следует, что базис , , является полным. Из этой системы можно исключить отрицание, т.к. x x 1 . Если в СНПФ произвести такую замену, то получим представление функции через { , , 1}. Такое представление носит название полинома Жегалкина (полином по ). Аналогично, из соотношений 1.27 и 1.33 следует, что полную систему функций образуют {, , }. Кроме того, из последней системы можно исключить конъюнкцию (), (т.к. x 1 x 2 x 1 x 2 ), а отрицание выразить через импликацию и константу нуля ( x x 0). Т.е. { , 0 } также образуют базис. Теорема 1.7 Функция Шеффера образует в M n полную систему. Доказательство: Имеем: x x / x ; x1 x2 ( x1 / x2 ) /( x1 / x2 ) . Т.к. отрицание и конъюнкция образуют в множестве M n полную систему, следовательно и функция Шеффера образует полную систему. Теорема 1.8 Функция Пирса (Вебба) образует в M n полную систему. Доказательство: Имеем: x x x ; x1 x2 ( x1 x2 ) ( x1 x2 ) . А так как отрицание и дизъюнкция образуют полную систему, следовательно и функция Пирса образует полную систему. Теорема Поста-Яблонского (без доказательства) Для того чтобы система ФАЛ была полной, необходимо и достаточно, чтобы она содержала хотя бы одну функцию: не сохраняющую нуль; не сохраняющую единицу; не являющейся линейной; не являющейся монотонной; не являющейся самодвойственной. Применим теорему для доказательства, например, полноты системы функций {, }. Функция (отрицание) не сохраняет константы нуля и единицы и не является монотонной. Функция (дизъюнкция) не является самодвойственной и линейной. В таблице 1.2 приведена принадлежность элементарных функций тому или иному из классов, используемых в теореме Поста-Яблонского. 27 Таблица 1.2 x1 x 2 ФАЛ класс f0 f= x 1 & x 2 f= x 1 & x 2 f= x 1 00 0 0 0 0 01 0 0 0 0 10 0 0 1 1 11 0 1 0 1 + + + + f= x 1 & x 2 f= x 2 f= x 1 x 2 0 0 0 1 1 1 0 0 1 0 1 0 f= x 1 x 2 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 f= x 1 x 2 f= x 1 x 2 f= x 2 f= x 1 x 2 f= x 2 x 1 f= x 1 f= x 1 / x 2 f1 L + M + + S + + + + + + + + + + + + K0 K1 + + + + + + + + + + + + + Глава 2 Минимизация ФАЛ Минимальная форма представления ФАЛ есть такая форма представления, которая содержит минимальное количество термов и переменных в термах. Минимальная форма представления ФАЛ не допускает никаких упрощений. Пусть задана СНДФ: f ( x1 , x 2 , x 3 ) x1 x 2 x 3 x1 x 2 x 3 x1 x 2 x 3 x1 x 2 x 3 x1 x 2 x 3 ; Т.к. xx=x, то f ( x1 , x 2 , x 3 ) x1 x 2 x 3 x1 x 2 x 3 x1 x 2 x 3 x1 x 2 x 3 x1 x 2 x 3 x1 x 2 x 3 . Теперь преобразуем это выражение, используя распределительный и сочетательный законы для конъюнкции и дизъюнкции, и используя также аксиому x x 1 . Получаем: f (x 1 , x 2 , x 3 ) = (x 1 x 2 x 3 x 1 x 2 x 3 ) (x 1 x 2 x 3 x 1 x 2 x 3 ) (x1 x 2 x 3 x1 x 2 x 3 ) = x 1 x 2 (x 3 x 3 ) x 1 x 2 (x 3 x 3 ) x 2 x 3 (x1 x1 ) = x1 x 2 x1 x 2 x 2 x 3 = x 1 (x 2 x 2 ) x 2 x 3 = x1 x 2 x 3 . 28 Как видно, результат преобразований позволил существенно упростить заданную ФАЛ. Определение. Конъюнкция x 1 1 x 2 2 x n n называется элементарной, если в этой конъюнкции каждая переменная встречается не более одного раза. Определение. Дизъюнкция элементарных конъюнкций называется дизьюнктивной нормальной формой (ДНФ или НДФ). Определение. Длиной ДНФ называется число элементарных конъюнкций, образующих эту ДНФ. Определение. Дизъюнктивная нормальная форма, имеющая наименьшую длину по сравнению со всеми другими ДНФ, эквивалентными данной функции, называется кратчайшей ДНФ 2.1 Числовое и геометрическое представление ФАЛ. Для упрощения записи ФАЛ вместо полного перечисления термов используют номера наборов, для которых функция принимает единичное значение. Например, функция, заданная в таблице 1.5.1 может быть задана как f ( x 1 , x 2 , x 3 ) V F(1,2,4,6,11,13,14) . 1 Это значит, что данная функция принимает значение логической единицы на наборах, номера которых равны 1, 2, 4, 6, 11, 13, 14. Такую форму записи называют числовой или числовой формой представления ФАЛ. Функцию двух переменных можно интерпретировать как некоторую плоскость, заданную в системе координат x 1 - x 2 . Отложив на осях единичные отрезки, получим квадрат, вершины которого соответствуют комбинациям логических переменных x 1 и x 2 . Это проиллюстрировано на рис.2.1. Рис. 2.1 Из такого геометрического представления функций двух переменных следует: две вершины, принадлежащие одному и тому же ребру и называемые соседними, “склеиваются” по переменной, меняющейся вдоль этого ребра. Геометрическое представление для функций трех переменных можно выполнить в виде куба (рис. 2.2) Вполне очевидно, что ребра куба поглощают вершины. Грани куба поглощают свои ребра и, следовательно, вершины. 29 Рис. 2.2 Функция четырех переменных представляется уже в виде “четырехмерного” куба, как это приведено на рис. 2.3. В геометрическом смысле каждый набор x1 x2 xn может рассматриваться как n-мерный вектор, определяющий точку n-мерного пространства. Координаты вершин куба должны быть указаны в порядке, соответствующем порядку перечисления переменных в записи функции. Отметив точками (крестиками или другими символами) вершины, в которых функция принимает значение, равное единице, получим геометрическое представление ФАЛ Рис. 2.3 30 Терм максимального ранга принято называть 0-кубом (точкой) и обозначать K . Например, для f (x 1 , x 2 , x 3 ) V(0,2,7) 0 1 0 0 0 K 0 1 0 1 1 1 0 Если два 0-куба из комплекса K 0 различаются только по одной переменной 1 (координате), то они образуют 1-куб (отрезок) - K . K 1 ={ 0 x 0}, где x - независимая переменная. Если два 1-куба имеют общую независимую компоненту и различаются только 2 по одной координате, то они образуют 2-куб. ( K ) Таким образом, для построения одномерного единичного куба берут два 0-куба (точки) и соединяют отрезком прямой. Двумерный куб (грань) получается, если вершины двух 1-кубов соединить параллельными отрезками Трехмерный куб получается при соединении соответствующих вершин двух двумерных кубов отрезком единичной длины. Геометрическое представление используется при разработке методов минимизации с использованием минимизирующих карт. 2.2 Метод неопределенных коэффициентов Описываемый здесь метод может быть применим для минимизации ФАЛ от любого числа аргументов, однако для простоты изложения и большой наглядности его рассмотрение произведем на примере минимизации функции, зависящей от трех переменных. Представим f ( x 1 , x 2 , x 3 ) в ДНФ. f ( x 1 , x 2 , x 3 ) = K11 x 1 K10 x 1 K12 x 2 K 02 x 2 K13 x 3 K 03 x 3 K11 12 x 1 x 2 01 00 11 10 01 00 K10 12 x 1 x 2 K 12 x 1 x 2 K 12 x 1 x 2 K 13 x 1 x 3 K 13 x 1 x 3 K 13 x 1 x 3 K 13 x 1 x 3 10 01 00 111 110 K11 23 x 2 x 3 K 23 x 2 x 3 K 23 x 2 x 3 K 23 x 2 x 3 K 123 x 1 x 2 x 3 K 123 x 1 x 2 x 3 100 011 010 001 K101 123 x 1 x 2 x 3 K 123 x 1 x 2 x 3 K 123 x 1 x 2 x 3 K 123 x 1 x 2 x 3 K 123 x 1 x 2 x 3 000 K123 x1 x 2 x 3 , т.е. здесь представлены все возможные конъюктивные члены, которые могут входить в ДФ. Коэффициенты K с различными индексами являются неопределенными и подбираются так, чтобы получающаяся после этого дизъюнктивная форма была минимальной. {K=0,1}. Критерий минимальности - минимальное количество символов в записи ДНФ. При записи ДНФ пользуются следующими свойствами: x 1 x 2 x 3 x n 0 если x 1 x 2 x 3 x n 0 ; x 1 x 2 x 3 x n 1 если хотя бы один член равен 1. Если теперь задавать всевозможные наборы значений аргументов x 1 , x 2 , x 3 и приравнять после этого выражение ( отбрасывая нулевые конъюнкции) значению 3 функции на выбранных наборах, то получим систему 2 уравнений: 31 00 00 000 K 10 K 02 K 03 K 12 K 13 K 00 23 K 123 f 0 ( 0,0,0) 0 0 1 00 01 01 001 K 1 K 2 K 3 K 12 K 13 K 23 K 123 f1 ( 0,0,1) 0 1 0 01 00 10 010 K 1 K 2 K 3 K 12 K 13 K 23 K 123 f 2 ( 0,1,0) K 0 K 1 K 1 K 01 K 01 K 11 K 011 f ( 0,1,1) 1 2 3 12 13 23 123 3 1 0 0 10 11 00 100 K 1 K 2 K 3 K 12 K 13 K 23 K 123 f 4 (1,0,0) 1 0 1 10 11 01 101 K 1 K 2 K 3 K 12 K 13 K 23 K 123 f5 (1,0,1) K 1 K 1 K 0 K 11 K 10 K 10 K 110 f (1,1,0) 2 3 12 13 23 123 6 1 11 11 111 K 11 K 12 K 13 K 11 12 K 13 K 23 K 123 f 7 (1,1,1) Если f i =0, то все коэффициенты, входящие в данное уравнение равны 0, тогда и в остальных уравнениях системы надо вычеркнуть члены, содержащие нулевые коэффициенты, а из оставшихся уравнений, равных единице, найти коэффициенты, определяющие конъюнкцию наименьшего ранга в каждом из уравнений. На основании изложенного можно сформулировать алгоритм нахождения неопределенных коэффициентов: 1. Выбрать очередную строку, в которой f i =0. Все коэффициенты этой строки приравнять нулю; 2. Если все нулевые строки просмотрены, то перейти к п.3, если нет, то к п.1; 3. Просмотреть строки, в которых f i =1, и вычеркнуть из них все коэффициенты, встречающиеся в строках, где f i =0; 4. Переписать все модифицированные уравнения; 5. Выбрать очередную строку f i =1 и вычеркнуть максимально возможное количество коэффициентов так, чтобы ранг остающихся членов был минимальным. Следует заметить, что метод неопределенных коэффициентов применим для дизъюнктивной формы и практически непригоден для конъюктивной формы. Пример. Минимизировать функцию: f ( x 1 , x 2 , x 3 ) V(1,3,4,6) . 1 Запишем данную функцию в дизъюнктивной форме: f (x 1 , x 2 , x 3 ) V(1,3,4,6) x1 x 2 x 3 x1 x 2 x 3 x 1 x 2 x 3 x 1 x 2 x 3 . 1 Составим систему уравнений: 32 00 00 000 K 10 K 02 K 03 K 12 K 13 K 00 23 K 123 0 0 0 1 00 01 01 001 K 1 K 2 K 3 K 12 K 13 K 23 K123 1 0 1 0 01 00 10 010 K 1 K 2 K 3 K 12 K 13 K 23 K 123 0 K 0 K 1 K 1 K 01 K 01 K 11 K 011 1 1 2 3 12 13 23 123 1 0 0 10 10 00 100 K 1 K 2 K 3 K12 K 13 K 23 K 123 1 1 0 1 10 11 01 101 K 1 K 2 K 3 K 12 K 13 K 23 K 123 0 K 1 K 1 K 0 K11 K 10 K 10 K 110 1 2 3 12 13 23 123 1 11 11 111 K 11 K 12 K13 K 11 12 K 13 K 23 K 123 0 Отсюда вытекает, что 00 00 00 01 1 1 1 10 K10 K 02 K 03 K12 K13 K 00 23 K 123 K 12 K 2 K 1 K 3 K 12 11 10 01 11 010 101 111 K11 12 K 13 K 23 K 23 K 23 K 123 K 123 K 123 0. После вычеркивания нулевых коэффициентов уравнения принимаю вид: 01 001 K13 K123 1 01 011 K13 K123 1 10 100 K13 K123 1 10 110 K13 K123 1 И вполне очевидно, что из этих уравнений следует: 01 K13 1 10 K13 1 И тогда получаем: f ( x 1 , x 2 , x 3 ) x 1 x 3 x 1 x 3 x 1 x 3 . 2.3 Метод Квайна При минимизации по методу Квайна предполагается, что минимизируемая ФАЛ задана в СНДФ. Сам метод Квайна предполагает последовательное выполнение следующих этапов: 1. Нахождение первичных импликант. Импликанта функции - некоторая логическая функция, обращаемая в нуль при наборе переменных, на которых сама функция также равна нулю. Первичная импликанта функции - импликанта типа элементарной конъюнкции некоторых переменных, никакая часть которой уже не является импликантой. Все минтермы (минитермы) данной функции сравнивают между собой попарно. Если минтермы m i и m j таковы, что они имеют вид fx i и fx i , то выписывается конъюнкция f ( fx i fx i f (x i x i ) f ), являющаяся минтермом (n-1)-го ранга. 33 Минтермы n-го ранга, для которых произошло склеивание, отмечаются. После построения минтермов (n-1)-го ранга вновь сравнивают их попарно, выписывают минтермы (n-2)-го ранга и отмечают минтермы (n-1)-го ранга, подвергшиеся склеиванию, и т.д. Процесс заканчивается, когда минтермы полученного ранга уже не склеиваются между собой. Все отмеченные минтермы называются первичными или простыми импликантами. Пример. Минимизировать методом Квайна ФАЛ: f ( x 1 , x 2 , x 3 , x 4 ) V( 0,1,6,7 ,9 ,11,14 ,15) . 1 Запишем данную функцию в СНДФ: f ( x 1 , x 2 , x 3 , x 4 ) V( 0,1,6,7 ,9 ,11,14 ,15) = x 1 x 2 x 3 x 4 x 1 x 2 x 3 x 4 x 1 x 2 x 3 x 4 1 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 . Исходн x1 x 2 x 3 x 4 ый x1 x 2 x 3 x 4 1 минтерм x1 x 2 x 3 x 4 x1 x 2 x 3 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1x 2 x 3x 4 Первичн x1x 2 x 3 . импл. 3x1x 2 x 3 1 го ранга x 2 x 3x 4 x1x 2 x 3 x1x2 x 4 x 2 x 3x 4 x1x 3x 4 x1x 3x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1x 2 x 3x 4 x1 x 2 x 3 1 x 2 x 3x 4 1 x1 x 2 x 3 x1 x 2 x 3 1 x 2 x 3x 4 x 2 x 3x 4 1 x1 x 2 x 4 x 2 x 3x 4 x 2 x 3x 4 x1x 2 x 3 x1x2 x 4 x 2 x 3x 4 x1 x 2 x 4 1 x1 x 3 x 4 1 x1 x 2 x 3 x1x 3x 4 x1x 2 x 3 x1 x 3 x 4 x1 x 2 x 3 1 1 x2 x3 1 1 1 1 x2 x3 1 Итак, получаем импликанты наименьшего ранга x 2 x 3 . 2. Расстановка меток Составляется таблица, число меток которой равно числу полученных первичных импликант, а число столбцов совпадает с числом минтермов СНДФ. Если в некоторый минтерм СНДФ входит какая-либо из первичных импликант, то на пересечении соответствующего столбца и строки ставится метка. 34 Первичн Исходные термы .импли- 1 2 3 4 5 6 7 8 x1x2 x3x4 x1x2 x3x 4 x1x 2 x 3x4 x1x 2 x 3x 4 x1x2 x3x 4 x1x2 x 3x 4 x1x 2 x 3x4 x1x 2 x 3x 4 канты x1x 2 x 3 + x 2 x 3x 4 x1x2 x 4 x 2 x 3x 4 x1x 32x 43x 4 + + + + + + + x2 x3 + + + + + + 3. Нахождение существенных импликант Если в каком либо из столбцов имеется только одна метка, то первичная импликанта в соответствующей строке является существенной, т.к. без нее не будет получено все множество заданных минтермов. В данном примере это импликанты x1x 2 x 3 и x 2 x 3 . Столбцы, соответствующие существенным импликантам, из таблицы вычеркиваются. В данном примере это 1, 2, 3, 4, 7, и 8 столбцы. 4. Вычеркивание лишних столбцов. В результате вычеркивания столбцов ( 1,2,3,4,7,8) получается новая модифицированная таблица: Первичн 5 6 x1x2 x3x 4 x1x2 x 3x 4 импл.ты x xx + 2 3 4 x1x2 x 4 + x 2 x 3x 4 x1x 32x 43x 4 + + Если в таблице есть два столбца, в которых имеются метки в одинаковых строках, то один из них вычеркивается. Покрытие оставшегося столбца будет осуществлять оставшийся минтерм. 5. Вычеркивание лишних первичных импликант. Если после отбрасывания некоторых столбцов в п.4 появляются строки, в которых нет ни одной метки, то первичные импликанты, соответствующие этим строкам исключаются из дальнейшего рассмотрения, т.к. они не покрывают оставшиеся в рассмотрении минтермы. ( x 2 x 3 x 4 -исключаются) 6. Выбор минимального покрытия. Выбирается такая совокупность первичных импликант (в последней таблице), которая включает метки во всех столбцах по крайней мере по одному разу. При нескольких возможных вариантах такого выбора предпочтение отдается варианту с минимальным суммарным числом символов в импликантах. В приведенном примере этому удовлетворяет один минтерм - x1x 2 x 4 . Минимальная форма заданной функции складывается из суммы существенных импликант (см. п. 3) и первичных импликант, покрывающих оставшиеся минтермы (п. 6). 35 2.4 Метод Квайна - Мак - Класки Метод Квайна имеет одно существенное неудобство - необходимость полного по парного сравнения на этапе нахождения простых импликант. С ростом числа минтермов увеличивается число этих сравнений и при достаточно большом числе минтермов применение метода Квайна является затруднительным. В 1956 году Мак Класки предложил модернизацию первого этапа метода Квайна, дающую существенное уменьшение числа сравнений минтермов. Идея Мак - Класки заключается в следующем: Если записать минтермы в виде их двоичных номеров, то все номера можно разбить по числу единиц в этих номерах на пересекающиеся группы. При этом в i-ю группу войдут все номера, имеющие в своей двоичной записи ровно i единиц. По парное сравнение можно производить только между соседними по номеру группами, так как только эти группы отличаются для входящих в них минтермов в одном разряде. При образовании минтермов с рангом выше нулевого в разряды, соответствующие исключенным переменным пишется знак Х. Такая модификация на практике чрезвычайно удобна, так как позволяет избежать выписывания громоздких минтермов и импликант, заменяя эту процедуру выписыванием их двоичных номеров. Пример. Минимизировать методом Квайна - Мак - Класки ФАЛ: f ( x 1 , x 2 , x 3 , x 4 ) V( 0,1,6,7 ,9 ,11,14 ,15) = x 1 x 2 x 3 x 4 x 1 x 2 x 3 x 4 x 1 x 2 x 3 x 4 1 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 . Записываем эти минтермы по группам в двоичном коде: Нулевая группа 0000 Первая группа 0001 Вторая группа 0110 1001 Третья группа 0111 1110 Четвертая группа 1111 1011 Сравнивая соседние группы получаем минтермы 3-го ранга: Нулевая группа 000X Первая группа X001 Вторая группа 011X X110 10X1 Третья группа X111 111X 1X11 Теперь находим минтермы 2-го ранга: Нулевая группа 000X Первая группа X001 Вторая группа X11X Составляется таблица меток: 0000 0001 0110 000X + + X001 + X11X + 10X1 0111 X11X 1001 10X1 1011 1110 1111 + + + + + 36 Отсюда получаем: f (x1 , x 2 , x 3 , x 4 ) x1 x 2 x 3 x 2 x 3 x1 x 2 x 4 . 2.5 Метод минимизирующих карт (Карты Карно) Один из способов графического представления ФАЛ от небольшого числа переменных - использование карт Карно. Их разновидность - карты Вейча, которые строят как развертки кубов на плоскости. При этом вершины куба представляются клетками карты, координаты которых совпадают с координатами соответствующих вершин куба. Карта Карно заполняется также, как таблица истинности: В каждой клетке, соответствующей набору, проставляется значение функции. Переменные размещаются на карте так, что при переходе из одной клетки в любую соседнюю, должна изменяться только одна переменная. Нижний ряд карты следует рассматривать как примыкающий к верхнему ряду, а левый ряд - к правому. Карты Карно для: 2-х переменных 3-х переменных 4-переменных. Если требуется получить карту Карно для какой-нибудь функции, то сначала записывают эту функцию в НДФ. Каждый член, который появляется в этой форме, задается на карте Карно с помощью 1 в соответствующей клетке. Затем группируют единицы в соответствующих полях, очерчивая их замкнутыми линиями. При изучении карты с очерченными полями оказывается, что если две соседние клетки содержат 1, то из них всегда можно удалить одну переменную, а именно ту переменную, для которой ее инверсия располагается в следующей соседней клетке. Рассмотрим примеры для функций 2-х, 3-х и 4-х переменных. 1. f ( x1 , x2 ) x1 x2 x1 x2 x1 x2 . Имеем следующую карту Карно: 37 И тогда в минимальной форме функцию можно представить как: f (x 1 , x 2 ) x 1 x 2 . 2. f ( x1 , x2 , x3 ) x1 x2 x3 x1 x2 x3 x1 x2 x3 x1 x2 x3 x1 x2 x3 x1 x2 x3 V ( 0,1,3,4,5,6 ) 1 Для этой функции карта Карно будет иметь вид: После минимизации получаем: f (x 1 , x 2 , x 3 ) x 2 x 1 x 3 x1 x 3 x 2 x x 3 . 3. f ( x 1 , x 2 , x 3 , x 4 ) V (1,4 ,6,9 ,11,12 ,14 ,15) . 1 Получаем: 4. f ( x 1 , x 2 , x 3 , x 4 ) V ( 0,1,2 ,4 ,5,6,7,9 ,10,11,13,14 ,15) 1 Вполне очевидно, что логическую функцию в последнем примере можно представить в минимальной форме и другими вариантами, объединяя ”1” по иному. Карты Карно для числа переменных n>4 составляются из идентичных (в смысле обозначения сторон первичными термами) карт для четырех переменных. 38 Две карты Карно для четырех переменных будем называть соседними, если они имеют общую грань. Клетки, расположенные в одинаковых местах соседних карт для четырех переменных, являются соседними, т.к. им соответствуют соседние минтермы. Например, для n=5 Соседними клетками здесь являются: 0 и 16, 1 и 17, 7 и 23, 14 и 30, 8 и 24 и т.п. При n=6 имеем: Здесь соседними являются клетки: 0 и 32, 0 и 16, 5 и 37, 5 и 21, 14 и 30, 14 и 46 и т.п. Но 0 и 48, 18 и 34, 15 и 63 и т.п. не являются соседними. Пример. Минимизировать ФАЛ: f ( x1 , x2 , x3 , x4 , x5 ) V ( 0,1,2,3,5,7 ,11,14 ,15,17 ,19 ,21,23,27630 ,31 ) 1 В соответствии с вышеизложенным получаем карту Карно, вид которой представлен на рис. 2.4. И в результате минимизации получим: f ( x1 , x2 , x3 , x4 , x5 ) V ( 0,1,2,3,5,7 ,11,14 ,15,17 ,19 ,21,23,27630 ,31 ) = 1 = x2 x5 x4 x5 x1 x2 x3 x2 x3 x4 . 39 Вполне очевидно, что располагая поля переменных иным образом, но соблюдая правила составления карт Карно, должна получиться такая же минимальная функция. (По числу термов и их длине). Рис. 2.4. Пример. Минимизировать ФАЛ: f ( x1 , x2 , x3 , x4 , x5 , x6 ) V ( 0,1,5,7 ,13,15,16 ,17 ,21,23,26 ,29 ,31, 1 32 ,33,37 ,39 ,45,47 ,48,49 ,50 ) Заполняя карту Карно для n=6 получаем: Результат минимизации будет представлен в данном случае как: f x 2 x 4 x 6 x1x 4 x 6 x 3 x 4 x 5 x 1x 2 x 3 x 4 x 6 x1x 2 x 3 x 4 x 5 x 6 . Карты Карно используют и для получения минимальных КНФ. Это вытекает из принципа двойственности и законов двойственности. Покажем это на примере. Пусть имеем ФАЛ f ( x 1 , x 2 , x 3 , x 4 ) V( 0,1,3,5,7,1112 , ,1314 , ,15) . 1 Минимизируя с помощью карты Карно (рис.2.5) получаем: f x1 x 2 x 3 x 4 x 2 x 4 . Тогда имеет место в данном случае следующее соотношение: 40 f ( x 1 , x 2 , x 3 , x 4 ) x 2 x 3 x1 x 4 x 2 x 4 , откуда на основании двойственности получаем: f ( x 1 , x 2 , x 3 , x 4 ) ( x 2 x 3 ) ( x 1 x 4 ) ( x 2 x 4 ) . Рис. 2.5. 2.6 Минимизация не полностью определенных функций Основная задача минимизации не полностью определенных функций заключается в отыскании оптимального варианта ее доопределения, позволяющего получить минимальную из всех возможных ДНФ или КНФ. Если значения функции не заданы в m m точках, то ее можно доопределить 2 способами. СНДФ не полностью определенной функции f (x) можно представить в виде: f (x) = V K is (x) i r K i r (x) , is где x x1 , x 2 , x n , i s - номера наборов, при которых функция определена и равна ”1”; i r - номера наборов при которых функция имеет не доопределенное значение (f=). Пример. Пусть необходимо минимизировать не полностью определенную ФАЛ, f ( x 1 , x 2 , x 3 , x 4 ) V ( 4 ,5,6,7 ,10,12 ,15) (1,2 ,3,11,14 ) . имеющей вид: 1 Для данной функции имеем следующую карту Карно: ` И тогда доопределяя карту Карно (а равно и функцию) получаем следующую минимизированную функцию: f x 2 x 4 или f ( x 2 x 4 ) 41 Глава 3 Приложения алгебры логики 3.1. Логические элементы и их применение Одним из самых широких приложений алгебры логики является разработка дискретных, цифровых устройств различного назначения и, в частности, средств вычислительной техники. Техническим аналогом элементарных логических функций являются логические элементы (ЛЭ), представляющие собой физические устройства, выполняющие логические операции над сигналами, представленными в физической форме. Т.е. в этих устройствах логические единица и нуль представлены физическими сигналами различной величины, одна из величин соответствует логической единице, другая – логическому нулю. Например, различные величины давления: р1 и р2 (пневматические или гидравлические логические элементы); различные величины интенсивности освещения: s1, s2 (оптические или оптоэлектронные логические элементы). Но доминирующее значение в технике имеют электронные логические элементы, которые представляют собой определенные электронные схемы, реализующие логические операции над логическими переменными, представленными в этом случае в виде электрических сигналов. Имеет место несколько способов представления логических единицы и нуля в виде электрических сигналов, но преимущественно используется потенциальный способ представления логических переменных, при котором значениям логической единицы и нуля соответствуют вполне определенные уровни напряжения: U1 и U0. Потенциальные логические элементы (схемы) в настоящее время составляют основу системы изделий микроэлектроники для цифровой, вычислительной техники. Они представлены в виде серии микросхем различных степеней интеграции, предназначенных для построения цифровых устройств различного назначения, и в частности – ЭВМ различных классов. По виду реализуемой логической функции основные логические элементы условно разделяют на элементы одноступенчатой логики, реализующие функции И (конъюнкция), ИЛИ (дизъюнкция), НЕ (отрицание), И-НЕ, ИЛИ-НЕ, и на элементы двухступенчатой логики, реализующие функции И-ИЛИ, ИЛИ-И, И-ИЛИ-НЕ, ИЛИ-ИНЕ, И-ИЛИ и т.п. Число входов ЛЭ соответствует числу входных переменных, воспроизводимой им логической функции. На основании вышеизложенного вполне очевидно, что любой функции алгебры логики можно сопоставить соответствующую логическую схему, составленную из соответствующих логических элементов. Схема, значение выходного сигнала которой определяется только комбинацией входного сигнала, называется комбинационной. Для набора логических элементов можно ввести понятие функциональной полноты, подобно тому, как это было сделано для случая ФАЛ. Набор ЛЭ обладает функциональной полнотой, если с помощью этого набора можно реализовать схему с любым законом функционирования. Т.е. любая комбинационная схема может быть построена с применением логических элементов типа И, ИЛИ, НЕ, совокупность которых является функционально полной системой (т.е. базисом), а также и из элементов типа И-НЕ 42 n (функция Y ( x1 , x2 xn ) x1 x2 xn & xi ), или из элементов типа ИЛИ-НЕ i 1 n (функция Y ( x1 , x2 xn ) x1 x2 xn xi ), или из элементов типа Иi 1 k ИЛИ-НЕ (функция n Y ( x1 , x2 xn ) & xij ), каждая из которых представляет j 1 i 1 функционально полною систему. Принятые условные обозначения некоторых основных ЛЭ приведены в таблице 3.1. Промышленно выпускаемые логические элементы имеют ограниченное количество входов (коэффициент разветвления по входу в большинстве случаев равен 2, 3, 4, 8) и ограниченную нагрузочную способность. Но имеются известные схемотехнические решения увеличения коэффициента разветвления по входу и выходу, и которые, к сожалению, увеличивают и логическую глубину схемы, тем самым ухудшая временные и другие характеристики схемы в целом. Практическая реализация логических схем осуществляется, как правило, с применением интегральной схемотехники, среди которой наиболее широкое распространение получили элементы потенциального типа, логические переменные 0 и 1 в которых, как уже отмечалось, отображаются двумя уровнями напряжения: U0 и U1 соответственно. Для логического описания цепей не требуются абсолютные значения U0 и U1. Необходимо лишь условиться, какой из них отображает логический нуль и какой - логическую единицу. Тип логического элемента И Таблица 3.1 Выполняемая функция Обозначение X1 X2 & X1 X2...Xn конъюнкция Xn ИЛИ X1 X2 X1X2…Xn 1 дизъюнкция Xn 1 НЕ отрицание X X 43 X1 X2 И-НЕ & X1X2….Xn Отрицание конъюнкции Xn ИЛИ-НЕ X1 X2 X1X2…Xn 1 Отрицание дизъюнкции Xn И-ИЛИ-НЕ X1 & 1 X2 Xn X1X2…XnZ1…Zk Z1 & Z2 Отрицание дизьюнкции коньюнкций Zk Возможно два варианта представления логических переменных с помощью двух уровней напряжения. В первом варианте за 1 принимается высокий уровень напряжения, обозначаемый латинской буквой H (от англ. high). Во втором варианте логическая единица отображается низким уровнем напряжения - L (от англ. low). Первый вариант называют соглашением положительной логики (U0 < U1), второй соглашением отрицательной логики (U0 > U1). Изменение способа представления переменных ведет к изменению логической функции, выполняемой данным элементом (принцип двойственности). Например, пусть имеется элемент, функционирующий следующим образом: Х1 L L H H Х2 L H L H Y L L L H где Х1 и Х2 - входные сигналы, Y - выходной сигнал Приняв положение положительной и отрицательной логики, соответственно получаем: Положительная логика: L=”0”, H=”1”. 44 Х1 0 0 1 1 Х2 0 1 0 1 Y 0 0 0 1 Согласно определению, видно, что в данном случае элемент выполняет операцию И Отрицательная логика: L=”1”, H=”0”. Х1 1 1 0 0 Х2 1 0 1 0 Y 1 1 1 0 В этом случае элемент, как видно, выполняет операцию ИЛИ. Т.е. для операции И в положительной логике имеем Y=Х1Х2. Инвертируя все переменные получаем : Y X1 X 2 Преобразуя это выражение по правилу де Моргана имеем: Y=Х1vХ2, т.е. для отрицательной логики этот элемент выполняет операцию ИЛИ. Правило соответствия для основных операций и соглашений положительной и отрицательной логики имеет вид: ИИЛИ; И-НЕИЛИ-НЕ; М2М2. При разработке логических комбинационных схем возникает проблема простейшего представления соответствующих им логических функций, которая сводится к проблеме выбора базиса и проблеме более экономного представления функции в этом базисе. В настоящее время существенные результаты в решении задач минимизации получены лишь для базиса, состоящего из отрицания, конъюнкции и дизъюнкции. Минимизация логических функций в зависимости от их сложности и формы представления может производиться различными методами, например, непосредственно с использованием теорем и свойств АЛ, с помощью карт Карно, методом неопределенных коэффициентов, методом Квайна – Мак-Класски, и т.д. В интегральной схемотехнике наиболее применяются элементы и устройства реализуемые в базисе И-НЕ или в базисе ИЛИ-НЕ, которые представляют, как уже отмечалось, функционально полный базис, т.е. позволяют реализовать любую логическую функцию: Рис.3.1 Реализация элементов основного базиса на элементах И-НЕ а) инвертор б) дизъюнкция в) конъюнкция 45 Действительно, в базисе И-НЕ имеем: а) x xx x/x, т.е. инвертор реализуется элементом И-НЕ с запараллеленными входами (рис.3.1 а); x 1 x 2 x 1 x 2 ( x 1 / x 1 ) /( x 2 / x 2 ) , б) т.е. дизъюнктор реализуется тремя элементами И-НЕ (рис.3.1 б); в) x 1 x 2 x 1 x 2 ( x 1 / x 2 ) /( x 1 / x 2 ) , т.е. конъюнктор реализуется двумя элементами Шеффера (рис.3.1 в). В базисе ИЛИ-НЕ: а) x xx xx, т.е. инвертор реализуется элементом ИЛИ-НЕ с запараллеленными входами ( рис. 3.2 а); б) x1 x 2 x1 x 2 (x1 x 2 ) (x1 x 2 ) , т.е. дизъюнктор реализуется двумя элементами ИЛИ-НЕ ( рис. 3.2 в); x1 x 2 x1 x 2 (x1 x1 ) (x 2 x 2 ) в) т.е. конъюнктор реализуется тремя элементами ИЛИ-НЕ ( рис. 3.2 б); Рис.3.2 Реализация элементов основного базиса на элементах ИЛИ-НЕ а) инвертор б) конъюнктор в) дизъюнктор Таким образом, все основные операции (НЕ, И, ИЛИ) могут быть реализованы на элементах любого из рассмотренных базисов. Рассмотрим пример схемной реализации логической функции, заданной табличным методом: Х1 0 0 0 0 0 0 0 0 1 1 Х2 0 0 0 0 1 1 1 1 0 0 Х3 0 0 1 1 0 0 1 1 0 0 46 Х4 0 1 0 1 0 1 0 1 0 1 Y 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 В СНДФ функция будет иметь вид: Y x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1x 2 x 3 x 4 x1 x 2 x 3 x 4 x1x 2 x 3 x 4 x1 x 2 x 3 x 4 Минимизируем данную функцию с помощью карты Карно: получаем: Y x 2 x 3 x1x 3 x 4 x1x 2 x 4 x 2 x 3 x 4 Реализуем данную функцию в базисе И-НЕ: Y x 2 x 3 x1x 3 x 4 x1x 2 x 4 x 2 x 3 x 4 Из последнего выражения видно, что для реализации данной функции необходимо иметь 3 элемента типа 3И-НЕ, 1 элемент типа 2И-НЕ, 1 элемент типа 4ИНЕ и 3 элемента типа НЕ. Рис.3.3 47 На рисунке 3.3 приведена соответствующая логическая схема, реализующая заданную функцию в базисе элементов И-НЕ. Аналогично можно данную функцию реализовать и в других элементных базисах. 3.2 Триггеры Еще одним важнейшим элементом цифровых устройств, являющимся основополагающим, так сказать – «атомарным», является триггер. Триггер - функциональное устройство с двумя устойчивыми состояниями выхода, содержащее элементарную запоминающую ячейку и схему управления, преобразующую поступающую информацию в комбинацию сигналов, действующих непосредственно на входы элементарной запоминающей ячейки. Применение триггеров: счетчики, делители частоты, пересчетные устройства, регистры, накапливающие сумматоры, устройства управления, формирователи импульсов и т.д., т.е. триггер является фундаментальным элементом средств цифровой техники. Другими словами-триггер является простейшим, элементарным цифровым автоматом, обладающий памятью и служащий для хранения одного бита информации. Триггер, как конечный автомат характеризуется следующими свойствами: 1. Возможное число внутренних состояний - два, это логические “0” и “1”, что соответствует одной внутренней переменной Z, обозначаемой для триггеров обычно буквой Q. 2. Число выходных переменных y - одно; значение переменной y совпадает t 1 t 1 со значением Q, т.е. y Q , поэтому триггер является автоматом Мура. 3. Число переменных x зависит от типа триггера. Наряду с выходом Q, называемым прямым, триггер имеет, как правило, другой (инверсный) выход Q . Обобщенная схема триггера Обобщенная схема триггерного устройства (собственно триггера) чаще всего представляется в виде, показанном на рисунке 3.4, где x 1 x n -информационные входы, c 1 c m - входы синхронизации, V1 Vk - управляющие входы, S y , R y * * установочные входы, S , R - информационные входы, Q, Q - прямой и инверсный выходы соответственно. 48 Рис. 3.4. Обобщенная схема триггера Коммутационные входы используются для внешних соединений в универсальных триггерах. В реальных схемах триггеров некоторые входные сигналы и связи могут отсутствовать. Функциональное обозначение и правила их изображений в технической документации определяются ГОСТом 2.743-82. Для информационных входов приняты следующие обозначения: S (Set-установка) -вход для раздельной установки триггера в состояние “1” ( Q 1 , Q 0 ); R (Reset-сброс) -вход для раздельной установки триггера в состояние “0” ( Q 0 , Q 1 ); T (Toggle-релаксатор) - счетный вход; J (Jerk-внезапное включение) - вход для раздельной установки триггера в состояние “1” в универсальном JK-триггере; K (Kill-внезапное отключение) - вход для раздельной установки триггера в состояние “0” в универсальном JK-триггере; D (Delay-задержка, или Drive-передача) - информационный вход для установки триггера в состояние “1”или “0”; V (Valve-клапан, вентиль) - управляющий вход для разрешения приема информации или тактовых сигналов; C (Clock-источник сигналов синхронизации) - тактовый вход. Классификация триггеров По способу организации логических связей или по функциональному признаку классификация триггеров может быть представлена следующим рисунком: (рис. 3.5). Рис. 3.5 Классификация триггеров по функциональному признаку 49 По способу записи информации классификацию триггеров можно представить как: Рис. 3.6. Классификация триггеров по способу записи информации В синхронных триггерах со статическим управлением записью тактовый импульс начинает оказывать влияние только тогда, когда его уровень возрастает до “1” или уменьшается до “0” в зависимости от элементной базы. Триггеры, состояние которых изменяется в интервале действия уровней “1” или “0” ТИ (тактового импульса) называются триггерами, срабатывающими по уровню, а триггеры, состояние которых изменяется по окончании действия уровней “1” или “0” ТИ, называются триггерами с внутренней задержкой. В синхронных триггерах с динамическим управлением записью информация поступает в момент изменения амплитуды ТИ в определенном направлении, т.е. при или . По количеству информационных входов триггера классифицируются на одновходовые, двухвходовые и многовходовые. Не следует путать количество информационных входов с количеством фактических входов, на которые поступают информационные сигналы, т.к. реально действующий информационный вход в структуре триггера может быть конъюнкцией (), дизъюнкцией (V) или какой-либо функцией нескольких логических переменных, действующих на информационных входах. Например, для JK триггеров имеет место: J J 1 J 2 J 3 ; K K 1 K 2 K 3 . По количеству тактовых входов триггеры классифицируют: одно, двух и многовходовые. Иногда к двухтактным триггерам относят двухступенчатые триггеры (MS-схемы), однако основное назначение последних - получение эффекта временной задержки информационных сигналов в триггере. По виду выходных сигналов триггера классифицируются на статические и динамические. Для первых - значения выходных сигналов не изменяются во времени, т.е. U вых . const , а для вторых - значения выходных сигналов изменяются во времени. По способу запоминания информации триггеры могут быть с логической и физической организацией памяти. Первые выполняются на логических элементах И, ИЛИ, НЕ, И-НЕ, ИЛИ-НЕ, И-ИЛИ-НЕ, а во вторых запоминание информации осуществляется изменением каких - либо свойств элемента, Например, триггера на ферритовых элементах и т.п. 50 По способу хранения информации различают триггеры с активным хранением информации, когда выходной сигнал действует постоянно, и с пассивным хранением информации, когда выходной сигнал может быть получен только с помощью специального опросного сигнала. Параметры триггеров К параметрам триггера необходимо отнести собственно и параметры логических элементов, на которых выполнен триггер, а именно: K об . - коэффициент объединения по входу; K раз . - коэффициент объединения по выходу; U 0 ,U1 - уровни логического нуля и единицы; I вх . , I вых . - входные и выходные токи и т.п.. Основными параметрами триггера являются: t раз . - разрешающее время триггера - наименьший интервал времени между входными сигналами минимальной длительности, вызывающими бесперебойное переключение триггера. f махю 1 / t раз . - максимальная частота переключения. Поскольку выходные сигналы триггера при воздействии входных сигналов с частотой f мах. имеют длительность t зд. р .ср . , то учитывая длительность фронтов нарастания и спада, можно сделать вывод, что эти выходные сигналы являются недостаточными для надежной передачи информации в логические цепи, т.к. уровни ”1” и ”0” в этом случае не будет фиксироваться. Для обеспечения их фиксирования принято уменьшать частоту f мах. 1.5 раза и считать ее рабочей, т.е. f раб . f max / 1.5 . Параметр f раб . указывается в паспорте или технических характеристиках на соответствующий триггер. tи - минимальная длительность входного сигнала, которая определяется как: t и n t зд. р .ср . , i 1 где n-количество элементов в цепочке от входа информационного или тактового сигнала до входа элемента, на котором замыкается триггерное кольцо обратной связи. t зд.пер . - время задержки переключения триггера: l t зд.пер . t зд. р .ср . , i 1 где l - количество элементов в цепочке от входа информационного или тактового сигнала до выхода элемента, на котором подтверждается состояние триггера. Из определения t и и t зд.пер . следует: l=k+1. Совокупность параметров f раб . , t и , t зд.пер . определяет быстродействие триггеров и в конечном счете - быстродействие цифровых устройств, построенных на их основе. 51 Триггер как элементарный последовательстный автомат Итак, триггеры представляют собой элементарные последовательностные автоматы и характеризуются: числом информационных входов не более трех; (большинство реализованных схем триггеров имеет не более двух входов.) числом внутренних состояний равное двум, чему соответствует одна внутренняя переменная Q; числом выходных переменных y не более одной, причем y совпадает с Q. Наряду со значением Q в триггере имеется инверсная переменная Q ; функцией переходов или связи внутренних переменных для момента времени t со значениями входных и выходных переменных для момента времени t+1, Q t 1 f ( x t , Q t ) , называемых характеристическими уравнениями являющимися полными, т.е. триггеры обладают полной системой переходов. Значения x t , Q t - это значения переменных до перехода информационного или тактового сигнала, а x t 1 , Q t 1 - после прихода информационного или тактового импульса. Триггер может иметь пять логических состояний на выходе: 0,1,Q , Q ,x . Число 2n теоретически возможных типов триггеров с n информационными входами равно 5 . 5 n - количество возможных состояний на выходе, 2 - количество наборов по входным переменным. При n=1 имеем 25, а при n=2 - 625 типов триггеров, однако часть из них тривиальна, бессмысленна, или триггеры дуальны. Технически реализуемых триггеров с одним информационным входом только два, с двумя информационными входами 24. Наиболее распространены двухвходовые триггеры, из которых синтезировано только восемь типов и среди которых три - универсальные. Правила функционирования триггеров могут быть заданы: словесным описанием; в виде таблицы переходов триггере; в виде характеристических уравнений Q t 1 f ( Q t , x t ) ; в виде графа; в форме микропрограммного автомата. Асинхронный R-S триггер и его разновидности R-S -триггер - двухвходовой триггер с информационными входами S (Set) и R (Reset), который устанавливается: в единичное состояние при подаче активного сигнала на вход S и неактивного на вход R; в нулевое состояние при подаче активного сигнала на вход R и неактивного на вход S. При одновременной подаче неактивного сигнала на входы S и R триггер сохраняет свое состояние, а при подаче активного сигнала на S и R триггер принимает неопределенное состояние. Если обозначить за активный сигнал уровень логической единицы “1” , то закон функционирования R-S триггера может быть представлен в виде таблицы: R t S t Q t Q t1 0 0 0 0 52 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 X 1 1 1 X R t St Q t1 Q t1 0 0 Q t Qt 0 1 1 0 1 0 0 1 1 1 X X После минимизации имеем: Rt Qt 0 1 1 1 X X Rt 0 0 Qt St 1 0 0 0 X X 1 1 St В результате минимизации получаем следующие функции выхода: Q t 1 S t R t Q t и Qt 1 R t St Qt . Полученное выражение позволяет осуществить структурный синтез R-S триггера. Например, в элементном базисе И, ИЛИ, НЕ имеем: Рис. 3.7 Практически R-S триггеры синтезированы на элементах многофункционального базиса И-НЕ или ИЛИ-НЕ. Представим последние выражения в базисе ИЛИ-НЕ: Q t 1 S t R t Q t S t ( R t Q t ) ; Q t 1 R t S t Q t R t (S t Q t ) . Т.е. R-S триггер представляет собой последовательное соединение двух элементов ИЛИ-НЕ, замкнутое само на себя. 53 Данная схема может быть представлена как Условное обозначение асинхронного R-S триггера имеет вид: В базисе элементов И-НЕ соответственно получим: Q t 1 St R t Q t St |( R t | Q t ) ; Q t 1 R t S t Q t R t |( S t | Q t ) . Этим выражениям можно сопоставить в соответствие следующие схемы реализации триггеров: Рис. 3.8 54 а) б) Рис. 3.9 Асинхронный R-S триггер в базисе И-НЕ (а) и его условное обозначение (б) Закон функционирования триггера часто представляют в виде графа: Рис. 3.10 Характеристическая таблица С помощью характеристических уравнений можно определить состояние триггера Q t1 , если известны комбинации входных сигналов в предшествующий момент времени t. При синтезе последовательностных схем необходимо решать обратную задачу определить комбинацию входных сигналов при требуемом переходе из одного состояния в другое (2-ой этап канонического метода синтеза). Результатом решения этой задачи будет получение характеристической таблицы, которая может быть получена из таблицы переходов, характеристического уравнения, графа. Для асинхронного RS-триггера синтезированного в базисе элементов ИЛИ-НЕ и И-НЕ, характеристическая таблица (или матрица переходов) соответственно имею вид: Базис ИЛИ-НЕ Переход R * S* Базис И-НЕ Переход R * Q t Q t 1 00 01 10 11 X 0 1 0 Q t Q t 1 0 1 0 X 00 01 10 11 X 1 0 1 S* 1 0 1 X Оценка быстродействия асинхронного RS-триггера 55 Оценку времени установления триггера в соответствующее входным сигналам состояние можно определить по его временной диаграмме Например, для приведенного RS-триггера имеет место и соответствующая ему временная диаграмма Рис. 3.11 Предельный динамический режим работы RS-триггера Из диаграммы видно, что для бесперебойного переключения триггера необходимо выполнение условий: t и 2t зд.ср . ; t зд.пер . 3t зд.ср . ; t раз . TS TR 4t зд.ср . . Асинхронный S-триггер Асинхронный S-триггер функционирует в соответствии с таблицей: Rt St Qt Q t1 R* S* R* S* 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 * 0 0 0 * 1 0 0 0 * 1 * 0 0 1 * * 1 1 1 * 0 1 1 1 * 0 * 1 1 0 * Отличительная особенность S-триггера от RS-триггера в том, что при S=R=1 Q=1. Для получения характеристического уравнения и функциональной зависимости информационных входов элементарной запоминающей ячейки от входных сигналов составляются карты Карно. В базисе элементов ИЛИ-НЕ будем иметь: 56 Откуда получаются следующие уравнения, отражающие структуру S-триггера: R * R t St R t S t ; Q t 1 S t R t Q t ; Qt 1 R t S t St Qt . S* S t ; В базисе элементов И-НЕ соответственно будем иметь: И в результате имеем: R * S t R t St R t ; S * St . Рис. 3.12 Асинхронный R-триггер Триггер, который при R=S=”1” устанавливается в нулевое состояние (Q=0), а при остальных комбинациях функционирует как R-S триггер, называется R-триггером. (Или триггер типа R). В соответствии с этим определением таблица функционирования Rтриггера имеет вид: 57 Rt St Qt Q t1 R* S* R* S* 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 * 0 0 0 * 1 * 1 0 * 1 * 0 0 0 0 * 1 1 1 * 0 * 0 1 * 0 * 1 1 1 1 Карты Карно, необходимые для получения характеристического уравнения и * * информационных сигналов R , S запоминающей ячейки, синтезированной в базисе элементов ИЛИ-НЕ, представлены соответственно на рис. 3.13 Рис. 3.13 Минимизируя, получаем: Q t 1 R t S t R t Q t ; Qt 1 R St Qt ; R* R t ; S* Rt S t R S t . Полученным выражениям соответствует следующая схема (рис. 3.14) Рис. 3.14 Для синтеза данного триггера в базисе элементов И-НЕ в соответствии с * матрицей переходов R-S триггера имеем следующие карты Карно для R и S сигналов: Откуда получаем: R R t ; * * S * R t St R t S t , в соответствии с чем получаем следующую схему R-триггера в базисе И-НЕ: 58 Рис. 3.15 Асинхронный Е-триггер Е-триггер (Exclusive-особенный) - двухвходовой, работающий как R-S триггер, и при подаче активных сигналов на S и R входы сохраняет свое состояние (т.е. при S=R=1 Q t 1 Q t . Таблица функционирования Е-триггера и значения собственно информационных сигналов запоминающей ячейки в базисе элементов И-НЕ и ИЛИ-НЕ имеет вид: Rt St Qt Q t1 R* S* R* S* 0 0 0 0 0 1 0 1 0 0 1 1 * 0 0 0 * 1 * 1 1 1 * 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 1 0 0 1 1 0 * 1 * 0 * 0 0 0 * 1 * 0 * 1 * 1 1 1 * Для синтеза триггера в базисе элементов ИЛИ-НЕ имеем, соответственно: Q t 1 R t S t R t Q t S t Q t ; R * R t St R t S t ; Qt 1 R t St R t Qt St Qt ; S * R t S t R t St . В соответствии с этими выражениями имеем следующую схему Е-триггера: 59 В базисе элементов И-НЕ получаем соответственно: R * R t S t R t St ; S * R t St R t S t . Асинхронный D-триггер Асинхронный D-триггер - одновходовой, с информационным входом D. Закон функционирования D-триггера может быть представлен следующей таблицей: Dt Qt Q t1 R * S* R* S* 0 0 0 * 0 * 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 0 * 1 * Также функционирование D-триггера можно представить в виде графа: Тогда в соответствии с вышеописанным законом функционирования характеристическое уравнение D-триггера есть: Q t 1 D t , согласно которому можно 60 привести следующие, не имеющие практического применения, тривиальные схемы Dтриггера (Рис. 3.13) с однофазным (а) и парафазным (б) выходами. а б Рис. 3. 16 Из таблицы получаем выражения для информационных входов запоминающей ячейки триггера, которые определяют структуру триггера, полученную на основе обобщенной схемы триггерного устройства. Итак, в базисе элементов ИЛИ-НЕ имеем R * D t , S * D t ; в базисе элементов И-НЕ: R * D t , S * D t . Соответствующие схемы приведены на рис 3.17 Рис. 3.17 Асинхронный Т-триггер Т-триггер инвертирует свое предыдущее состояние при подаче на его вход Т единичного сигнала, т.е. Q t 1 Qt при Т=1. Тогда таблица функционирования Ттриггера имеет вид (в таблице также приведены значения информационных сигналов установочного триггера): T Qt Q t1 R * R* S* S* 0 0 0 * 0 * 1 0 1 1 0 * 1 * 1 0 1 0 1 1 0 1 1 0 1 0 0 1 Граф функционирования Т-триггера имеет вид: Характеристическое уравнение Т-триггера: Q t 1 T Qt T Q t . 61 * * Выражения R и S для синтеза триггера в базисе ИЛИ-НЕ и И-НЕ: В соответствии с полученными выражениями имеем следующие схемы Ттриггеров: Для устойчивой работы Т-триггера необходимо чтобы tи 2t зд.ср. , а для предотвращения режима генерации необходимо чтобы tи 3t зд.ср . . Трудности обеспечения столь жестких требований исключают реализацию асинхронного Т-триггера по вышеприведенным схемам, так как логические элементы имеют значительный разброс задержек распространения Синхронные триггеры Фактически синхронные триггеры можно рассматривать как особый тип асинхронных триггеров, у которых существуют определенные ограничения на возможность действия информационных сигналов, что позволяет существенно упростить их синтез и анализ. В синхронных триггерах допускается изменять информационные сигналы только в течении периодов, когда тактовые импульсы блокируют входные цепи и предотвращают изменение состояния триггера. Синхронный R-S-триггер Тактируемый уровнем ”1” R-S-триггер функционирует в соответствии с таблицей: Ct Rt St Qt Q t1 R * S* R* S* 0 0 0 0 0 * 0 * 1 0 0 0 1 1 0 * 1 * 0 0 1 0 0 * 0 * 1 0 0 1 1 1 0 * 1 * 0 0 0 1 0 0 0 * 0 * 1 1 0 1 1 0 * 1 * 0 1 1 0 0 * 0 * 1 62 0 1 1 1 1 0 * 1 * 1 0 0 0 0 * 0 * 1 1 0 0 1 1 0 * 1 * 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 * 1 * 1 1 0 0 0 * 0 * 1 1 1 0 1 0 1 0 0 1 1 1 1 0 * * * * * 1 1 1 1 * * * * * ИЛИ-НЕ И-НЕ В соответствии с приведенной таблицей имеем следующие карты Карно для получения характеристического уравнения синхронного R-S-триггера и логических * * выражений R и S , определяющих структуру триггера на основе обобщенной схемы триггерного устройства: R*: Q t1 : S* : Для базиса ИЛИ-НЕ R * C t R t Ct R t Q t 1 Ct Q t C t t R t Q t S * C t S t Ct St При C=”1” получаем уравнение характеристическое уравнение асинхронного RS-триггера: Q t 1 S t R t Q t . Выражения: R C t R t Ct R t и S C t S t C t S t определяют * * структуру R-S-триггера, тактируемого уровнем ”0”: 63 Рис. 3.18 Схема синхронного R-S-триггера (а) и его условное обозначение (б) Аналогично, для базиса И-НЕ получаем: R R t Ct C t R t ; * S * S t C t S t C t , и соответствующая схема R- S-триггера, тактируемого уровнем ”1” примет вид: Рис 3.19 Схема синхронного R-S-триггера (а) и его условное обозначение (б) Синхронные R-, S-, E-триггера Тактируемые уровнем R-, S-, T-триггера сохраняют свое состояние при C=”0”, а при C=”1” работают как асинхронные R-, S-, E-триггера. Процедура синтеза этих триггеров аналогична процедуре синтеза синхронного R-Sтриггера. На рисунках приведены схемы вышеуказанных триггеров, синтезированных в базисе элементов И-НЕ. 64 Рис. 3.20 Схема синхронного R-триггера Рис. 3.21 Схема синхронного S-триггера Рис. 3.22 Схема синхронного Е-триггера Синхронный D-триггер Синхронный D-триггер функционирует в соответствии с таблицей: Ct Dt Qt Q t1 R * S* R* S* 0 0 0 0 * 0 * 1 0 0 1 1 0 * 1 * 0 1 0 0 * 0 * 1 0 1 1 1 0 * 1 * 65 1 0 0 0 * 0 * 1 1 0 1 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 * 1 * ИЛИ-НЕ И-НЕ Для базиса, например, ИЛИ-НЕ получаем: Q t 1 C t D t Q t C t ; R * C t Dt C t D t ; S* C t D t C t Dt . Q t1 : R*: S* Полученным выражениям соответствует схема: Схема может быть упрощена (а к этому надо всегда стремиться), если последнее выражение запишем как S* C t D t C t ( C t D t ) C t C t D t C t R * . И тогда в соответствии с последней записью получаем следующую схему синхронного D-триггера: 66 Рис. 3.23 Схема синхронного D-триггера и его условное обозначение Аналогично для базиса И-НЕ получаем: R*: S* : R * Ct D t C t D t C t D t Ct C t D t C t S * C t ; S * C t Dt C t D t . Этим выражениям соответствует схема синхронного синтезированного в базисе элементов И-НЕ и приведенная на рис. 3.21 D-триггера, Рис. 3.24 Схема синхронного D-триггера (а) и его условное обозначение (б) Синхронный J-K-триггер J-K-триггер- двухвходовой, который при условии J t K t "1" осуществляет инверсию предыдущего состояния ( т.е. если J t K t "1" то Q t 1 Qt , т.е. триггер работает в счетном режиме), а в остальных случаях функционирует в соответствии с таблицей истинности R-S-триггера, при этом вход J t J-K-триггера эквивалентен входу S t R-S-триг-гера , а вход K t J-K-триггера эквивалентен вход R t . Ct Jt Kt Qt Q t1 R * S* R* S* 0 0 0 0 0 * 0 * 1 0 0 0 1 1 0 * 1 * 0 0 1 0 0 * 0 * 1 0 0 1 1 1 0 * 1 * 0 0 1 0 0 0 * 0 * 1 67 0 1 0 1 1 0 * 1 * 0 1 1 0 0 * 0 * 1 0 1 1 1 1 0 * 1 * 1 0 0 0 0 * 0 * 1 1 0 0 1 1 0 * 1 * 1 0 1 0 0 * 0 * 1 1 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 1 1 0 1 1 0 * 1 * 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 0 1 ИЛИ-НЕ И-НЕ Для элементного базиса ИЛИ-НЕ имеем следующие карты Карно: Q t 1 C t Q t Kt Q t C t J t Qt ; R * C t K t Q t C t Kt Q t ; S * C t J t Qt C t J t Q t . Как видно что при C t "1" получаем характеристическое уравнение асинхронного J-K-триггнра: Q t 1 Kt Q t J t Qt . В соответствии с полученными выражениями схема J-K-триггера в базисе элементов ИЛИ-НЕ будет иметь вид: * * В базисе элементов И-НЕ имеем для R и S : 68 R * C t Kt Qt C t K t Q t ; S* C t J t Q t C t J t Qt . Соответствующая этим выражениям схема имеет вид: Рис. 3.25 Схема синхронного J-K-триггера (а) и его условное обозначение (б) J-K-триггер можно получить, если на входы R t и S t R-S-триггера поставить схемы 2И, управляемые от выходов и входов, как это показано на рис. 3.26 Рис. 3.26 Схема J-K-триггера на базе R-S-триггера Двухступенчатые триггеры Рассмотренные синхронные триггеры являются одноступенчатыми. Условное обозначение одноступенчатых триггеров отображается символом T. Устойчивая работа таких триггеров в схемах с передачей информации между триггерами возможна только при условии, что перевод триггера в новое состояние осуществляется после завершения передачи информации о прежнем его состоянии в следующий за ним триггер или иное цифровое устройство. Это достигается раздельной подачей синхросигналов на соответствующие триггеры. 69 Техническим решением, обеспечивающим сокращение числа тактовых импульсов в цепях управления цифровыми устройствами является применение двухступенчатых триггеров, позволяющих в одном и том же такте производить съем информации и запись новой. Т. е. двухступенчатый триггер состоит из двух одноступенчатых. В начале информация записывается в первый (управляющий) триггер, а затем переписывается во второй (управляемый или ведомый). Такой принцип построения триггеров иногда называют MS-принципом (от англ. master-slave, что буквально означает хозяин-раб), а сам триггер такой триггер называют MS-триггером. В качестве иллюстрации на рис. 3.27 приведена схема двухступенчатого R-S-триггера и его условное обозначение. Рис. 3.27 Схема двухступенчатого R-S-триггера (а) и его условное обозначение (б) На рис. 3.28 приведена схема наиболее распространенного двухступенчатого J-Kтриггера. а) б) Рис. 3.28 Схема двухступенчатого J-K-триггера (а) и его условное обозначение (б) 70 Синтез двухступенчатых триггеров. Как следует из закона функционирования двухступенчатых триггеров, их синтез определяется синтезом соответствующего одноступенчатого триггера в заданном элементном базисе, синтезом управляемого триггера, представляющего собой как правило обычный асинхронный триггер, и синтезом схемы связи. В общем виде алгоритм синтеза двухступенчатого триггера может быть представлен в реализации следующих пунктов: 1. Для определенной элементной базы синтезируется соответствующий триггер (управляющий); 2. В заданном элементном базисе синтезируется управляемый триггер. (Обычно управляемый и управляющий триггеры синтезируются в одном и том же элементном базисе); 3. Через элементы связи (схему связи) осуществляется коммутация выходов управляющего триггера со входами управляемого триггера. Пример: Синтезировать двухступенчатый D-триггер в базисе элементов И -НЕ. В соответствии с алгоритмом синтеза получаем следующую схему: Рис. 3.29 Схема двухступенчатого D-триггера (а) и его условное обозначение (б) Универсальные триггеры Триггеры, которые могут работать в различных режимах, называются универсальными. Наиболее популярны как универсальные триггеры это D-триггеры и J-K-триггеры. Пусть, например, имеем следующее включение D-триггера: Как известно, характеристическое уравнение D-триггера имеет вид: Q t 1 C t D t Q t C t . Для данной схемы имеем: D t Qt , и тогда получаем: Q t 1 C t Qt C t Q t , а это есть уравнение счетного триггера. Таким образом, чтобы получить счетный триггер из D-триггера необходимо закоротить D-вход и инверсный выход. Установку триггера в определенное 71 состояние можно осуществлять по установочным входам R и S (асинхронно). Для J-K-триггера наиболее широко применяются схемы включения: 1. Счетный режим. Действительно: т.к. характеристическое уравнение J-K-триггера имеет вид: Q t 1 C t Q t Kt Q t C t J t Qt , то согласно приведенной схеме включения ( J t K t "1" ) имеем: Q t 1 C t Q t C t Qt , т.е. получили уравнение счетного триггера. 2. D-триггер. Приняв K t J t получаем следующее уравнение: Q t 1 C t Q t J t Q t C t J t Qt C t Q t C t J t (Q t Qt ) т.е. имеем Ct Qt C t J t , характеристическое уравнение Dтриггера. 3. R-S-триггер. Согласно определению J-K-триггера (точнее закону его функционирования) J-K-триггер может работать и как R-S-триггер, причем как асинхронный (по установочным входам) и как синхронный. Наряду с триггерами, тактируемыми импульсами (потенциальное управление) широко применяются триггеры с динамическим управлением, тактируемые фронтом синхроимпульса, и которые используют специальную схемотехнику. Прием информации происходит в момент смены уровней сигнала на синхронизирующем входе. Но это уже другая тема. 72 Литература. Основная: 1. С.Д. Шапорев. Математическая логика. Санкт-Петербкрг, «БХВ-Петербург», 2007 г. 2. Ю.П. Шевелев. Дискретная математика. М., 2008г. 3. И.А. Палий. Дискретная математика. Курс лекций. М., ЭКСМО, 2008 г. Дополнительная: 1. Новиков Ф.А. Дискретная математика для программистов. СПб., Питер, 2002 г. 2. Хаггарти Р. Дискретная математика для программистов. М., Техносфера, 2004 г. 73 Содержание. Стр. 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 2.1 2.2 2.3 2.4 2.5 2.6 3.1 3.2 Логические основы цифровых устройств Конечные цифровые автоматы Глава 1. Функции алгебры логики и их основные свойства Основные определения Элементарные функции алгебры логики Свойства элементарных ФАЛ Аналитическое представление ФАЛ Совершенные нормальные формы Основные классы ФАЛ Полные системы функций Глава 2. Минимизация ФАЛ Числовой и геометрическое представления ФАЛ Метод неопределенных коэффициентов Метод Квайна Метод Квайна-Мак-Класки Метод минимизирующих карт Минимизация не полностью определенных функций Глава 3 Приложения алгебры логики Логические элементы и их применение Триггеры Литература 74 3 6 6 7 11 17 19 25 27 29 30 32 34 37 38 42 43 43 49 74