Автоматизация устранения клинчей в топологии печатного монтажа

УДК 004.421.2

АВТОМАТИЗАЦИЯ УСТРАНЕНИЯ КЛИНЧЕЙ В ТОПОЛОГИИ ПЕЧАТНОГО МОНТАЖА

С.Ю. Лузин, С.И. Попов, Ю.И. Попов

Предложено решение часто встречающейся проблемы клинчей при автоматической разводке печатных плат. Приведены способы автоматического распознавания различных типов клинчей, алгоритмы их устранения. Ключевые слова: САПР, автоматическая трассировка, клинчи.

Введение

Применяемые в современных системах автоматизированного проектирования (САПР) методы оптимизации топологии печатного монтажа могут «застревать» в локальных минимумах. Это происходит в тех случаях, когда разводка еще не завершена, но в то же время никакой шаг локальной оптимизации (перекладка одиночного проводника) не может привести к ее улучшению. Пример подобной ситуации -клинч проводников (рис. 1). Клинч не только увеличивает длину проводников, но еще и создает помеху для дальнейшей разводки. Например, при наличии клинча (рис. 1, а) между контактами нельзя провести вертикальную трассу, в то время как при корректной разводке (рис. 1, б) это возможно.

Рис. 1. Пример локального минимума при оптимизации топологии печатного монтажа: клинч (а);

желаемая топология

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

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

Признаки клинчей

Дальнейшее изложение предполагает использование триангулированного пространства печатного монтажа [1, 2].

Для обнаружения клинчей можно использовать следующие признаки:

1. ребро триангуляции, соединяющее пару объектов (например, контактов), пересекает проводник, инцидентный одному из них (дуга а1 на рис. 3, а);

2. ребро триангуляции соединяет пару эквипотенциальных объектов, однако ребро пересекают проводники других цепей, а соединяющий их проводник не идет вдоль ребра (дуга а1 на рис. 4, а);

3. проводник пересекает ребро триангуляции более одного раза;

4. взаимное огибание: проводник цепи А огибает контакт цепи В, а проводник цепи В огибает контакт цепи А (рис. 5).

Пусть ребру е триангуляции между вершинами Ь1 и Ь2 соответствуют две противоположно направленные дуги (рис. 2): (дуга а1 от Ь1 к Ь2 и дуга а2 от Ь2 к Ь1).

Рис. 2. Соответствие ребру е двух дуг: дуга а1 от вершины Ь1 к вершине Ь2 и дуга а2 от Ь2 к Ь1

На рис. 3, а, представлен обычный клинч, распознаваемый по признаку 1: в нем проложить длинный проводник по более короткому пути мешает проводник ^2. Такой клинч существует, если проводник м>1, начинающийся с той же вершины Ь1, что и дуга а1, пересекает эту дугу, и при этом он не является первым пересекающим ее проводником. На рис. 3, а, до проводника дугу а1 пересекает про-

водник w2. Вершине триангуляции Ь1 не должны быть инцидентны другие проводники (почему - будет объяснено далее при описании алгоритма устранения клинча).

На рис. 4, а, представлен и-клинч, распознаваемый по признаку 2: провести проводник w1 вдоль дуги а1 мешает пересекающий эту дугу проводник w2. Вершинам триангуляции Ь1 и Ь2 не должны быть инцидентны другие проводники (почему - будет объяснено далее при описании алгоритма устранения клинча).

а 5

Рис. 3. Обычный клинч: топология до устранения клинча (а); топология после устранения клинча (б). и1 - длинный проводник; и2 - мешающий проводник; а1 - дуга, на которой обнаружен клинч; Ы - вершина триангуляции с которой начинается проводник и1

а б

Рис. 4. и-клинч: топология до устранения клинча (а); топология после устранения клинча (б). и1 - длинный проводник; и2 - мешающий проводник; а1 - дуга, на которой обнаружен клинч; Ь1, Ь2 - вершины, которым инцидентен проводник и1

Рис. 5. Неявный клинч: и1 - длинный проводник; и2 - мешающий проводник; Ы - вершина, огибаемая проводником и1, с которой начинается проводник и2; Ь2 - вершина, которой инцидентен проводник и1; аСг1, аСГ2 - дуги, исходящие из вершин Ь1 и Ь2 соответственно, которые пересекают и1 и и2; а1п1, в!п2, аОиМ, aOиt2 - дуги, через которые и1 и и2 входят в окрестности соответствующих вершин

и выходят из них

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

На рис. 5 приведен пример неявного клинча, распознаваемого по признаку 4: для его обнаружения измеряется угол огибания проводником w1 вершины триангуляции Ь1 (от дуги а1п1 до дуги аОиЛ). Если такое огибание есть, и огибаемой вершине инцидентен один проводник w2, который проходит мимо вершины, с которой начинается w1 (пересечение дуги аСг2, инцидентной вершине Ь2), то имеет место неявный клинч. По дуге аСг1 определяется, что w1 проходит мимо Ь1. Между вершинами Ь1 и Ь2 может быть произвольное расстояние, для идентификации клинча главное - ситуация на концах проводников.

Для устранения обычного клинча необходимо:

1. проложить мешающий проводник с другой стороны от инцидентной длинному проводнику вершины триангуляции;

2. присоединить длинный проводник к вершине напрямую (рис. 3, б).

Рассмотрим чуть более сложный случай (рис. 6). Пусть имеется уже не длинный проводник, а длинный путь, состоящий из соединенных точками ветвления проводников (^5, w3, w1 на рис. 6, а). Для устранения клинча следует:

1. удалить проводник, инцидентный вершине Ь1;

2. соединить вершину Ь1 с проводником w1. При этом добавится новое ветвление (и вершина триангуляции, Ь2 на рис. 6, б) и, возможно, новый проводник (в данном случае w7).

Рис. 6. Устранение обычного клинча: топология до устранения клинча (а); топология после устранения (б). а1 - дуга, на которой обнаружен клинч; Ы - вершина, от которой отходит дуга а1; и1, и3, и5 - проводники, составляющие длинный путь в клинче; и6 - мешающий проводник в клинче; и2, и4, и7 - проводники; Ь2 - вершина добавленного ветвления В случае и-клинча (рис. 4) необходимо:

1. переложить мешающий проводник с другой стороны от вершины Ь1;

2. длинный проводник w1 проложить вдоль дуги, на которой обнаружен клинч.

Если в клинче есть длинный путь, состоящий из нескольких проводников (рис. 7), то вдоль дуги следует переложить первый проводник в длинном пути (^1 на рис. 7).

В рассмотренных двух алгоритмах устранения клинчей легко предусмотреть наличие нескольких мешающих проводников. При устранении клинча все мешающие проводники следует переложить по очереди с другой стороны от вершины Ь1.

При обнаружении неявного клинча (рис. 8) следует:

1. проверить, не создастся ли большее огибание после устранения клинча. (Для этого используются дуги а1п2 и аОи/2, через которые проводник w2 входит в окрестность Ь2 и выходит из нее);

2. удалить проводники в гранях триангуляции, инцидентных вершинам Ь1 и Ь2 (рис. 8, б);

3. поменять принадлежность фрагментов проводников (фрагмент проводника w1 становится фрагментом проводника w2, и наоборот) между окрестностями вершин Ь1 и Ь2;

4. добавить кратчайшие фрагменты, доставляющие связность проводников (рис. 8, в).

Если вершине Ь2 инцидентно сразу два проводника и если можно найти вершину Ь3 (рис. 9), которой инцидентен только один проводник, клинч также может быть устранен. Для этого следует:

1. переложить мешающий проводник w2 с другой стороны от вершины Ь3 и проводника w3, соединяющего вершины Ь2 и Ь3;

2. устранить неявный клинч, описанный выше.

Устранение клинчей

а

б

а1

Рис. 7. Устранение и-клинча: топология до устранения клинча (а); топология после устранения (б). - дуга, на которой обнаружен клинч; Ь1 - ветвление, от которого отходит дуга а1; и1, и3 - проводники, составляющие длинный путь в клинче; и4 - мешающий проводник в клинче; и2 - проводник

Рис. 8. Устранение неявного клинча: неявный клинч (а); удалены фрагменты проводников с инцидентных вершинам Ь1 и Ь2 дуг (б); клинч устранен (в). и1 - длинный проводник; и2 - мешающий проводник; Ь1 -вершина, огибаемая проводником и1; Ь2 - вершина, которой инцидентен проводник и1; аСг1, аСг2 - дуги, пересекаемые и1 и и2; а1п1, а!п2, аОиМ, aOиt2 - дуги, через которые w1 и w2 входят в окрестности соответствующих вершин и выходят из них; аРЛп1, аРЛп2 - первые неинцидентные объектам Ь1 и Ь2

дуги, пересекаемые проводниками и1 и и2

Рис. 9. Первый шаг устранения неявного клинча, длинный путь в котором состоит из последовательности разделенных вершинами проводников: топология до первого шага (а); топология после первого шага (б). и1 - длинный проводник; и2 - мешающий проводник; и3 - второй проводник в длинном пути; Ь1 - вершина, огибаемая проводником и1; Ь2 - вершина, с которой начинается проводник и1; Ь3 - конечная вершина длинного пути; аСг2, аСгЗ - дуги, инцидентные вершинам Ь2 и Ь3 соответственно, которые пересекает

мешающий проводник и2

Во всех вышеприведенных случаях устранения клинчей следует учитывать ширину проводников: при необходимости менять ее на более подходящую и соответственно не устранять клинч при невозможности изменить ширину. Вышеописанные признаки распознавания и способы устранения клинчей используются в отечественной САПР ТороЯ [3].

Заключение

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

В текущей версии системы автоматизированного проектирования ТороЯ устранение клинчей осуществляется после завершения автотрассировки. В дальнейшем планируется обнаруживать и устранять клинчи также и в процессе оптимизации трассировки.

Работа поддержана грантом для студентов, аспирантов вузов и академических институтов, расположенных на территории Санкт-Петербурга 2011 года.

Литература

1. Лузин С.Ю., Лячек Ю.Т., Петросян Г.С., Полубасов О.Б. Модели и алгоритмы автоматизированного проектирования радиоэлектронной и электронно-вычислительной аппаратуры. - СПб: БХВ-Петер-бург, 2010. - 224 с.

2. Скворцов А.В. Триангуляция Делоне и ее применение. - Томск: Изд-во Томского ун-та, 2002. - 127 с.

3. Полубасов О.Б. Трассировка в САПР ТороЯ - взгляд изнутри // Электроника: НТБ. - 2010. - № 6. - С. 104-110.

Лузин Сергей Юрьевич - ООО «Эремекс», доктор технических наук, технический директор,

1щт@егетех.сот

Попов Сергей Игоревич - Санкт-Петербургский национальный исследовательский университет инфор-

мационных технологий, механики и оптики, студент, 8е^еу.ророуе@уаш1ех.ги Попов Юрий Игоревич - Санкт-Петербургский национальный исследовательский университет инфор-

мационных технологий, механики и оптики, студент,уигророу@гатЪ1ег.ги