При синтезе кс из элементов типа и, или, не.

Рассмотрим алгоритм построения КС с помощью скобочных преобразований.

1. Преобразуем исходную ДНФ многократно вынося за скобки переменные.

Пример.

при синтезе кс из элементов типа и, или, не. - student2.ru

2. Выделяем одинаковые подфункции в скобочной форме F и получаем совокупность функций для F.

Пример.

при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru F = XY(ФÚ W) Ú WФ

Ф = Z Ú PQ

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

Пример.

при синтезе кс из элементов типа и, или, не. - student2.ru F = XY(F Ú W) ÚWF Ú MNK

F = Z Ú MNP

при синтезе кс из элементов типа и, или, не. - student2.ru 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.

Делая вынесение за скобки переменных, получим

при синтезе кс из элементов типа и, или, не. - student2.ru D0 = K0&(D 01) Ú D02

       
  при синтезе кс из элементов типа и, или, не. - student2.ru
    при синтезе кс из элементов типа и, или, не. - student2.ru

КонъюнкцияДНФ

Поиск выносимых за скобки переменных (конъюнкции) рассмотрим далее.

«Убираем» на время из рассмотрения внутри-скобочное выражение для D 01 и получаем ДНФ D 1 .

D 1 = K0&(F 01) Ú D02 .

при синтезе кс из элементов типа и, или, не. - student2.ru

Переменная, заменяющая ДНФ 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.

Каждую из этих ДНФ будем обрабатывать как исходную, продолжая до тех пор, пока это возможно.

В результате получим искомую форму.

Рассмотрим пример.

при синтезе кс из элементов типа и, или, не. - student2.ru

 
  при синтезе кс из элементов типа и, или, не. - student2.ru

К0 D 01 D02

при синтезе кс из элементов типа и, или, не. - student2.ru

           
  при синтезе кс из элементов типа и, или, не. - student2.ru   при синтезе кс из элементов типа и, или, не. - student2.ru   при синтезе кс из элементов типа и, или, не. - student2.ru

К1 D11 D12

при синтезе кс из элементов типа и, или, не. - student2.ru

Дальнейшее вынесение за скобки невозможно.

Подставляя всюду Dq1 вместо F q1, получаем

при синтезе кс из элементов типа и, или, не. - student2.ru

Преобразуя каждую ДНФ из скобок, получим

при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru

Полученные здесь в скобках ДНФ уже не допускают дальнейших скобочных преобразований.

Заменив преобразованные ДНФ на скобочные выражения, получим

при синтезе кс из элементов типа и, или, не. - student2.ru

На этом скобочные преобразования завершены.

Выделив одинаковые подфункции, мы получим

при синтезе кс из элементов типа и, или, не. - student2.ru при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru

В результате, получаем схему.

при синтезе кс из элементов типа и, или, не. - student2.ru

Замечание о многовыходных схемах.

Для системы БФ, каждая функция приводится к скобочной форме отдельно. Затем во всех функциях находятся одинаковые части формул и конъюнкций и формируется общая совокупность функций.

Следует отметить, что при большом числе «похожих» конъюнкций в разных БФ, лучшие результаты может дать другой подход.

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

           
  при синтезе кс из элементов типа и, или, не. - student2.ru   при синтезе кс из элементов типа и, или, не. - student2.ru   при синтезе кс из элементов типа и, или, не. - student2.ru

К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 при синтезе кс из элементов типа и, или, не. - student2.ru X2 при синтезе кс из элементов типа и, или, не. - student2.ru при синтезе кс из элементов типа и, или, не. - student2.ru Xn

F = X1oX2o…oXn

где o - либо &, либо Ú ,либо при синтезе кс из элементов типа и, или, не. - student2.ru .

Существует набор стандартных решений для построения БФ.

Для этого используются следующие правила:

при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru

Для &, при синтезе кс из элементов типа и, или, не. - student2.ru и при синтезе кс из элементов типа и, или, не. - student2.ru имеется свойство ассоциативности:

возможность произвольной расстановки скобок в формуле

F = X1oX2o…oXn

Например:

F = X1oX2o…oXn = X1o(X2(o…oXn))= (X1oX2)o(…oXn)

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

Последовательная структура.

при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru ; при синтезе кс из элементов типа и, или, не. - student2.ru

N- число переменных; К - число входов ЛЭ;

Г - глубина КС; S - число ЛЭ в КС.

Пирамидальная структура.

при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru , при синтезе кс из элементов типа и, или, не. - student2.ru

Смешанная структура.

при синтезе кс из элементов типа и, или, не. - student2.ru

Мы увидели, как построить КС с n входами из ЛЭ (либо «блоков») с К входами, реализующими такие же функции, что и вся КС. Обратимся теперь к построению «блоков».

Рассмотрим типы используемых ЛЭ и их обозначения.

при синтезе кс из элементов типа и, или, не. - student2.ru

ЛЭ И-ИЛИ-НЕ таков, что из него путем подстановки констант или отождествления входов можно получать ЛЭ типа И-НЕ либо ИЛИ-НЕ.

Покажем это.

при синтезе кс из элементов типа и, или, не. - student2.ru при синтезе кс из элементов типа и, или, не. - student2.ru

Рассмотрим способы получения инверторов из элементов И-НЕ, ИЛИ-НЕ, И-ИЛИ-НЕ.

при синтезе кс из элементов типа и, или, не. - student2.ru

Рассмотрим способы получения конъюнкции из элементов И-НЕ, ИЛИ-НЕ, И-ИЛИ-НЕ.

Получение конъюнкции из элементов И-НЕ.

при синтезе кс из элементов типа и, или, не. - student2.ru

Получение конъюнкции из элементов ИЛИ-НЕ.

при синтезе кс из элементов типа и, или, не. - student2.ru

Получение конъюнкции из элементов И-НЕ и ИЛИ-НЕ.

при синтезе кс из элементов типа и, или, не. - student2.ru

Получение конъюнкции из элементов И-ИЛИ-НЕ.

при синтезе кс из элементов типа и, или, не. - student2.ru

Рассмотрим примеры получения конъюнкций.

при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru

Получение дизъюнкции из элементов ИЛИ-НЕ.

при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru

Получение дизъюнкции из элементов И-НЕ и ИЛИ-НЕ.

при синтезе кс из элементов типа и, или, не. - student2.ru

Получение дизъюнкции из элементов И-ИЛИ-НЕ.

при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru

Рассмотрим примеры получения дизъюнкций.

при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru

Теперь рассмотрим схемы для получения суммы по модулю два.

X Y при синтезе кс из элементов типа и, или, не. - student2.ru при синтезе кс из элементов типа и, или, не. - student2.ru

В соответствии с таблицей истинности можно получить несколько способов реализации этой функции.

Первый способ – на элементах И-НЕ.

при синтезе кс из элементов типа и, или, не. - student2.ru при синтезе кс из элементов типа и, или, не. - student2.ru

Второй способ – на элементах ИЛИ-НЕ.

при синтезе кс из элементов типа и, или, не. - student2.ru при синтезе кс из элементов типа и, или, не. - student2.ru

Третий способ – на элементе И-ИЛИ-НЕ.

при синтезе кс из элементов типа и, или, не. - student2.ru при синтезе кс из элементов типа и, или, не. - student2.ru

Рассмотрим использование выражений вида И-ИЛИ.

при синтезе кс из элементов типа и, или, не. - student2.ru

F=(X1&…&XP) при синтезе кс из элементов типа и, или, не. - student2.ru (Y1&…&YP) при синтезе кс из элементов типа и, или, не. - student2.ruпри синтезе кс из элементов типа и, или, не. - student2.ru (W1&…&WP)

при синтезе кс из элементов типа и, или, не. - student2.ru

Рассмотрим примеры реализации выражений И-ИЛИ.

при синтезе кс из элементов типа и, или, не. - student2.ru

при синтезе кс из элементов типа и, или, не. - student2.ru

КС ДЛЯ ПРОИЗВОЛЬНЫХ БФ.

Процедура построения КС состоит из трех этапов:

1. Строится схема из элементов И, ИЛИ, НЕ.

2. Отдельные части схемы вида И-ИЛИ, либо И, либо ИЛИ переводятся в схемы из заданных ЛЭ (см. раздел 2.3.1).

3. Полученная КС корректируется с целью устранения возможной избыточности, например, вида

при синтезе кс из элементов типа и, или, не. - student2.ru

или нахождения общих частей.

Наши рекомендации