Projektowanie
Rozmieszczanie, trasy i wylewki
Automatyczne rozmieszczanie, wylewki masy i zasilania, połączenia płaszczyzn, automatyczny traser, opisy sitodruku, pady testowe i sprawdzanie zasad projektowania, które decyduje o pakiecie produkcyjnym.
Projekt PCB (layout) rozmieszcza footprints ze schematu na płytce i łączy je miedzią. Każde polecenie tutaj zapisuje zwykłe wpisy do *.pcb.toml, więc niezależnie od tego, co zrobił rozmieszczacz lub traser, ty lub agent możesz to edytować później.
agentee new layout NAMEDodaj board i schematic do startera. Weryfikacja zgłasza wtedy każdy element, który nie jest jeszcze rozmieszczony.
Rozmieszczanie
agentee place NAME
agentee render pcb:NAME -o placed.pngagentee place to szybki start dla całej płytki. W kolejności priorytetu:
- umieszcza złącza na krawędziach, stroną stykową na zewnątrz, i nigdy nie stawia złącza RF i złącza USB na jednej krawędzi, jeśli inny podział się zmieści, ponieważ szum USB 3 trafia w pasmo 2,4 GHz;
- układa ścieżkę RF w linii prostej od złącza do złącza, z elementami równoległymi obok linii, w ich węźle;
- przesuwa duże układy scalone do środka, z dala od krawędzi i otworów, gdzie depanelowanie wygina płytkę;
- grupuje kondensatory odsprzęgające każdego układu scalonego przy pinach zasilania, które obsługują, oraz jego kryształ przy pinach zegara;
- trzymają przetwornice impulsowe w odległości 8 mm od kryształów i elementów RF, a gorące elementy z dala od siebie;
- trzymają ceramiczne kondensatory 0805 i większe poza strefą gięcia blisko krawędzi i otworów, a mniejsze obracają, aby leżały wzdłuż krawędzi;
- obracają każdy element w stronę jego sieci.
Przewodnik dotyczący rozmieszczania podaje źródło każdej zasady. Wynik zależy tylko od plików i --seed.
Następnie zrób to, co zrobiłby człowiek: spójrz na to, przesuń istotne elementy i zablokuj je.
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 nigdy nie jest przesuwany. --keep-placed zostawia każdy element, który już ma miejsce, --parts rozmieszcza tylko pasujące, a --side both pozwala kondensatorom odsprzęgającym znaleźć się pod BGA z tyłu. [place] edges w projekcie PCB przypina złącze do krawędzi, a keepouts to wielokąty, do których courtyard nie może wejść:
[place]
edges = { J1 = "left", J2 = "right" }
keepouts = [[[0, 0], [8, 0], [8, 6], [0, 6]]]Wylewki i płaszczyzny
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 1Strefa wypełnia swój obrys (domyślnie płytkę) minus miedź każdej innej sieci powiększona o jej odstęp, jako dokładne wielokąty z zaokrąglonymi rogami. Szyjki węższe niż min_width strefy są usuwane, tak jak producent je graweruje, a wyspy, które nie łączą się z niczym, są odrzucane. Na jednej warstwie strefy wypełniają się według priority, więc wylewka zasilania wewnątrz wylewki masy na całą płytkę jest wylewana wokół, a nie zwarta z nią. --pad-connection relief łączy pady czterema promieniami zamiast litej miedzi.
Wypełnienia są obliczane przy wczytywaniu i buforowane. agentee fill NAME zapisuje je na końcu pliku projektu PCB, więc świeży checkout wczytuje się bez wypełniania.
Połącz pady z płaszczyznami
agentee tie NAMESieć ze strefą to sieć płaszczyznowa. tie daje każdemu padowi SMD sieci płaszczyznowej krótki stub i przelotkę obok, po stronie z dala od elementu, z dala od każdego pada i innej sieci. Tak pady masy i zasilania powinny łączyć się z płaszczyzną, zamiast ścieżek między nimi. Pad, który już ma przelotkę swojej sieci w pobliżu, zostaje w spokoju, a pad bez legalnego miejsca jest wymieniany pod failed.
Trasowanie
agentee route NAME --nets 'USB_*,SPI_*' --layers F.Cu,B.Cu
agentee route NAME --nets '*'Trasownik działa na siatce 0,05 mm i utrzymuje szerokość, odstępy, warstwy i przelotki każdej klasy względem wszystkiego, co już tam jest. Kroczy w kierunkach 45-stopniowych, nalicza koszty za przelotki i zakręty, później napina biegi i zwęża ścieżkę do pada, który jest węższy niż szerokość klasy. Połączenie bez wolnej ścieżki rozrywa to, co stoi na drodze, i te sieci wracają do kolejki.
- Glob w
--netsnigdy nie pasuje do sieci płaszczyznowej, więc--nets '*'trasy wszystkie sygnały i zostawia masę płaszczyznom. - Istniejąca miedź nigdy nie jest przesuwana, chyba że
--reroutenajpierw usuwa ścieżki i przelotki nazwanych sieci. - Gdy kilka połączeń zawiedzie, trasy je ponownie razem z sieciami wokół i
--reroute, albo przejdź na--grid 0.025. --pairstrasy pary różniczkowe jako sprzężone pary, gdzie się zmieszczą.--via-in-padpozwala przelotce usiąść wewnątrz pada SMD swojej sieci, wypełnionej i pokrytej.--dry-runraportuje bez zapisywania.
Najpierw ręcznie trasy sieci, które mają znaczenie: linia RF, gorący pętla przetwornicy, kryształ. Potem pozwól trasownikowi wypełnić resztę, klasa po klasie.
Ręcznie, ścieżki i przelotki to też polecenia:
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Ścieżka musi wejść w pad. Taka, której linia środkowa tylko muska krawędź pada, jest oznaczana, nawet jeśli miedź się dotyka.
Szytowanie i fanouty
[[stitching]]
net = "GND"
pitch = "2.5mm"
[[stitching]]
net = "GND"
fence = ["RF_*"]
[[fanouts]]
ref = "U3"
skip_rings = 2[[stitching]] umieszcza przelotki masy na siatce wszędzie tam, gdzie nie kolidują z żadną inną siecią, albo ogrodzenie z nich wzdłuż ścieżek nazwanych sieci. [[fanouts]] stawia przelotkę w każdym połączonym padzie BGA, zostawiając zewnętrzne pierścienie na ucieczkę na warstwie górnej. Oba to zasady: przelotki są umieszczane ponownie za każdym razem, gdy miedź wokół nich się zmienia. agentee edit pcb NAME stitch GND --pitch 2.5mm i fanout U3 --skip-rings 2 je zapisują.
Opisy
Sprawdzanie oznacza każdą etykietę odniesienia, która zagęszcza inny tekst, leży na padzie lub przelotce albo wychodzi poza płytkę, i podaje miejsce, które przechodzi. agentee silk przenosi je wszystkie tam:
agentee silk NAME
agentee silk NAME --hide--hide ukrywa etykiety, które nie mają dokąd pójść, typowo małe elementy biernego pod BGA.
Każda płytka ma też agentee vX.Y.Z-HASH w swoich opisach, domyślnie na spodzie. Potrzebuje wolnego pasma około 23 na 1,2 mm; na małej lub zatłoczonej płytce, zwolnij miejsce dla niego albo ustaw [watermark] at samodzielnie. Pakiet produkcyjny jest odrzucany bez niego.
Pady testowe
agentee testpoints NAME
agentee testpoints NAME --nets '3V3,*RST*' --side B --pitch 2.54Każda płytka potrzebuje dostępu do sondowania do uruchomienia i fixture'a z pinami pogo do testów produkcyjnych. Domyślnie to szyny zasilania, masa, resety, włączenia, power good, zegary i magistrale niskiej prędkości; węzły przełączania i sprzężenie zwrotne przetwornic są celowo pomijane. testpoints dodaje element TP w schemacie, pad 1 mm po stronie sondowania blisko miedzi sieci i zatrasyowaną ścieżkę do niego, dla każdej sieci, która jeszcze nie ma dostępu. Sieci impedancyjne i pary są pomijane, ponieważ stub im szkodzi.
Sprawdzanie zasad projektowania
agentee check --item pcb:NAME
agentee drc NAME
agentee drc NAME --listcheck uruchamia każdą zasadę; drc drukuje tylko diagnostykę zasad projektu PCB, każda zaczynająca się od jej identyfikatora w nawiasach, a --list drukuje każdą zasadę z informacją, czy dotyczy tej płytki. Błędy blokują pakiet produkcyjny. Ostrzeżenia i powiadomienia to praktyka, a nie limity producenta: stosuj się do nich, chyba że projekt podaje powód, i zapisz ten powód w DESIGN.md.
Trasowanie jest zakończone, gdy unrouted wynosi 0 dla każdej sieci w agentee show pcb:NAME.
Rozplątywanie pinów układu
agentee pinswap NAME --part U3
agentee pinswap NAME --part U3 --writepinswap przypisuje na nowo wymienne I/O FPGI lub MCU (ten sam bank, pary jako pary, piny zegara zostają na pinach zegara), aby rozplątać ratsnest, a --write przepisuje odniesienia pinów w schemacie.
Silnik projektu PCB
agentee layout NAME uruchamia skonfigurowane etapy silnika projektu PCB po kolei (ograniczenia, rozmieszczenie, dostęp, globalne trasowanie, szczegółowe trasowanie, wykończenie) i drukuje wynik dla każdego członu z najgorszymi naruszeniami. --from, --to i --only wybierają etapy. Jest nowszy niż place i route; etapy i ich ustawienia są w tabeli [engine] projektu PCB, a podgląd może je uruchomić na projekcie, jaki stoi w oknie.