Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 7-1 Алгоритмы размещения и трассировки.doc
Скачиваний:
27
Добавлен:
22.09.2019
Размер:
3.24 Mб
Скачать

4.4. Распределение соединений по слоям

Межслойный переход; расслоение; охватывающий прямоугольник; граф несовмести­мости; совмещенная топология; бихроматический подграф; ортогональная трассировка

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

В зависимости от организации процесса трассировки расслоение осуществляется либо до, либо после, либо в процессе трассировки.

Основная идея алгоритмов расслоения, работающих до трасси­ровки, заключается в априорном выделении в КС по тем или иным признакам конфликтующих групп соединений, которые ввиду неизбежных пересечений невозможно назначить на один слой.

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

В [59] предлагается задавать меру «взаимодействия» соедине­ний при решении задачи расслоения путем построения для каждой цепи еi охватывающего прямоугольника Пi Считается при этом, что две цепи перекрываются, если . Далее строится граф перекрытий Gp = (E, U), где множество вершин Е соответствует цепям, а ребра u принадлежащее U—перекрытиям между ними.

Очевидно, что хроматическое число ур графа Gp = (E, U) служит верхней оценкой числа слоев, необходимых для реализации всех соединений КС. Величину ур называют степенью перекрытия системы подмножеств еi. Очевидно, все связывающие деревья для ei могут быть назначены на один слой, когда ур=1.

Рассмотрим пример построения охватывающих прямоугольни­ков для G-цепей (рис. 4.15). Для указанного примера легко построить граф перекрытий Gp (рис. 4.16). Согласно алгоритму (см. 1.3) можно раскрасить граф Gp в два цвета (I и II на рис. 4.16). Тогда получаем ур=2. Иными словами, схема может быть реализована в двух слоях и содержит два непересекающихся

подмножества следующего вида: 1, е3, е6} — первый слой; 2, е5, е4)—второй слой.

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

где aij — эвристические весовые коэффициенты; pij — учитываемые параметры цепей.

Здесь, как и в предыдущем случае, строится граф несовмести­мости Gp = (E, U), однако каждому uij принадлежащему U теперь присваивается вес Fij Задача расслоения сводится к построению такой раскраски графа в у цветов, чтобы сумма весов ребер, соединяющих вершины одного цвета, была минимальной. При этом раскраска возможна одним из известных алгоритмов, описанных в 1.2.

Отметим, что степень влияния еi на еj можно оценивать как число путей минимальной длины для проведения соединения ej через Пj. На рис. 4.17 показано, как запрещенная (заштрихован­ная) область препятствует оптимальной реализации цепи еj

Рассмотрим теперь, каким образом организуется процесс расслоения, если он производится после трассировки, когда имеется совмещенный топологический эскиз. Теоретические осно­вы указанного метода разработаны Кодресом, Вейсманом и Бадером [59]. Постановку задачи расслоения рассмотрим на примере. Пусть задано расположение множества проводников М = (а, a'), (b, b') {с, с'), (d, d'), (e, e') (f, f') на плоскости (рис. 4.18). Сопоставим с ней граф перекрытии (пересечений) Gp = (E, U) (рис. 4.19), где ei e E соответствует множеству проводни­ков, а ребра ueU—их пересечениям. Задача сводится к нахожде­нию двухцветной раскраски Gp, при которой суммарное число ребер, соединяющих одноцветные вершины, будет минимально. Это равносильно выделению в Gp максимального по числу ребер бихроматического подграфа. На основе известного свойства, состоящего в том, что граф является бихроматическим тогда, и только тогда, когда он не содержит циклов нечетной длины, используют процедуру раскраски, основанную на решении задачи линейного программирования. В нашем случае граф бихроматический и расслоение имеет вид: I — {(а, а'), (с, с'), (е, е')} и II — {(b, b') (d, d') (f, f')}.

Ввиду того, что в настоящее время отсутствуют критерии выделения максимальных n-хроматических подграфов в исходном, рассмотренные методы не применимы для n-слойных систем. Поэтому здесь используют эвристические процедуры раскраски в е цветов с последующим последовательным заполнением слоев оставшимися соединениями.

Рассмотрим алгоритм решения задачи для неограниченного числа слоев. Пусть для каждой цепи еi задано в общем случае несколько вариантов реализации связывающего дерева {dij/j=1,...,2} 2, ..., п) (в простейшем случае п=1). Особенность задачи состоит в том, чтобы для каждой пары выводов, для которых п> 1, выбрать одно соединение, приводящее к минимизации требуемого числа слоев.

Решение проводится в два этапа: на первом определяются максимальные внутренне устойчивые множества графа пересече­ний Gp, а на втором находится его минимальная или квазимини­мальная раскраска.

Рассмотрим пример (рис. 4.20). Применив алгоритм определения семейства независимых подмножеств (1.3), получим, что Gp (рис. 4.21) имеет следующие максимальные независимые подмножества (НП):

Имея семейство ф = {ф1, ф2, ф3, ф4}, можно переходить ко второму этапу, связанному с нахождением минимальной, квазиминимальной или локально

оптимальной раскраски вершин графа пересечений Gp . В зависимости от сложности КС ис­пользуют точные (ВСА = О (п!)), итерационные (ВСА = О(n2)) или последовательные (ВСА = О(n)) алгоритмы.

Решение этой задачи можно свести к отысканию покрытия множества вершин графа Gp наименьшим числом независимых подмножеств.

Выделим в Е подмножества, соответствующие возможным реализациям каждого из соединений: {a}, {b}, {с}, {d}, {e}, {f}, {g}. Полученную информацию будем учитывать при выборе одного из вариантов соединения в покрывающих подмножествах.

Очевидно, что исходный граф Gp покрывается двумя НП {ф1} {ф2}. С учетом возможности реализации соединения g или f для контактов 9—10 выбираем соединение g и, удаляя совпадающие соединения из покрывающих НП, получаем раз­биение на два слоя: I —{а, с, d}, II —{g, e, b}. Необходимо отметить, что если бы рассматривалось только одно соединение для контактов 9, 10, то для решения задачи потребовалось бы три слоя.

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

1. Выделить все непересекающиеся отрезки цепей и пометить их. (Очевидно, их можно назначить в любой из слоев без вынесения межслойных переходов.)

2°. Выделить в множестве непомеченных отрезков подмножест­во, любой из отрезков которого смежен не менее чем с одним отмеченным отрезком цепи.

3°. Поместить каждый из отрезков zeZ' в тот слой, в котором располагаются помеченные, смежные с ним отрезки. При наличии нескольких смежных отрезков выбрать тот, при размещении которого требуемое число межслойных переходов наименьшее.

4°. Пометить размещенный отрезок.

5°. Если z' = 0, переход к 6°, иначе — переход к 3°.

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

Здесь ВСА равна О(п2)!. Следует отметить, что выбор того или иного алгоритма расслоения является нетривиальной задачей, требующей тщательного анализа исходных требований. Для расслоения во время трассировки в основном используют методы динамического программирования или последовательные алгорит­мы с оценкой каждого шага и возвратом назад в случае улучшения предыдущего результата.