agentee

Ontwerpen

Plaatsing, routing en kopervlakken

Automatische plaatsing, aarde- en voeding-kopervlakken, vlakverbindingen, de autorouter, zeefdruklabels, testpads en de ontwerpregelcontroles die het fabrikantpakket regelen.

Een layout plaatst de footprints van het schema op de printplaat en verbindt ze met koper. Elk commando hier schrijft gewone items in het *.pcb.toml, dus wat de placer of router ook doet, kun je of de agent het daarna bewerken.

agentee new layout NAME

Voeg board en schematic toe aan de starter. De controle rapporteert dan elk onderdeel dat nog niet is geplaatst.

Plaatsen

agentee place NAME
agentee render pcb:NAME -o placed.png

agentee place is een snelle start voor een hele printplaat. In volgorde van prioriteit doet het:

  • zet connectoren aan de randen met de aansluitkant naar buiten, en nooit een RF-connector en een USB-connector aan dezelfde rand als een andere splitsing past, omdat USB 3-ruis in het 2,4 GHz-band lands;
  • legt een RF-pad in een rechte lijn van connector naar connector, met shunt-componenten naast de lijn op hun node;
  • trekt grote chips naar het midden, weg van de randen en gaten waar deprintplaat bij depaneling buigt;
  • clustert de decoupling-condensatoren van elke IC bij de voedingpads die ze bedienen, en de kristaloscillator bij de klokpads;
  • houdt schakelregelaars 8 mm van kristaloscillatoren en RF-componenten, en houdt hete componenten uit elkaar;
  • houdt keramische condensatoren van 0805 en groter uit de flexzone bij randen en gaten, en draait kleine condensatoren zodat ze langs de rand liggen;
  • draait elke component naar zijn nets.

De placement-handleiding geeft de bron voor elke regel. Het resultaat hangt alleen af van de bestanden en --seed.

Daarna doe je wat een mens zou doen: bekijk het, verplaats de componenten die ertoe doen, en vergrendel ze.

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 both

locked = true wordt nooit verplaatst. --keep-placed laat elke component die al een plek heeft staan, --parts plaatst alleen de overeenkomende, en --side both laat decoupling-condensatoren onder een BGA aan de achterkant gaan. [place] edges in het layout pindt een connector aan een rand, en keepouts zijn polygonen waar geen courtyard mag komen:

[place]
edges = { J1 = "left", J2 = "right" }
keepouts = [[[0, 0], [8, 0], [8, 6], [0, 6]]]

Kopervlakken en plannen

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 1

Een zone vult zijn omtrek (standaard de printplaat) minus het koper van elke andere net, vergroot met de clearance, als exacte polygonen met ronde hoeken. Halsjes smaller dan de min_width van de zone worden verwijderd, zoals een fabrikant ze zou etsen, en eilanden die niets raken worden weggelaten. Op één laag vullen zones volgens priority, zodat een voeding-kopervlak binnen een printplaatbreed grond-kopervlak eromheen wordt gegoten in plaats van kortgesloten. --pad-connection relief verbindt pads met vier spaken in plaats van massief koper.

Vullingen worden bij het laden berekend en gecached. agentee fill NAME slaat ze op aan het einde van het layout-bestand, zodat een verse checkout laadt zonder vullen.

Koppel pads aan hun plannen

agentee tie NAME

Een net met een zone is een plan-net. tie geeft elke SMD-pad van een plan-net een korte stub en een via ernaast, aan de kant weg van de component, vrij van elke pad en ander net. Zo moeten grond- en voeding-pads een plan bereiken, in plaats van sporen ertussen. Een pad dat al een via van zijn net in de buurt heeft wordt niet aangeraakt, en een pad zonder legale plek wordt opgenomen onder failed.

Routeer

agentee route NAME --nets 'USB_*,SPI_*' --layers F.Cu,B.Cu
agentee route NAME --nets '*'

De router werkt op een raster van 0,05 mm en houdt de breedte, clearance, lagen en vias van elke klasse aan tegen alles wat er al is. Het gaat in 45-graden richtingen, rekent kosten voor vias en bochten, trekt runs strak daarna, en hals een spoor in naar een pad dat smaller is dan de klasse-breedte. Een verbinding zonder vrije pad haalt weg wat in de weg staat en die nets gaan terug in de wachtrij.

  • Een glob in --nets matcht nooit een plan-net, dus --nets '*' routeert elk signaal en laat grond aan de plannen.
  • Bestaand koper wordt nooit verplaatst, tenzij --reroute eerst de sporen en vias van de genoemde nets verwijdert.
  • Als een paar verbindingen falen, routeer ze opnieuw samen met de nets eromheen en --reroute, of ga naar --grid 0.025.
  • --pairs routeert differentieel paren als gekoppelde paren waar ze passen.
  • --via-in-pad laat een via binnen een SMD-pad van zijn net zitten, gevuld en gedekt.
  • --dry-run rapporteert zonder te schrijven.

Routeer eerst de nets die ertoe doen met de hand: een RF-lijn, de hete lus van een schakelregelaar, een kristaloscillator. Laat daarna de router de rest invullen, een klasse tegelijk.

Met de hand zijn sporen en vias ook commando's:

agentee edit pcb NAME track RF_OUT F.Cu 19.28,12 30.92,12
agentee edit pcb NAME via GND 7.2,8.9

Een spoor moet in een pad lopen. Eén waarvan de middellijn alleen de padrand raakt wordt gemarkeerd, ook al raakt het koper.

Stitching en fanouts

[[stitching]]
net = "GND"
pitch = "2.5mm"

[[stitching]]
net = "GND"
fence = ["RF_*"]

[[fanouts]]
ref = "U3"
skip_rings = 2

[[stitching]] plaatst grond-vias op een raster waar ze elke andere net vrijlaten, of een hek van vias langs de sporen van de genoemde nets. [[fanouts]] zet een via in elke verbonden pad van een BGA, en laat de buitenste ringen vrij voor escape op de bovenlaag. Beide zijn regels: de vias worden opnieuw geplaatst telkens het koper eromheen verandert. agentee edit pcb NAME stitch GND --pitch 2.5mm en fanout U3 --skip-rings 2 schrijven ze.

Zeefdruk

De controle markeert elke referentie-label die andere tekst verdringt, op een pad of via zit, of van de printplaat loopt, en noemt een plek die slaagt. agentee silk verplaatst ze allemaal daar:

agentee silk NAME
agentee silk NAME --hide

--hide verbergt de labels zonder plek, typisch kleine passieven onder een BGA.

Elke printplaat draagt ook agentee vX.Y.Z-HASH in de zeefdruk, standaard aan de onderkant. Het heeft een vrije strook van ongeveer 23 bij 1,2 mm nodig; op een kleine of overvolle printplaat maak je ruimte vrij of stel je [watermark] at zelf in. Het fabpakket wordt geweigerd zonder dit.

Testpads

agentee testpoints NAME
agentee testpoints NAME --nets '3V3,*RST*' --side B --pitch 2.54

Elke printplaat heeft probe-toegang nodig voor bring-up en een pogo-pin fixture voor productietest. Standaard zijn dat de voedingsspoor, grond, resets, enables, power good, klokken en de lage-snelheid bussen; schakelpunten en regelaar-feedback worden bewust uitgesloten. testpoints voegt een TP-component toe in het schema, een 1 mm pad aan de probe-kant bij het koper van het net, en een gerouteerd spoor ernaartoe, voor elk net dat nog geen toegang heeft. Impedantie-nets en paren worden overgeslagen, omdat een stub ze schaadt.

Ontwerpregelcontroles

agentee check --item pcb:NAME
agentee drc NAME
agentee drc NAME --list

check voert elke regel uit; drc toont alleen de regel-diagnostiek van het layout, elk begint met zijn id in haakjes, en --list toont elke regel met of deze op deze printplaat van toepassing is. Fouten blokkeren het fabpakket. Waarschuwingen en meldingen zijn praktijk in plaats van fab-limieten: volg ze tenzij het ontwerp een reden geeft, en schrijf die reden in DESIGN.md.

Routing is klaar als unrouted 0 is voor elk net in agentee show pcb:NAME.

De pinnen van een chip ontwarren

agentee pinswap NAME --part U3
agentee pinswap NAME --part U3 --write

pinswap herleidt de verwisselbare I/O van een FPGA of MCU (zelfde bank, paren als paren, klokpinnen op klokpinnen) om het ratsnest te ontwarren, en --write herschrijft de pin-referenties van het schema.

De layout-engine

agentee layout NAME voert de geconfigureerde fasen van de layout-engine in volgorde uit (constraints, place, access, global route, detail route, finish) en toont een score per term met de ergste overtreders van elk. --from, --to en --only kiezen de fasen. Het is nieuwer dan place en route; de fasen en hun instellingen staan in de [engine]-tabel van het layout, en de viewer kan ze uitvoeren op het layout zoals het in het venster staat.

Verbeter deze handleiding · Markdown voor agents