Администрирование Разное Altium Designer: автотрассирощик Situs, руководство Tue, October 15 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Altium Designer: автотрассирощик Situs, руководство Печать
Добавил(а) microsin   

Эта статья рассматривает основные приемы применения в Altium Designer встроенного автороутера Situs, с информацией по настройке платы PCB, правил дизайна (design rules), назначению количества проходов и стратегии разводки. Исходный материал - статья Situs Autorouting Essentials сайта wiki.altium.com. Непонятные термины см. в словарике [1].

Топологический трассировщик Situs переводит технологии автотрассировки на новый уровень качества. Он использует продвинутую технику для создания топологии, сначала определяя путь для трассировки, и затем вызывая различные испытанные алгоритмы для преобразования "человеческого" пути в высококачественную трассу. Как составная часть PCB Editor, автороутер следует электрическим правилам дизайна и разводки.

Несмотря на то, что настройка и запуск Situs весьма логичны и очевидны, необходимо уделить внимание некоторым моментам, чтобы получить оптимальную разводку.

[Подготовка платы к трассировке (Board Setup)]

Размещение компонентов. Несомненно, что размещение компонентов больше всего влияет на качество, оптимальность и скорость разводки платы. Редактор печатной платы (PCB Editor) в системе Altium Designer (далее просто AD) включает в себя несколько инструментов, такие как динамически оптимизируемые линии соединений, которые помогут Вам точнее разместить компоненты. Размещение компонентов становится оптимальным, когда линии соединения максимально короткие и меньше всего перепутаны друг с другом.

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

Участки для запрета трассировки (Keepouts). Трассировщик нуждается в закрытой области, нарисованной на слое KeepOut (KO), внутри этой области будут проложены токопроводящие трассы. Замкнутая область на слое KO может быть составлена из прямых отрезков и дуг. Обычно область Keepout повторяет контур печатной платы с дистанцией от края, которая удовлетворяет механическим и технологическим требованиям при изготовлении платы. Автороутер принимает во внимание эту границу на всех слоях, а также области KeepOut, которые нарисованы на каждом отдельном слое платы.

Заливки медью (Polygon Pours). Полигон (или заливка медью copper pour могут быть либо сплошными (solid, т. е. заполненными одним или несколькими регионами меди) или штрихованными (hatched, созданными из прямых отрезков и дуг). Штрихованные полигоны среднего и большого размера состоят из большого количества треков и дуг. Несмотря на то, что автотрассировщик может трассировать плату, на которой находятся такие полигоны / заливки, большое количество объектов на маршруте трассировки усложняет процесс.

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

Предварительная разводка (Pre-routing). Разведите сначала (автоматически или вручную) критические цепи. Если нужно, чтобы они оставались неизменными во время разводки оставшихся цепей, зафиксируйте эти уже разведенные цепи галочкой Lock All Pre-routes на диалоге Situs Routing Strategies (меню Autoroute -> Setup). Избегайте ненужных фиксаций; большое количество фиксированных объектов может создать проблему для трассировки и усложнить её.

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

[Конфигурирование правил разводки (Design Rules)]

Убедитесь, что правила дизайна для разводки подходят для используемой технологии (которую будет использовать завод-изготовитель плат. Плохо назначенные или неактуальные правила могут или дать в результате некачественную плату, или могут очень снизить скорость трассировки. Имейте в виду, что трассировщик соблюдает все текущие правила электрической разводки назначенные для дизайна (Electrical and Routing design rules), за исключением правила разводки углов (Routing Corners).

Правила задаются в диалоге редактора PCB Rules and Constraints (меню Design -> Rules), к которым можно получить доступ напрямую из диалога назначения стратегии автотрассировщика (Situs Routing Strategies).

Совет: термин default rule используется для описания правила, охватывающего весь дизайн.

Базовый принцип назначения правил. Системные правила AD имеют иерархию. Идея состоит в том, что Вы начинаете с правила по умолчанию (default rule), которое касается всех объектов, и затем добавляете дополнительные правила, которые селективно влияют на другие объекты, которые имеют отличающиеся требования к разводке. К примеру, правило default будет применяться для всех цепей на печатной плате, и добавленные правила будут влиять на особые цепи и классы цепей (земля GND, класс Power и т. п.).

Совет: если правило включает значения для величин Minimum (минимально возможное), Preferred (желательное) и Maximum (максимально возможное), то автороутер будет использовать значение Preferred.

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

Совет: чтобы проверить, что правило направлено на те объекты, которые надо, скопируйте запрос правила (rule Query) в панель фильтра и примените его (Apply). Появятся только те объекты, на которые направлено правило.

Еще одно правило в технологии разводки относится к стилю переходного отверстия (Routing Via Style). Оно должно быть выбрано так, чтобы подходить под используемые треки и зазоры, с учетом стоимости производства для выбранного диаметра отверстия (hole size) и защитного пояска (annular ring).

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

Ширина дорожки для разводки (Routing Width)

Убедитесь, что правило ширины трассировки (Routing Width rule) для Query of All (правило по умолчанию) имеет установку Preferred, подходящую для большинства трасс дизайна. Удостоверьтесь, что ширина в комбинации с соответствующим правилом зазора (clearance rule) позволит развести все контактные площадки компонентов (pads). Сконфигурируйте дополнительные правила толщины трасс для цепей, которые должны быть уже или шире.

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

Ограничение на допустимый зазор (Clearance Constraint)

Проверьте специальные требования к зазору, такие как у ножек компонентов с малым шагом, ножки которых находятся друг к другу ближе, чем стандартные зазоры платы. Такие компоненты могут быть обслужены специально назначенными приоритезированными правилами. На картинке ниже показано назначение такого правила на посадочное место (footprint) TSOP12X16.

AltiumDesigner-Clearance-Constraints-targetting-footprint

Имейте в виду, что хотя Вы можете задать правило, нацеленное на footprint, оно не подействует на разводку, которая подключена к этому footprint. Как уже упоминалось в секции про Routing Width, проверьте - могут ли быть физически разведены ножки компонента.

Стиль переходного отверстия для разводки (Routing Via Style)

Убедитесь, что правило Routing Via Style для Query of All (правило по умолчанию) имеет подходящую установку Preferred. Добавьте правила с более высоким приоритетом для тех цепей, которым нужен другой стиль переходного отверстия, не совпадающий с правилом по умолчанию (default rule).

AD поддерживает глухие (blind) и внутренние (buried, находящиеся в толще многослойной платы переходные отверстия). Когда и как они используются, будет определено парами сверления (drill pair definitions), настраиваемыми в диалоге Layer Stack Manager (меню Design -> Layer Stack Manager). Как и при интерактивной разводке, когда автороутер переходит от одного слоя к другому, он проверяет, что на этом переходе заданы пары для сверления - если эти слои определены как пары, то будет размещено переходное отверстие, которое будет соединять начальный и конечный слой. Это важно для понимания ограничений на использование blind/buried via; они должны использоваться только после консультации с Вашим производителем плат. Также нужно иметь в виду не только ограничения, накладываемые заводом, но и ограничения, связанные с ограниченными возможностями проверки платы. Некоторые разработчики предпочитают вместо использования blind/buried via добавить слои для трассировки, используя простые via.

Слои для разводки (Routing Layers)

Убедитесь, что правило есть слои разводки Routing Layers с установленным query of All. В списке будут все разрешенные сигнальные слои (заданные стеком слоев). Разрешите слои, на которых Вы хотите использовать разводку. Добавьте правила с более высоким приоритетом для цепей, которые Вы хотите развести только в заданных слоях.

Если Вы хотите исключить отдельную цепь (или класс цепей) из разводки автороутером, задайте правило Routing Layer, направленное на цепь (net) или класс цепей (net class) и в области Constraints данного правила убедитесь, что опция Allow Routing отключена на каждом разрешенном сигнальном слое. Приоритет для этого правила должен быть выше, чем правило по умолчанию default rule (которое относится к query of All).

Привязка направлений трассировки к слоям (Layer Directions)

Направление трассировки на слое задается в диалоге Layer Directions, к которому можно получить доступ из диалога Situs Routing Strategies. Будут перечислены все разрешенные сигнальные слои (заданные в стеке слоев). Выберите подходящие направления трассировки, ориентируясь на линии неразведенных соединений. Situs использует топологическое связывание для определения путей трассировки, он не ограничен в разводке по горизонтали и вертикали. Обычно лучшим выбором является задание внешних слоев горизонтальными и вертикальными. Однако если у Вас многослойная плата с большим количеством соединений с "2-часовым" углом, то установите один или больше внутренних слоев в желаемое направление разводки. Проход трассировки Layer Patterns частично использует эту информацию, и выбор правильного направления может значительно отличаться для эффективности разводки (в смысле качества разводки и затрат времени). Имейте в виду, что когда Вы используете слои с поворотом (angled layer, угловой слой), не нужно иметь слой-партнер с углом 90o по отношению к этому слою, поскольку автороутер будет обычно разводить по горизонтали или вертикали, если это нужно для обхода препятствий на угловом слое.

Избегайте использования произвольного направления (Any direction) - для разводки соединения будет выбран слой на основании того, насколько близко находится соединение по этому слою, так что этот слой станет единственным выбором. Any direction обычно выбирают для односторонних плат (у которых сигнальный слой только один).

Приоритет трассировки (Routing Priority)

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

Управление SMD Fanout

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

Система запросов AD использует ключевые слова, которые специально предназначены для различных корпусов для одностороннего монтажа (surface mount component packages), включая IsLCC (Leadless Chip Carrier), IsSOIC (Small Outline IC), IsBGA (Ball Grid Array) и IsSMSIP (Surface Mount Single In-line Package). Правила по умолчанию автоматически создаются для большинства обычных корпусов, и поскольку проходы fanout запускаются на первых шагах автотрассировки, мало смысла в сохранении правил, которые не прикладываются ни к какому компоненту. У Вас должно быть как минимум одно правило дизайна для управления SMD fanout, если на плате используются компоненты SMD - подходящий запрос для одного правила, направленного на все компоненты SND, будет IsSMTComponent. Для подробностей, как каждое ключевое слово запроса идентифицирует корпус компонента, откройте Query Helper, введите требуемое ключевое слово и нажмите F1.

Правила fanout включают установки, которые задают - будет ли к контактной площадке применен fanout, или смешивание, или и то, и другое. Чтобы разобраться в поведении атрибутов правила Fanout Control, может быть запущена команда Autoroute -> Fanout -> Component для любого SMD компонента, который не имеет разведенных к нему цепей. Кроме того, Вы можете заранее подготовить fanout и сохранить в библиотеке вместе с посадочным местом компонента. Как только компонент получил fanout в рабочей области PCB, Вы можете сделать copy и paste компонента вместе с треками fanout прямо в библиотеку.

Приоритеты правил

Порядок выполнения (precedence), или приоритет (priority) правил назначается разработчиком designer. Приоритет правила используется, когда надо определить, какое правило применять, если на объект распространяется несколько правил. Если приоритет установлен неправильно, то может оказаться, что правило вообще не прикладывается.

Например, если правило с запросом InNet('VCC') имеет приоритет ниже, чем правило query of All, то правило All будет применено к цепи VCC. Используйте кнопку Priorities в диалоге PCB Rules and Constraints Editor, чтобы исправить это. Имейте в виду, что приоритет не имеет значения, если область действия двух правил не перекрываются (они не относятся к одному и тому же объекту). Например, не имеет никакого значения, что эти два правила имеют разный приоритет - InNet('VCC') и InNet('GND').

[Золотое правило]

Возможно, что самым важным шагом можно считать запуск проверки design rule check (DRC) до запуска автороутера. Когда используете команды Autoroute -> Setup или Autoroute -> All, Situs проводит собственный предварительный анализ перед трассировкой и представляет результаты как отчет в диалоге Situs Routing Strategies (стратегии трассировки Situs).

AltiumDesigner-Situs-Report-run

Отчет предоставляет информацию, которая включает в себя:

  • Правила дизайна, которые назначены правильно, и которые будут использоваться автороутером (и количество объектов дизайна - цепей, компонентов, выводов, на которые влияет каждое правило).
  • Направления разводки, заданные для всех сигнальных слоев разводки.
  • Определения пар слоев сверления (drill layer pair).

AltiumDesigner-Situs-Report-content

В отчете перечислены потенциальные проблемы, которые могут повлиять на эффективность работы трассировщика. Где это возможно, предоставляются подсказки (hints) - советующие, как надо улучшить дизайн, чтобы лучше подготовить его для автотрассировки. Любые ошибки, предупреждения, советы (errors / warnings / hints) из списка нужно тщательно исследовать и, если это нужно, подстроить соответствующие правила - перед тем, как начать разводку.

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

[Советы при запуске автотрассировщика]

Не бойтесь экспериментировать. Если результат разводки получился плохим, сделайте что-нибудь, чтобы повлиять на работу трассировщика. Добавьте промежуточные проходы очистки (cleanup pass) и спрямления (straighten pass), предоставьте больше места в тех местах, где большая плотность размещения компонентов, или поменяйте направления прокладки на слоях (layer directions). Поскольку Вы экспериментируете с роутером - создаете Ваши собственные стратегии для управления последовательностью проходов трассировки, меняете количество переходных отверстий через Via control, меняете направление трассировки на слоях (layer directions), ограничиваете роутер только перпендикулярными маршрутами - делайте заметки по тем комбинациям правил, которые Вы попробовали. Так Вы сможете идентифицировать и снова использовать конфигурации, которые лучше всего подходят к Вашим проектам.

Запустите сначала отдельно проходы fanout, и оцените их качество. Вам может потребоваться вручную развести fanout во всех проблемных областях.

[Основные выводы: как использовать проходы и стратегии трассировки]

Заданные в настоящий момент стратегии трассировки (routing strategies) перечислены в нижней области диалога Situs Routing Strategies. Кликните кнопку Add, чтобы войти в диалог редактора Situs Strategy Editor, где Вы можете указать проходы, которые будут включены в новую стратегию.

AltiumDesigner-Situs-Routing-Passes-and-Routing-Strategies

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

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

Clean Pad Entries. Это проход разводки, относящийся к уровню соединений. Он переразводит дорожку от каждого центра контактной площадки вдоль самой длинной оси контактной площадки.

Совет: если имеются компоненты с контактными площадками, у которых отличаются размеры вдоль осей X и Y, то всегда добавляйте проход Clean Pad Entries после прохода Memory.

Completion. Это проход разводки, относящийся к уровню соединений. По сути это то же самое, что и проход Main, отличающийся стоимостью для разрешения конфликтов и завершения сложных соединений. Примеры отличий по стоимости включают использование более дешевых via и более дорогих неправильных маршрутов.

Fan out Signal. Это проход уровня компонента, основанный на настройках fanout, заданных через Fanout Control. Этот проход проверяет шаблоны на выводах, учитывая зазор разводит с выбранной шириной проводника и выбранным стилем via, и затем выбирает подходящий способ выполнения fanout (inline row, staggered и т. д.), чтобы удовлетворить требованиям, заданным в design rule. Fanout относится только к сигнальным слоям.

Fan out to Plane. Все то же самое, что и Fan out Signal, только с тем отличием, что Fanout делается только на внутренний слой меди (internal plane layer).

Globally Optimized Main. Это проход разводки, относящийся к уровню соединений. Он предоставляет оптимальную прокладку проводников. Он игнорирует состязания / нарушения на первой итерации. Затем он переразводит соединения с увеличением стоимости конфликта, пока не останется нарушений. Этот проход в соединении с разрешенной опцией перпендикулярности (Orthogonal option), может выдать хорошо сделанный черновой шаблон разводки. Добавьте проход Recorner к стратегии, чтобы получить скошенные под 45o углы на трассах.

Hug. "Hug" переводится как "обнимать". Это проход разводки, относящийся к уровню соединений, который переразводит каждое соединение, следуя существующему маршруту с минимально возможным зазором. Проход hug используется для максимизации свободного пространства для трассировки. Имейте в виду, что этот проход работает очень медленно.

Layer Patterns. Это проход разводки, относящийся к уровню соединений. Он разводит только соединения, которые соответствуют направлению слоя, layer direction (в пределах допустимого). Он используется, как и hug, чтобы максимально освободить место для трассировки.

Main. Это проход разводки, относящийся к уровню соединений. Он использует топологическую карту, чтобы найти путь разводки, и затем использует push (прижимание) и shove (проталкивание) для преобразования предполагаемого пути в реальную разводку.

Совет: только один проход типа main-type должен быть указан в стратегии разводки - либо Main, либо Multilayer Main, либо Globally Optimized Main.

Memory. Это проход разводки, относящийся к уровню соединений. Он проверяет две ножки разных компонентов, находящихся на одном и том же слое, которые имеют одинаковые координаты X или Y.

Multilayer Main. Это проход разводки, относящийся к уровню соединений. Делает то же самое, что и проход Main, но со стоимостью, оптимизированной для многослойных плат.

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

Spread. Это проход разводки, относящийся к уровню соединений, который переразводит каждое соединение, пытаясь распространить разводку для использования свободного пространства, и делает разводку с равномерным интервалом, когда проходит между фиксированными объектами (такими как выводы компонента). Имейте в виду, что этот проход работает очень медленно.

Straighten. Спрямление - это проход разводки, относящийся к уровню соединений, который пытается уменьшить количество углов. Он делает это путем прохода маршрута до угла, и затем от этого угла выполняет попытку спрямления (горизонтально / вертикально / 45o вверх / 45o вниз) до другой точки маршрута цепи. Если спрямление найдено, то оно проверяется на предмет уменьшения длины нового пути трассы.

[Ссылки]

1. PCAD: термины.
2. Tutorial - Getting Started with PCB Design site:wiki.altium.com.
3. Interactively Routing a Net site:wiki.altium.com.

 

Добавить комментарий


Защитный код
Обновить

Top of Page