Базовые функции и возможности автотрассировщика (перевод из соответствующей главы "Chapter 7. The Autorouter" документации manual_en.pdf [1]):
• Произвольная сетка разводки (минимум 0.02 мм). • Произвольная сетка размещения деталей. • Полная интеграция с основной программой редактора платы. • TopRouter с алгоритмом разводки без фиксированной сетки, который может быть применен перед Autorouter. • Опциональный автоматический выбор сетки разводки и предпочтительных направлений трассировки на сигнальных слоях. • Поддержка многоядерных процессоров, чтобы выполнять одновременно несколько задач разводки. • Детали SMD разводятся на обоих сторонах платы. • Вся область рисования может использоваться как область разводки (если доступно достаточно памяти). • Управляющими параметрами можно выбрать стратегию разводки. • Одновременная трассировка различных классов сигналов с различной шириной дорожки и разными допусками на минимальный зазор. • Общий набор данных (Design Rules) для проверки правил дизайна (Design Rule Check, диалог DRC) и для Autorouter. • Поддержка нескольких слоев - до 16 сигнальных слоев могут быть разведены одновременно, не только попарно. • Поддержка слепых (Blind Via) и внутренних переходных отверстий (Buried Via). • Предпочтительное направление дорожек может быть установлено независимо для каждого слоя: горизонтально (horizontal) и вертикально (vertical), а также 45/135 градусов (что важно для внутренних слоев). • Ripup, retry (очистка и повторный запуск) для 100% стратегии разводки. • Проходы оптимизации для уменьшения количества переходных отверстий (via) и улучшения прокладки дорожек. • Уже разведенные на плате треки оставляются без изменений. • Обслуживается базовые функции роутера Followme, это специальный рабочий режим команды ROUTE, который позволяет выполнять автоматическую трассировки для выбранных сигналов.
Что можно ожидать от автороутера. Автотрассировщик Eagle работает по принципу разводить до получения полного результата ("100% router"). Это означает на практике, что автороутер будет пытаться развести даже очень сложную для разводки плату, пока не получит готовый результат, что может занять бесконечно много времени. Однако, на практике не всегда доступно необходимое количество времени для разводки, поэтому некоторые платы не могут быть полностью разведены автороутером.
EAGLE Autorouter основан на алгоритме ripup/retry (очистить/повторить). Если дорожка не прокладывается, он удаляет ранее разведенную часть (операция очистки ripup) и пытается развести дорожку заново (retry). Количество удаляемых треков называется глубиной очистки (ripup depth), что определяющим образом влияет на скорость получения конечного результата. В принципе это касается вышеупомянутого ограничения по доступному времени для разводки.
Главный диалог Autorouter main позволяет выбрать вариант TopRouter. Он использует топологический алгоритм трассировки без координатной сетки. Этот алгоритм сначала вычисляет курс сигналов, и затем использует проходы оптимизации традиционного автотрассировщика EAGLE, чтобы удовлетворить правилам дизайна (Design Rules, настраиваются в диалоге DRC). Обычно TopRouter требует значительно меньшее количество переходных отверстий, чем традиционный EAGLE Autorouter. У пользователя есть опция выбрать оба метода для проекта, и иногда опция для выбора одного из разных результатов разводки.
Те, кто ожидает от Autorouter решение всех проблем с разводкой (получение идеальной платы без какой-либо ручной корректировки) будут разочарованы. Пользователь должен активно участвовать в процессе, внося в разводку новые идеи и поправки (сдвиг и перемещение компонентов, прокладка некоторых цепей вручную). Если все делать правильно, то Autorouter будет очень важным инструментом, значительно уменьшающим количество затрачиваемых усилий по разводке платы.
Работа с автотрассировщиком требует от пользователя размещения компонентов и установки управляющих параметров, которые влияют на стратегию разводки. Эти параметры должны быть тщательно установлены для получения самого лучшего результата (параметры будут описаны далее).
[Управление автороутером]
Autorouter управляется некоторым количеством параметров. Эти параметры задаются текущими настройками диалога DRC, классами цепей (net classes) и специальными параметрами автотрассировщика.
Правила дизайна (настраиваются в диалоге Design Rules Check, DRC) задают минимальные зазоры (minimum clearances, устанавливаемые DRC-командами для Clearance и Distance), диаметр переходного отверстия (настройка Restring) и диаметр дырки для переходного отверстия (настройка Sizes). Также задается минимальная ширина дорожки (minimum track width).
Классы цепей (net classes), если они определены, определяют специальные правила для минимальных зазоров, ширины треков и диаметров дырок переходных отверстий для определенных сигналов.
Есть также набор специальных ценовых факторов и параметров управления, которые можно поменять через меню Autorouter. Они влияют на то, как будут прокладываться маршруты дорожек при автоматической трассировке. Программа предоставляет значения по умолчанию. Управляющие параметры сохраняются в файле BRD, когда он сохраняется на диск. Также Вы можете сохранить эти настройки в отдельный файл Autorouter control file (*.ctl). Это позволит применить определенный набор параметров для различных разводок. В этот управляющий файл не попадают ни правила дизайна (Design Rules), ни данные о классах цепей.
Процесс трассировки вовлекает выполнение отдельных базовых шагов:
Bus Router. Обычно сначала запускается трассировщик шин. Он обрабатывает сигналы, которые могут быть проложены в предпочтительном направлении с незначительной разрешенной девиацией направлений координат x и y. Этот bus router берет только те сигналы, которые принадлежат net class 0. Этот шаг может быть опущен.
Шины, как их понимает Autorouter, это соединения, которые могут быть проложены как прямые линии в направлении x или y только с незначительными девиациями. Это не совсем то, что имеется в виду под шинами в электронике, например адресная шина или нечто подобное.
Routing Pass. Когда запускается реальный проход трассировки, используются параметры, чтобы сделать по мере возможности 100% разводку. Разрешается свободно использовать большое количество переходных отверстий, чтобы избежать блокировок прокладки.
TopRouter. Выбирается вариант разводки TopRouter, и трассы прокладываются другим вариантом алгоритма, имеющим тенденцию использовать меньшее количество переходных отверстий. Финальная разводка и последующая оптимизация используется для уменьшения длин проводников таким образом, чтобы разводка соответствовала правилам дизайна.
Optimization. После выполнения основных проходов разводки можно выполнить любое количество проходов оптимизации. Устанавливаются параметры для удаления излишних отверстий и улучшения прокладки проводников. В проходах оптимизации треки удаляются и заново разводятся по одному. Однако это может привести к повышенной степени разводки, так как обновленная прокладка может освободить место для прокладки других треков. Перед запуском Autorouter должно быть задано количество проходов оптимизации, нет возможности выполнить оптимизацию отдельно, как последнюю стадию трассировки. Как только работа по автоматической трассировке завершена, все треки считаются предварительно разведенными, и больше не могут быть автоматически изменены.
Любые их этих вышеупомянутых шагов могут быть по отдельности активированы или деактивированы.
[Что необходимо определить перед автотрассировкой]
Design Rules (правила дизайна). Design Rules нужно настроить в соответствии со сложностью платы и доступной (выбранной) технологией производства. Описание настройки правил и их назначение можно найти в секции "Specifying the Design Rules" документации manual_en.pdf [1].
Track Width (ширина дорожки), Net Classes (классы цепей). Если Вы еще не определили классы цепей в редакторе принципиальной схемы, то перед запуском автороутера можно их задать. Этим Вы укажете, какая у определенных сигналов должна быть толщина дорожки, минимально допустимый зазор, или какой диаметр сверла для переходных отверстий должен использоваться, какие у них должны быть диаметры сверла для переходного отверстия. Пожалуйста ознакомьтесь в Help с описанием команды CLASS, или см. секцию "Specifying Net Classes" в руководстве manual_en.pdf [1].
Если не было определено специальных классов, то ко всем цепям применяются правила Design Rules (диалог DRC). Значение Minimum width с закладки Sizes определяет ширину дорожки значение для минимального зазора/интервала (minimum clearances/distances) задаются на закладках Clearance и Distance. Диаметр переходного отверстия (via) определяется значениями на закладке Restring.
Вы установили значения в Design Rules и для классов цепей? В этом случае Autorouter следует тому значению, которое больше.
Grid. Design Rules определяют координатную сетку трассировки и размещения (routing and placement grid). Минимальное значение 0.02 мм, что примерно соответствует 0.8 mil.
Placement Grid. Хотя Autorouter позволяет использовать произвольную сетку размещения (placement grid), но не будет хорошей идеей размещать компоненты со слишком точным шагом. Два хороших правила:
• Placement grid не должна быть точнее, чем routing grid (сетка трассировки). • Если placement grid больше, чем routing grid, она должна быть установлена как число, нацело делящееся на routing grid.
Эти настройки имеют смысл, если например Вы решите, что можно проложить две дорожки между выводами компонента (Design Rules это допускают), однако неправильное соотношение между этими двумя сетками не дадут это сделать (см. рисунок ниже).
Routing Grid. Имейте в виду, что сетка трассировки автороутера (Routing Grid) настраивается командой AUTO и в главном диалоге настройки (Autorouter Main Setup). Это не то же самое, что текущая используемая координатная сетка в редакторе печатной платы (Layout Editor), которая выбрана командой GRID.
Примите во внимание, что с повышением точности (сетки трассировки) требуемое на разводку время увеличивается экспоненциально. Поэтому выбирайте сетку трассировки максимально большой. Частым вопросом при разводке большинства плат бывает "сколько дорожек можно провести между выводами микросхемы?". Чтобы ответить на этот вопрос, нужно конечно же учитывать также и настройки Design Rules (т. е. минимальный интервал между треками и контактными площадками и другими треками).
Отсюда следует, что две сетки (Placement Grid и Routing Grid) нужно выбрать таким образом, чтобы выводы компонентов совпали с Routing Grid.
Конечно, из этого правила есть исключения, такие как компоненты SMD, если их разместить вне узлов сетки трассировки, то получаются результаты лучше. В любом случае параметры сеток должны быть тщательно выверены в свете Design Rules и расстояний между контактными площадками.
Пример на рисунке выше может пояснить следующую ситуацию: для компонента слева контактные площадки помещены на сетке трассировки. Два трека могут быть проведены между двумя контактными площадками. Контактные площадки компонента посередине находятся не на сетке трассировки, поэтому между ними можно проложить только одну дорожку. Справа мы видим исключение их правила для контактных площадок SMD, которые размещены между линиями сетки трассировки, так что между ними можно проложить одну дорожку.
При выборе сетки обеспечьте, чтобы каждая контактная площадка накрывала как минимум одну точку сетки. Иначе может произойти, что Autorouter не сможет развести сигнал, даже если у него достаточно места для прокладки трассы. В этом случае Autorouter при старте выдаст сообщение "Unreachable SMD at x y". Параметры x и y покажут позицию проблемной контактной площадки SMD.
Значение по умолчанию для routing grid составляет 50 mil. Это значение подходит для простых разводок с компонентами, монтируемыми в сквозные отверстия. Работа с современными компонентами SMD требует более точной routing grid. Обычно применяют значения 25, 12.5, 10 или 5 mil.
Помните, что чем более точна routing grid, тем требуется значительно больше памяти для разводки.
С опцией автоматического выбора сетки (automatic grid selection) автороутер сам определяет подходящие настройки сетки для каждой задачи разводки.
Требования к памяти. Количество требуемой доступной памяти зависит в первую очередь от выбранной сетки трассировки (routing grid), размер платы и количество сигнальных слоев, в которых осуществляется разводка.
Статическое требование к памяти (в байтах) для печатной платы можно вычислить по формуле:
количество узлов решетки · количество сигнальных слоев · 2
В дополнение к выделенной статически памяти, память также нужна для динамических данных. Требования к объему динамических данных очень грубо можно оценить как величину около 10% (вплоть до 100%, в некоторых случаях даже больше) от объема статически выделенной памяти. Это сильно зависит от сложности платы. Общие требования к памяти (в грубом приближении):
статическая память · (1.1..2,0) [байт]
Столько памяти RAM должно быть свободно перед запуском Autorouter. Если памяти недостаточно, Autorouter должен сохранять данные на жесткий диск. Это драматически замедляет процесс трассировки, и такой ситуации следует избегать любой ценой. Короткие доступы к диску считаются нормальными, поскольку регулярно обновляется job-файл на жестком диске.
Если плата разводится очень медленно, попробуйте выбрать самый грубый из возможных вариант для routing grid. Это позволит экономить память и сократить время трассировки!
Слои. Если Вы хотите разработать двухстороннюю плату, то выберите в качестве слоев трассировки Top и Bottom. Для односторонней платы используйте только слой Bottom. В случае наличия внутренних слоев полезно использовать крайние слои, т. е. для четырехслойной платы это будут слои 2 и 15, и так далее.
Когда плата настолько сложная, что нет уверенности, что она может быть разведена в двух слоях, полезно добавить еще два внутренних сигнальных слоя, и задать для них очень высокую цену прокладки связей. Это заставит Autorouter избегать использования внутренних слоев, и как можно больше соединений прокладывать во внешних слоях. Однако он сможет по мере необходимости использовать для трассировки и внутренние слои.
Эти установки делаются в меню Tools -> Autorouter (подробнее см. далее).
Autorouter выдаст сообщение "Unreachable SMD in layer...", если слой содержит не активные компоненты SMD. Кликните OK, чтобы все равно запустить autorouter. Если хотите изменить настройку автотрассировки, то кликните Cancel.
Preferred Directions. Предпочтительные направления трассировки (Preferred Directions) можно задать для каждого слоя отдельно. Новый вариант этой установки Auto позволит выбрать автороутеру предпочтительное направление самостоятельно.
Если Вы хотите установить предпочтительные направления трассировки вручную, применяют следующие соображения: на двух внешних слоях (Top, Bottom) предпочтительные направления обычно устанавливают на 90 градусов друг относительно друга. Для внутренних слоев может быть полезно выбрать 45 и 135 градусов, чтобы задействовать диагональные соединения. Перед настройкой предпочтительных направлений определенно стоит проанализировать соединения на плате (по желтым линиям связей airwire), чтобы попытаться понять, какие направления на каком слое дадут преимущества при разводке. Это в частности имеет место для плат SMD.
Также учитывайте предпочтительные направления, когда делаете предварительную ручную прокладку проводников. Настройки по умолчанию - вертикальное направление для слоя Top (красная графика) и горизонтальное для слоя Bottom (синяя графика).
Опыт показывает, что маленькие платы, содержащие в основном компоненты SMD, лучше всего разводятся без предпочтительных направлений как таковых (установка * в настройке автотрассировщика). Тогда трассировщик намного быстрее достигает конечного результата разводки.
Односторонние платы должны разводиться без предпочтительных направлений.
Запрещенные для автороутера области. Если подразумевается, что Autorouter не должен проводить треки и размещать переходные отверстия в определенных областях платы, то Вы можете определить запрещенные области (restricted areas) с помощью команд RECT, CIRCLE и POLYGON в слоях 41 tRestrict, 42 bRestrict и 43 vRestrict.
tRestrict: запрещенные области для проводников и полигонов на слое Top. bRestrict: запрещенные области для проводников и полигонов на слое Bottom. vRestrict: запрещенные области для переходных отверстий (Via).
Такие запрещенные области можно определить в компоненте, в его посадочном месте Package. Например, запрещенные области могут быть заданы вокруг отверстий фиксации коннектора, или для монтируемого на поверхность транзистора, под которым не должно быть каких-либо дорожек.
Линии, нарисованные в слое 20 Dimension определяют границы области разводки для Autorouter. Треки не могут размещаться вне этой границы. Область, нарисованная на слое 20, также может использоваться как запрещенный регион для всех сигналов. Однако следует заметить, что перед генерацией gerber-файлов для отправки в производство эти области должны быть удалены, поскольку слой 20 обычно генерирует вывод для данных производства, где заданы размеры и механическая конфигурация платы.
Не залитые полигоны, которые используются, например, во внутренних слоях, чтобы сохранить области сигнальных полигонов свободными от меди, не распознаются автороутером. Может произойти такое, что Autorouter проложит дорожки в этих областях.
Ценовые факторы (Cost Factors) и другие управляющие параметры. Все параметры разводки настраиваются в диалоге Autorouter. Они могут модифицироваться по отдельности для каждого варианта разводки.
Значения по умолчанию для cost factors были выбраны опытным путем, так что скорее всего они дадут наилучшие результаты.
Управляющие параметры, такие как mnRipupLevel, mnRipupSteps и т. д. могут быть установлены, чтобы получить наилучшие результаты.
Рекомендуется работать со значениями по умолчанию. Если Вы, тем не менее, хотите экспериментировать с параметрами, то обратитесь к описанию cost factors в следующей секции. В случае наличия множества параметров даже малые изменения могут давать большие эффекты.
[Меню Autorouter]
Когда Autorouter запускается в редакторе печатной платы командой AUTO (или если был выбран пункт меню Tools -> Autorouter...), появляется диалог настройки. Здесь делаются все необходимые предварительные установки.
Autorouter Main Setup. Это то место, где Вы задаете слои, которые можно использовать для разводки и предпочтительные направления на слоях. Кликните соответствующий выпадающий список мышью, и выберите желаемое значение.
Установка предпочтительных направлений (preferred directions):
- по горизонтали | по вертикали / диагонально под углом 45° \ диагонально под углом 135° * нет предпочтительных направлений N/A слой не активен для разводки Auto автоматическая настройка
Настройка Effort (варианты Low, Medium или High) определяет, сколько вариантов разводки может быть создано.
Если включен автоматический выбор сетки трассировки (стоит галочка Auto grid selection), то автороутер самостоятельно выбирает подходящую сетку трассировки. Выключите эту опцию для выбора своей собственной координатной сетки трассировки. Существует возможность исследовать (автоматически) выбранные параметры сетки и изменить их позже в диалоговом окне вариантов маршрутизации.
Галочка Variant with TopRouter активирует вариант трассировки TopRouter, который вычисляет прокладку трасс по другому алгоритму. Обычно эта разводка работает дольше, однако обычно дает лучшие результаты с меньшим количеством переходных отверстий.
Параметр Maximum number of running threads задает количество одновременно работающих вычислительных потоков, что может быть ограничено. EAGLE Autorouter поддерживает обсчет нескольких задач автотрассировки одновременно на многоядерных процессорах. Показанное значение зависит от количества доступных процессорных ядер. Может оказаться полезным уменьшить количество потоков, чтобы EAGLE Autorouter не занимал все возможные ядра процессора.
Вы можете использовать кнопки Load ... и Save as ... для загрузки разных наборов параметров из файла управления автотрассировщиком (Autorouter control file, *.ctl), или для сохранения текущих настроек для будущих проектов.
Кнопка Select позволяет выбрать определенные сигналы для автотрассировки кликом левой кнопки мыши на желтой не разведенной линии соединения (airwire). После этого кликните на иконку светофора (кнопка GO), чтобы открыть вторую часть настройки Autorouter - диалог routing variants. Здесь Вы можете проверить конфигурацию заданий трассировки и поменять некоторые настройки перед реальным запуском процесса трассировки.
Альтернативно можно ввести имена сигналов в командной строке редактора. Например, для разводки сигналов VCC и GND:
Точка с запятой в конце строки немедленно запустит Autorouter. Альтернативно можно кликнуть на иконку светофора.
Следующая командная строка разведет все сигналы, кроме VCC и GND:
Вы можете также использовать специальные подстановочные символы (wildcards) для выбора сигналов:
* соответствует любому количеству любых символов. ? соответствует только одному символу. [...] соответствует любому из символов внутри квадратных скобок. Можно указывать и диапазон символов, например [a-f] соответствует любому символу от a до f.
Диалог Routing Variants. Кликните Continue..., и будет вычислено количество разных вариантов разводки, откроется диалог Routing Variants. Здесь можно модифицировать набор параметров для каждого из вариантов, а также добавить варианты в список или удалить их. Каждый набор параметров соответствует известному набору параметров автотрассировщика из предыдущих версий Eagle. Из этого диалога запускается вычисление отдельных вариантов заданий трассировки (routing job).
В зависимости от настроек EAGLE покажет некоторое количество опций разводки для платы. Кликните на кнопку Start, и Autorouter начнет обработку вариантов разводки.
Если Вы перед этим захотите проверить и подстроить отдельные параметры трассировки, кликните на кнопку >>.
В расширенном диалоге опций можно рассмотреть и изменить параметры разводки. Кнопки Duplicate или Delete позволяют сделать копию выбранного варианта или удалить его.
Параметры, сгруппированные в секциях Layer costs, Cost factors и Maximum, можно установить индивидуально для каждого прохода (Busses, Route, Optimize 1-4). Для дополнительной информации см. следующую секцию.
Вы можете вставить дополнительные проходы оптимизации кликом на кнопке Add на последнем запуске оптимизации.
Autorouter начнет обрабатывать все сигналы, которые еще не разведены, после клика на кнопку OK.
Кнопка Cancel прерывает работу команды AUTO без сохранения любых изменений.
Вы не можете сделать любые изменения параметров, если хотите перезапустить прерванное задание разводки (interrupted routing job). Используйте галочку "Continue existing job" чтобы либо продолжить существующее задание, либо выбрать новые настройки для оставшихся не разведенными сигналов.
Работа автотрассировщика может быть отменена командой UNDO.
[Как Cost Factors влияют на процесс трассировки]
Для каждого ценового фактора (cost factor, cfxxx) возможны значения между 0 и 99, однако весь диапазон для всех параметров не будет полезен. Поэтому с каждым параметров даны разумные значения.
Управляющие параметры (mnxxx) принимают значения в диапазоне 0 .. 9999. Под каждым параметром также представлены разумные значения.
Параметр может быть установлен в меню настройки автороутера (Autorouter Setup Menu). Настройки для проходов Route и Optimize могут быть сконфигурированы отдельно. Меню поделено на 3 секции: Layer Costs, Costs, Maximum.
Следующая секция показывает доступные параметры и эффекты от их применения. Имена параметров те же самые, какие используются в Autorouter control file *.ctl. Подробности по параметрам можно узнать далее в разделе "Параметры файла управления".
Примечание переводчика: для практического использования обычно не требуется изменять никакие из описанных здесь параметров. Автотрассировщик и так дает вполне вменяемые результаты, если оставить все по умолчанию.
Layer Costs (цена слоев)
cfBase.xx: 0..20
Базовая цена для одного шага на соответствующем слое. Рекомендуется для внешних слоев (Top, Bottom) всегда задавать 0, для внутренних больше 0.
Costs (ценовые параметры)
cfVia: 0..99
Управляет использованием переходных отверстий (via). Малое значение дает множество переходных отверстий, однако при этом упрощает следованию предпочтительного направления (preferred direction) на слое. Высокое значение предотвращает применение переходных отверстий и таким образом нарушает следованию предпочтительному направлению. Рекомендуется низкое значения для прохода разводки (routing pass), высокое значение для прохода оптимизации (optimization pass).
cfNonPref: 0..10
Управляет следованием предпочтительного направления (preferred direction). Низкое значение позволяет прокладывать треки не по предпочтительному направлению, высокое значение принуждает следовать предпочтительному направлению. Если cfNonPref установлено в 99, сегменты проводника могут быть проложены исключительно в предпочтительном направлении. Only select this value if you are certain that this behaviour is really wanted.
cfChangeDir: 0..25
Управляет тем, как часто можно менять направление прокладки. Низкое значение означает, что можно использовать множество изгибов дорожки. Высокое значение генерирует больше прямых треков.
cfOrthStep, cfDiagStep
Реализуют правило, по которому гипотенуза прямоугольного треугольника короче, чему сумма двух других его сторон. Значения по умолчанию 2 и 3. Это означает, что цена для разводки с использованием двух других сторон 2+2, против 3 для гипотенузы. Эти параметры следует менять с большой осторожностью!
cfExtdStep: 0..30
Управляет тем, как автотрассировщик будет избегать сегментов трека, проходящих под углом 45 градусов к предпочтительному направлению (preferred direction), и который разделил бы плату на две секции. Низкое значение означает, что такие секции разрешены, высокое значение пытается этого избежать. В комбинации с параметром mnExtdStep можно управлять длиной этих треков. Если mnExtdStep = 0, то каждый шаг сетки на 45 градусов к предпочтительному направлению приводит к цене, определенной в параметре cfExtdStep. Например, выбор mnExtdStep = 5 позволяет треку 5 шагов под 45 градусов без дополнительной стоимости. Каждый последующий шаг добавляет цену, определенную в cfExtdStep.
Таким методом 90 градусный изгиб может быть реализован 45 градусными углами. Установка наподобие cfExtdStep = 99 и mnExtdStep = 0 должна избегать формирования треков с углами 45 градусов.
Этот параметр действует только на слоях, на которых задано предпочтительное направление прокладки проводников (preferred direction). Рекомендуется использовать низкое значение для проходов разводки и высокое значение для проходов оптимизации.
cfBonusStep, cfMalusStep: 1..3
Усиливают разделение между предпочтительными (bonus) и плохими (malus) областями разводки. С высокими значениями роутер строго разделяет хорошие и плохие области. Когда используются низкие значения, влияние этого фактора снижается. См. также cfPadImpact, cfSmdImpact.
cfPadImpact, cfSmdImpact: 0..10
Контактные площадки (Pads) и SMD генерируют хорошие и плохие секции или области вокруг них, в которых Autorouter захочет (или не захочет) проложить треки. Хорошие области в предпочтительном направлении (если оно определено), плохие перпендикулярно ему. Это означает, что треки, которые проходят в предпочтительном направлении, будут разведены от контактной площадки / SMD. Высокие значения проведут трек так далеко в предпочтительном направлении, как это возможно, но если значение мало, то автороутер оставит предпочтительное направление довольно быстро.
Может иметь смысл выбрать несколько большее значение cfSmdImpact для плотно заполненных плат SMD.
cfBusImpact: 0..10
Управляет, насколько идеально линейно разводятся соединения шины (см. также cfPadImpact). Высокое значение гарантирует, что осуществляется следование прямой линии от начальной до конечной точки. Параметр имеет значение только для разводки шины.
cfHugging: 0..5
Управляет объятием параллельных дорожек. Высокое значение позволяет сильное объятие (треки могут очень близко лежать друг к другу), малое значение для более свободных распределений. Рекомендуется использовать высокое значение для разводки, низкое значение для оптимизации.
cfAvoid 0..10
Во время очистки (ripup) избегаются области, в которых удалены треки. Большое значение задает строгое избегание. Параметр не относится к проходам оптимизации.
cfPolygon 0..30
Если полигон обрабатывается с командой RATSNEST, и поэтому отображается как заполненная область перед запуском Autorouter, каждый шаг в полигоне ассоциируется с этим значением. Низкое значение упрощает автотрассировщику прокладывать трассы внутри полигона. В этом случае выше вероятность, что полигон будет разбит на несколько частей. Большие значения принуждают Autorouter делать меньше соединений внутри полигона.
Если полигон не заполненный (в режиме outline), и не обработан командой RATSNEST перед запуском Autorouter, он никак не будет учитываться. Параметр cfPolygon не играет никакой роли для таких полигонов.
Maximum (максимальные значения)
mnVia 0..30
Управляет максимальным количеством переходных отверстий, которые могут быть использованы при формирования трека соединения.
mnSegments 0..9999
Определяет максимальное количество кусочков проводника в одном соединяющем треке.
mnExtdSteps 0..9999
Задает количество шагов, разрешенных к прокладке под углом 45 градусов к предпочтительному направлению без вовлечения значения cfExtdStep. См. также cfExtdStep.
Дополнительно есть параметры mnRipupLevel, mnRipupSteps и mnRipupTotal, они будут описаны в следующей секции.
[Количество попыток очистка/повтор (Ripup/Retry)]
Из-за внутренней структуры автороутера есть некоторые параметры, которые влияют на механизм ripup/retry. Они устанавливаются с целью достижения хорошего компромисса между затраченным временем и получением результата. Таким образом, пользователь должен тщательно менять значения mnRipupLevel, mnRipupSteps и mnRipupTotal, когда это необходимо.
Как правило высокие значения параметра позволяют множество очисток (ripup), но при этом увеличивается затрачиваемое на вычисления время.
Чтобы понять смысл параметров, нужно знать, как работает трассировщик.
Сначала треки разводятся один за другим, пока никакой другой путь прокладки не может быть найден. Как только возникла ситуация, что дальше проводить разводку нельзя, трассировщик удаляет максимальное количество уже разведенных треков (это количество определяется параметром mnRipupLevel), чтобы развести новый трек. Если на пути существует, например, 8 треков, то новый трек может быть разведен, если mnRipupLevel как минимум равен 8.
После разводки нового трека роутер пытается переразвести все треки, которые были удалены. Может получиться так, что должна начаться новая последовательность очистки (ripup), чтобы заново развести один из этих треков. Роутер находится тогда в двух последовательностях очистки от позиции, в которой трек не может быть разведен, что запустит весь процесс. Каждый из удаленных треков, который не может быть переразведен, запускает новую последовательность очистки. Максимальное количество таких последовательностей определяется параметром mnRipupSteps.
Параметр mnRipupTotal определяет, сколько треков может быть удалено одновременно. В определенных случаях это значение может быть превышено.
Если одно из этих значений превышено, роутер прерывание процесс очистки, и заново устанавливает состояние, которое было достоверно в тот момент, когда первый трек не мог быть разведен. Этот трек считается неразводимым, и роутер продолжает разводку следующего трека.
[Разводка многослойных плат с полигонами]
Можно создать слои для шин питания (supply layers) с полигонами, которые содержат более одного напряжения питания, а также отдельные проводники. Ознакомьтесь с инструкциями в разделе "Ground Planes and Supply Layers with Several Signals" в документации manual_en.pdf [1].
• Определите полигоны перед запуском Autorouter. • Дайте подходящие имена сигналов полигонам. • Используйте команду RATSNEST, чтобы EAGLE просчитал полигон. • Выберите предпочтительные направления трассировки (preferred directions) и базовые цены (cfBase) для слоя в диалоге настройки Autorouter. Большие значения cfBase для слоя полигона заставят Autorouter больше избегать использовать эти слои для прокладки соединений. • После трассировки проверьте, что полигоны все еще соединяют все точки своего сигнала. Может произойти ситуация, что полигон оказался разделенным, так как по нему проложен другой сигнал. Команда RATSNEST пересчитает полигоны, и выдаст сообщение "Ratsnest: Nothing to do!", если все в порядке.
Autorouter не может устанавливать переходные отверстия типа Micro via!
Autorouter может устанавливать слепые переходные отверстия (Blind via), которые короче, чем максимальная глубина, заданная в Layer Setup.
[Сохранение и прерывание трассировки]
Поскольку разводка сложных плат может занимать несколько часов, с определенными интервалами (примерно 10 минут) делается сохранение (backup). В зависимости от количества заданий трассировки (routing jobs) будет соответствующее количество job-файлов. Файл name_xx.job всегда содержит последнее состояние заданий, где xx обозначает номер варианта, всегда начинающийся с 00.
Если задание было прервано по любой причине (пропадание питания и т. д.), то потраченное время не будет потеряно, поскольку Вы можете вспомнить состояние, сохраненное в файле name.job. Загрузите файл платы в Layout Editor и введите команду:
Ответ на запрос, должен ли Autorouter вспомнить состояние (Continue existing job?) должен быть Yes. Тогда Autorouter продолжит работу с позиции, в которой задание было сохранено последний раз (максимум потерь может быть 10 минут).
Если автотрассировка была прервана кнопкой Stop, файлы name_xx.job останутся целыми, и могут быть использованы для восстановления состояния. Это может быть полезно, если Вы начали сложное задание, компьютер начал тормозить, и появилась потребность продолжить задание на более быстром компьютере.
Имейте в виду, что изменение параметров перед восстановлением остановленного задания не повлияют на это задание, поскольку состояние задания было сохранено со теми параметрами, которые действовали на момент запуска задания автотрассировщиком.
Когда Autorouter завершил свою работу, разведенная плата сохраняется под именем name.b$$. Вы можете переименовать этот файл в name.brd и использовать его, например если произошло пропадание питания после запуска автотрассировщика, и Вы не сохранили файл платы. Этот файл удаляется автоматически после того, как файл платы был сохранен.
[Информация для пользователя]
Строка статуса. Во время разводки у Вас есть возможность выбрать различные вариант из списка, чтобы посмотреть на состояние процесса разводки. Autorouter отображает информацию актуального результата разводки выбранного варианта в строке статуса.
Отображаемые значение означают следующее.
Route: Result in % (hitherto maximum, best data), результат в процентах.
Vias: Number of vias in the layout, количество переходных отверстий.
Conn: Number of Connections total/found/not routable, количество соединений всего/найдено/неразводимые, здесь имеются в виду 2-точечные соединения.
Ripup: Number of Ripups/current RipupLevel/cur. RipupTotal
Number of ripups: показывает количество соединений, которые уже были разведены, когда следующая процедура разводки потребовала их удаления, чтобы можно было попытаться развести новые сигналы.
Current RipupLevel: показывает количество соединений, которые были удалены или преобразованы в airwire, чтобы проложить трек текущего сигнала.
Current RipupTotal: после того, как дорожки сигнала были разорваны, трек может быть разбит на большое количество соединений точка-точка. Эти соединения затем разводятся заново. Эта переменная показывает количество таких соединений точка-точка, которые должны быть разведены.
Signals: сигналы found/handled/prepared (найдены/обработаны/подготовлены), если за этим следует: (время_разводки имясигнала)
В случае, когда автороутеру требуется более 5 секунд для разводки соединения, EAGLE показывает в круглых скобках время разводки текущего обрабатываемого сигнала.
Лог-файл. Для каждого прохода разводки Autorouter генерирует файл name.pro, содержащий полезную информацию. Пример:
EAGLE AutoRouter Statistics:
Job : d:/eagle4/test-design/democpu.brd
Start at : 15.43.18 (24.07.2000)
End at : 16.17.08 (24.07.2000)
Elapsed time : 00.33.48
Signals : 84 RoutingGrid: 10 mil Layers: 4
Connections : 238 predefined: 0 ( 0 Vias )
Router memory : 1121760
Passname: Busses Route Optimize1 Optimize2 Optimize3 Optimize4
Time per pass: 00.00.21 00.08.44 00.06.32 00.06.15 00.06.01 00.05.55
Number of Ripups: 0 32 0 0 0 0
max. Level: 0 1 0 0 0 0
max. Total: 0 31 0 0 0 0
Routed: 16 238 238 238 238 238
Vias: 0 338 178 140 134 128
Resolution: 6.7 % 100.0 % 100.0 % 100.0 % 100.0 % 100.0 %
Final: 100.0 % finished
[Оценка результата (Evaluate)]
Если все варианты разводки (routing variants) завершены (completed), Вы можете выбрать один из них и завершить трассировку. Выбранный вариант сохраняется в файл платы.
Если Вы хотите оценить отдельные результаты более подробно, выберите один из вариантов в списке и затем кликните Evaluate.
Теперь Вы окажетесь непосредственно в Layout Editor, и можете оценить результат варианта и даже его отредактировать.
В строке состояния Layout Editor, где отображается иконка Autorouter, показывается, что процесс разводки текущей платы еще не завершен. Если кликнуть на эту иконку, то доступны следующие опции:
• Кликните на Evaluate, и Вы вернетесь в диалог Autorouter Variants для оценки результатов трассировки. • Кликните End Job, и текущий вариант будет сохранен, включая все изменения, которые были сделаны при оценке этой платы. Все другие варианты разводки и их результаты будут отброшены.
[Параметры файла управления]
Здесь мы увидим, как используются отдельные параметры в Autorouter control file (name.ctl).
Параметр По умолчанию Что означает
RoutingGrid = 50mil Сетка, используемая автороутером для треков
и переходных отверстий
Ценовые факторы для ...
cfVia = 8 переходных отверстий
cfNonPref = 5 не использования предпочтительных направлений
cfChangeDir = 2 изменения направления
cfOrthStep = 2 шага 0 или 90 градусов
cfDiagStep = 3 шага 45 или 135 градусов
cfExtdStep = 30 изменения на 45 градусов предпочтительного направления
cfBonusStep = 1 шага в удобной для прокладки области (bonus area)
cfMalusStep = 1 шага в проблемной области (handicap area)
cfPadImpact = 4 влияние контактной площадки штыревого вывода (Pad)
на окружающую область
cfSmdImpact = 4 влияние контактной площадки на окружающую область
cfBusImpact = 4 оставления идеального направления шины
cfHugging = 3 "обнимания" проводников
cfAvoid = 4 ранее использованных областей во время очистки
cfPolygon = 10 избегания прокладки по полигонам
cfBase.1 = 0 базовая стоимость шага трассировки на указанном слое
cfBase.2 = 1
...
cfBase.15 = 1
cfBase.16 = 0
Максимальное количество ...
mnVias = 20 переходных отверстий на соединение
mnSegments = 9999 сегментов проводника на соединение
mnExtdSteps = 9999 шагов 45 градусов к предпочтительному направлению
mnRipupLevel = 100 очисток на соединение
mnRipupSteps = 300 последовательностей очисток на соединение
mnRipupTotal = 200 одновременных очисток
Параметры трека для ...
tpViaShape = Round формы переходного отверстия (round или octagon)
PrefDir.1 = | предпочтительное направление на указанном слое
PrefDir.2 = 0 Символы: 0 - / | \ *
0 : слой не используется для разводки
PrefDir.15 = 0 * : нет предпочтительного направления
PrefDir.16 = - - : предпочтительное направление X
| : предпочтительное направление Y
/ : предпочтительное направление 45 градусов
\ : предпочтительное направление 135 градусов
[Практические рекомендации]
В этой секции представлены некоторые советы, которые полезны при использовании Autorouter. Рассматривайте эти примеры как пути действий, с которыми плата может быть разведена. Ни одно из представленных предложений не гарантирует успеха.
Общее. Цену слоя (cfLayer) следует увеличить от внешних слоев к внутренним, или сделать одинаковой цену для всех слоев. Менее благоприятно использовать низкую цену трассировки во внутренних слоях, чем во внешних. Это может привести к ненормальному потреблению памяти для разводки.
Автороутер не может разводить дорожки дугами, и не может устанавливать переходные отверстия micro via.
Односторонние платы. Имеется две процедуры, в зависимости от вида разводки. В самом простом случае активен только нижний слой 16 Bottom. Не определены предпочтительные направления. Выберите подходящую сетку трассировки и запустите Autorouter.
Если разводка более сложная, то есть возможность достичь подходящего результата со специальной настройкой параметров. Пожалуйста посмотрите проект singlesided, который можно найти в каталоге eagle/projects/examples. Этот проект примера поставляется с различными файлами управления (*.ctl), которые оптимизированы для односторонней разводки.
Autorouter может также использовать и слой Top. Треки, прокладываемые в нем, будут реализованы как мостки перемычек на плате. В слое 41 tRestrict можно задать запрещенные области вокруг компонентов и регионы, где мостки не разрешены.
Платы SMD со слоями питания. Описанная ниже процедура может быть эффективной. Сначала разведите сигналы питания. Обычно это короткие проводники, которые соединяют выводы питания SMD с внутренним слоем через переходное отверстие.
Перед изменением параметров сохраните текущие (по умолчанию) значения в Autorouter control file (файл CTL).
Кликните на кнопку Save as.. на закладке General окна настройки автороутера, и введите любое имя, например standard.ctl.
Теперь выключите bus router и все проходы оптимизации в Autorouter setup. Оставьте активными только проходы разводки. Измените следующие ценовые факторы:
cfVia = 0 нет ограничений на установку переходных отверстий mnVia = 1 максимум одно переходное отверстие на соединение cfBase.1/16 = 30..99 меньше треков на слоях Top/Bottom mnSegments = 2..8 короткие треки
Запустите Autorouter используя кнопку Select, и выберите сигналы для разводки. После того, как проход разводки завершится, оптимизируйте результат вручную.
Остальные соединения разводятся после этой процедуры. Используйте команду AUTO, чтобы открыть меню настройки автороутера, и загрузите ранее сохраненные параметры управления (standard.ctl) кнопкой Load. Подстройте значения к любым специальным требованиям, и запустите Autorouter.
Что можно сделать, если не все сигналы разведены? Если подобное произошло, проверьте настройки.
• Достаточно ли точной выбрана сетка трассировки (routing grid)? • Правильно ли выбрана ширина треков? • Можно ли сделать переходные отверстия меньшего диаметра? • Оптимально ли выбран минимальный зазор?
Если невозможно оптимизировать эти значения, попробуйте увеличить уровень очистки, см. выше указания из раздела "Количество попыток очистка/повтор (Ripup/Retry)".
[Роутер Follow-me]
Чтобы упростить разводку соединений airwire, команда ROUTE предоставляет два режима followme, которые могут автоматически разводить выбранные сигналы. Позиция курсора мыши на чертеже платы определяет трассировку соединения. Для того, чтобы эта функция работала, Ваша лицензия должна предоставлять модуль Autorouter.
Partial Mode и Full Mode. Чтобы запустить роутер Followme, активируйте команду ROUTE, и выберите режим прокладки (wire bend mode) 8 или 9 в тулбаре параметров.
После клика на неразведенном соединении (airwire) EAGLE вычислит подходящую трассу и отобразит соединение. Перемещение курсора мыши будет изменять текущую трассу проводника. Трасса обрабатывается в зависимости от сложности разводки, и это может занимать несколько мгновений. Рекомендуется не перемещать курсор мыши, пока не отобразится соединение.
Если Вы выбрали wire bend mode 8 , так называемый partial mode (from one side), то Eagle вычислит трассу выбранного сигнала начиная с позиции курсора до ближайшего окончания airwire, и отобразит её. Фиксируйте прокладку сегментов трассы кликами мыши. Остальная часть трассы будет вычисляться динамически. Это означает, что airwire может указывать на другой объект, который принадлежит сигналу, в зависимости от текущего положения курсора мыши.
Если выбран Wire bend mode 9 , так называемый full mode, роутер Followme вычисляет трассу одновременно в обоих направлениях. Будет установлено полное соединение. Как только Вы кликнули на airwire, EAGLE начнет вычислять соединение от ближайшего конца airwire до текущей позиции курсора мыши. Не обязательно, чтобы дальний конец airwire всегда указывал на оригинальную позицию. В зависимости от положения курсора мыши эта конечная точка может направить Вас к другому (ближайшему) месту.
Если невозможно построить соединение от текущей позиции курсора мыши, то курсор переключится в маленький символ запрета. Перемещайте курсор, чтобы попытаться найти возможный путь для прокладки соединения. Может быть, достаточно поменять слой в текущей позиции. Может также помочь подстройка Design Rules. Имейте в виду, что запрещенные области в слоях tRestrict и bRestrict, или линии в слое Dimension могут препятствовать прокладке соединения.
Конфигурация. Роутер Followme руководствуется установками Design Rules. Будут учитываться значения параметров Clearance, Distance и Size, как и отдельные параметры классов цепей (net classes), если они определены. Убедитесь, что правильно настроена строка стека слоев Layer setup на закладке Layers.
Текущая настройка координатной сетки в Layout editor работает как сетка трассировки. Используйте команду GRID, чтобы поменять сетку (также помните о возможности изменения координатной сетки нажатием клавиши Alt). Если сигнал уже назначен курсору мыши, то сбросьте его и выберите заново, иначе изменение решетки не повлияют на соединение.
Настройки слоя, которые можно проверить и изменить в тулбаре параметров команды ROUTE, отобразит слой, который используется в позиции курсора мыши.
Роутер Followme немедленно реагирует на изменения, относящиеся к ширине проводника или диаметру сверла переходного отверстия. Если установлена опция Auto set route width and drill в меню Options -> Set -> Misc, то роутер Followme адаптирует указанные значения для ширины проводника и диаметра сверла переходного отверстия из Design Rules из net classes, как только было выбрано соединение airwire.
Параметры разводки. Параметры, которые влияют на стратегию трассировки, устанавливаются кликом на иконку AUTO , которая доступна на тулбаре параметров после входа в режимы Followme. Кликните на эту иконку, чтобы открыть уже знакомое нам окно Autorouter Setup. Альтернативно то же самое окно можно через командную строку, для этого введите:
На закладке General Вы выбираете предпочтительные направления в сигнальных слоях(| вертикально, - горизонтально, / диагональ 45°, \ диагональ 135°, или * для отсутствия предпочтительного направления). Во многих случаях для роутера Followme имеет смысл выбрать предпочтительные направления в сигнальных слоях.
Настройки, которые влияют на способ, как треки будут разведены по плате, определяются на закладке Followme (влияние этих факторов описаны выше в разделе "Как Cost Factors влияют на процесс трассировки").
В секции Maximum можно определить количество переходных отверстий, которое роутер может использовать на одно соединение. Если это значение установлено в 0, то роутер Followme не может автоматически ставить переходные отверстия. Однако Вы можете ставить переходные отверстия вручную, если поменяете слой.
Значение для Segments определяет максимальное количество сегментов проводника, из которых может состоять соединение. Если будет выбрано слишком малое значение, то возможна ситуация, когда нельзя будет проложить соединение.
Дополнительные замечания. Роутер Followme поддерживает переходные отверстия только формы круга (round via) и восьмиугольника (octagon via). Нельзя использовать квадратные переходные отверстия.
Если Вы работаете в Full mode, то роутер Followme независимо работает в двух направлениях, начиная с позиции курсора мыши. Так что может произойти ситуация, когда роутер очень близко поместит два переходных отверстия, или даже с наложением их друг на друга рядом с позицией курсора. В этом случае незначительно переместите курсор мыши, пока переходные отверстия не будут размещены оптимально и трассы не будут проложены достаточно хорошо.
Рекомендуется нарисовать линию в слое 20 Dimension, чтобы ограничить область платы, что снизит требования к памяти и снизит время вычислений.
В зависимости от сложности Вашей разработки может быть разумно увеличить ценовой фактор для переходных отверстий и уменьшить его для NonPref. Это позволит избежать частой смены слоев.
[Ссылки]
1. 181121EAGLE-7.7.0-doc.zip - документация. 2. Эффективная трассировка печатных плат в Eagle. 3. Eagle: конфигурирование трассировки печатной платы. 4. Eagle: назначение предопределенных слоев редактора печатной платы PCB Layout (файл *.brd). 5. Eagle: словарик терминов. 6. Eagle: настройка правил Design Rules. 7. Eagle: net classes, классы электрических цепей. |