II раздел. Практическая часть
Введение
При конструкторском проектировании электронных средств (ЭС) решаются задачи, связанные с поиском наилучшего варианта конструкции, удовлетворяющего требованиям технического задания и максимально учитывающего возможности технологической базы производства. Тесная взаимосвязанность задач и большая размерность каждой из них обычно не позволяет предложить метод поиска оптимального конструктивного решения в едином цикле в связи с трудностями создания общей математической модели, комплексно учитывающей особенности конструкторско-технологической базы производства. Поэтому разработка и реализация алгоритмов и методов решения отдельных задач этапа конструкторского проектирования: компоновки, размещения и трассировки, – до сих пор остаются актуальными проблемами, решение которых неотъемлемо связано с развитием систем автоматизации проектирования.
I раздел. Теоретическая часть
Задача компоновки
Задача компоновки рассматривается как задача распределения принципиальной электрической схемы по платам изделия и далее по корпусам микросхем. Задачи компоновки могут касаться компоновки микросхем, плат и блоков устройств. В этом случае говорят о компоновке КМФ i-го уровня модулями i-1-го уровня.
Задачи компоновки основываются на ряде показателей, по которым оценивается качество компоновки. Поэтому формально задачу компоновки можно сформулировать следующим образом: объединить модули низшего и i-1-го уровня в модули более высокого i-го уровня по заданным качествам при наличии ограничения.
Среди методов компоновки выделяют 2 разновидности:
1. Методы, которые осуществляют разбиение коммутационной схемы на части (блоки) с учетом таких ограничений как: число элементов в блоке, число внешних выводов блока и суммарная площадь, занимаемая элементами и соединениями.
Основными показателями качества такого разбиения являются:
· число образующихся блоков,
· число межблочных соединений,
· величина задержки при распространении сигнала,
· электрическая магнитная и тепловая совместимость элементов
Задачи такого вида возникают при разбиении коммутационной схемы на блоки, к которым не предъявлены требования схемной унификации. Эта задача распределения плат по панелям, интегральных микросхем по платам и коммутационных схем по кристаллам интегральных микросхем. Таким образом, к первой разновидности задач компоновки относят такие, в которых критерии качества и ограничения могут быть сведены к определенным конструктивным параметрам, характеризующих распределение отдельных элементов и соответствующих межсоединений. Эти задачи компоновки называют задачами компоновки конструктивных модулей или блоков.
2. Методы, в которых кроме конструктивных характеристик модулей важны и их функциональные характеристики. Эти методы применяют на этапе перехода от принципиальных электрических схем к функционально-логическим схемам, ориентированным на заданную систему элементов и эти методы сводятся к назначению элементов логической схемы в типовые модули из заданного набора. Данный тип задач основан на методах покрытия функционально-логических и принципиальных электрических схем элементами заданной серии и на методах компоновки типовых блоков. Основными критериями при покрытии схем являются:
· число модулей, необходимых для покрытия исходной схемы,
· число межмодульных соединений,
· число типов используемых модулей,
· число используемых элементов в модуле (минимизация числа неиспользуемых элементов в модуле)
Вторая разновидность применяется изделий, выпускаемых большими сериями и для типовых плат. Если речь идет о заказной БИС, то анализируется необходимое число элементов на кристалле. Если речь идет о полузаказной БИС (матричная БИС), то минимизируется избыточность кристалла. Как ограничение выступают конструктивно-функциональные характеристики типовых модулей:
– максимально допустимое число элементов i+1-го уровня в модулях i-го уровня;
– максимальное число выводов модуля i-го уровня;
– ограничение на совместную работу модуля i-го уровня.
Для методов второго типа тоже могут учитываться конструктивно-технологичесие характеристики наряду с функциональными характеристиками. Для указанных разновидностей задач компоновки выделяют алгоритмы компоновки конструктивных и типовых блоков.
1.2. Алгоритмы компоновки
Алгоритмы компоновки классифицируются по критерию, по ограничению на формирование частей или по структуре вычислительной процедуры. С этой точки зрения их делят на: последовательные, параллельно-последовательные и итерационные.
В последовательных алгоритмах вводится последовательный процесс компоновки частей, на каждом шаге которого в очередную часть добавляется один из элементов, выбираемый по определенному приоритету.
В параллельно-последовательных алгоритмах сначала выделяется некоторое исходное множество групп элементов, которое затем распределяется по частям с учетом заданных критериев и ограничений на компоновку. Обычно эти алгоритмы используют при решении задач компоновки со специальными требованиями (например, минимизация числа однотипных блоков) и обладают достаточно сложной структурой. Как правило, алгоритмы этих двух типов применяются для создания базового (или начального) варианта компоновки. Итерационные алгоритмы служат для улучшения некоторого начального варианта компоновки в соответствии с принятым критерием. При использовании итерационных алгоритмов сначала граф схемы разбивают на определенное число частей произвольным образом. Например, с помощью последовательных алгоритмов, затем по некоторым правилам производится перестановка вершин из одной части графа в другую с целью минимизации числа внешних ребер.
В алгоритмах разбиения, основанных на математических методах, в основном используется метод ветвей и границ и решается задача о назначении. Алгоритмы разбиения с применением метода ветвей и границ состоит из следующих этапов. Сначала определяется нижняя оценка разбиения графа на заданное число частей. Затем производится построение дерева решений и осуществляется поиск оптимального результата. Задачу разбиения графа схемы на части можно свести к задаче о назначении. При этом ищется вариант назначения кандидатов (вершин графа) во все части, дающий минимальные суммарные затраты. При этом каждая вершина графа может быть назначена только в одну часть, и в каждой части должны содержаться различные вершины.
Алгоритмы компоновки типовых блоков сводятся к так называемым задачам покрытия и типизации. Под покрытием понимается представление функциональной схемы устройства типовыми и конструктивными элементами и связями между ними с выполнением заданных конструктивных ограничений. При покрытии выделяют задачи с несвязанными элементами и функциональными ячейками. В первом случае решают задачи определения необходимого числа ячеек для покрытия схемы с минимальной суммарной стоимостью и минимизацией числа связей между ячейками. Во втором случае решают задачу покрытия схемы заданным классом функциональных ячеек с минимизацией числа ячеек и суммарного числа связей между ячейками.
Типизация – разбиение схемы на части по критерию оптимальности – минимум номенклатуры частей разбиения или по критерию максимума однотипности используемых ячеек.
1.3. Последовательный алгоритм разбиения графа на
кусков
с учетом запрещенных вершин
Замечание. Некоторые вершины графа жестко закрепляются за определенными кусками, причем в каждом куске должно находиться не более одной запрещенной вершины. Обозначим – множество запрещенных вершин.
Число вершин в каждом куске равно .
Алгоритм.
1. Вычисляем матрицу смежности .
2. Выделяем первую запрещенную вершину из
и помещаем ее в первый кусок
. Составляем список
вершин, смежных
.
3. Для вершин определяем относительные веса
,
где – локальная степень вершины
,
– число ребер, соединяющих вершину
с вершинами
, вошедшими
.
4. Выбираем вершину , для которой
Если таких вершин несколько, то выбираем вершину с большей локальной степенью .
5. Полученную вершину , помещаем в кусок
.
6. Подсчитываем число вершин в куске
. Если
, где
– заданное число вершин в каждом куске, то переход к п.8.
7. Если кусок
сформирован, то переход к п.9.
8. Добавляем в список вершины, смежные вершинам, вошедшим в кусок
. Переход к п.3.
9. Удаляем из матрицы строки и столбцы, соответствующие номерам вершин, вошедших в кусок
. Для формирования следующего куска
, начиная со следующей запрещенной вершины, процедура повторяется с п.2. Если сформирован последний кусок, переход к п.10.
10. Конец работы алгоритма.
II раздел. Практическая часть
Постановка задачи
Дано:
1. Схема соединения элементов
![]() |
2. Число элементов
3. Число кусков разбиения
4. Число элементов в каждом куске
5. Список запрещенных вершин
Требуется:
1. Провести компоновку 3 блоков данной схемы, используя Последовательный алгоритм разбиения графа схемы на
кусков
с учетом запрещенных вершин. Вычислить число внешних связей между блоками.
2. Написать программу, реализующую данный алгоритм.