Методическое указание к выполнению курсовой работы
.pdf
КЛ (проверку можно прекращать после того, как первый раз обнаружено несовпадение значений f и fЛ).
5) Анализируем функцию на принадлежность к классу КС. Для этого необходимо найти значения функции f (x2 , x1 , x0 ) и сравнить их со значениями функции f (x2, x1, x0). Обратная функция имеет вид:
f (x2 , x1 , x0 )=[(x1 → x0 )| x2 ]& (x1 x0 ).
Составим таблицу истинности для этой функции (табл. 5.6) и сравним между собой правые столбы таблиц 5.5 и 5.6. Поскольку не на всех наборах переменных значения функций равны между собой, можно сделать вывод,
что f (x2, x1, x0) КС.
6) Анализируем функцию на принадлежность к классу КМ. . Для этого нужно построить матрицу (см. табл. 5.7), в которой по строкам (i) и
столбцам (j) записаны наборы переменных |
x2 , x1 , x0 . |
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
Таблица 5.6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x2 |
|
x1 |
x0 |
|
|
→ |
|
|
[ … ] |
x1 |
|
|
f ( |
|
, |
|
, |
|
) |
|
|
( |
|
, |
|
, |
|
) |
x1 |
x0 |
x0 |
|
x2 |
x1 |
x0 |
f |
x2 |
x1 |
x0 |
|||||||||||||||||||
|
0 |
|
0 |
0 |
|
1 |
|
|
0 |
1 |
|
|
0 |
|
|
|
|
1 |
|
|
|
||||||||
|
0 |
|
0 |
1 |
|
0 |
|
|
1 |
0 |
|
|
0 |
|
|
|
|
1 |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
0 |
|
1 |
0 |
|
1 |
|
|
0 |
1 |
|
|
0 |
|
|
|
|
1 |
|
|
|
||||||||
|
0 |
|
1 |
1 |
|
1 |
|
|
0 |
1 |
|
|
0 |
|
|
|
|
1 |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
1 |
|
0 |
0 |
|
1 |
|
|
1 |
1 |
|
|
1 |
|
|
|
|
0 |
|
|
|
||||||||
|
1 |
|
0 |
1 |
|
0 |
|
|
1 |
0 |
|
|
0 |
|
|
|
|
1 |
|
|
|
||||||||
|
1 |
|
1 |
0 |
|
1 |
|
|
1 |
1 |
|
|
1 |
|
|
|
|
0 |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
1 |
|
1 |
1 |
|
1 |
|
|
1 |
1 |
|
|
1 |
|
|
|
|
0 |
|
|
|
||||||||
Затем отмечаем звездочками следующие пересечения:
•все элементы (значения переменных на конкретном наборе) строки равны всем элементам столбца, т.е. i = j ;
•хотя бы один элемент строки больше элемента столбца, т.е. i > j .
51
В оставшиеся клеточки ставим плюс «+», если значение функции на наборе i меньше или равно значению функции на наборе j , и минус «–», если значение функции на наборе i больше значения функции на наборе j.
Таблица 5.7
|
|
|
|
|
|
|
|
|
i \ j |
0 0 0 |
0 0 1 |
0 1 0 |
0 1 1 |
1 0 0 |
1 0 1 |
1 1 0 |
1 1 1 |
0 0 0 |
* |
– |
+ |
+ |
+ |
+ |
+ |
+ |
0 0 1 |
* |
* |
* |
+ |
* |
+ |
* |
+ |
0 1 0 |
* |
* |
* |
+ |
* |
* |
+ |
+ |
0 1 1 |
* |
* |
* |
* |
* |
* |
* |
+ |
1 0 0 |
* |
* |
* |
* |
* |
+ |
+ |
+ |
1 0 1 |
* |
* |
* |
* |
* |
* |
* |
+ |
1 1 0 |
* |
* |
* |
* |
* |
* |
* |
+ |
1 1 1 |
* |
* |
* |
* |
* |
* |
* |
* |
Если в полученной матрице есть хотя бы один знак «–», то функция не является монотонной, т.е. f (x2, x1, x0) КМ.
5.2.3 Минимизация функции алгебры логики.
Представление ФАЛ в виде СДНФ или СКНФ является наиболее полным, поскольку в совершенных формах присутствуют все наборы, на которых функция равна единице для СДНФ или нулю для СКНФ. Для обеих совершенных форм можно отметить ряд свойств:
•в каждом элементарном наборе присутствуют все переменные;
•отсутствуют неопределенные состояния;
•совершенные формы почти всегда не являются тупиковыми, следовательно их можно упростить. Рассмотрим алгоритм нахождения СДНФ:
1)Отмечаем наборы переменных, на которых функция равна 1.
2)Переменные xi, принявшие в этих наборах значение 1, обозначаем как
xi, а принявшие значение 0 – как xi .
52
3)Для каждого отмеченного набора записываем элементарную конъюнкцию, состоящую из xi и xi .
4)Объединяем элементарные конъюнкции знаком дизъюнкции, в результате получаем совершенную дизъюнктивную нормальную форму (СДНФ).
СКНФ находится по похожему алгоритму:
1)Отмечаем наборы переменных, на которых функция равна 0.
2)Переменные xi, принявшие в этих наборах значение 0, обозначаем как
xi, а принявшие значение 1 – как xi .
3)Для каждого отмеченного набора записываем элементарную дизъюнкцию, состоящую из xi и xi .
4)Объединяем элементарные дизъюнкции знаком конъюнкции, в результате получаем совершенную конъюнктивную нормальную форму (СКНФ).
Пример: Найти СДНФ и СКНФ функции, приведенной в табл. 5.3.
а) функция принимает значение 1 на наборах: 3, 5, 6 и 7. Для получения СДНФ запишем элементарные конъюнкции, соответствующие этим наборам, и объединим их знаками дизъюнкции (3.1); б) функция принимает значение 0 на наборах: 0, 1, 2 и 4. Для получения
СКНФ запишем элементарные дизъюнкции, соответствующие этим наборам, и объединим их знаками конъюнкции:
f ( x2 , x1 , x0 ) =( x2 x1 x0 ) ( x2 x1 x0 ) ( x2 x1 x0 ) ( x2 x1 x0 )
.
При практической реализации на логических элементах (ЛЭ) обе совершенные формы ФАЛ очень часто оказываются неэкономными (избыточными), поэтому для уменьшения числа ЛЭ, реализующих функцию, применяют различные методы минимизации ФАЛ. Целью минимизации ФАЛ является получение такого ее представления, которое содержит наименьшее число логических операций (в схемотехническом
53
аспекте – получение логической схемы, которая содержит наименьшее число ЛЭ с минимальным числом входов). Для минимизации несложных функций применяются алгебраические преобразования на основе законов поглощения и склеивания. Для более сложных функций разработаны специальные методы минимизации.
Метод минимизирующих карт. Этот метод нашел широкое применение при синтезе электронных схем благодаря своей простоте и наглядности. Он основан на использовании карт Вейча или Карно. Эти карты – аналог таблицы истинности ФАЛ; они построены таким образом, что соседние конъюнкции (которые отличаются значением только одной логической переменной и могут быть склеены) расположены либо рядом, либо на противоположных краях карты. Количество ячеек карты равно 2n, где n – число переменных.
На рис. 4.1 приведены карты Вейча для трех, четырех и пяти переменных и карты Карно для трех и четырех переменных. В каждой ячейке карты на рис. 4.1 проставлен номер набора логических переменных, которому эта ячейка соответствует. Карты Вейча для пяти и более переменных рассматриваются как совокупность подкарт для четырех переменных, поэтому конъюнкции, расположенные на одинаковых позициях в подкартах, также являются соседними. Карты Карно отличаются от карт Вейча только координатной сеткой.
Для поиска соседних конъюнкций прежде всего на карту наносят функцию, т.е. на местах номеров наборов проставляют значения функции на этих наборах.
Склеивание соседних конъюнкций на картах Вейча и Карно выполняется их геометрическим объединением в группы, состоящие из 2k ячеек (k = = 1, 2, …). Такая группа называется накрытием. Склеиваются те переменные, которые входят в накрытие и без инверсии и с инверсией.
Результат накрытия записывается в виде конъюнкции несклеенных переменных, а МДНФ – в виде дизъюнкции результатов накрытий. Чем
54
больше площадь накрытия, тем меньше переменных входит в его результат, а чем меньше накрытий, тем меньше конъюнкций входит в МДНФ. Поэтому при минимизации необходимо стремиться накрыть все единичные (в некоторых случаях – нулевые) значения ФАЛ минимальным числом максимальных по площади накрытий.
а) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
x2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
г) |
|
|
|
x3 |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
|
|
|
4 |
|
|
|
|
|
6 |
|
7 |
|
|
3 |
|
2 |
|
x2 |
12 |
|
|
|
6 |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
4 |
5 |
1 |
0 |
|
|
|
13 |
15 |
7 |
5 |
x0 |
|
|
|
|
|
|
|
|
|
9 |
11 |
3 |
1 |
|
|
|
|
x0 |
|
|
|
|
|
|||||
|
б) |
|
|
x2 |
|
|
|
|
8 |
10 |
2 |
0 |
|
|
|
x1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
2 |
6 |
4 |
|
|
|
|
|
|
|
|
x0 |
|
1 |
3 |
7 |
5 |
|
|
|
|
|
|
|
x3 |
|
|
|
|
д) |
|
|
x2 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
в) |
|
|
x0 |
|
|
|
|
|
0 |
4 |
12 |
8 |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
x4 |
|
|
|
x4 |
|
x0 |
1 |
5 |
13 |
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
29 |
13 |
9 |
24 |
28 |
12 |
8 |
3 |
7 |
15 |
11 |
|
x3 |
|
|
|
|
|
|
|
x1 |
2 |
6 |
14 |
10 |
|
27 |
31 |
15 |
11 |
26 |
30 |
14 |
10 |
|||||
|
|
||||||||||||
|
|
19 |
23 |
7 |
3 |
18 |
22 |
6 |
x1 |
|
|
|
|
|
|
2 |
|
|
|
|
|||||||
|
|
17 |
21 |
5 |
1 |
16 |
20 |
4 |
0 |
|
|
|
|
|
|
|
|
x2 |
|
|
|
x2 |
|
|
|
|
|
а) карта Вейча для трех переменных; б) карта Карно для трех переменных; в) карта Вейча для пяти переменных; г) карта Вейча для четырех переменных; д) карта Карно для четырех переменных.
Рис. 4.1 – Минимизирующие карты.
55
Пример: Минимизировать при помощи карт Вейча логическую функцию трех переменных - f (x3 , x2 , x1 , x0 ) = ∑ (0,1, 2, 3, 4, 7, 9,13,14,15) .
1) Наносим функцию на карту Вейча (рис. 4.2).
x3
0 |
1 |
0 |
1 |
x2 |
1 |
1 |
0 |
1 |
|||
1 |
0 |
1 |
x0 |
1 |
|||
0 |
0 |
1 |
1 |
|
|
x1 |
|
Рис. 4.2
2)выполняем накрытие всех единичных значений ФАЛ; получаем одно накрытие площадью 4 ячейки и 4 накрытия площадью 2 ячейки (выделены пунктиром).
3)Записываем МДНФ в виде логической суммы конъюнкций, соответствующих выполненным накрытиям:
f (x3 , x2 , x1 , x0 ) = x3 x1 x0 x3 x2 x1 x3 x2 x3 x1 x0 x2 x1 x0 .
Метод Квайна – Мак-Класски. Этот метод использует перебор конъюнкций, которые могут присутствовать в ДНФ, эквивалентной минимизируемой функции. Исходная ФАЛ задается в виде двоичных наборов, соответствующих конъюнкциям ранга n, разбитых на подгруппы по числу единиц в наборе. Алгоритм минимизации методом Квайна – МакКласски состоит в следующем:
1) Наборы, находящиеся в соседних подгруппах проверяются на склеивание.
56
2)В результате склеивания получаются конъюнкции ранга (n-1), которые вновь разбиваются на подгруппы по числу единиц. На позиции “склеенной” переменной проставляется символ “-“.
3)Если какие-либо из конъюнкций ранга n не удалось склеить, то их выписывают отдельно (их называют первичными импликантами).
4)Пункты 1-3 повторяют для конъюнкций ранга (n-1); в результате получают конъюнкции ранга (n-2) и первичные импликанты ранга (n-1).
5)Пункты 1-3 повторяют до тех пор, пока возможна хотя бы одна операция склеивания. Все несклееные конъюнкции дописывают к первичным импликантам.
6)Составляется таблица меток, в которой по строкам записываются первичные импликанты, а по столбцам – наборы, на которых функция принимает значение 1 (т.е. исходные конъюнкции ранга n). Для каждой строки метки расставляются в тех столбцах, которые имеют такие же элементы в совпадающих позициях (т.е. равные значения логических переменных). При этом позициями, в которых первичная импликанта содержит символ “-“, можно пренебречь.
7)Находится минимальное покрытие набором первичных импликант исходной функции, т.е. минимальный набор первичных импликант, имеющих метки во всех столбцах. Этот набор и даст МДНФ исходной функции. Последовательность отыскания такого набора проследим на примере.
Пример: Минимизировать методом Квайна – Мак-Класски логическую функцию, заданную выражением:
f(x3 , x2 , x1 , x0 ) = ∑ (0,1, 2, 3, 4, 7, 9,13,14,15) .
•Запишем двоичные наборы, на которых функция равна 1:
•0000, 0001, 0010, 0011, 0100, 0111, 1001, 1101, 1110, 1111.
•Группируем наборы по числу единиц в наборах 4-го ранга.
57
0 группа |
1 группа |
2 группа |
3 группа |
4 группа |
0 0 0 0 |
0 0 0 1 |
0 0 1 1 |
0 1 1 1 |
1 1 1 1 |
|
0 0 1 0 |
1 0 0 1 |
1 1 0 1 |
|
|
0 1 0 0 |
|
1 1 1 0 |
|
• Выполняем (там, где это возможно) операцию склеивания наборов из соседних групп. Поскольку все наборы принимают участие в склеивании, первичных импликант не оказалось. В результате получили наборы 3-го ранга, которые также разбиваем на группы.
0 группа |
|
1 группа |
|
2 группа |
3 группа |
|
0 0 0 – |
|
0 0 – 1 |
|
0 – 1 1 √ |
– 1 1 1 √ |
|
0 0 – 0 |
|
– 0 0 1 |
√ |
1 – 0 1 √ |
1 1 – 1 |
√ |
0 – 0 0 |
√ |
0 0 1 – |
|
|
1 1 1 – |
√ |
• Выполняя склеивание переходим к наборам 2-го ранга; несклееные
наборы отмечаем знаком √. |
|
|
0 группа |
1 группа |
2 группа |
0 0 – – √ |
|
|
• Единственный полученный набор 2-го ранга и несклеенные наборы 3-го ранга отнесем к первичным импликантам и внесем в импликантную таблицу (табл. 4.2). Заполним таблицу метками.
Таблица 4.2
|
0000 |
0001 |
0010 |
0011 |
0100 |
0111 |
1001 |
1101 |
1110 |
1111 |
0-00 |
√ |
|
|
|
√ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-001 |
|
√ |
|
|
|
|
√ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0-11 |
|
|
|
√ |
|
√ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1-01 |
|
|
|
|
|
|
√ |
√ |
|
|
|
|
|
|
|
|
|
|
|
|
|
-111 |
|
|
|
|
|
√ |
|
|
|
√ |
|
|
|
|
|
|
|
|
|
|
|
11-1 |
|
|
|
|
|
|
|
√ |
|
√ |
|
|
|
|
|
|
|
|
|
|
|
111- |
|
|
|
|
|
|
|
|
√ |
√ |
|
|
|
|
|
|
|
|
|
|
|
00-- |
√ |
√ |
√ |
√ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58
•В таблице вычеркиваем столбцы, имеющие только одну метку (соответствующие наборам 2, 4, 14) и строки, дающие эти метки (в таблице вычеркнуты двойными линиями). Эти вычеркнутые строки содержат первичные импликанты, которые обязательно войдут в МДНФ; такие импликанты называют существенными. В данном случае существенными являются импликанты 0-00, 111-, 00--.
•Столбцы, имеющие хотя бы одну вычеркнутую метку, также вычеркиваем (столбцы, соответствующие наборам 0, 1, 3, 15). В примере они вычеркнуты пунктирной линией.
•Оставшиеся строки и столбцы переносим в сокращенную импликантную таблицу (табл. 4.3), которую также заполняем метками.
•В этой таблице также ищем минимальное покрытие всех столбцов первичными импликантами. Так как импликанта 1-01 дает метки в двух столбцах (а все остальные импликанты только в одном), то ее следует включить в МДНФ, при этом столбцы, соответствующие наборам 9 и 13 вычеркиваем. Остается столбец, соответствующий набору 7, имеющий метки от двух импликант 0-11 и -111. При выборе какую из импликант включить в МДНФ следует руководствоваться правилом: выбирается та импликанта, которая содержит меньшее количество цифр (0 или 1), а при равном количестве цифр – та, в которую входит больше единиц (в примере
– импликанта –111).
Таблица 4.3
|
0111 |
1001 |
1101 |
-001 |
|
√ |
|
|
|
|
|
0-11 |
√ |
|
|
|
|
|
|
1-01 |
|
√ |
√ |
|
|
|
|
-111 |
√ |
|
|
|
|
|
|
11-1 |
|
|
√ |
|
|
|
|
59
• В окончательном виде МДНФ записывается в виде дизъюнкции элементарных конъюнкций, соответствующих существенным и отобранным первичным импликантам:
f (x3 , x2 , x1 , x0 ) = x3 x1 x0 x3 x2 x1 x3 x2 x3 x1 x0 x2 x1 x0 .
5.2.4 Синтез схемы методом каскадов.
Как уже упоминалось, набор элементарных логических функций, позволяющий строить на их базе ФАЛ любой сложности, называется базисом. Базис, состоящий из минимального набора элементарных ФАЛ, называют полной системой S логических функций. Критерий полноты системы ФАЛ задается теоремой Поста-Яблонского, которая в наиболее простой формулировке имеет следующий вид:
Система S функций алгебры логики fi является полной тогда и только тогда, когда в ней одновременно присутствуют: функция, не сохраняющая константу 0; функция, не сохраняющая константу 1; нелинейная функция; несамодвойственная функция и немонотонная функция.
Синтез логических схем можно производить в любом базисе, который обеспечен элементной базой, позволяющей реализовать все функции, входящие в базис. Основную роль при синтезе электронных схем играют функции логического умножения, сложения и отрицания (И, ИЛИ, НЕ) и реализующие их логические элементы. Кроме того, довольно часто используются логические элементы, реализующие функции И-НЕ, ИЛИНЕ, исключающее ИЛИ. Условные графические обозначения элементов приведены в таблице 5.1.
60
