Литература
1. Гатчин Ю.А., Жаринов И.О., Жаринов О.О. Архитектура программного обеспечения автоматизированного рабочего места разработчика бортового авиационного оборудования // Научно-технический вестник информационных технологий, механики и оптики. - 2012. - № 2 (78). - С. 140-141.
2. Гатчин И.Ю., Жаринов И.О., Жаринов О.О., Косенков П.А. Реализация жизненного цикла «проектирование-производство-эксплуатация» бортового оборудования на предприятиях авиационной промышленности // Научно-технический вестник информационных технологий, механики и оптики. -2012. - № 2 (78). - С. 141-143.
3. Андреев Л.В., Богословский С.В., Видин Б.В., Жаринов И.О., Жаринов О.О., Парамонов П.П., Сабо Ю.И. Формализация вектора наблюдений измерительного комплекса беспилотных летательных аппаратов // Изв. вузов. Приборостроение. - 2009. - Т. 52. - № 11. - С. 23-27.
4. Сабо Ю.И., Жаринов И.О. Критерий подобия проектных решений требованиям технического задания в авионике // Научно-технический вестник СПбГУ ИТМО. - 2010. - № 3 (67). - С. 57-63.
5. Видин Б.В., Жаринов И.О., Жаринов О.О. Декомпозиционные методы в задачах распределения вычислительных ресурсов многомашинных комплексов бортовой авионики // Информационно-управляющие системы. - 2010. - № 1. - С. 2-5.
6. Гатчин Ю.А., Видин Б.В., Жаринов И.О., Жаринов О.О. Метод автоматизированного проектирования аппаратных средств бортового оборудования // Изв. вузов. Приборостроение. - 2010. - Т. 53. - № 5. -С. 5-10.
7. Шек-Иовсепянц Р.А., Жаринов И.О. Генерация проектных решений бортового оборудования с использованием аппарата генетических алгоритмов // Научно-технический вестник СПбГУ ИТМО. -2010. - № 3 (67). - С. 67-70.
8. Суслов В.Д., Шек-Иовсепянц Р.А., Видин Б.В., Жаринов И.О., Немолочнов О.Ф. К вопросу об унификации бортовых алгоритмов комплексной обработки информации // Изв. вузов. Приборостроение. -2006. - Т. 49. - № 6. - С. 39-40.
9. Алакоз Г.М., Котов А.В., Курак М.В. и др. Вычислительные наноструктуры: в 2 ч. Ч. 1. Задачи, модели, структуры. - М.: Интернет-Университет Информационных Технологий. БИНОМ. Лаборатория знаний, 2010. - 487 с.
10. Craig E. Steidle. The Joint Strike Fighter Program // Johns Hopkins Apl Technical Digest. - 1997. - № 1. -V. 18. - Р. 6-20.
Парамонов Павел Павлович
Гатчин Юрий Арменакович
Жаринов Олег Олегович
Жаринов Игорь Олегович
Дейко Михаил Сергеевич
- ФГУП «СПб ОКБ «Электроавтоматика» имени П. А. Ефимова», доктор технических наук, профессор, директор, [email protected]
- Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, доктор технических наук, профессор, зав. кафедрой, [email protected]
- Санкт-Петербургский государственный университет аэрокосмического приборостроения, кандидат технических наук, доцент, [email protected]
- ФГУП «СПб ОКБ «Электроавтоматика» имени П. А. Ефимова», доктор технических наук, доцент, руководитель учебно-научного центра, [email protected]
- Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, студент, [email protected]
УДК 004.421.2
ВЫЧИСЛЕНИЕ МИНИМАЛЬНОГО ПО ДЛИНЕ ПУТИ ПРОВОДНИКА В ТОПОЛОГИЧЕСКОЙ ТРАССИРОВКЕ ПЕЧАТНОГО МОНТАЖА
Ю.И. Попов, С.И. Попов
В топологическом подходе к трассировке печатных плат возникает задача вычисления пути (формы) проводника по его топологическому пути. Предложен алгоритм, вычисляющий путь минимальной длины с соблюдением конструктивно-технологических ограничений. Алгоритм используется при расчете формы проводников в системе автоматизированного проектирования TopoR.
Ключевые слова: САПР, автоматическая трассировка, топологическая трассировка.
Введение
Существует два основных подхода к автоматической трассировке печатных плат: геометрический и топологический. Первый предлагает на протяжении процесса трассировки оперировать метрикой коммутационного пространства, т.е. такими понятиями, как координаты, длина, ширина, расстояние. Второй предлагает использовать только такие понятия, как лежать слева, справа, между; обход по или против часовой стрелки [1].
В 1970-х г.г. Р.П. Базилевич [2] предложил во втором подходе разделить процесс трассировки на два этапа: топологический и геометрический. На первом этапе проводники назначаются в широкие области, в которых они не фиксированы жестко, а лишь задано их относительное положение. На втором этапе - метризации - определяется конкретное положение сегментов проводника с соблюдением конструктивно-технологических ограничений.
В отличие от геометрического подхода, когда на конфигурацию проводника оказывают влияние только соседние элементы топологии, положение которых, как правило, фиксировано, при топологическом подходе на путь (форму) проводника может влиять элемент, находящийся от него на произвольном расстоянии. Проблема состоит в точном учете влияния элементов топологии при вычислении минимального по длине пути проводника.
На форму отдельно взятого сегмента проводника, как правило, влияет лишь небольшая часть элементов топологии. По этой причине для повышения эффективности представляет интерес заранее определить элементы, которые могут оказать влияния на форму сегмента, и не рассматривать остальные при ее вычислении. Предложенный алгоритм реализует эту идею и вычисляет минимальные по длине пути проводников с соблюдением конструктивно-технологических ограничений.
Минимальный по длине путь проводника
Для представления минимального по длине пути проводника рассмотрим следующий пример из [1]. Пусть в некотором зале расставлено множество круглых колонн разного диаметра. Путник, петляя между колоннами, прошел из точки А зала в точку В длинным маршрутом, ни разу не пересекая собственный путь. По дороге он разматывал клубок ниток. Существует бесконечное множество путей, топологически эквивалентных маршруту путника, т. е. проходящих между теми же парами колонн. Но среди этих путей существует кратчайший. Этот путь можно узнать, натянув нить. Нить примет форму единственной кривой, и длина этой кривой будет минимально возможной. Натянутая нить будет огибать колонны по дугам окружностей с соответствующими радиусами, а с одной окружности на другую будет переходить по прямой, касательной к обеим окружностям (рис. 1).
а б
Рис. 1. Натянутая нить огибает колонны по дугам окружностей: нить путника (а); натянутая нить путника (б)
Печатная плата, в общем случае, имеет несколько слоев. Каждый из них может быть рассмотрен независимо. Под проводником в работе понимается фрагмент трассы, ограниченный точками ветвления, переходными отверстиями, контактными площадками компонентов, областями металлизации. Проводник прокладывается с соблюдением конструктивно-технологических ограничений (ширины проводников, размеры объектов печатного монтажа, зазоры между ними). Например, если путь проводника w проходит мимо контактной площадки C, то следует учесть ее размеры, другие проводники (с их ширинами), проходящие между w и C, а также требуемые зазоры между ними.
История вопроса
Первый подход к решению задачи вычисления минимального по длине пути предложил в 1980 г. М. Томпа (M. Tompa) [3]. Однако алгоритм имеет ряд существенных ограничений: узлы компонентов упорядочены и находятся на параллельных сторонах канала, ширины проводников нулевые, минимальные зазоры между проводниками одинаковы.
В 1988 г. Ш. Гао (S. Gao) с соавторами опубликовал работу [4]. В ней предложен более сложный алгоритм, однако также с существенными ограничениями на входные данные: одинаковые зазоры между проводниками, нулевые ширины, наличие лишь точечных контактных площадок компонентов.
В 1999 г. Т. Хама (T. Hama) и Х. Этох (H. Etoh) предложили новый подход к решению задачи [5]. Они используют триангуляцию Делоне для разбиения монтажного пространства. Условие Делоне (окружность, описанная вокруг треугольной грани не содержит других вершин триангуляции) они используют как ограничение для расстояния, на котором учитывается влияние контактных площадок на форму проводника. На реальных платах зазор между контактной площадкой и проводником может быть произвольно большим, и соответственно расчет будет некорректным. Кроме того, в предложенном подходе рассматриваются только круглые контактные площадки.
В системе автоматизированного проектирования (САПР) FreeStyle Router в 1990-х г.г., а затем и в САПР TopoR (вплоть до версии 5.2) был реализован алгоритм, позволяющий вычислять пути проводников [1]. Однако алгоритм не учитывал влияние на путь проводника контактных площадок, расположенных на достаточном удалении от него. Недоучет любого фактора приводит к получению конфигураций с нарушениями конструктивно-технологических ограничений.
Представление объектов печатного монтажа набором круглых примитивов
При работе с объектами печатного монтажа удобно использовать разбиение монтажного пространства, например, в виде триангуляции Делоне или квазитриангуляции [1]. Объекты произвольной формы в разбиении представлены не одной вершиной, а набором вершин, соответствующих вершинам многоугольника, а в ряде случаев и дополнительными вершинами, например, расположенными вдоль линейно протяженных объектов. На рис. 2 приведено возможное расположение вершин на границе прямоугольного объекта печатного монтажа.
< о О I
Рис. 2. Расположение вершин разбиения на границе прямоугольного объекта
С этими вершинами можно связать круглые примитивы, радиус которых зависит от выбранной модели. Между проводником, проходящим мимо объекта, и примитивом должен быть соблюден зазор, заданный конструктивно-технологическими ограничениями. Чтобы проводник не «провис» между двумя соседними огибаемыми примитивами одного объекта под действием других примитивов (возможно, другого объекта), следует учитывать расстояние до ребра, соединяющего вершины этих примитивов.
Таким образом, «некруглость» объектов просто увеличивает число вершин разбиения, поэтому в дальнейшем изложении без потери общности принимаем, что имеются только круглые контактные площадки, к ним приравняем переходные отверстия, точки ветвления и другие круглые примитивы, разбивающие более сложные объекты. Разбиение монтажного пространства - триангуляция.
Алгоритм вычисления минимального по длине пути
После топологического этапа пути проводников могут быть представлены последовательностью ребер, которые они пересекают. Рассмотрим топологический путь проводника как последовательность отрезков, проходящих, например, через центры пересекаемых ребер.
В общем случае каждая контактная площадка на печатной плате может повлиять на длину пути. Рассмотрим расстояние ё между центром круглой контактной площадки С и средней линией сегмента проводника w. Оно должно быть не меньше расстояния, складывающегося из конструктивно-технологических ограничений:
- радиус контактной площадки С;
- ширины проводников, расположенных между м> и С;
- половина ширины проводника м>;
- зазоры между ними.
Для каждого отрезка топологического пути проводника определяются дуги окружностей, центры которых расположены в центрах контактных площадок, а радиусы равны расстояниям ё. Путь проводника не может пересекать дуги, так как они построены по конструктивно-технологическим ограничениям. Алгоритм вычисления минимального по длине пути состоит из двух этапов.
1. Построение вышеописанных окружностей.
2. Вычисление минимального по длине пути, огибающего эти окружности.
Рассмотрим сначала вычисление пути.
Алгоритм вычисления пути, огибающего окружности
Основная идея алгоритма состоит в следующем [1, 3-5]. Пусть дано множество окружностей, упорядоченных вдоль топологического пути. Если задано направление пути, то окружности можно разделить на левые (О, С) и правые (А, В) относительно пути (рис. 3). К окружностям в порядке очередности строятся касательные.
Сначала следует построить касательные к первым левой (О) и правой (А) окружностям, проходящие через начальную точку & В результате образуется воронка, в пределах которой должен располагаться путь. Если построить касательную из точки & к следующей правой окружности В, то окружность А можно исключить из рассмотрения, так как она находится правее. Касательная из точки & к окружности
С пересекает окружность Б, поэтому последняя становится частью воронки (рис. 3, а). Далее аналогично строятся касательные к следующим левым и правым окружностям.
Если правая касательная пересекает левую окружность (рис. 3, б), то левая касательная (ее отрезок) из точки к этой окружности становится геометрически частью вычисляемого пути (рис. 3, в). В этом случае необходимо далее строить общие касательные с окружностью Б (вместо проходящих через точку 5). Для левой касательной построение аналогично.
Если два отрезка касательных добавлены в путь, то дуга окружности между ними также становится частью пути.
Полученная последовательность отрезков касательных и дуг окружностей составляет путь минимальной длины.
а б в
Рис. 3. Вычисление пути: построение касательных (а); пересечение касательной и окружности (б);
отрезок касательной добавлен в путь (в)
Построение окружностей
Предлагается строить окружности в два этапа. На первом этапе для каждой контактной площадки следует построить множество окружностей. Процесс их построения можно представить как волну, распространяющуюся от центра контактной площадки, поглощая встречающиеся проводники и разделяясь при встрече других контактных площадок. Эти окружности не предназначены для непосредственного вычисления путей проводников, они помогут определить контактные площадки, которые влияют на форму сегментов. На втором этапе, используя эту информацию, следует построить окружности для каждого проводника в отдельности. Опишем этапы по порядку.
На первом этапе для каждой вершины V (соответствующей контактной площадке) рассматривается каждая грань, которой принадлежит вершина V, и выполняются следующие шаги.
1. Из центра контактной площадки А построить две касательные к окружностям контактных площадок В и С (рис. 4). (Если контактные площадки пересекаются, то перейти к следующей грани.) Рассматриваются касательные, пересекающие ребро Ь. Они вырезают в плоскости сектор, внутри которого дуга окружности может влиять на минимальный по длине путь проводника. Этот сектор позволяет пространственно ограничить направления, в которых контактная площадка влияет на проводники (сектор в процессе выполнения алгоритма может только уменьшиться).
С
В
Рис. 4. Из центра А к окружностям контактных площадок строятся две касательные
2. Вычислить радиусы окружностей с учетом путей проводников, пересекающих грань. На рис. 5 изображена контактная площадка А и три проводника: м>1, ^2 и ^3. Здесь известно только, в каком порядке расположены пути проводников относительно друг друга и контактных площадок. Вычислим последовательно радиусы окружностей для каждого из проводников, необходимые для соблюдения конструктивно-технологических ограничений. Первый радиус (для проводника ^1) - это сумма радиуса контактной площадки А, зазора до проводника М и половины ширины проводника w1. Второй радиус (для ^2) - это сумма первого радиуса, зазора между проводниками w1 и ^2, а также половины ширины проводника w2. Последний радиус может влиять на проводник w3 за ребром Ь.
5
Рис. 5. Вычисление радиусов с учетом контактной площадки А и проводников и1, и/2 и и3
3. Если последняя окружность с вычисленным радиусом пересекает ребро Ь, то запомнить информацию о ней в ассоциации с ребром (она будет использована на шаге 2 второго этапа). За ребром Ь начальной грани находятся грань и два ребра (рис. 6). Через них следует продолжить распространение вычисления радиусов. При этом необходимо построить касательные к окружности контактной площадки за ребром Ь, так как они могут уменьшить сектор. На рис. 6 за ребром Ь находятся ребра ё и е. Проводник ^2 не влияет на радиус окружности для ребра е (не будет учтен при проверке на пересечение). Для ребра ё ситуация сложнее. Если бы проводник ^2 пересекал ребро е, то можно было бы однозначно указать на необходимость его учета. В приведенном случае проводник учитывается условно. Если за ребром ё на расстоянии, учитывающем ширину проводника ^2 и соответствующие зазоры, нет других проводников, то процесс распространения в данном направлении будет остановлен. Продолжать вычисление радиусов (за ребра е и ё) следует, пока зазоры и ширины проводников могут его увеличить, до пересечения очередного ребра.
Рис. 6. Учет проводника и2 при вычислении радиусов окружностей
На втором этапе по очереди рассматриваются топологические пути проводников (последовательности отрезков). Пересекая грань, топологический путь через одно ребро входит, а через другое выходит из нее. Существуют не более двух граней, в которых путь пересекает только одно ребро, - грани, в вершинах которых путь начинается и заканчивается. Для каждого топологического пути выполняются следующие шаги.
1. Каждое пересекаемое топологическим путем ребро инцидентно двум вершинам. Между контактной площадкой вершины и проводником V находятся другие проводники. Для каждой из вершин необходимо построить окружности с радиусом, равным сумме радиуса контактной площадки, ширин проводников и зазоров между ними. Последним учтенным в радиусе будет рассматриваемый отрезок топологического пути.
2. Для каждого отрезка топологического пути по триангуляции определить окружности, построенные на первом этапе. Эти окружности могут повлиять на минимальный по длине путь, но их радиусы следует изменить таким образом, чтобы последним учтенным в радиусе стал рассматриваемый отрезок топологического пути.
Дуги построенных окружностей, ограниченные секторами, учитывают все необходимые конструктивно-технологические ограничения, поэтому можно применить алгоритм вычисления пути, огибающего окружности.
Заключение
В описанном подходе, в отличие от предложенных ранее, отсутствует ограничение на форму канала, учитываются ширины всех проводников и необходимые зазоры, нет ограничений на их величины. Объекты произвольной формы моделируются набором круглых примитивов с обработкой возможного «провисания» проводников. При этом учет перечисленных факторов не сопровождается снижением производительности.
Асимптотические оценки алгоритма: 0(В ■ V2 ■ 1оя(В ■ V)) - время; 0(В ■ V2) - память, где В - общее число изломов путей проводников, состоящих из отрезков между ребрами; V - число контактных площадок на плате - совпадают с оценками алгоритма из [4]. Но в [4] рассматривается влияние каждой контактной площадки на каждый проводник посредством простого перебора и упорядочивания. При
этом строятся заранее все возможные окружности для всех проводников. Предложенный алгоритм строит окружности итеративно, заранее определяется, что в продолжении итераций нет необходимости. Таким образом, предложенный метод не только свободен от существенных недостатков предыдущих версий, но и превосходит их в эффективности. Алгоритм реализован и используется в последней версии системы автоматизированного проектирования TopoR.
Литература
1. Лузин С.Ю., Лячек Ю.Т., Петросян Г.С., Полубасов О.Б. Модели и алгоритмы автоматизированного проектирования радиоэлектронной и электронно-вычислительной аппаратуры. - СПб: БХВ-Петербург, 2010. - 224 с.
2. Базилевич Р.П. Декомпозиционные и топологические методы автоматизированного конструирования электронных устройств. - Львов: Вища школа, 1981. - 168 с.
3. Tompa M. An Optimal Solution to a Wire-Routing Problem // Journal of Computer and System Sciences 23. - 1980. - P. 127-150.
4. Gao S., Jerrum M., Kaufmann M., Mehlhorn K., Rulling W., Storb C. On continuous homotopic one layer routing // in Proc. 4th Annu. ACM Symp. Computational Geometry. - 1988. - P. 392-402.
5. Hama T., Etoh H. Curvilinear Detailed Routing with Simultaneous Wire-Spreading and Wire-Fattening // IEEE Transactions on computer-aided design of integrated circuits and systems. - 1999. - V. 18. - № 11. -P. 1646-1653.
Попов Юрий Игоревич Попов Сергей Игоревич
- Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, аспирант, уиг[email protected]
- Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, аспирант, 8ег[email protected]