Алгоритмы и модели компоновки
В настоящее время при разработке современных электронно-вычислительных средств (ЭВС) основными элементами являются интегральные микросхемы (ИМС) - микроэлектронные изделия, выполняющие функции преобразования, обработки сигнала или накопления информации и имеющие высокую плотность упаковки электрически соединенных элементов и кристаллов, которые рассматриваются как единое целое. Под элементом ИМС понимается его часть, реализующая функцию произвольного электро-радио-элемента (ЭРЭ), не выделяемая как самостоятельное изделие. Компонент ИМС также реализует функцию ЭРЭ, но рассматривается как самостоятельное изделие. Сложность ИМС характеризуют числом содержащихся в них элементов и компонентов и называют степенью интеграции (СИ). Величину СИ определяют по формуле СИ = lgN, где N -число элементов и компонентов в ИМС.
При решении задач конструкторского проектирования радиоэлектронной и электронно-вычислительной аппаратуры с помощью САПР должно быть предусмотрено использование унифицированной конструкторско-технологической базы современной микроэлектроники. По этому они строятся по блочному принципу.
Основными элементами ЭВА являются монолитные интегральные БИС, СБИС, для которых значение СИ соответственно равны: 1000 (и более) и 106 элементов и компонентов.
Конструкция ЭВА всегда содержит иерархию типовых элементов конструкций (ТЭК). Под ТЭК можно понимать конструктивно законченное изделие любой сложности.
Съемные ТЭК называют типовыми элементами замены (ТЭЗ).
Обычно говорят о конструировании на определенном ранге (уровне).
Например, к ТЭК первого (низшего) ранга относят транзисторы, резисторы, интегральные микросхемы (ИМС), модуль, микромодуль и т.д., т.е. конструктивно неделимый базовый элемент, на котором ведется конструирование.
На втором уровне элементы первого ранга, например ИМС, объединяются в схемные сочетания, образуя ТЭЗы (типовой элемент замены) или ячейки и т.д.
Рисунок 2.6 – Структурные уровни РЭС.
Таким образом, ТЭК i-го ранга объединяются в ТЭК (i+1)-го ранга. Как правило, конструкторско-техническая база ЭВА состоит из пяти уровней (рангов) (рис. 2.6).
В общем случае при переходе от ранга i к рангу (i+1) приходится решать задачу компоновки, т.е. разбиения ТЭК уровня i на ТЭК уровня (i+1).
Исключение составляет компоновка элементов самого низкого ранга, которые составляются не из конструктивных элементов, а из функциональных базовых элементов.
Задачи компоновки на всех уровнях иерархии конструктивного оформления ЭВА тесно связаны между собой. Компоновка рассматривается как процесс принятия решения. В результате решения задачи компоновки типовые элементы конструкции (ТЭК) z'-го уровня, размещается в ТЭК (i+1)-го уровня. При этом учитывается выбранный критерий качества.
Преобразование функционального описания аппаратуры в соответствующее ему описание схемы электрической принципиальной может быть выполнено двумя способами: «снизу-вверх» и «сверху-вниз». На практике применяются оба способа и их различные комбинации. Например, можно функциональную схему (ФСХ) устройства покрыть ТЭК второго ранга (ячейками), а затем уже схему каждой ячейки покрывать модулями.
Существует три варианта постановки задачи компоновки, в зависимости от принятых критериев:
- типизация - разбиение ФСХ на части различных типов по критерию минимума числа разнотипных узлов (минимум номенклатуры узлов);
- покрытие - преобразование ФСХ в принципиальную электрическую схему, т.е. в схему соединений ТЭК, номенклатура которых заранее известна;
- разрезание - разбиение ФС (или ПЭС) на части с минимизацией числа связи между этими частями и ограничением числа связей каждой части.
Исходными данными для решения задачи компоновки является коммутационная схема (КС). Для алгоритмизации и формального решения задачи производится переход от КС к графу одним из методов, описанных выше.
Классификация алгоритмов компоновки приведена на рис. 2.7:
Рисунок 2.7 – Классификация алгоритмов компоновки.
Алгоритмы классифицируются по критериям, по ограничениям на формирование частей или по структуре вычислительной процедуры. С этой точки зрения их делят на последовательные, параллельно-последовательные и итерационные. В алгоритмах первого типа вводится последовательный процесс компоновки частей, на каждом шаге которого в очередную часть добавляется один из элементов математической модели, выбираемый по определенному приоритету. В параллельно-последовательных алгоритмах сначала выделяется некоторое исходное множество групп элементов, которое затем распределяется по частям с учетом критериев и ограничений на компоновку. Обычно эти алгоритмы используются при решении задач компоновки со специальными требованиями, например, минимизация числа разнотипных блоков. Итерационные алгоритмы служат для улучшения некоторого начального варианта компоновки в соответствии с принятым критерием.
При использовании итерационных алгоритмов сначала граф разбивается на определенное число частей произвольным образом, например с помощью последовательных алгоритмов. Затем по некоторым правилам производится перестановка вершин из одной части в другую с целью минимизации числа внешних ребер.
В алгоритмах разбиения, основанных на математических методах, в основном используются методы ветвей и границ, решение задачи о назначениях. Алгоритмы разбиения с применением методов ветвей и границ состоят из следующих этапов. Сначала определяется нижняя оценка разбиения графа на заданное число частей. Затем производится построение дерева решений и осуществляется поиск оптимального результата.
Задачу разбиения графа схемы на части можно свести к задаче о назначении.При этом ищется назначение кандидатов (вершин графа) на все части, дающие минимальные суммарные затраты. При этом каждая вершина может быть назначена только на одну часть и в каждой части должны содержаться различные вершины графа.
Алгоритмы компоновки типовых блоков сводятся к задачам покрытия итипизации.Под покрытиемпонимается представление функциональной схемы ЭВА типовыми конструктивными элементами, на которых она будет реализована, и связями между ними с выполнением заданных конструктивных ограничений. При покрытии выделяют задачи с несвязными элементами и функциональными ячейками. В первом случае решают задачи определения необходимого числа ячеек для покрытия коммутационной схемы с минимальной суммарной стоимостью (математическая модель 19 - 21). Во втором случае решают задачи покрытия коммутационной схемы заданным классом функциональных ячеек с минимизацией числа ячеек и суммарного числа межъячеечных связей (математическая модель 22 - 26).
(19)
при условиях (ограничениях)
(20)
(21)
где aij - количество элементов i-готипа, содержащееся в ячейке j-го типа;
xj - количество ячеек j-го типа, используемых при покрытии элементов коммутационной схемы;
сj - стоимость ячейки j-го типа.
(22)
при условиях (ограничениях):
(23)
(24)
где: aij - количество элементов i-готипа, содержащиеся в ячейке j -го типа;
xj - количество ячеек j-го типа, используемых при покрытии коммутационной схемы;
pij - количество внешних связей ячейки типа j при реализации ею элемента схемы i-готипа;
bj - количество элементов i-готипа, содержащиеся в коммутационной схеме.
Типизация - это разбиение коммутационной схемы на части по критерию оптимальности - минимум номенклатуры частей разбиения или по критерию оптимальности - максимуму однотипности используемых ячеек. Сокращение номенклатуры ТЭК позволяет уменьшить затраты на дальнейшее проектирование.
Задача типизации - это компоновка «сверху вниз».
(25)
при условиях (ограничениях):
(26)
(27)
xij = {0;1}, (28)
где xij - переменная проектирования; xij = 1, если ячейка типа j-гo реализует i-й элемент схемы; xij = 0, если ячейка j-гo типа не может реализовать i-й элемент схемы.
kj - количество элементов, содержащиеся в ячейке j-гo типа;
ni - количество элементов i-ro типа, содержащиеся в ячейке j-гo типа.
Ограничение (26) показывает, что каждый элемент коммутационной схемы может быть реализован только одной ячейкой соответствующего типа.
Ограничение (27) показывает, что число элементов схемы, реализуемых ячейкой j-гo типа не должно превышать числа элементов, содержащихся в ней.
Важной задачей в общей проблеме компоновки коммутационной схемы является покрытие. Как отмечалось выше, под покрытием схемы понимается представление функциональной схемы типовыми элементами конструкций, на которых она будет реализована, и связями между ними. Покрытие называют компоновкой «снизу в верх».
Решение задачи покрытия на первом уровне конструкторского проектирования дает возможность представить функциональную схему ЭВА или ее частей в виде принципиальной электрической схемы соединений элементов. Элементами могут быть резисторы конденсаторы, транзисторы, ИМС и т.д., т.е. ТЭК 1-го уровня. Поэтому при решении задачи покрытия можно рассматривать вопросы выбора класса элементов и минимизации числа типов элементов. Конечной целью покрытия является выбор оптимальной элементно-технической базы объекта проектирования.
Исходной информацией для этого этапа проектирования являются схема функциональная и набор ячеек Я= {Я1,Я2,...,Яn}, параметры которых оказывают решающее влияние на результаты покрытия схемы.
Пусть задана схема, состоящая из элементовхи x1, x2,..., хп, для каждого из которых известен тип t(xi), t=1...l. Состав схемы по типам элементов описывается вектором M={m1,m2,...,mt...,ml}, в котором mt- число элементов типа t. Состав ячеек заданного набора Я описывается матрицей R = ||rv,t||, v=(1...k), t={1...n}, где rv,t - число элементов типа t в ячейке Яv. Схема считается покрытой ячейками из набора Я, если каждый элемент схемы реализуется элементами, входящими в состав выбранных ячеек. Пусть известны стоимости cv ячеек каждого типа. Требуется отыскать покрытие с минимальной стоимостью F:
F =∑cv×|Rv|
Для формализации процесса покрытия схемы ячейками, различные наборы делятся на классы.
1. В состав ячеек входят логические элементы одного типа, не связанные между собой; входы и выходы элементов имеют отдельные выводы на ячейке.
2. Ячейки содержат разнотипные элементы, не связанные между собой; входы и выходы элементов имеют отдельные выводы на ячейке.
3. Состав ячеек аналогичен классу 1, однако часть элементов связана между собой.
4. Состав ячеек аналогичен классу 2, однако часть элементов связана между собой.
Рассмотрим задачу, относящуюся к классу 2. Математическая модель задачи покрытия для данного класса запишется:
(29)
при условиях:
(30)
(31)
(32)
где mt - число элементов типа t, используемых в схеме;
St,a - количество элементов типа «t», которые могут быть заменены элементами типа «а»;
Sa,t - количество элементов типа «а», которые могут быть заменены элементами типа «t»;
|Яv| - число ячеек типа Яv, использованных при реализации схемы.
Задача (29-32) относится к задачам целочисленного программирования. Ее решение точными методами затруднено, поэтому применяют приближенную эвристическую процедуру решения поставленной задачи. На практике хорошо зарекомендовал себя алгоритм Селютина. Рассмотрим алгоритм Селютина компоновки ячеек с несвязными элементами. Пример такой ячейки «K155LA3» приведен на рисунке 2.8. В состав данной ячейки входят однотипные элементы, реализующие функцию «И-НЕ» на два входа.
Для общности примем, что набор ячеек относится к классу 2, т.е. в него входят ячейки с разнотипными элементами.
Рисунок 2.8 – Структура ИМС К155Ла3.
При решении задачи будем считать, что каждый элемент схемы реализуется элементом того же типа в ячейках набора Я. В качестве дополнительного критерия оптимизации принимается число межъячеечных соединений. Решение задачи разбивается на два этапа:
1) определение необходимого числа ячеек с минимальной суммарной стоимостью;
2) минимизация числа связей между ячейками.
Пусть дана матрица R = ||rν,t ||, v ={1...k}, t={1...n}, и вектор числа элементов в схеме по типам М0 = ||mt ||.
Алгоритм решения задачи состоит в следующем.
1. Упорядочить ячейки набора {Яу} по возрастанию их стоимости: Я1,Я2; Я3,.., Яv (C1≤C2≤...≤Сk≤...≤Cv). Выбирается ячейка Як с наименьшим значением стоимости Сk. Задается начальное значение номера итерации i=0. По результатам структурного анализа покрываемой схемы определяется вектор М0, элементы которого равны числу каждого типа элементов, использованных в схеме.
2. Определить «локально-минимальное» число ячеек Як для итерации i= i+1: Ak(i) =min {mt/rk,t}, где rk,t- количество элементов типа «t» в ячейке типа «k».
3. Вычислить вектор «непокрытых элементов» Мi:
Мi= Мi-1- Ak(i)Rk
4. Если Mi >0, перейти к п.2, если Мi= 0, перейти к п.5.
5. Подсчитать число ячеек каждого типа: |Яν|= ∑Аν(i) ,
где р -число выполненных при покрытии итераций; v = {1,2,3,...,k,...,v}.
Пример.Дана логическая схема (рис.2.9) и типы используемых элементов (рис.2.10)
Рисунок 2.9 – Логическая схема устройства
Рисунок 2.10 – типы используемых компонентов.
Типовые элементы проектирования t1, t2, t3, t4входят в набор ячеек Я1, Я2, Я3 (рис. 2.11):
Рисунок 2.11 – Типовые элементы.
Составим матрицу ||Rv|| описания состава данного набора ячеек:
Строки матрицы ||Rv|| соответствуют ячейкам заданного набора - Я1, Я2, Я3. Столбцы - типовым элементам проектирования: t1, t2, t3, t4. Данные структурного анализа схемы приведены в таблице 1.
Таблица 1
Тип элемента схемы | t1 | t2 | t3 | t4 | t5 |
Количество использования элемента в схеме |
В соответствии с исходными данными, математическая модель задачи покрытия запишется:
L = c1x1 + c2x2 + c3x3 →min (33)
при условиях:
2x1+x3≥5; (34)
x1+x2≥4; (35)
x2≥2; (36)
x3≥1; (37)
xj≥0, xj –целое число
где: xj - количество ячеек j-го типа, выбранных для покрытия схемы.
Решение задачи покрытия по алгоритму Селютина.
1. По данным таблицы 1 запишем вектор М0 = (5,4,1,1) .
2. Упорядочим ячейки заданного набора {Яν} по возрастанию их стоимости: Я1;Я2;Я3 {С1≤С2≤С3).
3. Выбираем ячейку Я1, т.к. она имеет наименьшую стоимость.
Определяем «локально-минимальное» число А1(1) использования ячейки Я1. Ячейка Я1 может реализовать элементы схемы типа t1, t2(см. матрицу Rv).
Для реализации элементов схемы типа t1 требуется две ячейки Я1→A1,1=(5div2=2).
Для реализации элементов схемы типа t2 требуется четыре ячейки Я1→A1,2=(4div1=4).
Для нашего примера А1(1) =min { A1,1, A1,2); А1(1) =2. Следовательно, |Я1|=2 шт.
Переход к следующей итерации: i= i+1, i=0+1, i=1.
4. Вычисляем вектор «непокрытых элементов» Mi, где i – номер выполненной итерации (i=1).
M1 = М0 – А11 ×r 1,1 ; получаем M1= (1,2,1,1).
5. Так как вектор M1 ≠ 0, то выполняем вторую итерацию (i =2) для ячейки Я2. Все вычисления проводятся аналогично вычислениям на первой итерации, но с новыми значениями вектора M1.
6. А22=min (A2,2; A2,3)= min (2; 1); А22=1; |Я2|=1; M2= (1,1,0,1).
Так как М2>0, - выполняем 3-ю итерацию.
7. Третья итерация выполняется для ячейки Я3.
А33=min (A3,1; A3,4)= min (1; 1);|Я3|=1;
Вычисляем М3=(0,1,0,0).
Так как М3>0, - выполняем 4-ю итерацию.
8. Вектор М3 содержит только один ненулевой элемент - m2. Следовательно в схеме остался только один нереализованный элемент типа t2, который может быть реализован ячейками Я1 и Я2. Так как С1<С2 выбираем ячейку Я1.
9. Вычисляем вектор М4: М4=(0,0,0,0).
Так как М4 = 0, решение задачи заканчивается. Остается подсчитать суммарное количество ячеек каждого типа, вычисленное на каждой итерации. Для данного примера |Я1| = 3, |Я2|= 1, |Я3| = 1.
Выше говорилось о том, что ячейка - это неделимый базовый элемент конструкции, поэтому при покрытии допускается некоторая избыточность элементов ячеек в виду их недоиспользования, например, одна из трех ячеек Я1 имеет избыточность по элементам типа t1.
Функциональную схему можно представить графом G=(X, U), где X -множество вершин, интерпретирующих логические элементы схемы, а множество ребер U - связи.
Пусть функциональную схему электронной радиоаппаратуры необходимо покрыть заданным комплексом интегральных микросхем (БИС).
Тогда каждый компонент БИС можно представить в виде подграфа G'. В результате получим некоторое множество подграфов, соответствующих ИМС заданного комплекса. Задача покрытия формулируется теперь как покрытие графа G подграфами из множества {G1’, G2’, ...,G’p}. Один из возможных путей решения этой задачи следующий.
Каждой вершине графа G присвоить код Si,p, где i - номер вершины; р - тип элемента логической схемы.
Каждому ребру графа ставится в соответствие значение функции веса gi;k.
gi;k=1, если ребро ui, инцидентно однотипным вершинам;
gi;k=0, в противном случае.
Внутри ИМС, как правило, объединяются однотипные компоненты. Из нескольких вариантов покрытия схемы выбирают тот, для которого:
Рассмотрим задачу типизации.
Типизация - это разбиение коммутационной схемы на части с минимизацией номенклатуры частей разбиения. Однотипными называются ТЭК, имеющие одинаковый состав элементов и одинаковую коммутационную схему. В этом случае задача типизации формулируется, как задача выделения в графе изоморфных подграфов (A.M. Бершадский): найти разбиение φ(G) из Ф графа G на множество групп изоморфных подграфов, удовлетворяющих следующим условиям:
1) любые два подграфа Gi,Gk, принадлежащие одной группе разбиения, должны быть изоморфны;
2) множества вершин любых двух подграфов не должны пересекаться;
3) число вершин любого подграфа разбиения не должно превышать заданное (конструктивное ограничение, связанное с числом элементов на типовом элементе конструкции);
4) суммарное число внешних ребер каждого подграфа не должно превышать заданное (конструктивное ограничение, связанное с числом элементов разъема или длиной параметра корпуса ТЭК).
Критерием оптимальности при типизации является минимальное число групп изоморфных подграфов, полученных в результате разбиения.
Для решения задачи типизации путем сведения ее к задаче выделения в графе изоморфных подграфов необходимо:
1) описать исходную коммутационную схему с помощью графовой модели;
2) решить для графа задачу выделения в нем изоморфных подграфов;
3) от полученных результатов решения задачи на графе необходимо перейти к результатам решения задачи типизации в коммутационной схеме.
Дата добавления: 2016-02-24; просмотров: 1851;