Цель работы - исследовать эффективность алгоритма покрытия схем типовых модулей РЭС; усвоить особенности алгоритмизации и программирования задачи покрытия схем на ЭВМ; приобрести навык построения математических моделей объектов конструирования, реализации и исследования их при решении задачи покрытия в САПР.
Задача покрытия функциональной схемы типовыми модулями из заданного набора является задачей преобразования функциональной схемы в электрическую, т.е. схему соединения конструктивных элементов (резисторов, конденсаторов, транзисторов, интегральных схем, и т.д.) [1-3]. Решается эта задача одной из первых на этапе конструкторского проектирования. Поскольку при проектировании радиоэлектронных средств (РЭС) применяется большое многообразие электрорадиоэлементов (ЭРЭ), то наряду с задачей покрытия часто возникает необходимость определения оптимального набора этих элементов для каждого конкретного класса схемы, минимизация числа типов элементов набора в проектируемом устройстве.
Исходными данными для решения задачи покрытия являются: функциональная схема устройства и схемы типовых конструктивных элементов используемого набора модулей (интегральных схем, транзисторов, резисторов, конденсаторов, плат и т.д.).
Допустим,
схема состоит из множества элементов
E
= {e1,
e2,…,en}
и для каждого
из элементов
известен тип функции F(ei)
(i
= 1, 2,…, l),
которую он реализует (усилитель, детектор,
триггер, схема «И», «ИЛИ» и т.д.).
Набор модулей определяется библиотекой T = {T1, T2,…, Tn}.
Количественный
состав схемы по типам элементов опишем
вектором
,
в котором bj
– число элементов типа j.
Состав модулей библиотеки опишем
матрицей
,
в которой akj
– число элементов типа j
в модуле Tk.
Отметим, что элемент схемы может быть
реализован с помощью элемента того же
типа, находящегося в одном из модулей
библиотеки, либо с помощью элементов
других типов. Например, элемент ИЛИ с
двумя входами может быть реализован
элементом ИЛИ с большим числом входов.
Схема считается покрытой модулями из библиотеки T, если каждый элемент схемы реализуется элементами, входящими в состав выбранных модулей.
В качестве критериев оптимальности в задаче покрытия используют:
- суммарную стоимость модулей, покрывающих схему;
- общее число модулей в покрытии;
- число типов используемых модулей;
- число связей между модулями;
- число неиспользованных элементов в модулях.
Ограничениями обычно являются требования на совместную или раздельную компоновку в едином конструктивном модуле элементов функциональной схемы, связанные с обеспечением нормального теплового режима, помехозащищенности и простоты диагностики.
Для оценки качества покрытия используют дополнительный критерий – коэффициент покрытия G = N/M, где N – число элементов в схеме, а M – число модулей (микросхем), которыми покрыта схема.
Рассмотрим наиболее распространенный вариант задачи, в котором критерием качества является суммарная стоимость модулей.
Пусть
известны стоимости модулей каждого
типа c1,…,
ck,…,
cm.
Если ввести целочисленные переменные
xk
,
определяющие число модулей типа k,
которые необходимы для покрытия с
минимальной стоимостью, задача сведется
к минимизации функции
(1.1)
при ограничениях
,
(1.2)
где j = 1, 2,…,l, akj - число элементов типа j в Tk.
Число логических функций любого типа k, входящих во все покрывающие модули, должно быть не меньше общего числа элементов соответствующего типа в реализуемой схеме.
(1.3)
xk – целое число для всех k, так как любой модуль используется только полностью, независимо от числа задействованных в нем компонентов.
Задача (1.1) – (1.3) является задачей целочисленного программирования.
Целевая функция для минимизации стоимости и числа модулей имеет вид:
,
где r1 и r2 – коэффициенты, учитывающие важность используемых критериев.
Рассмотрим решение этой задачи при условии, что каждый элемент схемы li реализуется элементом того же типа в модулях набора T. В качестве дополнительного критерия при компоновке примем число межмодульных соединений. Решение задачи разобьем на два этапа:
1) Определение необходимого числа модулей с минимальной суммарной стоимостью.
2) Минимизация числа связей между модулями.
а) Допустим, что каждый из модулей T содержит элементы одного типа k, тогда минимальное число модулей для покрытия схемы, определяющее и минимальную стоимость покрытия, равно
,
(1.4)
где
ак
– число элементов в модуле Tk;
bk
– число элементов типа k
в схеме; { } – символ ближайшего большого
целого; xk
– число использованных модулей типа
k.
Отметим, что для модулей с однотипными
элементами получаем квадратную матрицу
,
причем ak
= 0 при
,
и
.
б) Практический интерес представляют наборы модулей с разнотипными элементами.
Пусть известны:
1)
Библиотека типовых элементов, содержащая
m
типов интегральный микросхем (ИМС).
Общее число типов элементов в ИМС
библиотеки l.
Тогда библиотеку зададим матрицей вида
.
2)
Электрическая схема узла, состоящая из
соединения элементов одинаковых типов.
Зададим схему вектором
.
1.
Составить вектор
количественного состава схемы по типам
элементов:
.
2. Упорядочить модули (микросхемы) Tk библиотеки по возрастанию их стоимостей:
.
3.
Составить матрицу
описания состава библиотеки в соответствии
с их стоимостью;
.
4.
Выполнить поэлементное деление вектора
на строку
матрицы A:
для
,
.
5.
Найти
и на данном шаге использовать
модулей типа k.
6. Найти вектор непокрытых элементов
,
где
;
.
7.
Если элементы
,
перейти к
,
если
,
перейти к
.
8. Определить количество использованных ячеек каждого типа
(
– определяет число итераций) и вычислить
их суммарную стоимость:
.
Конец.
ПРИМЕР 1.1
Пусть
дана электрическая схема (рис.1.1), которая
состоит из элементов типа t1,
t2,
t3,
и t4
(рис.1.2). Существует библиотека ИМС
(рис.1.3), причем их условные стоимости
равны соответственно:
;
;
;
;
условных единиц стоимости.
Требуется выполнить покрытие с минимальной стоимостью схемы на рис.1.1 набором микросхем из библиотеки рис.1.3.
Сосчитаем
количество элементов каждого типа в
схеме:
,
,
,
и составим вектор количественного
состава:
.
Для
покрытия выберем микросхемы
как наиболее дешевые.
В необходимый набор не включаем, поскольку
два
из трех ее элементов реализуют функцию,
которая отсутствует в схеме рис.1.1.
Упорядочим выбранные ИМС по возрастанию их стоимостей: T1, T2, T3 .
Составим матрицу описания состава ИМС библиотеки с учетом их стоимостей:
.
Выполним
поэлементное деление вектора
на строку
матрицы A.
В делении участвуют только значащие
числа, а в результатах делений учитываются
только целые части
.
В
результате для ИМС
имеем
,
.
Берем
min
из значащих чисел {2, 4}:
.
Следовательно, для покрытия схемы
назначаем 2 шт. ИМС
.
Формируем строку
.
Находим
вектор непокрытых элементов
.
Для этого из вектора
поэлементно вычитаем удвоенную строку
–