Per una semplice scheda a due facciate, inizia creando un poligono rettificato su tutto lo strato inferiore. Il trucco è quindi far in modo che Eagle instradi la maggior parte delle connessioni sul livello superiore. Per fare ciò, abbassa il costo del routing all'interno di un poligono e il costo di via basso. In realtà, vuoi iniziare con parametri che hanno maggiori probabilità di trovare una soluzione, quindi restringere i requisiti su più passaggi di ottimizzazione.
Prima di eseguire il routing automatico, instradare manualmente le tracce critiche e collegare tutti i motivi che è possibile raggiungere direttamente il pad al livello del terreno. Ciò causerà che non sprechi lo spazio di instradamento che collega i motivi.
Ovviamente tutto deve iniziare con un buon layout che tenti di mettere le cose connesse l'una vicino all'altra e orientate ad avere il minor numero di crossover possibile.
Dopo il routing automatico, è necessario eseguire una pulizia manuale. La misura di un piano terra è la dimensione minima di qualsiasi isola. Molte piccole isole sono meglio di alcune grandi. Ciò significa che, se possibile, si desidera che il piano di terra circoli in ogni via. Purtroppo Eagle tende a raggruppare via, anche con il parametro hugging impostato su 0. Non ho potuto impostarlo in negativo, ho provato. Ciò significa che devi vedere cosa ha fatto l'auto-router e spostare le cose un po 'per cercare di rompere gruppi di via.
Si tratta principalmente di utilizzare correttamente il router automatico e rendersi conto che è uno strumento, non un sostituto del proprio cervello. Se aspetti fuoco e dimentichi, non avrai buone tavole.
Ad ogni modo, ecco un file di controllo del router automatico da una delle mie 2 schede di livello con il livello inferiore un piano di massa:
[Predefinito]
RoutingGrid = 4mil
; Parametri di traccia:
tpViaShape = Round
; Indicazioni preferite:
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 = *
Attivo = 1
; Fattori di costo:
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
; Numero massimo di ...:
mnVias = 20
mnSegments = 9999
mnExtdSteps = 9999
mnRipupLevel = 50
mnRipupSteps = 300
mnRipupTotal = 500
[Seguimi]
@Itinerario
Attivo = 1
cfVia = 8
cfBase.16 = 0
mnRipupLevel = 10
mnRipupSteps = 100
mnRipupTotal = 100
[Autobus]
@Itinerario
Attivo = 1
cfVia = 10
cfChangeDir = 5
cfBusImpact = 4
cfPolygon = 25
cfBase.16 = 10
mnVias = 0
mnRipupLevel = 10
mnRipupSteps = 100
mnRipupTotal = 100
[Itinerario]
@Predefinito
Attivo = 1
[Optimize1]
@Itinerario
Attivo = 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
Attivo = 1
cfNonPref = 3
cfChangeDir = 3
cfBonusStep = 2
cfMalusStep = 2
cfPadImpact = 2
cfSmdImpact = 2
cfHugging = 0
cfPolygon = 40
mnExtdSteps = 15
[Optimize3]
@ Optimize2
Attivo = 1
cfVia = 80
cfNonPref = 2
cfChangeDir = 2
cfPadImpact = 0
cfSmdImpact = 0
cfPolygon = 50
mnExtdSteps = 10
[Optimize4]
@ Optimize3
Attivo = 1
cfVia = 60
cfNonPref = 1
cfPolygon = 60
cfBase.16 = 12
[Optimize5]
@ Optimize4
Attivo = 1
cfVia = 40
cfNonPref = 0
cfPolygon = 70
cfBase.16 = 14
mnExtdSteps = 5
[Optimize6]
@ Optimize5
Attivo = 1
cfVia = 20
cfBase.16 = 16
[Optimize7]
@ Optimize6
Attivo = 1
cfBase.16 = 18
[Optimize8]
@ Optimize7
Attivo = 1
cfBase.16 = 20