Для простой двусторонней доски начните с создания многоугольника на всем нижнем слое. Хитрость заключается в том, чтобы заставить Eagle маршрутизировать большинство соединений на верхнем слое. Чтобы сделать это, сделайте стоимость маршрутизации в пределах многоугольника высокой, а сквозную стоимость - низкой. На самом деле вы хотите начать с параметров, которые с большей вероятностью найдут решение, а затем ужесточить требования за несколько проходов оптимизации.
Перед автоматической маршрутизацией проложите критические трассы вручную и подключите любые основания, которые вы можете прямо на площадке, к слою грунта. Это заставит его не тратить пространство маршрутизации, соединяющее территорию.
Конечно, все это должно начинаться с хорошей компоновки, которая пытается расположить соединенные элементы рядом друг с другом и ориентировать их на как можно меньшее количество кроссоверов.
После автоматической маршрутизации вы должны выполнить некоторую ручную очистку. Мера земной плоскости - насколько мала максимальный размер любого острова. Множество маленьких островов лучше, чем несколько больших. Это означает, что вы хотите, чтобы наземная плоскость облетала каждый проход, если это возможно. К сожалению, Eagle имеет тенденцию сбивать переходные отверстия, даже если для параметра hugs установлено значение 0. Я не пытался установить его как отрицательный. Это означает, что вы должны увидеть, что сделал авто-роутер, и немного переместить все, чтобы попытаться разбить скопления переходов.
В основном речь идет о правильном использовании авто-роутера и понимании, что это инструмент, а не замена вашему мозгу. Если вы ожидаете огня и забудете, вы не получите хороших досок.
В любом случае, вот управляющий файл авто-роутера с одной из моих двухслойных плат с нижним слоем в плоскости заземления:
[По умолчанию]
RoutingGrid = 4 мил
; Параметры трассировки:
tpViaShape = Round
; Предпочтительные направления:
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
; Максимальное количество ...:
mnVias = 20
mnSegments = 9999
mnExtdSteps = 9999
mnRipupLevel = 50
mnRipupSteps = 300
mnRipupTotal = 500
[Подписывайтесь на меня]
@Route
Активный = 1
cfVia = 8
cfBase.16 = 0
mnRipupLevel = 10
mnRipupSteps = 100
mnRipupTotal = 100
[Автобусы]
@Route
Активный = 1
cfVia = 10
cfChangeDir = 5
cfBusImpact = 4
cfPolygon = 25
cfBase.16 = 10
mnVias = 0
mnRipupLevel = 10
mnRipupSteps = 100
mnRipupTotal = 100
[Маршрут]
@По умолчанию
Активный = 1
[Optimize1]
@Route
Активный = 1
cfVia = 99
cfNonPref = 4
cfChangeDir = 4
cfExtdStep = 1
cfHugging = 1
cfPolygon = 30
cfBase.16 = 10
mnExtdSteps = 20
mnRipupLevel = 0
mnRipupSteps = 100
mnRipupTotal = 100
[Optimize2]
@ Optimize1
Активный = 1
cfNonPref = 3
cfChangeDir = 3
cfBonusStep = 2
cfMalusStep = 2
cfPadImpact = 2
cfSmdImpact = 2
cfHugging = 0
cfPolygon = 40
mnExtdSteps = 15
[Optimize3]
@ Optimize2
Активный = 1
cfVia = 80
cfNonPref = 2
cfChangeDir = 2
cfPadImpact = 0
cfSmdImpact = 0
cfPolygon = 50
mnExtdSteps = 10
[Optimize4]
@ Optimize3
Активный = 1
cfVia = 60
cfNonPref = 1
cfPolygon = 60
cfBase.16 = 12
[Optimize5]
@ Optimize4
Активный = 1
cfVia = 40
cfNonPref = 0
cfPolygon = 70
cfBase.16 = 14
mnExtdSteps = 5
[Optimize6]
@ Optimize5
Активный = 1
cfVia = 20
cfBase.16 = 16
[Optimize7]
@ Optimize6
Активный = 1
cfBase.16 = 18
[Optimize8]
@ Optimize7
Активный = 1
cfBase.16 = 20