Что надо понимать, работая с инструментом «Трассировка пучка треков»
Инструмент «Трассировка пучка треков» обеспечивает трассировку соединений на одном слое с соблюдением ограничений на зазоры и ширины треков. Исходными данными для работы трассировщика является набор линий соединений цепей (нетлайнов) и эскиз маршрута трассировки, которому приблизительно должен следовать пучок треков. Треки должны соединять на данном слое объекты, на которые указывают концы нетлайнов.

Так, на рис. 1 выделена верхняя группа линий соединений и нарисован эскиз планируемого маршрута прохождения пучка слоя на слое L1. Задача трассировщика – собрать треки в плотный пучок в области концов эскиза в согласованном порядке и провести пучок, приблизительно следуя эскизу.

Результат трассировки показан на следующей картинке (рис. 2). Для наглядности трассировка совмещена с исходным эскизом. Пучок треков приблизительно центрирован относительно линии эскиза. Кружочками отмечены области выходов-эскейпов. Задача трассировки пар эскейпов по обоим сторонам плотного пучка – наиболее сложная в алгоритмическом плане часть, поскольку схождение треков в пучок должно быть реализовано в согласованном порядке (точнее, нумерация концов эскейпов на границе одной области должна быть обратной к нумерации на границе другой области). При этом эскейпы должны быть достаточно короткими чтобы не создавать проблем для своих соседей. Общее направление эскейпов определяется вектором от центра масс источников к концу эскиза, и желательно, чтобы эскейпы были монотонны вдоль этого направления (на рис. 2 эскейпы в левой области монотонны в направлении на север, а справа – в направлении северо-запад). Требование монотонности определяет частичный порядок между нетлайнами как слева, так и справа. Поэтому пользователь может экспериментировать с геометрией эскиза подбирая оптимальный порядок.

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

А вот что будет, если трассировать все нетлайны, как один пучок (рис. 5).

Как при формировании эскейпов, так и при проведении пучка учитываются препятствия. На примерах ниже в одном случае пучок обошёл препятствие в виде области запрета трассировки (рис. 6), в другом расщепился (рис. 7).


Ещё одна важная алгоритмическая задача, которая решается при реализации трассировки пучка треков, – выделение максимального семейства нетлайнов, концы которых разделены некоторой прямой регулярного направления (кратного 45 градусам). Это позволяет превратить нетлайны из отрезков в векторы (старт каждого – по одну сторону от прямой, финиш – по другую сторону) и создать две непересекающиеся области для построения эскейпов.
Для одного из уже рассмотренных примеров такое семейство включает все выделенные нетлайны, что вполне естественно, поскольку исходно концы нетлайнов уже фактически разделены и сгруппированы (рис. 8).


Но для примера ниже (рис. 9), где выделены идущие в противоположные стороны от резистора R81 нетлайны, формирование пучка треков из одной области в другую – задача, по сути, бессмысленная. Если не указывать желательный маршрут прохождения пучка, то алгоритм сам выберет какой-нибудь один нетлайн, сформирует эскиз маршрута и оттрассирует его. Если пользователь сам нарисует эскиз, то геометрия нарисованного эскиза учтётся при выборе нетлайнов. Таким образом, работая с инструментом, надо понимать, что при формировании семейства нетлайнов алгоритм может быть вынужден убрать часть нетлайнов из рассмотрения.
Поэтому рекомендация пользователям – подходить к формированию набора нетлайнов и рисованию эскиза маршрута творчески, с учётом особенностей однослойной трассировки.
Существенный вклад в качество результата трассировки вносят встроенные в инструмент алгоритмы сглаживания (как отдельных треков, так и всего пучка). Пользователь может нарисовать эскиз как в виде линии, из прямых сегментов, так и в виде свободной линии (поддерживаются только линии без циклов). Алгоритмы сглаживания приводят всё к 45-градусной геометрии треков и минимизируют число изломов трасс. Но пользователю не стоит забывать, что пучок треков старается идти в некотором коридоре вокруг нарисованного маршрута, поэтому, особенно рисуя эскиз в виде свободной линии, лучше стараться рисовать линию плавно, именно там, где в результате хочется увидеть пучок треков.
Пользовательский интерфейс инструмента «Трассировка пучка треков»
Пользовательский интерфейс инструмента прост и лаконичен. Старт осуществляется из контекстного меню по правой кнопке мышки (рис. 10, наличие пункта «Трассировка пучка треков» не зависит от набора выделенных объектов).

При старте из текущего набора выделенных объектов убирается всё, кроме линий соединений. После старта пользователь находится в режиме выделения нетлайнов (только нетлайнов) и может скорректировать набор выделенных линий соединений.
Когда инструмент активен, по правой кнопке мышки доступно специальное контекстное меню (рис. 11).

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

Пункт меню «Запустить трассировку» доступен при наличии выделенных линий соединений как в режиме выделения нетлайнов, так и в режиме рисования эскиза (в режиме рисования трассировка осуществляется по текущему состоянию линии с выходом в режим выделения нетлайнов). Пункт «Отменить трассировку» активен после запуска трассировки и удаляет проложенные в последнем запуске треки. Это позволяет экспериментировать с выделением нетлайнов и геометрией эскиза. После завершения трассировки эскиз исчезает, но пользователь может его восстановить для анализа (пункт «Восстановить эскиз») и возможной корректировки. Изменить геометрию эскиза на текущий момент можно только нарисовав новый (старый при этом теряется). Созданный активный эскиз можно удалить (пункт «Удалить эскиз»), чтобы перейти в режим трассировки с автоматическим формированием маршрута (рис. 13).

Пункт «Перейти на слой» позволяет изменить текущий активный слой. В режиме рисования эскиза переход изменяет слой эскиза, который служит указанием, на каком слое будет реализовываться трассировка (если эскиз отсутствует, то трассировка реализуется на текущем активном слое).

Информация о сеансе трассировки выдаётся в журнал (рис. 14).
Продолжение следует
Текущая первая версия инструмента «Трассировка пучка треков» поддерживает однослойную трассировку регулярных треков и дифференциальных пар (на рис. 15 указана стрелочками).

К числу основных ограничений относится отсутствие поддержки трассировки при наличии регионов с изменёнными правилами на ширины треков и зазоры. В последующих версиях планируется реализовать такую поддержку. Также рассматривается возможность автоматической установки фанаутов в случае, если объекты на концах выделенной линии соединений расположены на разных слоях. Ещё одно направление развития – реализация трассировки последовательности пучков треков с переходом между слоями и автоматической установкой необходимого набора переходных отверстий. И это ещё не все возможности, связанные с использованием технологии трассировки пучков треков.
Напоследок хотелось бы ещё раз подчеркнуть, что использование инструмента «Трассировка пучка треков» – процесс творческий. Разработчик может экспериментировать с выбором набора линий соединений, эскизами маршрутов трассировки. В конце концов, можно трассировать одиночные треки и дифференциальные пары, указывая приблизительный маршрут их прохождения.
© СТА-ПРЕСС, 2025
Если вам понравился материал, кликните значок — вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал —не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!