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

Рассмотрим пример построения схемы.

Пусть КС из И, ИЛИ, НЕ имеет вид

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

Предположим, что эта схема должна быть переведена на ЛЭ типа 3И-НЕ и 2ИЛИ-НЕ.

Перестраивая схему по частям, выделенным частям, получим:

Первая часть.

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

Вторая часть.

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

Третья часть.

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

Четвертая часть.

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

В результате получим схему следующего вида:

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

В полученной схеме содержатся общие части. После выполнения корректировки получим:

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

Примечание.

Исходную схему (1-ый этап) можно построить методами раздела 2.2 либо даже из других ЛЭ другими способами, а потом переводить на требуемые ЛЭ по частям.

Например, исходной может быть схема

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

РАЗДЕЛИТЕЛЬНЫЙ МЕТОД СИНТЕЗА

СХЕМ МИНИМАЛЬНОЙ ГЛУБИНЫ

ИЗ ЭЛЕМЕНТОВ

И-НЕ, ИЛИ-НЕ, И-ИЛИ-НЕ.

Базовая концепция.

Начинаем строить схему от выхода. Находим выходной ЛЭ и функции его входов для реализации бф F.

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru j1

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru y F

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru jk

F = y(j1,j2,...jk).

Далее процедура повторяется для j1,j2,...jk,пока для всех ЛЭ схемы в качестве функций входов будут получены независимые (отдельные) переменные или константы.

При этом в процессе построения схемы возникает две проблемы:

1. Выбрать «наилучший ЛЭ» из числа заданных;

2. Найти «наилучшую совокупность» функций входов ЛЭ.

Рассмотрим пример возникновения первой проблемы.

F = XYÚXZÚYWÚZW
Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru
XYÚXZÚYWÚZW = (XÚW)(YÚZ)

Рассмотрим пример возникновения второй проблемы.

F =XÚYÚZÚW
Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru
XÚ(Y(Ú(Z(ÚW))) (XÚY)Ú(ZÚW)
Глубина схемы = 3 Глубина схемы = 2

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

Сравнение удобно выполнять с помощью оценок (весов) реализуемых БФ. Чем точнее оценка, тем сложнее она получается. Абсолютно точная оценка по сложности эквивалентна сложности полного перебора всех вариантов построения схем.

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

F = XÚYÚZÚW; n = 4.

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru ; n = 4.

Наилучшим образом учитывает индивидуальные свойства функций оценка БФ, получаемая по ТДНФ (вес W для ТДНФ).

Вычисление W для ТДНФ будет рассмотрено ниже.

Проведение предварительной оценки позволяет сравнивать варианты схем без их построения.

Если W(F1) > W(F2), то Г(F1) > Г(F2)

Г(F) - глубина КС, реализующей F.

Пусть имеем некоторую схему:

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru j1

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru y F

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru jk

и пусть оценки (веса) функций входов при этом:

W(j1), W(j2), …W(jK).

Таких схем может быть много. Для каждой из них получим веса.

Лучшей будет схема, в которой maxW(jJ) для J от1 до k будет как можно меньше. (maxW определяет Г.)

Наша задача – нахождение иметь min(max(W(jJ)) по разным вариантам выбора функций входов.

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

Для получения функций входов ЛЭ будем пользоваться дизъюнктивными моделями ЛЭ (моделями из дизъюнкторов и инверторов).

Пример модели.

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

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

Рассмотрим пример реализации функции.

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

ТДНФ для F имеет вид Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru . Отсюда получим:

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

Замена исходной ДНФ на ТДНФ, в данном примере дала упрощение функций входов и, соответственно, даст упрощение схемы их реализующей.

Но дело не только в этом.

Если разделение делать не по ТДНФ, то процедура синтеза может не сходиться (будем строить схему до бесконечности).

Для реализации БФ F в процессе синтеза может потребоваться реализация БФ F. ?!

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

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

Построим карту Карно для данной функции.

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

Выполним поиск ТДНФ

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru
Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

В итоге получаем две ТДНФ.

Если начать разделение F по исходному выражению, то можно получить схему вида

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

Что соответствует Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

Вес W для F рассчитывается по ТДНФ этой функции.

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

где N - число букв ТДНФ;

ai=0, если i-ая переменная входит в ТДНФ либо только в прямом, либо только в инверсном виде, иначе ai=1.

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

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

W = 3*4 + 8 + (1 +1 + 0 + 0) =22.

Другой способ подсчета веса ТДНФ выполняется следующим образом:

Первое появление переменной вносит в вес значение – 4.

Первое появление инверсии бывшей ранее буквы – 2.

Повторное появление буквы – 1.

При выполнении суммирования этих весов получим ту же величину W. Порядок просмотра может быть любым.

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

Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru Коррекция нужна из-за того, что отдельные части схемы переводятся на новые ЛЭ независимо друг от друга. - student2.ru

В обоих случаях W = 22.

Умея подсчитывать W, можно научиться разделять ТДНФ на части так, чтобы maxW среди весов отдельных частей был по возможности минимальным. Решив эту задачу, можно научиться строить схемы минимальной глубины по дизъюнктивным моделям ЛЭ.

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