Conception
Placement, routage et zones de cuivre
Placement automatique, zones de cuivre pour la masse et l'alimentation, liaisons de plans, le routeur automatique, étiquettes sérigraphie, pastilles de test et les contrôles des règles de conception qui conditionnent le paquet de fabrication.
Un routage place les empreintes du schéma sur la carte et les relie avec du cuivre. Chaque commande ici écrit des entrées ordinaires dans le *.pcb.toml, donc peu importe ce que le placeur ou le routeur a fait, vous ou l'agent pouvez éditer ensuite.
agentee new layout NAMEAjoutez board et schematic au point de départ. La vérification signale alors chaque composant non encore placé.
Placer
agentee place NAME
agentee render pcb:NAME -o placed.pngagentee place est un démarrage rapide pour une carte complète. Par ordre de priorité, il :
- place les connecteurs sur les bords, côté de connexion vers l'extérieur, et n'aligne jamais un connecteur RF et un connecteur USB sur le même bord si une autre répartition est possible, car le bruit USB 3 tombe dans la bande des 2,4 GHz ;
- trace un chemin RF en ligne droite du connecteur au connecteur, avec les composants de dérivation à côté de la ligne, à leur nœud ;
- centre les puces volumineuses, loin des bords et des trous où le dépannage plie la carte ;
- regroupe les condensateurs de découplage de chaque CI près des broches d'alimentation qu'ils servent, et son cristal près de ses broches d'horloge ;
- maintient les régulateurs à découpage à 8 mm des cristaux et des composants RF, et éloigne les composants chauds ;
- exclut les condensateurs céramiques 0805 et plus de la zone de flexion près des bords et des trous, et oriente les petits pour qu'ils soient alignés avec le bord ;
- oriente chaque composant vers ses nets.
La référence de placement donne la source de chaque règle. Le résultat ne dépend que des fichiers et de --seed.
Ensuite, faites ce qu'un humain ferait : regardez, déplacez les composants importants et verrouillez-les.
agentee edit pcb NAME place J1 2.54,12 --rotation 180 --locked
agentee place NAME --keep-placed
agentee place NAME --seed 7
agentee place NAME --parts 'C*,R*'
agentee place NAME --side bothlocked = true ne se déplace jamais. --keep-placed conserve chaque composant qui a déjà une position, --parts place uniquement ceux qui correspondent, et --side both permet aux condensateurs de découplage de passer sous un BGA au dos. [place] edges dans le fichier de routage fixe un connecteur sur un bord, et keepouts sont des polygones qu'aucune zone d'encombrement ne peut traverser :
[place]
edges = { J1 = "left", J2 = "right" }
keepouts = [[[0, 0], [8, 0], [8, 6], [0, 6]]]Zones de cuivre et plans
agentee edit pcb NAME zone GND --layers F.Cu,In1.Cu,In2.Cu,B.Cu
agentee edit pcb NAME zone 3V3 --layers In2.Cu --priority 1Une zone remplit son contour (la carte par défaut) moins le cuivre de chaque autre net, agrandi par son espacement, sous forme de polygones exacts aux coins arrondis. Les goulets plus étroits que min_width de la zone sont supprimés, comme le ferait un fabricant, et les îlots qui ne touchent rien sont écartés. Sur une couche, les zones se remplissent par priority, donc une zone d'alimentation à l'intérieur d'un plan de masse sur toute la carte est contournée plutôt que court-circuitée. --pad-connection relief relie les pastilles par quatre rayons au lieu d'un cuivre plein.
Les remplissages sont calculés au chargement et mis en cache. agentee fill NAME les stocke à la fin du fichier de routage, pour qu'un nouveau clone se charge sans recalcul.
Relier les pastilles à leurs plans
agentee tie NAMEUn net avec une zone est un net de plan. tie donne à chaque pastille SMD d'un net de plan une courte tige et un via à côté, sur le côté opposé au composant, à l'écart de toute pastille et de tout autre net. C'est ainsi que les pastilles de masse et d'alimentation doivent atteindre un plan, au lieu de pistes entre elles. Une pastille qui a déjà un via de son net à proximité est laissée telle quelle, et une pastille sans emplacement légal est listée sous failed.
Routage
agentee route NAME --nets 'USB_*,SPI_*' --layers F.Cu,B.Cu
agentee route NAME --nets '*'Le routeur travaille sur une grille de 0,05 mm et respecte la largeur, l'espacement, les couches et les vias de chaque classe par rapport à tout ce qui existe déjà. Il avance par pas de 45 degrés, pénalise les vias et les coudes, resserre les trajets ensuite, et réduit la largeur d'une piste pour entrer dans une pastille plus étroite que la largeur de la classe. Une connexion sans chemin libre déplace ce qui est sur son passage et ces nets repassent dans la file.
- Un motif dans
--netsne correspond jamais à un net de plan, donc--nets '*'route tous les signaux et laisse la masse aux plans. - Le cuivre existant ne se déplace jamais, sauf si
--reroutesupprime d'abord les pistes et vias des nets nommés. - Si quelques connexions échouent, routez-les à nouveau avec les nets environnants et
--reroute, ou passez à--grid 0.025. --pairsroute les paires différentielles comme des paires couplées quand c'est possible.--via-in-padpermet à un via de se situer à l'intérieur d'une pastille SMD de son net, rempli et capoté.--dry-runrapporte sans écrire.
Routez d'abord à la main les nets importants : une ligne RF, la boucle chaude d'un régulateur, un cristal. Laissez ensuite le routeur remplir le reste, une classe à la fois.
À la main, les pistes et vias sont aussi des commandes :
agentee edit pcb NAME track RF_OUT F.Cu 19.28,12 30.92,12
agentee edit pcb NAME via GND 7.2,8.9Une piste doit entrer dans une pastille. Celle dont la ligne centrale ne fait que frôler le bord de la pastille est signalée, même si le cuivre touche.
Coutures et départs
[[stitching]]
net = "GND"
pitch = "2.5mm"
[[stitching]]
net = "GND"
fence = ["RF_*"]
[[fanouts]]
ref = "U3"
skip_rings = 2[[stitching]] place des vias de masse sur une grille partout où ils sont à l'écart de tout autre net, ou une barrière de vias le long des pistes des nets nommés. [[fanouts]] met un via dans chaque pastille connectée d'un BGA, en laissant les anneaux extérieurs pour l'évasion sur la couche supérieure. Ce sont des règles : les vias sont replacés chaque fois que le cuivre environnant change. agentee edit pcb NAME stitch GND --pitch 2.5mm et fanout U3 --skip-rings 2 les écrivent.
Sérigraphie
La vérification signale chaque étiquette de référence qui encombre d'autres textes, qui se trouve sur une pastille ou un via, ou qui sort de la carte, et indique un emplacement valide. agentee silk les déplace toutes à cet endroit :
agentee silk NAME
agentee silk NAME --hide--hide masque les étiquettes sans place, typiquement les petits composants passifs sous un BGA.
Chaque carte porte aussi agentee vX.Y.Z-HASH dans sa sérigraphie, au dos par défaut. Il faut une bande libre d'environ 23 par 1,2 mm ; sur une petite carte ou une carte encombrée, libérez de la place ou définissez [watermark] at vous-même. Le paquet de fabrication est refusé sans cela.
Pastilles de test
agentee testpoints NAME
agentee testpoints NAME --nets '3V3,*RST*' --side B --pitch 2.54Chaque carte a besoin d'un accès de sonde pour la mise en service et d'un fixture à broches pogo pour le test de production. Par défaut, ce sont les rails d'alimentation, la masse, les réinitialisations, les activations, le power good, les horloges et les bus basse vitesse ; les nœuds de commutation et les retours de régulateur sont exclus volontairement. testpoints ajoute un composant TP dans le schéma, une pastille de 1 mm sur le côté de sonde près du cuivre du net, et une piste routée vers elle, pour chaque net sans accès. Les nets d'impédance et les paires sont ignorés, car une tige les dégrade.
Contrôles des règles de conception
agentee check --item pcb:NAME
agentee drc NAME
agentee drc NAME --listcheck exécute toutes les règles ; drc n'imprime que les diagnostics de règles du routage, chacun commençant par son identifiant entre crochets, et --list imprime chaque règle avec une indication de son application à cette carte. Les erreurs bloquent le paquet de fabrication. Les avertissements et notifications sont des bonnes pratiques plutôt que des limites de fabrication : suivez-les sauf si le design donne une raison, et écrivez cette raison dans DESIGN.md.
Le routage est terminé quand unrouted est 0 pour chaque net dans agentee show pcb:NAME.
Dénouer les broches d'une puce
agentee pinswap NAME --part U3
agentee pinswap NAME --part U3 --writepinswap réaffecte les E/S interchangeables d'un FPGA ou d'un MCU (même banque, paires en paires, broches d'horloge conservées sur broches d'horloge) pour dénouer le chevelu, et --write réécrit les références de broches du schéma.
Le moteur de routage
agentee layout NAME exécute les étapes configurées du moteur de routage dans l'ordre (contraintes, placement, accès, routage global, routage détaillé, finition) et imprime un score par terme avec les pires contrevenants de chacun. --from, --to et --only choisissent les étapes. C'est plus récent que place et route ; les étapes et leurs réglages sont dans le tableau [engine] du routage, et le visualiseur peut les exécuter sur le routage tel qu'il est dans la fenêtre.