Фон
Я работаю над довольно плотным смешанным дизайном печатной платы PTH / SMD (с покрытием через отверстие / поверхностный монтаж). Я использую Eagle CAD для схематического захвата / компоновки и использую функцию автоматической трассировки для трассировки. Это двухслойная плата, и я стараюсь размещать все SMD-компоненты на одной стороне платы для простоты изготовления.
Опыт
Я обычно размещаю свои компоненты в тех местах, которые, как мне кажется, являются разумными с точки зрения близости интерфейса, поворачиваю пакеты QFP на 45 градусов, где это может быть полезно, устанавливаю сетку маршрутизации на 1 мил (т.е. минимум?), устанавливаю DRC минимальная ширина трассы до минимума, разрешенного моим производителем, нажимаю Go, ловлю шутейку и смотрю, что получится утром (или что не получилось). В авто-маршрутизаторе и DRC есть много настроек, с которыми я, честно говоря, никогда не связываюсь, потому что не понимаю, как они влияют на маршрутизацию (это слово?), что может способствовать моему разочарованию.
Вопрос
На данный момент я много использовал Eagle, и я очень доволен им, но часто кажется, что заставить автоматическую трассировку завершиться очень сложно, а трассируемость, кажется, очень чувствительна к размещению компонентов. Часто он получает до 98+% маршрутизации, а затем сдается. Каковы некоторые практические правила/рекомендации/советы о том, как помочь автотрассировщику выполнить свою работу?
Автотрассировщик Eagle — достойный инструмент, и я часто им пользуюсь. Однако, как и любой инструмент, вы должны знать, как правильно его использовать, и понимать его ограничения. Если вы просто рассчитываете бросить все на автотрассировщик, вы будете разочарованы. Ни один современный автомаршрутизатор, и, вероятно, еще несколько лет, не сможет справиться с чем-либо, кроме надуманных или игрушечных проблем.
Вы говорите, что в автотрассировщике Eagle есть настройки, которые вы не понимаете и с которыми никогда не связываетесь. Это плохое отношение и, вероятно, хорошая часть вашей проблемы. Не существует набора параметров управления, который работает на всех платах. Даже внутри двухслойных плат существуют различные компромиссы. Вы обязательно должны прочитать руководство и настроить параметры для вашей конкретной ситуации.
Для двухслойных плат я часто стараюсь, чтобы большая часть нижнего слоя была заземлена. Поэтому я максимально использую верхний уровень для межсоединений, а нижний уровень — для коротких «перемычек», чтобы топология маршрутизации работала. В этом случае я установил высокую стоимость маршрутизации в нижнем слое.
Перед автотрассировкой вы должны посмотреть на плату и подумать о критических областях, которые вы не можете объяснить автотрассировщику. Например, вы хотите, чтобы контурные токи импульсного источника питания были локальными и не касались основного заземляющего слоя. То же самое относится и к токам высокой частоты, локальным для цифрового чипа, таким как шунтирующие заглушки и кристалл с заглушками. Если вы используете слой псевдоземли, как я описал выше, то вы хотите вручную соединить каждое соединение земли с землей своим собственным переходным отверстием. Это оставляет максимальное пространство на верхнем слое для маршрутизации всего остального.
Процесс трассировки платы, даже если автоматическая трассировка выполняет большую часть рутинной работы, выглядит следующим образом:
Вот файл управления автотрассировщиком Eagle, который я использовал в двухслойном проекте с нижним слоем, насколько это возможно:
; Файл управления автотрассировщиком EAGLE [По умолчанию] Маршрутная сетка = 4 мил ; Параметры трассировки: tpViaShape = Круглый ; Предпочтительные направления: PrefDir.1 = * PrefDir.2 = 0 PrefDir.3 = 0 PrefDir.4 = 0 PrefDir.5 = 0 PrefDir.6 = 0 PrefDir.7 = 0 PrefDir.8 = 0 PrefDir.9 = 0 PrefDir.10 = 0 PrefDir.11 = 0 PrefDir.12 = 0 PrefDir.13 = 0 PrefDir.14 = 0 PrefDir.15 = 0 PrefDir.16 = * Активный = 1 ; Факторы стоимости: cfVia = 50 cfNonPref = 5 cfChangeDir = 2 cfOrthStep = 2 cfDiagStep = 3 cfExtdStep = 0 cfBonusStep = 1 cfMalusStep = 1 cfPadImpact = 4 cfSmdImpact = 4 cfBusImpact = 0 cfHugging = 3 cfAvoid = 4 cfPolygon = 10 cfBase.1 = 0 cfBase.2 = 1 cfBase.3 = 1 cfBase.4 = 1 cfBase.5 = 1 cfBase.6 = 1 cfBase.7 = 1 cfBase.8 = 1 cfBase.9 = 1 cfBase.10 = 1 cfBase.11 = 1 cfBase.12 = 1 cfBase.13 = 1 cfBase.14 = 1 cfBase.15 = 1 cfBase.16 = 5 ; Максимальное количество...: мнвиас = 20 мнсегментов = 9999 mnExtdSteps = 9999 mnRipupLevel = 50 mnRipupSteps = 300 mnRipupTotal = 500 [Автобусы] @Маршрут Активный = 1 cfVia = 10 cfChangeDir = 5 cfBusImpact = 4 cfPolygon = 25 cfBase.16 = 10 мнВиас = 0 mnRipupLevel = 10 mnRipupSteps = 100 mnRipupTotal = 100 [Маршрут] @По умолчанию Активный = 1 [Оптимизировать1] @Маршрут Активный = 1 cfVia = 99 cfNonPref = 4 cfChangeDir = 4 cfExtdStep = 1 cfHugging = 1 cfPolygon = 30 cfBase.16 = 10 mnExtdSteps = 20 mnRipupLevel = 0 mnRipupSteps = 100 mnRipupTotal = 100 [Оптимизировать2] @Оптимизировать1 Активный = 1 cfNonPref = 3 cfChangeDir = 3 cfBonusStep = 2 cfMalusStep = 2 cfPadImpact = 2 cfSmdImpact = 2 cfHugging = 0 cfPolygon = 40 mnExtdSteps = 15 [Оптимизировать3] @Оптимизировать2 Активный = 1 cfVia = 80 cfNonPref = 2 cfChangeDir = 2 cfPadImpact = 0 cfSmdImpact = 0 cfPolygon = 50 mnExtdSteps = 10 [Оптимизировать4] @Оптимизировать3 Активный = 1 cfVia = 60 cfNonPref = 1 cfPolygon = 60 cfBase.16 = 12 [Оптимизировать5] @Оптимизировать4 Активный = 1 cfVia = 40 cfNonPref = 0 cfPolygon = 70 cfBase.16 = 14 mnExtdSteps = 5 [Оптимизировать6] @Оптимизировать5 Активный = 1 cfVia = 20 cfBase.16 = 16 [Оптимизировать7] @Оптимизировать6 Активный = 1 cfBase.16 = 18 [Оптимизировать8] @Оптимизировать7 Активный = 1 cfBase.16 = 20
Автомаршрутизация, в общем, доставляет больше хлопот, чем пользы. Даже с супердорогими роутерами. Моя компания использует Cadence Allegro (70 000 долларов США за одно рабочее место), и я считаю, что требуется больше времени, чтобы объяснить автотрассировщику, как сделать хорошую работу, чем просто выполнить трассировку вручную. И конечный результат всегда лучше. Это верно для каждого автотрассировщика, который я пробовал, и не зависит от сложности платы. Платы, которые я делаю, варьируются от простых двухслойных вещей, состоящих всего из пары деталей, до 14-слойных монстров с 16 BGA и более чем 2000 цепей.
Я хотел бы предложить TopoR . TopoR очень эффективен на двухслойных платах (но он также успешно трассирует как однослойные, так и многослойные платы высокой плотности). Я могу сказать вам, что на двухслойной плате это даст вам лучший результат (по сравнению с другими САПР).
Если вам интересно, я могу сделать образец маршрутизации вашего проекта (мне нужен файл .brd) -> diztempa{at}gmail.com
Я обнаружил, что автотрассировщик Eagle не подходит. Многие здесь скажут, что автотрассировка — это плохо, и ее следует избегать, но я склонен не согласиться. Я добился больших успехов в фрироутинге, и я обнаружил, что он обычно дает гораздо лучшие маршруты, чем орел, с меньшим количеством переходных отверстий и меньшей общей длиной трассы. У них есть сценарии для простого импорта и экспорта из орла, и в целом они просты в использовании.
Автотрассировщики могут быть очень суетливыми, а алгоритмы различаются, поэтому то, что хорошо работает для одного, может не работать для другого.
Хотя большую часть трассировки я выполняю вручную, я не из тех, кто считает, что их следует полностью избегать. Это такой же инструмент, как и любой другой, и если он работает и облегчает вашу работу, используйте его. Тем не менее, лично я никогда не сталкивался с маршрутизатором, который может работать лучше, чем вручную, поэтому я бы не стал пытаться использовать его исключительно.
Однако, если плата очень сложная или трассировка чувствительна (т. е. имеет ограничения, о которых маршрутизатор не знает, и у вас нет достойного способа «сообщить» об этом), то часто лучше трассировать хотя бы часть из них вручную. Если он выполнен, например, на 98%, вы часто можете просто завершить его самостоятельно, поскольку вы можете решить, где вы можете ослабить ограничения (или сообщить автотрассировщику и повторить попытку для определенных цепей).
Сетка размещения и маршрутизации очень важна. Также используйте любые правила, которые вы можете оптимизировать, чтобы оптимизировать его производительность - это может иметь большое значение, потратив некоторое время на его правильную настройку, а не просто нажимая «маршрут».
Иногда просто невозможно развести плату и придерживаться установленных вами правил проектирования. Существуют формулы для определения «маршрутизации» платы, основанные на размере платы, количестве контактных площадок, ширине дорожки и т. д. Google будет знать больше.
Я не использовал маршрутизатор eagle, поэтому не могу конкретно посоветовать, но внимательно прочитайте документацию и постарайтесь узнать, что делает каждый отдельный параметр. Возможно, сделайте это на тестовой доске, чтобы увидеть, что лучше всего работает в разных ситуациях.
Я согласен с CMP на Freerouter. Это на самом деле лучше, чем большинство родных автотрассировщиков, которые я использовал для маршрутизации, поэтому стоит попробовать посмотреть, получите ли вы лучшие результаты, чем Eagle.
викатку