- •Теория Автоматов и Формальных Языков.
- •Булевы аргументы и булевы функции.
- •Булевы функции одного и двух аргументов.
- •Аналитические формы записи булевых функций.
- •Понятие минтерма, импликанты, простой импликанты.
- •Минимизация булевых функций методом карт Вейча.
- •Минимизация методом Мак-Класки.
- •Метод импликантных матриц.
- •Минимальные конъюнктивные нормальные формы булевых функций.
- •Минимальные формы не полностью определённых булевых функций.
- •Синтез схем в базисе функции Шеффера.
- •Синтез схем в базисе функции Пирса.
- •Понятие конечного автомата, его состояния и эквивалентности.
- •Способы задания конечных автоматов.
- •Элементарные конечные автоматы.
- •Синтез асинхронного r-s триггера.
- •Синтез синхронного r-s триггера.
- •Алгоритм синтеза конечного автомата.
- •Проблема риска и гонок в конечных автоматах.
- •Аппаратные способы устранения гонок.
- •Противогоночное кодирование.
- •Риск сбоя в комбинационных схемах.
- •Автоматные языки. Классификация грамматик по н. Хомскому.
- •Детерминированный автомат-распознаватель.
- •Лемма о "накачке".
- •Недетерминированные автоматы распознаватели.
Минимальные конъюнктивные нормальные формы булевых функций.
Для получения Минимальной конъюнктивной нормальной формы (МКНФ), используя метод Куайна, вводятся следующие критерии:
для минимизации берётся не СДНФ, а СКНФ функции;
склеиваемые пары членов меняются на: w U x или w U ¯x;
правило операции поглощения выглядит следующим образом:
Минимальные формы не полностью определённых булевых функций.
В реальных задачах очень часто бывает так, что значение булевой функции на некоторых наборах не определено и может доопределяться произвольно. В этом случае доопределение функции было бы целесообразно производить таким образом, чтобы ее минимальная нормальная форма имела наименьшее число букв из всех возможных вариантов доопределения. Рассмотрим простой пример. Функция задана диаграммой Вейча, представленной.
Доопределение функции на неопределенных наборах единицами
или нулями
приводит к разным минимальным ДНФ Однако более простая минимальная ДНФ получается, если произвести доопределение так, как это сделано на диаграмме Вейча
Алгоритм поиска минимальной ДНФ частично определенной функции f можно представить следующим образом
Найти любым известным способом сокращенную ДНФ функции, получающейся доопределением единицами исходной функции f на всех неопределенных наборах.
Выбрать минимальную ДНФ по импликантной матрице, где в столбцах выписаны лишь те конституенты единицы функции f, которые соответствуют полностью определенным единичным наборам.
Аналогичный алгоритм (с доопределением нулевыми наборами) может быть предложен для поиска КНФ При этом доопределение таблицы истинности функции f может быть произведено по разному для КНФ и ДНФ.
Заметим, что для решения рассматриваемой задачи практически достаточно тех навыков, которые были получены при минимизации полностью определенных булевых функций непосредственно по диаграмме Вейча. Приведем несколько примеров. В случаях, когда минимальных форм несколько, приводится одна из них.
Для функции, представленной табл:
ДНФ: x1x2 v /x1/x3 v /x3/x4;
КНФ: (x1 v /x3)(/x3 v x4)(x2 v /x4).
Для функции, представленной табл.:
ДНФ: x3 v x2x4;
КНФ: (x2 v x3)(x3 v x4).
Для функции, представленной табл.:
ДНФ: x1/x4 v /x1x2x4;
КНФ: (/x1 v /x4)(x1 v x2)(x1 v x4).
Для функции, представленной табл.:
ДНФ: x3 v x1x4 v x1/x2;
КНФ: (x1 v /x3)(/x2 v /x3 v x4).
Синтез схем в базисе функции Шеффера.
Функционально полная система булевой функции – система, с помощью функций которой, можно реализовать булеву функцию любой сложности.
Базис - система булевых функций, являющаяся функционально полной.
Функционально полный базис – базис, в который входит только одна функция И-НЕ (штрих Шеффера) или ИЛИ-НЕ (функция Пирса).
Таблица истинности для элемента И-НЕ:
ВходA ВходB Выходной сигнал (¯A¯B)
0 0 1
0 1 1
1 0 1
1 1 0
A|B = ¯(AB) = ¯A¯B
A|0 = 1
A|1 = ¯A
A|A = ¯A
A|¯A = 1
A + B = ¯¯ A + ¯¯B = ¯A|¯B = (A|A)|(B|B) = (A|1)|(B|1)
A * B = ¯¯(AB) = ¯(¯A + ¯B) = ¯(A|B) = (A|B)|(A|B)
Переход от функции заданной как ДНФ в основном базисе, к её выражению через функцию Шеффера.
Задана функция f(x, x2, .., xn) = k1 + k2 + … + km
где ki = a1a2 … an
ai
=
Преобразование функции.
f(x1, x2, … xn) = ¯¯k1 + ¯¯k + … + ¯¯km = ¯k1|¯k2|…|¯km
¯ki = ¯(a1, a2 … an) = ¯a1 + ¯a2 + … ¯an = a1|a2|…|an
Таким образом, для того чтобы перейти от заданной функции к функции ДНФ, её выражение через функцию Шеффера, необходимо заключить в скобки все элементарные произведения, заменить все операции (знаки) сложения и умножения на знак функции Шеффера и записать инверсные аргументы через функцию Шеффера, используя соотношение 1 или 3. Т.к. операция Шеффера есть операция умножения с инверсией, а эта двуместная операция, необходимо чтобы в каждом элементарном произведении содержалось не менее двух аргументов. Для этого используется соотношение A = A*1 или A|A = ¯A.
Пример.
f(A, B C) = ¯A¯B¯C + AB+C = (¯A¯B¯C) + (AB) + (C * 1) = (¯A|¯B|¯C) | (A|B) | (C|1) =
= [(A|A) | (B|B) | (C|C)] | (A|B) | (C|1)
Запись функции заданной в КНФ через функцию Шеффера.
Функция задана
f(x1, x2, … xn) = Q1, Q2, … Qm
Q = (a1 + a2 + … + an)
Где ai = ; i = (от 1 до n)
Преобразуем функцию.
f(x1, x2, … xn) = ¯¯(Q1, Q2, … Qm) = ¯(¯Q1 + ¯Q2 + … + ¯Qm) = ¯(Q1|Q2|…|Qm)
Применив первое соотношение:
Qj = (a1 + a2 + ... + an) = ¯¯a1 + ¯¯a2 + … + ¯¯an = ¯a1 | ¯a2 | ¯an
Из этого следует что функция будет равна:
= ¯((¯a1 | ¯a2 | … | ¯an)1 | (¯a1 | ¯a2 | … | ¯an)2 | … (¯a1 | ¯a2 | … | ¯an)m) =
Q1 Q2 Q3
= [(a1|a1) | (a2|a2) | … | (an|an)]1 | [(a1|a1) | (a2|a2) | … | (an|an)]2 | … |
| [(a1|a1) | (a2|a2) | … | (an|an)]m | 1
Таким образом, чтобы перейти от функции заданной в КНФ в основном базисе, для её выражения через функцию Шеффера необходимо все логические суммы заключить в скобки, заменить операции логического сложения и умножения на операцию функции Шеффера, взять инверсию от каждого аргумента функции и от всей функции в целом. Все инверсные переменные выражаются через соотношение ¯A = A|1 или ¯A = A|A. Так как операция сложения с инверсией инверсна, то каждое слагаемое должно иметь не меньше двух аргументов (A+A + 0).
