agentee

Płytka

Sprawdzanie zasad projektowania

Każda zasada projektu PCB z identyfikatorem, wagą i warunkiem uruchomienia: miedź, wiercenia, soldermaska, opisy, montaż, wylewki, sygnały, dostęp testowy i rozmieszczenie.

Sprawdzanie projektu PCB działa z rejestru reguł, każda ma stabilny identyfikator, kategorię (copper, drill, mask, silk, assembly, zone, signal, test, placement), domyślną wagę oraz warunek dotyczący płytki: reguła dla warstw wewnętrznych działa tylko przy 4 lub więcej warstwach miedzi, reguła wypełniania przelotek tylko, gdy przelotki znajdują się na padach, a reguła BGA tylko, gdy na płytce jest BGA. Każda wiadomość reguły zaczyna się od jej identyfikatora w nawiasach kwadratowych, np. [via-cuts-pad]. agentee drc NAME --list (MCP drc z list = true) wypisuje każdą regułę z jej kategorią, wagą oraz informacją, czy dotyczy tej płytki i dlaczego; agentee drc NAME wypisuje tylko wiadomości o regułach projektu PCB.

[drc]                          # in the board file
disable = ["silk-width"]       # rule ids to skip; their checks are not computed, so with silk-text
                               # and silk-hidden off `agentee silk` has nothing to move
severity = { "starved-thermal" = "error", "via-in-pad" = "warning" }   # info | warning | error
tombstone_ratio = 3            # copper or feed width one chip pad may have over the other
identyfikatorwagadziała, gdysprawdzenia
via-cuts-padbłądzawszeprzelotka, której miedź nakłada się na pad SMD lub go dotyka, a jej otwór nie mieści się w całości w padzie: lut spływa po rurce i krawędź padu zostaje uszkodzona. Przelotka innej sieci dotykająca padu jest zgłaszana jako short
via-annulus-past-padostrzeżenieprzelotki na padachotwór mieści się w padzie, ale pierścień przelotki sięga za krawędź padu pod soldermaskę
via-in-padinformacjaprzelotki na padachzlicza przelotki na padach SMD własnej sieci (otwór wewnątrz padu); fab-notes.txt prosi producenta o wypełnienie i zamknięcie dokładnie tych (typ VII wg IPC-4761)
via-in-pad-fillbłądprzelotki na padachprzelotka na padzie z otworem szerszym niż max_filled_via_drill lub z typem przelotki ustawiającym fill inne niż filled_capped (typ VII wg IPC-4761)
hole-to-smd-padostrzeżeniezawszeotwór przelotki bliżej niż min_hole_to_smd_pad od padu SMD własnej sieci (lub bez sieci), którego nie dotyka; pasta i lut mogą do niego spłynąć
drill-sizebłądzawszeotwory padów mniejsze niż min_drill (metalizowane) lub min_npth_drill (niemetalizowane), lub większe niż max_drill (większe otwory są traktowane jako wycięcia, rysuj je jako wycięcia). Rozmiary przelotek są sprawdzane na [[vias]] płytki
slot-sizebłądotwory szczelinoweszczeliny węższe niż min_plated_slot_width lub min_npth_slot_width, lub krótsze niż dwukrotność ich szerokości
aspect-ratiobłądzawszemetalizowane otwory, których stosunek głębokości (miedzi i dielektryka, które przechodzą) do średnicy otworu przekracza max_aspect_ratio
hole-to-copperbłądzawsześcianka otworu przelotki lub metalizowanego padu bliżej niż min_via_hole_to_copper lub min_pth_hole_to_copper od miedzi innej sieci na warstwie, którą otwór przechodzi: ścieżki, pady, przelotki, wylewki
inner-hole-to-copperbłąd4 lub więcej warstw miedziścianka otworu metalizowanego padu bliżej niż min_inner_pth_hole_to_copper od miedzi innej sieci na warstwie wewnętrznej
npth-to-copperbłądotwory niemetalizowaneścianka otworu niemetalizowanego bliżej niż min_npth_to_copper od jakiejkolwiek miedzi, w tym wylewki własnej sieci
hole-to-edgebłądotwory niemetalizowaneścianka otworu niemetalizowanego bliżej niż min_copper_to_edge od obrysu płytki lub wycięcia, lub przechodząca przez nie
smd-pad-gapbłądzawszepady SMD różnych sieci bliżej niż min_smd_pad_gap, jedna linia dla każdej pary elementów z najbliższymi padami
pad-to-edgebłądzawszemiedź padu bliżej niż min_copper_to_edge od obrysu płytki lub wycięcia; pady oznaczone edge = true są wyłączone
edge-pad-reachostrzeżeniezawszepad oznaczony edge = true, który nie sięga do obrysu płytki
starved-thermalostrzeżeniewylewkipad połączony z wylewką własnej sieci na mniej niż połowę swojego obrysu, przez mniej niż dwa ramiona o szerokości co najmniej min_track_width, z mniejszą ilością miedzi łącznie niż szerokość samego padu
part-to-edgeostrzeżenieelementypady SMD bliżej niż min_part_to_edge od obrysu lub wycięcia płytki, gdzie naprężenia przy wycinaniu pękają elementy; pomija punkty odniesienia, otwory montażowe i elementy z padami edge
part-body-to-edgeinformacjaelementykorpus elementu bliżej niż min_body_to_edge od obrysu lub wycięcia płytki, lub wykraczający poza nie (wykraczanie za wycięcie liczy się jako wykraczanie) (przewodniki DFM montażu: brak elementów w odległości 1 mm od krawędzi). Korpus to obrys producenta, inaczej courtyard, inaczej miedź padu, a wiadomość wskazuje, który; pomija punkty odniesienia, otwory montażowe, elementy z padami edge i footprity z overhang = true
fiducialsinformacjaelementybrak footpritu nazwanego jak Fiducial na płytce
tooling-holesinformacjaelementybrak niemetalizowanego otworu o średnicy 1,5 mm lub większej
bga-padbłądBGApady BGA (16 lub więcej okrągłych padów SMD) mniejsze niż min_bga_pad
bga-pitchbłądBGAkrok kulek mniejszy niż min_bga_pitch
bga-pad-ratioostrzeżenieBGAśrednica padu poza zakresem 40% do 65% kroku (rozmiary padów wg IPC-7351)
paste-without-maskostrzeżenieelementypad miedziany z pastą, ale bez otwarcia maski po tej stronie, więc szablon drukuje na soldermaskę
mlcc-flex-zone-caseinformacjakondensatory ceramicznekondensator ceramiczny o obudowie 0805 (2012 metryczne) lub większej w odległości flex_zone od obrysu, narożnika płytki, wycięcia, otworu montażowego (footprint MountingHole*) lub niemetalizowanego otworu o średnicy 2 mm lub większej (Knowles: strefa naprężeń znajduje się zwykle w odległości 5 mm od krawędzi PCB lub punktów mocowania); im dłuższy chip, tym większe odkształcenie na jego końcach
mlcc-flex-zoneinformacjakondensatory ceramicznemniejszy kondensator ceramiczny w odległości flex_zone, którego oś dłuższa jest skierowana na najbliższą krawędź, narożnik lub otwór (FAQ Murata: orientuj chip poziomo względem kierunku naprężeń, tak aby jego oś dłuższa biegła wzdłuż krawędzi)
mlcc-flex-zone-infoinformacjakondensatory ceramicznezlicza mniejsze kondensatory ceramiczne w odległości flex_zone, które już leżą wzdłuż krawędzi
tombstone-riskinformacjachipy o rozmiarze 0603 lub mniejszymdwupadowy element SMD o rozmiarze 0603 (1608 metryczne) lub mniejszym, którego pady różnią się rozmiarem lub kształtem, który ma przelotkę na jednym padzie, a nie na drugim, lub którego miedź w odległości 0,3 mm od jednego padu na jego warstwie (ścieżki, przelotki, wylewki jego sieci) przekracza tombstone_ratio (domyślnie 3) razy miedź drugiego; pad połączony z wylewką przez odciążenie termiczne jest ważony przez szerokość jego ramion względem szerokości ścieżki na drugim padzie, a pad bez ścieżki, przelotki lub wylewki nie jest porównywany; koniec, który nagrzewa się pierwszy, lutowany jest pierwszy i stawia element pionowo (przewodniki DFM EMS: symetryczne pady i zrównoważona miedź na obu końcach)
tall-part-shadowinformacjawysokości elementów powyżej 3 mmdwupadowy chip o rozmiarze 0603 lub mniejszym bliżej elementu wyższego niż 3 mm niż wysokość tego elementu, mierzona od padów chipu do korpusu wysokiego elementu (zasada EMS 1:1: zacienienie podczas reflow i inspekcji); wysokości pochodzą z height footpritu, inaczej z korpusu rysowanego przez widok 3D bez modelu: jego domyślna wartość dla rodziny (SOIC, QFN, złącza, osłony) lub _h1.25mm w nazwie
test-accessinformacjaelementysieci, o które prosi sekcja [test], bez dostępu z strony sondy: brak padu punktu testowego (oznaczenie TP1... lub footprint o nazwie TestPoint*), brak odsłoniętego padu przelotki z miedzią (through_holes), brak przelotki bez topowania (vias). Sieci w klasach z celem impedancji oraz sieci par są wyłączone i wymieniane z nazwy, ponieważ stub im szkodzi
test-pad-geometryinformacjapunkty testowepad punktu testowego mniejszy niż min_test_pad, bliżej niż min_test_pad_pitch od środka do środka innego padu, bliżej niż min_test_pad_to_body od korpusu innego elementu po stronie sondy, bliżej niż min_test_pad_to_edge od krawędzi płytki lub otworu narzędziowego (otwory bez miedzi i otwory montażowe) lub nie po stronie sondy
placement-decoupling-distanceinformacjaelementykondensator między zasilaniem a masą, którego pad zasilania jest dalej niż decoupling_distance (3 mm) od najbliższego pinu układu scalonego na tym zasilaniu; dla kondensatorów filtrujących o pojemności powyżej 1 uF odległość jest 2,5 razy większa
placement-crystal-distanceinformacjaelementykryształ lub oscylator (oznaczenie Y lub footprint o nazwie sugerującej kryształ lub oscylator), którego pad sygnału jest dalej niż crystal_distance (5 mm) od pinu układu scalonego na tej samej sieci
placement-large-part-off-centreinformacjaelementyduży układ (BGA, obudowa z 16 lub więcej pinami o powierzchni powyżej 25 mm2, w pozostałych przypadkach elementy z największą liczbą pinów), którego środek courtyardu znajduje się dalej niż off_centre (0,6) od środka płytki w kierunku krawędzi
placement-hot-parts-closeinformacjaelementydwa elementy o wysokiej temperaturze, których courtyardy są bliżej niż hot_distance (5 mm): źródła [[sources]] symulacji termicznych tego projektu PCB o mocy 0,25 W lub większej oraz duże obudowy (courtyard o powierzchni 49 mm2 lub większej), których te symulacje nie wymieniają
placement-cluster-spreadinformacjaelementybierny element dwupinowy, którego sieci sygnałowe docierają tylko do jednego układu scalonego i dalej niż cluster_spread (10 mm) od pinu tego układu
placement-connector-not-at-edgeinformacjaelementyzłącze (pady krawędziowe, overhang = true lub oznaczenie J/P, które nie jest Tag-Connect, U.FL ani padem testowym), którego courtyard jest dalej niż connector_edge (3 mm) od obrysu
shortbłądzawszemiedź dwóch różnych sieci się styka
clearancebłądzawszemiedź dwóch sieci bliżej niż większa z ich odstępów klasowych (odstęp clearance footprintu zastępuje je dla jego padów) lub miedź wchodzi w otwór bez miedzi
unroutedbłądzawszesieć, której pady nie są wszystkie połączone ścieżkami, przelotkami i wylewkami; wymieniane są grupy, które są rozdzielone
dangling-trackostrzeżeniezawszekoniec ścieżki, który nie dotyka żadnej miedzi swojej sieci ani żadnej wylewki
track-grazes-padostrzeżeniezawsześcieżki, które docierają do padu tylko krawędzią; prowadź linię środkową do padu
copper-to-edgebłądzawsześcieżka lub przelotka bliżej niż min_copper_to_edge od obrysu płytki lub wycięcia, lub poza płytką (ścieżka przez wycięcie wychodzi poza płytkę)
pad-off-boardbłądzawszepady poza obrysem lub w wycięciu płytki; pady oznaczone edge = true są wyłączone
stitchinginformacjazawszeliczy przelotki, które umieścił każdy wpis [[stitching]]
stitching-emptyostrzeżeniezawszewpis [[stitching]], który nie umieścił żadnej przelotki
fanout-emptyostrzeżeniezawszewpis [[fanouts]], który nie umieścił żadnej przelotki
hole-to-holebłądzawszeotwory różnych elementów lub przelotki bliżej niż min_hole_to_hole, ściana do ściany, liczone z pierwszą parą; liczone są tylko otwory, których zakresy dzielą dielektryk, więc mikroprelotka obok przelotki pogrzebanej nie stanowi pary
stacked-viabłądzawszeprzelotka w tym samym miejscu co inna przelotka tej samej sieci przez ten sam dielektryk (wiercona dwukrotnie), nasadzona na inną przelotkę na jednej warstwie, gdy stacked_microvias jest wyłączone lub gdy kolejność budowy laminatu jest nieprawidłowa (przelotka pod nasadą wiercona w późniejszym kroku niż ta na górze), lub nasadzona na przelotkę o kontrolowanej głębokości
via-laminationbłądzawszeprzelotki, których zakres i rodzaj wiercenia nie odpowiadają żadnemu krokowi wiercenia laminatu (patrz Lamination), dla każdego typu i zakresu przelotki; komunikat podaje wpis [[vias]] płytki i wymienia wszystkie zakresy, które laminat wierci, według rodzaju wiercenia. Sprawdzenie płytki pozostawia typ przelotki umieszczony przez projekt PCB tej regule
neckdowninformacjazawsześcieżka węższa niż szerokość jej klasy, ale nie mniejsza niż min_track_width, na odcinku do długości neckdown klasy (domyślnie 0,5 mm)
class-widthbłądzawsześcieżka węższa niż szerokość jej klasy, która nie jest zwężeniem
impedance-widthostrzeżenieklasy impedancjiścieżka klasy impedancji o innej szerokości; jej impedancja się zmienia
impedance-tracebłądklasy impedancjiścieżka klasy impedancji, której szerokość (wliczając zwężenia) lub miedź obok niej na warstwie zewnętrznej wyprowadza impedancję poza tolerancję klasy; odstęp nie jest sprawdzany w zakresie długości zwężenia przy padzie lub połączeniu
track-overlapbłądzawsześcieżki tej samej sieci biegnące jedna nad drugą; miedź jest podwojona
acute-turnostrzeżeniezawsześcieżka zawracająca pod kątem większym niż 90 stopni, pułapka kwasowa
zone-overlapbłądwylewkiwylewki dwóch sieci na jednej warstwie nakładają się, zwarcie
zone-to-zonebłądwylewkiwylewki dwóch sieci na jednej warstwie bliżej niż ich odstęp
zone-clearancebłądwylewkiwylewka, która pokrywa lub jest zbyt blisko miedzi innej sieci
zone-tipsostrzeżeniewylewkiwierzchołki wylewki ostrzejsze niż 30 stopni; zwiększ min_width strefy
copper-neckostrzeżeniewylewkiwąskie miejsca w wylewce węższe niż 90% min_width strefy, które wylewka powinna była otworzyć; liczone z najwęższym miejscem
zone-islandsinformacjazawszewyspy wylewki, które nie dotykają żadnej części sieci strefy i zostały usunięte
courtyard-overlapbłądelementycourtyardy dwóch elementów po jednej stronie nakładają się na siebie obrysem
courtyard-holebłądelementycourtyard, który pokrywa otwór montażowy lub otwór bez miedzi innego elementu
mask-webbłądzawszepady różnych sieci, których otwory soldermaski zostawiają mniej niż min_mask_web, jedna linia dla każdej pary elementów; pady footprintu z mask_web = false są pomijane wzajemnie
silk-textbłądzawszetekst opisu, który zagęszcza inny tekst, leży na padach, drukuje się nad przelotkami, przecina obrys opisu lub wychodzi poza płytkę; oznaczenie otrzymuje wolne miejsce (agentee silk przenosi je tam)
silk-hiddenostrzeżeniezawszetekst opisu ukryty tylko pod korpusem innego elementu
silk-text-heightostrzeżeniezawszetekst opisu mniejszy niż min_silk_text_height
silk-artworkbłądzawszegrafika opisu na padach, nad tekstem opisu lub poza płytką
watermarkbłądzawszeznak wodny agentee vX.Y.Z-HASH nie ma wolnego miejsca na opisie lub miejsce [watermark] nie jest wolne; producent odmawia bez miejsca, a wyłączenie reguły nie usuwa znaku wodnego
silk-widthostrzeżeniezawszelinie opisu płytki ([[graphics]] projektu PCB, nie tekst) węższe niż min_silk_width, liczone z najwęższą; opis footprintu jest sprawdzany z footprintem
pair-skewbłądparypara, której przesunięcie fazowe przekracza max_skew pary lub max_skew klasy, z siecią, którą należy wydłużyć
pair-skew-infoinformacjaparyprzesunięcie fazowe każdej pary w granicach limitu
pair-gapbłądparypara biegnąca równolegle z odstępem innym niż diff_gap klasy, przekraczającym max_uncoupled
pair-couplingostrzeżenieparymniej niż 80% pary biegnie równolegle z odstępem pary
match-lengthbłądgrupy dopasowania długościczłonek grupy dopasowania, którego długość odbiega od docelowej o więcej niż tolerancja
interface-pairbłądinterfejsysieć interfejsu różnicowego bez pary
interface-impedancebłądinterfejsysieć interfejsu, której klasa nie ma docelowej impedancji, sieć poza oknem impedancji lub brak odstępu pary w interfejsie różnicowym
interface-skewbłądinterfejsypara, której przesunięcie fazowe przekracza max_skew interfejsu
interface-bus-skewbłądinterfejsysygnały danych rozchodzą się o więcej niż max_bus_skew
interface-clock-windowbłądinterfejsysygnał danych przybywa poza clock_window od zegara
interface-viasbłądinterfejsytrasa z większą liczbą przelotek niż max_vias
interface-stubbłądinterfejsystub przelotki dłuższy niż max_stub
interface-return-viabłądinterfejsyprzelotka sygnałowa bez przelotki odniesienia w promieniu return_via
interface-lengthbłądinterfejsytrasa dłuższa niż max_length
interface-referencebłądinterfejsytrasa biegnąca przez więcej niż max_unreferenced bez płaszczyzny odniesienia obok

Zasady rozmieszczenia są wytycznymi dotyczącymi miejsca elementów; domyślnie to powiadomienia. Podnieś ich wagę przez [drc] severity. Ich progi znajdują się w pliku płytki:

[drc.placement]
decoupling_distance = "3mm"    # supply pad of a decoupling cap to the IC pin
crystal_distance = "5mm"
cluster_spread = "10mm"        # a passive to the only IC it serves
hot_distance = "5mm"           # courtyard gap between large packages
connector_edge = "3mm"         # connector courtyard to the outline
off_centre = 0.6               # fraction of the half width or height from the centre

Zasady mechaniczne (part-body-to-edge, zasady mlcc-flex-zone, tombstone-risk, tall-part-shadow) są wytycznymi i domyślnie mają wagę info; podnieś je przez [drc] severity. Kondensator ceramiczny to element z dokładnie dwoma padami SMD, którego footprint ma nazwę C_* lub zawiera Capacitor, albo którego oznaczenie to C i cyfra, chyba że nazwa footprintu zawiera CP_, Tantal, Elec lub Polymer; mlcc w footprintu lub rozmieszczeniu nadpisuje domyślną klasyfikację. Obudowa pochodzi z nazwy footprintu (1608Metric, w przeciwnym razie kod imperialny, np. 0603), a jeśli nie, z odległości między centrami dwóch padów, która jest bliska długości obudowy.

Id, który nie naznacza żadnej zasady, to ostrzeżenie. Błędy w samych plikach (sieć nieobecna w schemacie, warstwa niebędąca miedzią, zły preset) nie są zasadami i nie można ich wyłączyć.

docs/format.md · Markdown dla agentów