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| identyfikator | waga | działa, gdy | sprawdzenia |
|---|---|---|---|
via-cuts-pad | błąd | zawsze | przelotka, 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-pad | ostrzeżenie | przelotki na padach | otwór mieści się w padzie, ale pierścień przelotki sięga za krawędź padu pod soldermaskę |
via-in-pad | informacja | przelotki na padach | zlicza 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-fill | błąd | przelotki na padach | przelotka 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-pad | ostrzeżenie | zawsze | otwó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-size | błąd | zawsze | otwory 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-size | błąd | otwory szczelinowe | szczeliny węższe niż min_plated_slot_width lub min_npth_slot_width, lub krótsze niż dwukrotność ich szerokości |
aspect-ratio | błąd | zawsze | metalizowane otwory, których stosunek głębokości (miedzi i dielektryka, które przechodzą) do średnicy otworu przekracza max_aspect_ratio |
hole-to-copper | błąd | zawsze | ś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-copper | błąd | 4 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-copper | błąd | otwory niemetalizowane | ścianka otworu niemetalizowanego bliżej niż min_npth_to_copper od jakiejkolwiek miedzi, w tym wylewki własnej sieci |
hole-to-edge | błąd | otwory 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-gap | błąd | zawsze | pady 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-edge | błąd | zawsze | miedź padu bliżej niż min_copper_to_edge od obrysu płytki lub wycięcia; pady oznaczone edge = true są wyłączone |
edge-pad-reach | ostrzeżenie | zawsze | pad oznaczony edge = true, który nie sięga do obrysu płytki |
starved-thermal | ostrzeżenie | wylewki | pad 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-edge | ostrzeżenie | elementy | pady 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-edge | informacja | elementy | korpus 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 |
fiducials | informacja | elementy | brak footpritu nazwanego jak Fiducial na płytce |
tooling-holes | informacja | elementy | brak niemetalizowanego otworu o średnicy 1,5 mm lub większej |
bga-pad | błąd | BGA | pady BGA (16 lub więcej okrągłych padów SMD) mniejsze niż min_bga_pad |
bga-pitch | błąd | BGA | krok kulek mniejszy niż min_bga_pitch |
bga-pad-ratio | ostrzeżenie | BGA | średnica padu poza zakresem 40% do 65% kroku (rozmiary padów wg IPC-7351) |
paste-without-mask | ostrzeżenie | elementy | pad miedziany z pastą, ale bez otwarcia maski po tej stronie, więc szablon drukuje na soldermaskę |
mlcc-flex-zone-case | informacja | kondensatory ceramiczne | kondensator 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-zone | informacja | kondensatory ceramiczne | mniejszy 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-info | informacja | kondensatory ceramiczne | zlicza mniejsze kondensatory ceramiczne w odległości flex_zone, które już leżą wzdłuż krawędzi |
tombstone-risk | informacja | chipy o rozmiarze 0603 lub mniejszym | dwupadowy 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-shadow | informacja | wysokości elementów powyżej 3 mm | dwupadowy 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-access | informacja | elementy | sieci, 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-geometry | informacja | punkty testowe | pad 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-distance | informacja | elementy | kondensator 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-distance | informacja | elementy | kryształ 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-centre | informacja | elementy | duż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-close | informacja | elementy | dwa 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-spread | informacja | elementy | bierny 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-edge | informacja | elementy | złą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 |
short | błąd | zawsze | miedź dwóch różnych sieci się styka |
clearance | błąd | zawsze | miedź 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 |
unrouted | błąd | zawsze | sieć, której pady nie są wszystkie połączone ścieżkami, przelotkami i wylewkami; wymieniane są grupy, które są rozdzielone |
dangling-track | ostrzeżenie | zawsze | koniec ścieżki, który nie dotyka żadnej miedzi swojej sieci ani żadnej wylewki |
track-grazes-pad | ostrzeżenie | zawsze | ścieżki, które docierają do padu tylko krawędzią; prowadź linię środkową do padu |
copper-to-edge | błąd | zawsze | ś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-board | błąd | zawsze | pady poza obrysem lub w wycięciu płytki; pady oznaczone edge = true są wyłączone |
stitching | informacja | zawsze | liczy przelotki, które umieścił każdy wpis [[stitching]] |
stitching-empty | ostrzeżenie | zawsze | wpis [[stitching]], który nie umieścił żadnej przelotki |
fanout-empty | ostrzeżenie | zawsze | wpis [[fanouts]], który nie umieścił żadnej przelotki |
hole-to-hole | błąd | zawsze | otwory 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-via | błąd | zawsze | przelotka 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-lamination | błąd | zawsze | przelotki, 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 |
neckdown | informacja | zawsze | ś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-width | błąd | zawsze | ścieżka węższa niż szerokość jej klasy, która nie jest zwężeniem |
impedance-width | ostrzeżenie | klasy impedancji | ścieżka klasy impedancji o innej szerokości; jej impedancja się zmienia |
impedance-trace | błąd | klasy 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-overlap | błąd | zawsze | ścieżki tej samej sieci biegnące jedna nad drugą; miedź jest podwojona |
acute-turn | ostrzeżenie | zawsze | ścieżka zawracająca pod kątem większym niż 90 stopni, pułapka kwasowa |
zone-overlap | błąd | wylewki | wylewki dwóch sieci na jednej warstwie nakładają się, zwarcie |
zone-to-zone | błąd | wylewki | wylewki dwóch sieci na jednej warstwie bliżej niż ich odstęp |
zone-clearance | błąd | wylewki | wylewka, która pokrywa lub jest zbyt blisko miedzi innej sieci |
zone-tips | ostrzeżenie | wylewki | wierzchołki wylewki ostrzejsze niż 30 stopni; zwiększ min_width strefy |
copper-neck | ostrzeżenie | wylewki | wąskie miejsca w wylewce węższe niż 90% min_width strefy, które wylewka powinna była otworzyć; liczone z najwęższym miejscem |
zone-islands | informacja | zawsze | wyspy wylewki, które nie dotykają żadnej części sieci strefy i zostały usunięte |
courtyard-overlap | błąd | elementy | courtyardy dwóch elementów po jednej stronie nakładają się na siebie obrysem |
courtyard-hole | błąd | elementy | courtyard, który pokrywa otwór montażowy lub otwór bez miedzi innego elementu |
mask-web | błąd | zawsze | pady 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-text | błąd | zawsze | tekst 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-hidden | ostrzeżenie | zawsze | tekst opisu ukryty tylko pod korpusem innego elementu |
silk-text-height | ostrzeżenie | zawsze | tekst opisu mniejszy niż min_silk_text_height |
silk-artwork | błąd | zawsze | grafika opisu na padach, nad tekstem opisu lub poza płytką |
watermark | błąd | zawsze | znak 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-width | ostrzeżenie | zawsze | linie 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-skew | błąd | pary | para, której przesunięcie fazowe przekracza max_skew pary lub max_skew klasy, z siecią, którą należy wydłużyć |
pair-skew-info | informacja | pary | przesunięcie fazowe każdej pary w granicach limitu |
pair-gap | błąd | pary | para biegnąca równolegle z odstępem innym niż diff_gap klasy, przekraczającym max_uncoupled |
pair-coupling | ostrzeżenie | pary | mniej niż 80% pary biegnie równolegle z odstępem pary |
match-length | błąd | grupy dopasowania długości | członek grupy dopasowania, którego długość odbiega od docelowej o więcej niż tolerancja |
interface-pair | błąd | interfejsy | sieć interfejsu różnicowego bez pary |
interface-impedance | błąd | interfejsy | sieć interfejsu, której klasa nie ma docelowej impedancji, sieć poza oknem impedancji lub brak odstępu pary w interfejsie różnicowym |
interface-skew | błąd | interfejsy | para, której przesunięcie fazowe przekracza max_skew interfejsu |
interface-bus-skew | błąd | interfejsy | sygnały danych rozchodzą się o więcej niż max_bus_skew |
interface-clock-window | błąd | interfejsy | sygnał danych przybywa poza clock_window od zegara |
interface-vias | błąd | interfejsy | trasa z większą liczbą przelotek niż max_vias |
interface-stub | błąd | interfejsy | stub przelotki dłuższy niż max_stub |
interface-return-via | błąd | interfejsy | przelotka sygnałowa bez przelotki odniesienia w promieniu return_via |
interface-length | błąd | interfejsy | trasa dłuższa niż max_length |
interface-reference | błąd | interfejsy | trasa 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 centreZasady 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ć.