При синтезе кс из элементов типа и, или, не.
Рассмотрим алгоритм построения КС с помощью скобочных преобразований.
1. Преобразуем исходную ДНФ многократно вынося за скобки переменные.
Пример.
2. Выделяем одинаковые подфункции в скобочной форме F и получаем совокупность функций для F.
Пример.
F = XY(ФÚ W) Ú WФ
Ф = Z Ú PQ
3. Выделяем конъюнкции или их части общие для нескольких мест (одинаковые) и расширяем совокупность функций.
Пример.
F = XY(F Ú W) ÚWF Ú MNK
F = Z Ú MNP
F = XY(F Ú W) ÚWF Ú YK
F = Z Ú YP
Y = MN
При поиске и выделении общих частей конъюнкций учитывается, что выделение k букв из Lконъюнкций дает выигрыш W = k(L-1).
Выделяя общие части с максимумом W при W > 0, мы обеспечиваем упрощение схемы.
Далее по совокупности БФ строится КС, например, моделированием полученных выражений.
Действия по п.2 и 3 ясны. Действия по п.1 рассмотрим подробнее, полагая, что исходное выражение для F - ДНФ.
Исходную ДНФ, рассматриваемой БФ F, обозначим как D0.
Делая вынесение за скобки переменных, получим
D0 = K0&(D 01) Ú D02
КонъюнкцияДНФ
Поиск выносимых за скобки переменных (конъюнкции) рассмотрим далее.
«Убираем» на время из рассмотрения внутри-скобочное выражение для D 01 и получаем ДНФ D 1 .
D 1 = K0&(F 01) Ú D02 .
Переменная, заменяющая ДНФ D 01 .
D 1 обрабатываем как исходную ДНФ D0, если возможно вынесение за скобки K1 и представление ее в виде
D 1 = K1&( D 11) Ú D12 .
Затем аналогично получаем D 2 , D 3 и т.д.
Если в Dj уже нельзя выделить Кj , то берем
D j = Kj-1&(F j-11) Ú Dj-12
и подставляем туда последовательно (D j-11) вместо F j-11, (D j-21) вместо F j-21 и т.д. до (D 01) вместо F 01.
При этом мы получаем выражение, в котором в скобки заключены ДНФ D 01, D 11, …D j-11.
Каждую из этих ДНФ будем обрабатывать как исходную, продолжая до тех пор, пока это возможно.
В результате получим искомую форму.
Рассмотрим пример.
К0 D 01 D02
К1 D11 D12
Дальнейшее вынесение за скобки невозможно.
Подставляя всюду Dq1 вместо F q1, получаем
Преобразуя каждую ДНФ из скобок, получим
Полученные здесь в скобках ДНФ уже не допускают дальнейших скобочных преобразований.
Заменив преобразованные ДНФ на скобочные выражения, получим
На этом скобочные преобразования завершены.
Выделив одинаковые подфункции, мы получим
В результате, получаем схему.
Замечание о многовыходных схемах.
Для системы БФ, каждая функция приводится к скобочной форме отдельно. Затем во всех функциях находятся одинаковые части формул и конъюнкций и формируется общая совокупность функций.
Следует отметить, что при большом числе «похожих» конъюнкций в разных БФ, лучшие результаты может дать другой подход.
1) В совокупности всех БФ выделяются общие части и заменяются новыми переменными;
2) БФ (с новыми переменными, если они введены) раздельно обрабатываются описанным ранее способом;
3) Введенные в 1) переменные реализуются схемами.
При синтезе многовыходных схем удобно строить схемы, используя поочередно оба подхода, и выбирать лучшую.
Выясним теперь, как в днф D j найти конъюнкцию Kj, чтобы, вынеся ее за скобки, получить D j = Kj&( D j 1) Ú Dj2
Обозначим (Ki)J совокупность первых j букв в Ki.
Весом W(Ki)J для (Ki)J назовем
W[(Ki)J ] = j. (Lk-1),
где Lk - число конъюнкций в D i, содержащих (Ki)J.
Ki строим, последовательно находя (Ki)1, (Ki)2, …так, чтобы вес W для (Ki)J всякий раз был наибольшим и больше нуля.
Переходя к (Ki)J нужно подобрать к (Ki)J-1 такую переменную, чтобы вес (Ki)J был наибольшим.
Отбор переменных к (Ki) идет до тех пор, пока вес (Ki)J не начнет убывать.
Рассмотрим пример.
Di = X1X2X3ÚX1X2X4ÚX1X5ÚX2X5
X1 | W=2 - max | (Ki)1 = x1 | |
X2 | W=2 | ||
(Ki)1 = | X3 | W=0 | |
X4 | W=0 | ||
X5 | W=1 | ||
X1X2 | W=2 - max | (Ki)2 = X1X2 | |
(Ki)2 = | X1X3 | W=0 | |
X1X4 | W=0 | ||
X1X5 | W=0 | ||
X1X2X3 | W=0 | ||
(Ki)3 = | X1X2X4 | W=0 | |
X1X2X5 | W=0 |
В итоге получаем
Di = X1X2(X3ÚX4)ÚX1X5ÚX2X5
Кi Di1 Di2
Схема, построенная по этому выражению, будет содержать 4 двухвходовых конъюнктора.
Схема для исходной ДНФ содержит 6 двухвходовых конъюнкторов.
Вес W для Ki равен числу конъюнкторов, которые могут быть удалены из КС для ДНФ D i после перехода к КС для D i в виде
D i = Ki&( D i1) Ú Di2
СИНТЕЗ КС ИЗ ЭЛЕМЕНТОВ
И-НЕ, ИЛИ-НЕ, И-ИЛИ-НЕ.
КС часто используемых БФ.
Наиболее часто используемыми БФ являются конъюнкция, дизъюнкция, сумма «по модулю 2» и инверсия.
F = X1&X2& … &Xn
F = X1ÚX2Ú… ÚXn
F = X1 X2 … Xn
F = X1oX2o…oXn
где o - либо &, либо Ú ,либо .
Существует набор стандартных решений для построения БФ.
Для этого используются следующие правила:
Для &, и имеется свойство ассоциативности:
возможность произвольной расстановки скобок в формуле
F = X1oX2o…oXn
Например:
F = X1oX2o…oXn = X1o(X2(o…oXn))= (X1oX2)o(…oXn)
В зависимости от того, как расставляются скобки, можно получить выражение, задающее КС последовательной, пирамидальной или смешанной структуры.
Последовательная структура.
;
N- число переменных; К - число входов ЛЭ;
Г - глубина КС; S - число ЛЭ в КС.
Пирамидальная структура.
,
Смешанная структура.
Мы увидели, как построить КС с n входами из ЛЭ (либо «блоков») с К входами, реализующими такие же функции, что и вся КС. Обратимся теперь к построению «блоков».
Рассмотрим типы используемых ЛЭ и их обозначения.
ЛЭ И-ИЛИ-НЕ таков, что из него путем подстановки констант или отождествления входов можно получать ЛЭ типа И-НЕ либо ИЛИ-НЕ.
Покажем это.
Рассмотрим способы получения инверторов из элементов И-НЕ, ИЛИ-НЕ, И-ИЛИ-НЕ.
Рассмотрим способы получения конъюнкции из элементов И-НЕ, ИЛИ-НЕ, И-ИЛИ-НЕ.
Получение конъюнкции из элементов И-НЕ.
Получение конъюнкции из элементов ИЛИ-НЕ.
Получение конъюнкции из элементов И-НЕ и ИЛИ-НЕ.
Получение конъюнкции из элементов И-ИЛИ-НЕ.
Рассмотрим примеры получения конъюнкций.
Получение дизъюнкции из элементов ИЛИ-НЕ.
Получение дизъюнкции из элементов И-НЕ и ИЛИ-НЕ.
Получение дизъюнкции из элементов И-ИЛИ-НЕ.
Рассмотрим примеры получения дизъюнкций.
Теперь рассмотрим схемы для получения суммы по модулю два.
X | Y | ||
В соответствии с таблицей истинности можно получить несколько способов реализации этой функции.
Первый способ – на элементах И-НЕ.
Второй способ – на элементах ИЛИ-НЕ.
Третий способ – на элементе И-ИЛИ-НЕ.
Рассмотрим использование выражений вида И-ИЛИ.
F=(X1&…&XP) (Y1&…&YP) … (W1&…&WP)
Рассмотрим примеры реализации выражений И-ИЛИ.
КС ДЛЯ ПРОИЗВОЛЬНЫХ БФ.
Процедура построения КС состоит из трех этапов:
1. Строится схема из элементов И, ИЛИ, НЕ.
2. Отдельные части схемы вида И-ИЛИ, либо И, либо ИЛИ переводятся в схемы из заданных ЛЭ (см. раздел 2.3.1).
3. Полученная КС корректируется с целью устранения возможной избыточности, например, вида
или нахождения общих частей.