Progettazione
Posizionamento, sbroglio e aree di rame
Posizionamento automatico, aree di rame per massa e alimentazione, collegamenti di piano, il router automatico, etichette serigrafiche, piazzole di test e i controlli delle regole di progettazione che bloccano il pacchetto per il produttore.
Un layout posiziona i footprint dello schema sulla scheda e li unisce con il rame. Ogni comando qui scrive voci ordinarie nel *.pcb.toml, quindi qualunque cosa il posizionatore o il router abbia fatto, tu o l'agente potete modificarla dopo.
agentee new layout NAMEAggiungi board e schematic al punto di partenza. La verifica segnala poi ogni componente non ancora posizionato.
Posiziona
agentee place NAME
agentee render pcb:NAME -o placed.pngagentee place è un avvio rapido per l'intera scheda. In ordine di priorità, fa:
- posiziona i connettori sui bordi con il lato di accoppiamento verso l'esterno, e mai un connettore RF e un connettore USB sullo stesso bordo se un'altra divisione è possibile, perché il rumore USB 3 cade nella banda dei 2,4 GHz;
- disegna un percorso RF in linea retta da connettore a connettore, con i componenti shunt accanto alla linea, nel loro nodo;
- sposta i chip grandi verso il centro, lontano dai bordi e dai fori dove la depanelizzazione piega la scheda;
- raggruppa i condensatori di disaccoppiamento di ogni IC sui pin di alimentazione che servono, e il suo cristallo sui suoi pin di clock;
- tiene i regolatori a commutazione a 8 mm da cristalli e componenti RF, e i componenti caldi lontani tra loro;
- tiene i condensatori ceramici 0805 e più grandi fuori dalla zona di flessione vicino a bordi e fori, e ruota i piccoli per farli giacere lungo il bordo;
- ruota ogni componente verso i suoi net.
Il riferimento di posizionamento fornisce la fonte per ogni regola. Il risultato dipende solo dai file e da --seed.
Poi fai quello che farebbe una persona: guardalo, sposta i componenti importanti e bloccali.
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 non viene mai spostato. --keep-placed lascia ogni componente che ha già una posizione, --parts posiziona solo quelli corrispondenti, e --side both permette ai condensatori di disaccoppiamento di andare sotto un BGA sul retro. [place] edges nel layout fissa un connettore a un bordo, e keepouts sono poligoni che nessun courtyard può entrare:
[place]
edges = { J1 = "left", J2 = "right" }
keepouts = [[[0, 0], [8, 0], [8, 6], [0, 6]]]Aree di rame e piani
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 1Un'area riempie il suo contorno (la scheda di default) meno il rame di ogni altro net, cresciuto del suo clearance, come poligoni esatti con angoli arrotondati. I colli più stretti del min_width dell'area vengono rimossi, come farebbe il produttore, e le isole che non toccano nulla vengono scartate. Su un singolo layer, le aree si riempiono per priority, quindi un'area di alimentazione dentro un'area di massa su tutta la scheda viene riempita attorno, non in corto con essa. --pad-connection relief unisce le piazzole con quattro raggi invece che con rame pieno.
I riempimenti vengono calcolati al caricamento e messi in cache. agentee fill NAME li salva alla fine del file di layout, così un checkout fresco carica senza riempire.
Collega le piazzole ai loro piani
agentee tie NAMEUn net con un'area è un net di piano. tie dà a ogni piazzola SMD di un net di piano un breve stub e una via accanto, sul lato opposto al componente, libera da ogni piazzola e altro net. È così che le piazzole di massa e alimentazione dovrebbero raggiungere un piano, invece di piste tra di esse. Una piazzola che ha già una via del suo net nelle vicinanze viene lasciata così com'è, e una piazzola senza posto legale viene elencata sotto failed.
Routing
agentee route NAME --nets 'USB_*,SPI_*' --layers F.Cu,B.Cu
agentee route NAME --nets '*'Il router lavora su una griglia di 0,05 mm e mantiene la larghezza, il clearance, i layer e le vie di ogni classe rispetto a tutto ciò che c'è già. Avanza in direzioni di 45 gradi, applica un costo per vie e curve, stringe i percorsi dopo, e restringe una pista in una piazzola che è più stretta della larghezza della classe. Una connessione senza percorso libero rimuove ciò che le sta davanti e quei net tornano in coda.
- Un glob in
--netsnon corrisponde mai a un net di piano, quindi--nets '*'fa il routing di ogni segnale e lascia la massa ai piani. - Il rame esistente non viene mai spostato, a meno che
--reroutenon rimuova prima le piste e le vie dei net specificati. - Quando poche connessioni falliscono, fai di nuovo il routing insieme ai net circostanti e con
--reroute, oppure passa a--grid 0.025. --pairsfa il routing delle coppie differenziali come coppie accoppiate dove possibile.--via-in-padpermette a una via di stare dentro una piazzola SMD del suo net, riempita e coperta.--dry-runriporta senza scrivere.
Fai prima il routing a mano dei net importanti: una linea RF, il loop caldo di un commutatore, un cristallo. Poi lascia che il router riempia il resto, una classe alla volta.
A mano, piste e vie sono anche comandi:
agentee edit pcb NAME track RF_OUT F.Cu 19.28,12 30.92,12
agentee edit pcb NAME via GND 7.2,8.9Una pista deve entrare in una piazzola. Una la cui linea centrale sfiora solo il bordo della piazzola viene segnalata anche se il rame tocca.
Cuciture e fanout
[[stitching]]
net = "GND"
pitch = "2.5mm"
[[stitching]]
net = "GND"
fence = ["RF_*"]
[[fanouts]]
ref = "U3"
skip_rings = 2[[stitching]] posiziona vie di massa su una griglia ovunque siano libere da ogni altro net, o una recinzione di esse lungo le piste dei net specificati. [[fanouts]] mette una via in ogni piazzola collegata di un BGA, lasciando gli anelli esterni per l'uscita sul layer superiore. Entrambi sono regole: le vie vengono posizionate di nuovo ogni volta che il rame attorno cambia. agentee edit pcb NAME stitch GND --pitch 2.5mm e fanout U3 --skip-rings 2 le scrivono.
Serigrafia
La verifica segnala ogni etichetta di riferimento che affolla altro testo, sta su una piazzola o una via, o esce dalla scheda, e indica un punto che passa. agentee silk le sposta tutte lì:
agentee silk NAME
agentee silk NAME --hide--hide nasconde le etichette senza posto, tipicamente piccoli passivi sotto un BGA.
Ogni scheda porta anche agentee vX.Y.Z-HASH nella sua serigrafia, sul retro di default. Serve una striscia libera di circa 23 per 1,2 mm; su una scheda piccola o affollata, libera spazio per essa o imposta [watermark] at tu stesso. Il pacchetto di produzione viene rifiutato senza di essa.
Piazzole di test
agentee testpoints NAME
agentee testpoints NAME --nets '3V3,*RST*' --side B --pitch 2.54Ogni scheda ha bisogno di accesso per la sonda per il bring-up e di un fixture a pogo pin per il test di produzione. Di default sono i rail di alimentazione, massa, reset, enable, power good, clock e i bus a bassa velocità; i nodi di commutazione e il feedback dei regolatori sono esclusi apposta. testpoints aggiunge un componente TP nello schema, una piazzola da 1 mm sul lato di sonda vicino al rame del net, e una pista routingata verso di essa, per ogni net che non ha ancora accesso. I net di impedenza e le coppie vengono saltati, perché uno stub li danneggia.
Controlli delle regole di progettazione
agentee check --item pcb:NAME
agentee drc NAME
agentee drc NAME --listcheck esegue ogni regola; drc stampa solo le diagnostiche delle regole del layout, ognuna che inizia con il suo id tra parentesi quadre, e --list stampa ogni regola con se si applica a questa scheda. Gli errori bloccano il pacchetto di produzione. Gli avvisi e le note sono pratica più che limiti del produttore: seguili a meno che il design non dia una ragione, e scrivi la ragione in DESIGN.md.
Il routing è finito quando unrouted è 0 per ogni net in agentee show pcb:NAME.
Scompigliare i pin di un chip
agentee pinswap NAME --part U3
agentee pinswap NAME --part U3 --writepinswap riassegna gli I/O scambiabili di un FPGA o MCU (stessa bank, coppie come coppie, pin di clock tenuti su pin di clock) per scompigliare il ratsnest, e --write riscrive i riferimenti dei pin dello schema.
Il motore di layout
agentee layout NAME esegue le fasi configurate del motore di layout in ordine (vincoli, posizionamento, accesso, routing globale, routing dettagliato, finitura) e stampa un punteggio per termine con i peggiori trasgressori di ciascuno. --from, --to e --only scelgono le fasi. È più recente di place e route; le fasi e le loro impostazioni sono nella tabella [engine] del layout, e il visualizzatore può eseguirle sul layout come sta nella finestra.