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

1.5. Минимизация логических функций

Необходимость минимизации продемонстрируем на примере синтеза комбинационного цифрового автомата в базисе состоящем из элементов И, ИЛИ, НЕ, функционирование которого задается функцией

y =  (0, 2 , 3) = x1 x0 V x1 x0 V x1 x0. (1.30)

По данному выражению изображаем схему устройств (рис. 1.8, а).

Как видно, нам потребовалось 6 логических элементов. Попытаемся упростить (1.30), используя тождества алгебры логики:

y = x1 x0 V x1 x0 V x1 x0 = x0 (x1 V x1) V x1 x1 =

= x0 V x1 x0 = (x0 V x0) (x0 V x1) = x1 V x0. (1.31)

Схема устройства (рис. 1.8, б), построенного по упрощенному выражению, реализует ту же функцию существенно меньшим числом логических элементов (всего необходимо 2 элемента). Такое устройство будет экономичней и дешевле, чем автомат по схеме 1.8,а. Следовательно, перед реализацией цифрового автомата логическую функцию необходимо упростить или минимизировать. Строгое решение задачи минимизации должно учитывать конкретные особенности логических схем, применяемой элементной базы (в частности, значения коэффициента объединения, нагрузочной способности логических элементов, число элементов в корпусах, стоимость каждого корпуса и т.п.). Однако применяемые в настоящее время математические методы упрощения не решают задачу в таком объеме [1].

y = x1 x0 V x1 x0 V x1 x0 а) y = x1 V x0 б)

Рис.1.8. Реализация цифрового устройства: по СДНФ (а), по минимизированной функции (б)

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

Метод Квайна. Метод Квайна основан на использовании трех операций:

склеивание

f (xk–1, … , x0)  xi V f(xk–1, … , x0)  xi = f(xk–1, … , x0);

неполного склеивания

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

= f(xk–1, … , x0)  xi V f(xk–1, … , x0)  xi ; (1.32)

поглощения

f(xk–1, … , x0)  xi V f(xk–1, … , x0) = f(xk–1, … , x0). (1.33)

Е сли функция представлена в СДНФ и если в ней произвести возможные поглощения, то получим более простое выражение, называемой сокращенной ДНФ функции. Основным понятием при получении сокращенной ДНФ является понятие соседних минтермов. Два минтерма н азываются соседними, если они отличаются только одной переменной (в один минтерм переменная входит в прямой форме, в другой – в инверсной), например, соседними будут минтермы x3 x2 x1 x0 и x3 x2 x1 x0. К соседним минтермам может быть применено правило склеивания x3 x2 x1 x0 V V x3 x2 x1 x0 = x3 x2 x1 (x0 V x0) = x3 x2 x1. Получаемая в результате склеивания конъюнкция называется импликантой g.

Г оворят, что импликанта g покрывает (частично или все) единицы функции y. Например, для функции y = x2 x1 x0 V x2 x1 x0 V x2 x1 x0 импликантой будет любой входящий в нее минтерм, а также g67=x2 x1, g67=x1x0, (индекс импликанты образуется из номеров покрываемых минтермов).

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

y = x2 x1 x0 V x2 x1 x0 V x2 x1 x0 = x2 x1 V x1 x0.

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

Рассмотрим минимизацию функции

y = x2 x1 x0 V x2 x1 x0 V x2 x1 x0 V x2 x1 x0 V x2 x1 x0 V x2 x1 x0 =

= Mn0 V Mn2 V Mn3 V Mn4 V Mn5 V Mn7. (1.35)

В этом выражении импликанты g02, g37 и g57 покрывают минтермы Mn0, Mn2, Mn3, Mn4, Mn5, Mn7, т.е. всю функцию (1.34) и, следовательно, импликанты g04, g23 и g57 являются избыточными и могут быть удалены из выражения для функции. Полученная функция y = g02 V g37 V g45 = x2 x0 V V x1 x0 V x2 x1 не содержит избыточных импликант и называется тупиковой ДНФ (функции (ТДНФ). Как правило, для сложной функции существует несколько способов удаления избыточных импликант, в результате получается несколько ТДНФ; ТДНФ с наименьшим числом букв носит название минимальной ДНФ (МДНФ). Поиск вариантов ТДНФ, соответствующих минимизируемой функции, производится обычно с помощью так называемых таблиц импликант или таблиц покрытий, которые указывают, какие простые импликанты поглощают отдельные члены исходного выражения.

С целью выяснения возможностей исключения избыточных простых импликант по выражениям (1.34) и (1.35) составляется таблица 1.13, столбцам которой соответствуют минтермы исходного выражения функции, а строкам – все члены сокращенной ДНФ.

Если в некоторый член канонической суммы входит какая-либо из простых импликант, то на пересечении соответствующего столбца и строки ставится знак “плюс”. После заполнения таблицы выбирается минимальное число тех простых импликант, которым соответствуют знаки “плюс” во всех столбцах.

Т а б л и ц а 1.13

Простые импликанты

Минтермы исходной СДНФ

Mn0

x2 x1 x0

Mn2

x2 x1 x0

Mn3

x2 x1 x0

Mn4

x2 x1 x0

Mn5

x2 x1 x0

Mn7

x2 x1 x0

g02

x2 x0

+

+

g04

x1 x0

+

+

g21

x2 x1

+

+

g37

x1 x0

+

+

g45

x2 x1

+

+

g57

x2 x0

+

+

Из таблицы следует две такие возможности, которым соответствуют две ТДНФ

y = g02 V g37 V g45 = x2 x0 V x1 x0 V x2 x1;

y = g04 V g23 V g57 = x1 x0 V x2 x1 V x2 x0. (1.36)

Обе эти функции представлены минимальными ДНФ.

Выполнение процедур по методу Квайна возможно и при большом числе переменных, однако для этого необходимо кропотливо выписывать очень длинные формулы (после операций склеивания), в которых легко допустить ошибку. Поэтому распространение при большом числе аргументов получил усовершенствованный метод Квайна, предложенный Мак-Класки [1,1]. На основе метода Мак-Класки возможно построение алгоритмов автоматизированной минимизации логических функций на ЭВМ. Алгоритмы минимизации логических функций на ЭВМ. Алгоритмы минимизации логических функций представлены, например, в [11, 12, 13, 14]. Необходимо отметить, что применение ЭВМ для минимизации особенно эффективно при числе переменных больше шести. При меньшем числе аргументов логические функции могут быть легко минимизированы по представленному ниже метода Вейча – Карно.

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

Для облегчения процесса нахождения нужной ячейки по краям диаграммы ставятся значения переменных (рис. 1.9). Например, в верхнюю строку в диаграмме Вейча для функции трех переменных, обозначенную символом x1, вносятся все минтермы, в которые x1 входит в прямой форме, в нижнюю – минтермы, куда x1 входит в инверсной форме.

а) б)

в)

Рис. 1.9. Диаграмма Вейча для функции двух (а), трех (б) и четырех (в) переменных

В дальнейшем условно будем обозначать строки и столбцы, соответствующие переменным в прямой форме, линиями (рис. 1.9, в).

Представление функций на диаграмме Вейча. Для представления функции на диаграмме Вейча ее необходимо перевести в СДНФ или задать таблично. Затем на диаграмме отметить единицами те ячейки, которые соответствуют имеющимся в СДНФ функции минтермам. Остальные ячейки либо остаются незаполненными, либо отмечаются нулями. В качестве примера представим функцию, заданную таблично на диаграмме Вейча (рис. 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

1

1

0

0

0

0

Рис. 1.10. Представление логической функции на диаграмме Вейча

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

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

y = Mn2 V Mn3 = g23.

На рис. 1.11 представлены некоторые возможные варианты объединения единиц в контуры и минимальные функции, которые при этом получаются.

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

а) минимизированная функция равна дизъюнкции импликант, соответствующих объединенным в контуры единицам;

б) в контуры можно объединять 1, 2, 4, 8, 16, …, 2k единиц, причем они должны составлять строку, столбец (или их часть) – прямоугольник или квадрат. В эти контуры объединяют и единицы, расположенные на краях диаграммы Вейча;

в) контурами должны охватываться все без исключения единицы, и ни в один контур не должен быть включен нуль;

x3

x3

x3

y = x1 x0 V x2 x0 y = x2 V x1 x0 y = x0 V x2 x1

Рис. 1.11. Возможные варианты объединения единиц в контуры и результаты склеивания

г) одна и та же единица может быть включена в несколько контуров;

д) импликанту, представляющую данный контур, входят только те переменные, которые для этого контура не меняют своих значений.

y = x3 x2 x1V x2 x1 y = x3 x2 V x3 x2 x1 y = x2

Рис. 1.12. Примеры считывания минимизированных функций с диаграмм Вейча для четырех переменных

На рис. 1.12 показаны возможные варианты объединения единиц и получающиеся функции для четырех аргументов.

Еще большие возможности для объединения единиц в контур представляются в диаграммах Вейча для функций пяти аргументов. Поскольку число соседних минтермов для функции k аргументов равно k, то соседними ячейками диаграмм Вейча для пяти переменных будут не только смежные по вертикали и горизонтали, но и ячейки, расположенные симметрично относительно вертикальной оси, разделяющей диаграмму надвое (рис. 1.13).

Так, например, для ячейки 14, отображающей Mn14, соседними будут ячейки с номерами 6, 10, 12, 15, 30 (обозначены звездочкой). Для ячейки с номером 25 – ячейки 9, 17, 24, 27, 29. Это позволяет производить объединения, некоторые из которых представлены на рис. 1.14. там же представлены диаграммы Вейча и примеры считывания функций шести аргументов.

Рис. 1.13 Диаграмма Вейча для функций пяти переменных. Цифрами обозначены номера минтермов, заносимых в ячейки

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

Ч астичное определение функций создает возможность факультативного доопределения функций на избыточных комбинациях, что используется для получения по возможности минимально ДНФ. Рассмотрим пример использования факультативного доопределения частично определенной функции.

y = x3 x2 V x3 x2 y = x2 x0 V x3 x2 x1 x0

а)

y = x3 x2 x1 V x5 x3 x1 x0 y = x3 x2 V x5 x3 x2

б)

Рис. 1.14. Примеры считывания минимизированных функций с диаграмм Вейча для пяти (а) и шести (б) переменных

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

чтобы вся функция покрывалась минимальным числом наибольших по размерам контуров (в данном случае двумя контурами по четыре единицы). Вариант доопределения функции на запрещенных комбинациях позволяет получить минимальную ДНФ. Необходимо заметить, что полученная функция определена уже на всех комбинациях так, как это представлено в правом столбце таблицы на рис. 1.15.

S

x2

x1

x0

y

yg

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

*

0

*

1

1

1

1

1

0

0

1

1

Рис. 1.15. Примеры минимизации частично определенной функции

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

На рис. 1.16,а представлены на диаграммах Вейча три функции y0 , y1 y2 одних и тех же аргументов x0 , x1 x2.

Если подходить к минимизации этих функций раздельно, то три сокращенные функции вместе будут иметь 16 вхождений аргументов (рис. 1.16,б). При совместной минимизации целесообразно отметить общие для всех функций минтермы (на диаграммах Вейча они отмечены точкой), а все логические функции представить в виде логической суммы общей части z и необходимых импликант, как это показано на рис. 1.16, в. Как видно, используя совместную минимизацию, удалось уменьшить суммарное число вхождений аргументов в функции для данного конкретного примера в 2 раза.

y0 = x2 x1 V x2 x0 z = x2 x1 V x2 x0

(4 вхождения) y0 = z

(4 вхождения)

y1 = x2 x0 V x1 x0 V x2 x0 y1 = z V x2 x0

(еще 6 вхождений) (еще 2 вхождения)

y2 = x2 x1 V x2 x1 V x2 x0 y2 = z V x2 x1

(еще 6 вхождений) (еще 2 вхождения)

ИТОГО: ИТОГО:

16 вхождений 8 вхождений

а) б) в)

Рис.1.16. Диаграммы Вейча с занесенными функциями (а), минимизация без использования общей части (б), совместная минимизация (в)

Минимизация функций “по нулям”. Был рассмотрен способ считывания минимизированных функций, заключающийся в объединении в контуры тех ячеек диаграммы Вейча, где функция определена единицей. Однако возможно объединение по тем же правилам ячеек, где функция определена нулем. В этом случае получается минимальная ДНФ инвертированной функции (рис. 1.17).

считывание по “единицам”

y = x2 V x1

считывание по “нулям”

y = x2 x1

Рис. 1.17. Пример считывания функции

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

y = y = x1 x2 = x2V x1

Карты Карно. Разновидностью таблиц, на которых представляются логические функции, являются карты Карно. Карты Карно отличаются от диаграмм Вейча лишь способом размещения переменных. В картах Карно переменные перечисляются в циклическом коде или коде Грея (табл. 1.8). Варианты карт Карно можно найти в [1, 10, 11, 15]. Занесение функций на карты Карно и считывание минимизированных форм ведется так же, как при использовании диаграмм Вейча.