Скачиваний:
44
Добавлен:
05.04.2013
Размер:
116.74 Кб
Скачать

Лекция 4.

Алгоритмы покрытия.

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

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

М={m1,m2,…,mn},

каждый из которых реализует некоторую функцию (И, ИЛИ, НЕ, исключающее ИЛИ, запоминание и т.д.) а их множество М определяет совокупность всех логических операций выполняемых в схеме.

=U i = {1, 2,…, n}

Имеется ограниченный набор типов модулей

N={n1,n2,…,ne},

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

,

а полный набор модулей N определяет совокупность всех логических операций

j =Uj j ={, ,},

которые могут быть получены с их помощью.

При этом могут иметь место два случая:

  1. , т.е. для каждого элемента функциональной схемы существует соответствующий аналог среди компонентов набора модулей;

  2. , т.е. компоненты набора модулей реализуют не все функциональные схемы.

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

  1. предварительный

  2. окончательный

Алгоритм предварительного покрытия работает следующим образом:

  1. Из списка элементов схемы, подлежащих покрытию, выбирают очередной элемент . Если список пуст, то переходим к пункту 8.

  2. Определяем все логические элементы из числа непокрытых, связанные с mi и формируем множество Мi = mi U mq.

  3. Производим сравнение функции h, реализуемых в каждой из конструктивных модулей и логических функций

.

Выбираем модуль , для которого

i q = max[i h],

если таких модулей несколько, то выбираем модуль наименьшей стоимости. Если при пересечении этих множеств образуется пустое множество i q = 0, то переходим к пункту 7.

  1. Если эти множества равны (i q), то переходим к пункту 6.

  2. Из Mi удаляем элементы, наименее связанные с оставшимися и выполняющие операции i \ q . Получаем множество элементов , которые целесообразно скомпоновать в едином корпусе nq.

  3. Закрепляем все выбранные логические элементы за модулем nq и переходим к пункту 1.

  4. Составляем список элементов функциональной схемы, которые не могут быть реализованы с помощью заданного набора модулей (требуется доработка). Переходим к пункту 1.

  5. Конец работы алгоритма.

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

25

Соседние файлы в папке Лекции1