Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
процессоры.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
1.6 Mб
Скачать

1.4. Способы задания и преобразования логических функций

Словесный способ. При этом способе задания функция определяется словами, причем описание должно однозначно определять все случаи, в которых она принимает значение 0 или 1. Например, “Функция равна единице, если любые два или более аргумента равны единице, и нулю во всех остальных случаях”.

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

Т а б л и ц а 1.10

Таблица истинности функции

S

x2

x1

x0

y

0

1

2

3

4

5

6

7

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

0

0

1

0

1

1

1

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

y = x2 x1 V x1 x0 x2 x0 (1.21)

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

Дизъюнктивно-нормальная форма (ДНФ) задания логической функции состоит из дизъюнкции простых конъюнкций (импликант) аргументов. Конъюнкция называется простой, если она является логическим произведением переменных в прямой или инверсной форме. ДНФ функции (1.21) имеет вид

y = x2 x1 V x2 x1 x0 V x2 x1 x0. (1.22)

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

y = x2 x1 x0 V x2 x1 x0 V x2 x1 x0 V x2 x1 x0. (1.23)

Функция в СДНФ может быть условно записана в виде

y = (3, 5, 6, 7) = Mn3 V Mn5 V Mn6 V Mn7. (1.24)

В этой условной записи под знак суммы вводятся номера S минтермов (см.табл. 1.9), присутствующих в СДНФ функции.

Конъюнктивно-нормальная форма (КНФ) представления функций содержит конъюнкцию простых дизъюнкций. Для функции (1.21) КНФ представляется выражением

y = (x2 V x1)  (x2 V x1 V x0) (x2 V x1 V x0). (1.25)

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

y = (x2 V x1 V x0)  (x2 V x1 V x0) (x2 V x1 V x0)  (x2 V x1 V x0). (1.26)

Аналогично, функция (1.26) в СКНФ условно записывается в виде произведения макстермов

y = (0, 1, 2, 4) = Mx0 Mx1 Mx2 Mx4. (1.27)

Задание логических функций на диаграммах Вейча или картах Карно. Очень часто удобным оказывается представление функции в специальных матрицах или диаграммах, называемых диаграммами Вейча или картами Карно. Диаграмма Вейча (карта Карно) – прямоугольная таблица, число ячеек которой равно числу возможных комбинаций аргументов 2k. Подробно об этом методе будет рассказано ниже в разделе минимизации булевых функций.

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

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

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

2k–1

y

2k–1

S =0

S =0

= V y(S) MnS =  [y(S) V MxS]. (1.28)

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

f (xk–1, … , x1, x0) = f(xk–1, … , x1, 1)  x0 V f(xk–1, … , x1, 0)  x0; (1.29)

f (xk–1, … , x1, x0) = [f(xk–1, … , x1, 0) V x0]  [f(xk–1, … , x1, 1) V x0].

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

f (xk–1, … , x1, x0) = f(xk–1, … , 1, 1) x1 x0 V f(xk–1, … , 0, 1) x1 x0 V

V f(xk–1, … , 1, 0) x1 x0 V f(xk–1, … , 0, 0) x1 x0.

Если эту операцию проделать для всех переменных xi, то результатом будет

f(xk–1, … , x1, x0) = f(1, 1, … , 1, 1)  xk–1 xk–2  …  x1 x0 V …

V

2k–1

S =0

f(0, 0, … , 0, 0)  xk–1 xk–2  …  x1 x0 = V y(S) MnS.

Аналогичным образом можно доказать основное соотношение для конъюнктивного представления функции

2k–1

y

S =0

= V [y(S) V MxS].

Таким образом, справедливость основной теоремы доказана.

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

Т а б л и ц а 1.11

Таблица истинности функции

S

x2

x1

x0

y

0

1

0

0

0

0

0

1

0

0

2

3

0

0

1

1

0

1

1

0

4

5

1

1

0

0

0

1

1

1

6

7

1

1

1

1

0

1

0

1

7

y

S =0

= V y(S) MnS = 0  x2 x1 x0 V 0  x2 x1 x0 V 1  x2 x1 x0 V

V 0  x2 x1 x0 V 1  x2 x1 x0 V 1  x2 x1 x0 V 0  x2 x1 x0 V

V 1  x2 x1 x0 = (2, 4, 5, 7).

7

y

S =0

=  [y(S) V MxS] = (0 V x2 V x1 V x0)  (0 V x2 V x1 V x0) 

 (1 V x2 V x1 V x0)  (0 V x2 V x1 V x0)  (1 V x2 V x1 V x0) 

 (1 V x2 V x1 V x0)  (0 V x2 V x1 V x0)  (1 V x2 V x1 V x0) = (0, 1, 3, 6).

Из рассмотренного примера видно, что функция из табличного способа задания преобразуется в СДНФ или СКНФ.

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

y = x1 x0 V (x1 V x0)  x2x0

табличному.

Т а б л и ц а 1.12

Таблица истинности функции

S

x2

x1

x0

y

0

1

2

3

4

5

6

7

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

1

1

1

1

1

1

1

0

Из выражения видно, что функция имеет три аргумента, и поэтому возможны 23 =8 комбинаций. В левой части таблицы истинности (табл. 1.12) отразим возможные комбинации.

З атем найдем y(0) = y(0, 0, 0) = 0  0 V ( 0 V 0 )  0  0 = 1. Таким образом, y(S) при S = 0 равна 1.

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