В дизайн электроники, разводка проводов, обычно называемая просто маршрутизацией, является этапом проектирования печатных плат (PCB) и интегральных схем (IC). Он основан на предыдущем шаге, называемом размещение, который определяет расположение каждого активного элемента ИС или компонента на печатной плате. После размещения на этапе трассировки добавляются провода, необходимые для правильного соединения размещенных компонентов с соблюдением всех правил проектирования для ИС. В совокупности этапы размещения и маршрутизации в конструкции ИС известны как место и маршрут.
. Задача всех маршрутизаторов одинакова. Им даются некоторые уже существующие многоугольники, состоящие из контактов (также называемых терминалами) на ячейках, и, возможно, некоторые уже существующие соединения, называемые предварительными маршрутами. Каждый из этих многоугольников связан с цепью, обычно по имени или номеру. Основная задача маршрутизатора - создать такую геометрию, чтобы все терминалы, назначенные одной и той же сети, были подключены, никакие терминалы, назначенные разным сетям, не были подключены, и все правила проектирования соблюдались. Маршрутизатор может выйти из строя из-за того, что не подключил клеммы, которые должны быть соединены (разрыв), из-за ошибочного подключения двух клемм, которые не должны быть соединены (короткое замыкание), или из-за нарушения правил проектирования. Кроме того, для правильного соединения сетей можно ожидать, что маршрутизаторы будут обеспечивать соответствие конструкции временным параметрам, отсутствие проблем перекрестных помех, соответствие любым требованиям плотности металла, отсутствие антенных эффектов и так далее. Этот длинный список часто противоречащих друг другу целей делает маршрутизацию чрезвычайно сложной.
Известно, что почти все проблемы, связанные с маршрутизацией, неразрешимы. Самая простая задача трассировки, называемая проблемой дерева Штейнера, для поиска кратчайшего маршрута для одной цепи в одном слое без препятствий и правил проектирования - NP-hard, если разрешены все углы. и NP-complete, если разрешены только горизонтальные и вертикальные провода. Также было показано, что варианты маршрутизации каналов являются NP-завершенными, как и маршрутизация, которая уменьшает перекрестные помехи, количество переходных отверстий и так далее. Поэтому маршрутизаторы редко пытаются найти оптимальный результат. Вместо этого почти вся маршрутизация основана на эвристике , которая пытается найти достаточно хорошее решение.
Правила проектирования иногда значительно различаются от слоя к слою. Например, допустимая ширина и интервалы на нижних слоях могут быть в четыре или более раз меньше, чем допустимая ширина и интервалы на верхних слоях. Это вносит множество дополнительных сложностей, с которыми не сталкиваются маршрутизаторы для других приложений, таких как конструкция печатной платы или многочипового модуля. Особые трудности возникают, если правила не являются простыми кратными друг другу, и когда переходные отверстия должны проходить между слоями с разными правилами.
Самые ранние типы маршрутизаторов EDA были «ручными маршрутизаторами» - рисовальщик щелкал мышью по конечной точке каждого линейного сегмента каждой цепи. Современное программное обеспечение для проектирования печатных плат обычно предоставляет «интерактивные маршрутизаторы» - разработчик выбирает площадку и щелкает в нескольких местах, чтобы дать инструменту EDA представление о том, куда идти, а инструмент EDA пытается разместить провода как можно ближе к этому пути, не нарушая проверка правил проектирования (DRC). Некоторые более продвинутые интерактивные маршрутизаторы имеют функции «толкать и толкать» (также известные как «толкать в сторону» или «автоматическое перемещение») в интерактивном маршрутизаторе; инструмент EDA отодвигает другие сети, если это возможно, чтобы разместить новый провод там, где его хочет составитель, и при этом избежать нарушения DRC. Современное программное обеспечение для проектирования печатных плат также обычно предоставляет «автомаршрутизаторы», которые маршрутизируют все оставшиеся неразведенные соединения без вмешательства человека.
Основными типами автотрассировщиков являются:
Многие маршрутизаторы выполняют следующие Алгоритм all:
Для подробной маршрутизации наиболее распространенным методом является разрыв и изменение маршрута или разорвать и повторить :
Этот процесс повторяется до тех пор, пока все цепи не будут разнесены или программа ( или пользователь) сдается.
Альтернативный подход состоит в том, чтобы рассматривать короткие замыкания, нарушения правил проектирования, препятствия и т. Д. На том же основании, что и избыточная длина провода, то есть как конечные затраты, которые необходимо сократить (сначала), а не как абсолютные избегали. Этот многопроходный метод маршрутизации с «итеративным улучшением» описывается следующим алгоритмом:
Большинство маршрутизаторов назначают уровни проводки для проведения преимущественно «x» или «y» направленной проводки, хотя были маршрутизаторы, которые избегают или уменьшают необходимость в таком назначении. У каждого подхода есть свои преимущества и недостатки. Ограниченные направления упрощают проектирование источника питания и контроль межуровневых перекрестных помех, но разрешение произвольных маршрутов может снизить потребность в переходных отверстиях и уменьшить количество необходимых слоев разводки.