Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная № 1

.doc
Скачиваний:
13
Добавлен:
01.05.2014
Размер:
176.13 Кб
Скачать

Федеральное агентство по образованию РФ

Санкт-Петербургский государственный электротехнический университет

Кафедра МО ЭВМ

Методы представления логических функций.

Преподаватель: Красюк В.И.

Студент гр. 4351 Кузьменко А.

Санкт-Петербург

2007

Часть 1. Методы представления логических функций.

Существует несколько способов задания логической функции y = f (x1,x2,…xn), y, xi{0,1}. Их делят на аналитические, табличные и графические. Рассмотрим представление одной и той же логической функции различными способами. При этом будем считать, что у двоичных чисел старшие разряды – справа.

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

Например, следующий набор векторов, дающих на выходе 1, однозначно определяет некоторую функцию:

T = { (0,0,0,0,0), (0,0,1,0,0), (0,0,0,1,0), (0,1,0,1,0), (1,1,0,1,0), (0,0,1,1,0), (0,1,1,1,0), (1,1,1,1,0), (0,0,0,0,1), (1,0,0,0,1), (0,1,0,0,1), (1,1,0,0,1), (0,0,1,0,1), (0,0,0,1,1), (1,0,0,1,1), (0,1,0,1,1), (1,1,0,1,1), (0,0,1,1,1) }.

1б) Если представить каждый набор входных параметров соответствующим двоичным числом и каждое перевести в десятичную систему, получим то же множество входных наборов, но в более компактном виде:

T = {0, 4, 8, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 24, 25, 26, 27, 28}.

1в) Аналогично можно задать функцию одним набором двоичных чисел, если принять по умолчанию, что порядковый номер числа в наборе соответствует десятичному представлению двоичного числа, определяющего набор значений параметров функции на входе. Так заданную функцию можно задать вектором (0,0,0,0,1,0,0,0,1,0,1,1,1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0) или соответствующим двоичным числом 00001000101110111111100011111, возможно даже его десятичным представлением 522181904. Однако это представление (десятичным числом) довольно неудобно для использования, так как при увеличении числа параметров n возможное число функций (m) увеличивается по закону m=2^(2^n), а перевод таких больших чисел в двоичную систему довольно затруднительно. Также и представление одним двоичным числом может быть слишком громоздким по сравнению с представлением 1б, так как единичных значений функции может быть гораздо меньше, чем нулевых.

1г) Самое распространенное аналитическое представление логических функций – с помощью формул. Для этого используется булевская алгебра, включающая операции «и»(^, конъюнкция), «или»(, дизъюнкция) и «не»(, отрицание). Для краткости записи отрицание отображают чертой над параметром, а конъюнкцию – точкой или вообще не отображают, как умножение в арифметических формулах. Данная функция может быть представлена, например, следующей формулой: .

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

СДНФ:

СКНФ:

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

МДНФ: ,

МКНФ:

При представлении функции с помощью формул возможно использование не только булевской алгебры, но и других – например алгебры Жигалкина или алгебры, основанной на операциях штрих Шефера и стрелка Пирса.

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

Для удобства транспонируем таблицу истинности (для данной функции):

x1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

x2

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

x3

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

x4

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

x5

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

y

1

0

0

0

1

0

0

0

1

0

1

1

1

0

1

1

1

1

1

1

1

0

0

0

1

1

1

1

1

0

0

0

2б) Существует и более компактное табличное представление. Набор входных параметров разбивается поровну при четном n или с разницей в 2 при нечетном. Размер таблицы при четном n - (2n/2+n/2)(2n/2+n/2), а при нечетном - (2(n-1)/2+(n+1)/2)(2(n+1)/2+(n-1)/2). Две части набора параметров формируют строки и столбцы таблицы, а значения функции – на пересечении строки и столбца, соответствующих набору параметров, для которого это значение определяется.

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

x1

0

1

0

1

0

1

0

1

x

x3

2

0

0

1

1

0

0

1

1

x

x5

4

0

0

0

0

1

1

1

1

0

0

1

0

0

0

1

0

0

0

1

0

1

0

1

1

1

0

1

1

0

1

1

1

1

1

1

0

0

0

1

1

1

1

1

1

1

0

0

0

Разбиение набора параметров может производиться и другим образом, например для 5 параметров это может быть не 3 на 2,как в примере, а 4 на 1. Тогда представление является вырожденным представлением 2б.

2в) Существует другое табличное представление – карта Карно (диаграмма Вейча). Размер таблицы при четном n - (2n/22n/2), а при нечетном - (2(n-1)/22(n+1)/2). При этом в таблице выделяют области, соответствующие значению 1 для каждого из входных параметров, при этом эти области должны пересекаться, но не совпадать и каждая из областей должна включать в себя половину клеток таблицы.

При этом две соседние клетки будут отличаться только одной цифрой в двоичном представлении, что соответствует циклическому коду Грея. Таким образом, каждому возможному коду Грея соответствует карта Карно (диаграмма Вейча). Составим код Грея для 5-разрядных чисел:

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

1

3

2

18

19

17

16

24

25

27

26

10

11

9

8

00000

10000

11000

01000

01001

11001

10001

00001

00011

10011

11011

01011

01010

11010

10010

00010

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

12

13

15

14

30

31

29

28

20

21

23

22

6

7

5

4

00110

10110

11110

01110

01111

11111

10111

00111

00101

10101

11101

01101

01100

11100

10100

00100

Д

x5

x5

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

0

16

24

8

12

28

20

4

1

x1

17

25

9

13

29

21

5

3

19

27

11

15

31

23

7

x2

2

18

26

10

14

30

22

6

x3

x4

Так, например, набор 19 (11001) лежит на пересечении областей x1, x2, x5 и не входит в области x3 и x4, набор 31 (11111) лежит на пересечении всех областей, а набор 0 (00000) не входит ни в одну область.

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

x5

x5

1

1

1

1

1

1

1

1

0

x1

1

1

0

0

0

0

0

0

1

1

1

1

0

0

0

x2

0

1

1

1

1

0

0

0

x3

x4

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

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

Заданную функцию можно представить следующим образом:

Такое графическое представление достаточно наглядно, однако для n>5 оно становится слишком громоздким для использования.

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

«и»

«или»

«не»

Входов в элементы «и» и «или» может быть больше двух. Иногда сокращают последовательности элементов следующим образом:

Для данной функции такая схема может выглядеть так (МДНФ):

Соседние файлы в предмете Теория вычислительных процессов