Schéma et routage
Routage automatique
agentee route, tie, tune et neck : routage sur grille qui conserve les largeurs de classe, les dégagements et les vias, liaisons de plans, appariement de longueurs et réductions de cou.
agentee route NAME --nets 'FX_D*,SPI_*' --layers F.Cu,In2.Cu,B.Cu (MCP route) route le chevelu des nets nommés sur une grille (--grid, par défaut 0,05 mm) et ajoute les pistes et les vias au fichier de routage en tant que [[tracks]] et [[vias]] ordinaires, afin que vous puissiez les modifier ensuite. Il respecte la largeur, l'espacement et les layers de chaque classe de nets par rapport à chaque pastille, piste, via, trou et bord de la carte. Il dimensionne l'espace pour chaque via de classe selon sa propre pastille, son perçage et ses couches (un microvia passe là où un via traversant ne passe pas, et un microvia peut se situer à côté d'un via enfoui sur d'autres couches). Il garde les nouveaux vias à min_hole_to_hole de chaque perçage dont l'envergure partage un diélectrique avec le leur, et leurs trous à min_via_hole_to_copper des pastilles, pistes et vias des autres nets. Il les garde hors des pastilles SMD de tous les nets, y compris du sien (le cuivre du via ne doit pas toucher une pastille, via-cuts-pad, et le trou reste à min_hole_to_smd_pad de celle-ci, hole-to-smd-pad, sauf si --via-in-pad, MCP via_in_pad, permet de le placer entièrement à l'intérieur d'une pastille SMD de son net avec un perçage d'au plus max_filled_via_drill). Il utilise les vias de la classe pour changer de couche, le moins coûteux dont l'envergure couvre les deux couches (--via uv-top,core ou MCP via pour choisir parmi d'autres noms, --via-cost en mm de piste, par défaut 3, multiplié par le cost du via). Il facture --bend-cost mm de piste pour chaque virage de 45 degrés (par défaut 0,1, trois fois ce montant pour 90 degrés). Il ne déplace jamais ce qui est déjà en place, sauf si --reroute est fourni, ce qui supprime d'abord les pistes et les vias des nets nommés. Une connexion qui ne trouve pas de chemin libre déroute les nets routés qu'elle croiserait ou dont elle rapprocherait les trous de via à moins de min_hole_to_hole du sien (trous dont les envergures partagent un diélectrique), se souvient du point comme encombré, et ces nets repassent dans la file d'attente. La recherche avance par pas de 45 degrés et facture chaque virage, de sorte que les chemins sortent en segments droits avec des virages de 45 degrés ; ensuite, les segments sont tendus avec des coudes à deux segments de 45 degrés, et tout angle de 90 degrés restant est chanfreiné là où l'espacement le permet. Seule la tige vers le centre d'une pastille hors grille peut se situer à un autre angle. Lorsque la largeur de la classe ne rentre pas dans une pastille d'extrémité (plus large que le petit côté de la pastille, ou trop proche des pastilles voisines pour respecter l'espacement), le routage se rétrécit : la piste de la largeur de la classe s'arrête avant la pastille et une entrée [[tracks]] séparée avec une width explicite va droit vers le centre de la pastille, d'une longueur d'au plus la neckdown de la classe et d'une largeur d'au moins min_track_width. Sa largeur est la plus petite de la largeur de la classe, du petit côté de la pastille et de la plus large qui respecte l'espacement, arrondie par défaut à 0,01 mm (ou exactement min_track_width si l'arrondi ferait descendre en dessous et que la largeur non arrondie ne le fait pas) ; la piste large commence au premier point éloigné de la pastille où sa largeur complète respecte l'espacement (et, pour une pastille plus étroite que la piste, à l'extérieur de la pastille). Les pastilles d'un même net qui se touchent, comme une pastille thermique construite à partir de plusieurs entrées de pastille, comptent comme une seule pastille large. Les paires routées avec --pairs ne se rétrécissent pas. Une connexion d'un net qui a déjà du cuivre neuf part de ce cuivre. Une fois tout en place, chaque connexion routée qui utilise des vias est réessayée couche par couche avec le reste fixé, et le routage à une couche le remplace s'il est d'au plus 25 % plus 1 mm plus long. Ensuite, les vias des connexions parallèles voisines qui changent de couche à proximité sont glissés le long de leurs propres pistes sur une rangée ou une colonne commune sur la grille, là où le point est légal et que la connexion conserve sa longueur (les jambes de paire maintenues par --pairs et les nets avec plusieurs connexions restent en place). Un net dans une interface avec max_vias garde la trace (tous les nets de la voie, y compris les composants en série) à l'intérieur : un routage avec trop de vias est réessayé avec des vias plus coûteux, puis sur une couche, et échoue avec la raison si aucun ne convient. Le second net d'une paire est attiré vers son partenaire à l'écartement de la paire ; --pairs essaie d'abord de router les deux moitiés ensemble comme une piste couplée unique. Lorsque quelques connexions échouent, routez-les à nouveau ensemble avec les nets environnants et --reroute, afin que le routeur puisse dérouter et réorganiser toute la zone, ou passez à --grid 0.025. --dry-run rapporte sans écrire. Routez d'abord manuellement les nets qui comptent, puis laissez le routeur remplir le reste, une classe à la fois.
Un net avec une entrée [[zones]] est un net de plan. Un glob dans --nets ne le correspond jamais, donc --nets '*' route tous les signaux et alimentations qui n'ont pas de zone de cuivre et laisse la masse aux plans ; nommez le net exactement pour le router avec des pistes quand même. Les vias placés par les règles [[stitching]] ne sont pas des obstacles pour le routeur : la règle les replace à nouveau autour du nouveau cuivre.
agentee tie NAME [--nets GND] [--dry-run] (MCP tie) connecte chaque pastille SMD d'un net de plan à la couche la plus proche que sa zone couvre, avec une courte tige et un via à côté de la pastille, ce qui est la façon dont les pastilles de masse et d'alimentation rejoignent un plan au lieu de pistes entre elles. Le via se place du côté de la pastille opposé au centre du composant, aussi près que possible : son cuivre à l'écart de toutes les pastilles SMD (y compris la sienne, donc pas de via-in-pad), son trou à min_hole_to_smd_pad de celles-ci, à min_hole_to_hole des autres trous, à min_via_hole_to_copper et à l'espacement de la classe des autres nets, à min_copper_to_edge du contour, et la tige à l'écart des autres nets sur la couche de la pastille. Il essaie 16 directions, la plus proche de la direction vers l'extérieur en premier, jusqu'à 1,2 mm au-delà de la pastille. Une pastille qui a déjà un via de son net à moins de 0,8 mm de son bord est laissée telle quelle, les pastilles traversantes et les billes BGA (escape gère celles-ci) sont ignorées, et une pastille sans point légal est listée sous failed. Les tiges et les vias sont ajoutés en tant que [[tracks]] et [[vias]] ordinaires.
agentee neck NAME [--nets 'VBUS,RF_*'] [--taper] [--dry-run] (MCP neck) réduit le cuivre déjà présent. Elle examine les deux extrémités de chaque piste des nets nommés (tous par défaut) qui se terminent dans une pastille de leur net sur leur couche, et retient celles qui sont plus larges que le petit côté de la pastille, ou dont la largeur totale viole l'espacement dans la longueur neckdown de la classe (plus une largeur de piste) de la pastille. Une telle extrémité est coupée : la piste conserve sa largeur de la coupe vers l'extérieur et une nouvelle entrée [[tracks]] avec une width explicite va de l'ancien point d'extrémité dans la pastille à la coupe, le long de l'ancien chemin. La largeur du col est la plus petite de la largeur de piste, du petit côté de la pastille et de la plus grande largeur qui maintient l'espacement le long du col, arrondie par défaut à 0,01 mm (ou exactement min_track_width comme ci-dessus). La coupe est le premier point, par pas de 0,01 mm, où la largeur totale maintient l'espacement pour le prochain neckdown plus une largeur de piste (et, pour une pastille plus étroite que la piste, se trouve hors de la pastille) ; un col n'est jamais plus long que neckdown et jamais inférieur à min_track_width, sinon l'extrémité est listée sous failed avec la raison et laissée telle quelle. Une pastille construite à partir de plusieurs entrées de pastilles du même net qui se touchent compte comme une seule pastille large. --taper remonte la largeur par étapes sur une courte chaîne au lieu d'un seul col : après le col étroit viennent jusqu'à deux entrées supplémentaires, chacune au tiers du chemin de la largeur du col à la largeur de piste, ensemble plus longues que neckdown (trois fois le col, au maximum). Le cuivre ne fait que s'élargir, donc aucune nouvelle erreur d'espacement ne peut apparaître ; le fichier est modifié sur place (toute autre ligne est conservée) et les remplissages de zones stockés sont rafraîchis. Le rapport liste chaque col (index de piste, net, pastille, raison, largeur, longueur, entrées) et compte les pistes modifiées et ajoutées.
Les paires et les règles de longueur sont aussi dans le routage :
[[pairs]] # optional: nets ending _P/_N, _DP/_DN, +/-, P/N in a class
p = "USB_DP" # with diff_gap are paired on their own
n = "USB_DN"
max_skew = "0.1mm" # or `max_skew` on the net class
[[match_groups]]
name = "ddr-dq0"
nets = ["DQ?", "DQS0_*"] # * and ? globs
tolerance = "0.5mm"
# target = "42mm" # default the longest memberLa vérification signale le déséquilibre de chaque paire en mm et en ps (à partir de la permittivité effective de la couche), un tronçon de la paire à l'écartement incorrect, et les paires qui passent moins de 80 % de leur longueur côte à côte. Les groupes d'appariement indiquent quel net est court ou long et de combien. Une paire qui passe par des composants bipolaires en série, comme les condensateurs AC sur une voie USB, est mesurée de bout en bout : son déséquilibre est la somme sur toutes les paires qu'elle relie, signalée comme FX_TX1_P+SS_TX1_P/FX_TX1_N+SS_TX1_N.