agentee

Printplaat

Ontwerpregelcontroles

Elke layout regel met zijn id, ernst en de voorwaarde waaronder hij wordt uitgevoerd: koper, boringen, masker, zeefdruk, assemblage, zones, signalen, testtoegang en plaatsing.

Layoutchecks worden uitgevoerd vanuit een register van regels, elk met een stabiele id, een categorie (copper, drill, mask, silk, assembly, zone, signal, test, placement), een standaard ernst en een voorwaarde voor de printplaat: een regel voor binnenlagen geldt alleen bij 4 of meer koperlagen, een via-vulregel alleen als vias in pads zitten, een BGA-regel alleen als er een BGA is. Elke melding van een regel begint met de id in haakjes, bijvoorbeeld [via-cuts-pad]. agentee drc NAME --list (MCP drc met list = true) toont elke regel met de categorie, ernst en of deze op deze printplaat van toepassing is en waarom; agentee drc NAME toont alleen de regelmeldingen van het layout.

[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
idernstgeldt wanneerchecks
via-cuts-padfoutaltijdeen via waarvan het koper een SMD-pad overlapt of raakt terwijl de boor niet volledig binnen het pad zit: soldeer loopt de boorgatbuis in en de padrand wordt beschadigd. Een via van een ander net die een pad raakt, wordt als short gemeld
via-annulus-past-padwaarschuwingvias in padsde boor zit in het pad, maar de annulus van de via reikt onder het masker verder dan de padrand
via-in-padinfovias in padstelt de vias in SMD-pads van hun eigen net (boor binnen het pad); fab-notes.txt vraagt de fabrikant om precies deze te vullen en te dichten (IPC-4761 type VII)
via-in-pad-fillfoutvias in padseen via in een pad die breder is geboord dan max_filled_via_drill, of waarvan het viatype een fill heeft die niet filled_capped is (IPC-4761 type VII)
hole-to-smd-padwaarschuwingaltijdeen via-gat dichter dan min_hole_to_smd_pad bij een SMD-pad van zijn eigen net (of zonder net) die hij niet raakt; pasta en soldeer kunnen erin lopen
drill-sizefoutaltijdpadgaten kleiner dan min_drill (geplated) of min_npth_drill (niet-geplated), of groter dan max_drill (grotere gaten worden gerouteerd, teken ze als uitsparingen). Via-maten worden gecheckt op de [[vias]] van de printplaat
slot-sizefoutgaten met een slotslots smaller dan min_plated_slot_width of min_npth_slot_width, of korter dan twee keer hun breedte
aspect-ratiofoutaltijdgeplated gaten waarvan de diepte (het koper en de dielektrica die ze passeren) gedeeld door de boor groter is dan max_aspect_ratio
hole-to-copperfoutaltijdeen via- of geplated pad-gatwand dichter dan min_via_hole_to_copper of min_pth_hole_to_copper bij koper van een ander net op een laag die het gat passeert: sporen, pads, vias, kopervlakken
inner-hole-to-copperfout4+ koperlageneen geplated pad-gatwand dichter dan min_inner_pth_hole_to_copper bij koper van een ander net op een binnenlaag
npth-to-copperfoutniet-geplated gateneen niet-geplated gatwand dichter dan min_npth_to_copper bij elk koper, inclusief het kopervlak van zijn eigen net
hole-to-edgefoutniet-geplated gateneen niet-geplated gatwand dichter dan min_copper_to_edge bij de printplaatcontour of een printplaatuitsparing, of erdoorheen
smd-pad-gapfoutaltijdSMD-pads van verschillende nets dichter dan min_smd_pad_gap, één regel per paar onderdelen met de dichtstbijzijnde pads
pad-to-edgefoutaltijdpadkoper dichter dan min_copper_to_edge bij de printplaatcontour of een printplaatuitsparing; pads gemarkeerd met edge = true zijn uitgesloten
edge-pad-reachwaarschuwingaltijdeen pad gemarkeerd met edge = true dat niet tot de printplaatcontour reikt
starved-thermalwaarschuwingzoneseen pad verbonden met een kopervlak van zijn net over minder dan de helft van zijn contour, met minder dan twee spaken van minimaal min_track_width breed, en met minder koper in totaal dan de eigen breedte van het pad
part-to-edgewaarschuwingonderdelenSMD-pads dichter dan min_part_to_edge bij de contour of een printplaatuitsparing, waar depanelingsstress onderdelen kan barsten; slaat fiducials, montagegaten en onderdelen met edge-pads over
part-body-to-edgeinfoonderdeleneen onderdeellichaam dichter dan min_body_to_edge bij de contour of een printplaatuitsparing, of eroverheen (over een uitsparing telt als eroverheen) (assembly DFM-richtlijnen: geen component binnen 1 mm van de rand). Het lichaam is de fabcontour, anders de courtyard, anders het padkoper, en de melding noemt welke; slaat fiducials, montagegaten, onderdelen met edge-pads en footprints met overhang = true over
fiducialsinfoonderdelengeen footprint met een naam als Fiducial op de printplaat
tooling-holesinfoonderdelengeen niet-geplated gat van 1,5 mm of groter
bga-padfouteen BGABGA-pads (16 of meer ronde SMD-pads) kleiner dan min_bga_pad
bga-pitchfouteen BGAbalpitch fijner dan min_bga_pitch
bga-pad-ratiowaarschuwingeen BGApaddoorspeter buiten 40% tot 65% van de pitch (IPC-7351 landmaten)
paste-without-maskwaarschuwingonderdeleneen koperpad met pasta maar geen maskering op die zijde, zodat de stencil op het masker print
mlcc-flex-zone-caseinfokeramische condensatoreneen keramische condensator van case 0805 (2012 metrisch) of groter binnen flex_zone van de contour, een printplaathoek, een printplaatuitsparing, een montagegat (een MountingHole*-footprint) of een niet-geplated gat van 2 mm of groter (Knowles: de stresszone is typisch binnen 5 mm van de PCB-rand of bevestigingspunten); hoe langer de chip, hoe meer spanning de uiteinden ervaren
mlcc-flex-zoneinfokeramische condensatoreneen kleinere keramische condensator binnen flex_zone waarvan de lange as op de dichtstbijzijnde rand, hoek of gat wijst (Murata FAQ: oriënteer de chip horizontaal op de stressrichting, zodat de lange as langs de rand loopt)
mlcc-flex-zone-infoinfokeramische condensatorentelt de kleinere keramische condensatoren binnen flex_zone die al langs de rand liggen
tombstone-riskinfochips van 0603 of kleinereen tweepad SMD-onderdeel van 0603 (1608 metrisch) of kleiner waarvan de pads in maat of vorm verschillen, dat een via in één pad heeft en niet in het andere, of waarvan het koper binnen 0,3 mm van één pad op zijn laag (sporen, vias, kopervlakken van zijn net) meer dan tombstone_ratio (standaard 3) keer dat van het andere pad is; een pad verbonden met zijn kopervlak via een thermische ontlasting wordt gewogen op de spakbreedte tegen de spoorbreedte op het andere pad, en een pad zonder spoor, via of kopervlak wordt niet vergeleken; het uiteinde dat eerst warm wordt, nat eerst en zet het onderdeel op (EMS DFM-richtlijnen: symmetrische lands en gebalanceerd koper aan beide uiteinden)
tall-part-shadowinfoonderdeelhoogtes boven 3 mmeen tweepad chip van 0603 of kleiner dichter bij een onderdeel hoger dan 3 mm dan de hoogte van dat onderdeel, gemeten van de pads van de chip naar het lichaam van het hoge onderdeel (EMS vuistregel 1:1: schaduw in reflow en inspectie); hoogtes komen uit de height van de footprint, anders uit het lichaam dat de 3D-view tekent zonder model: de standaard van de familie (SOIC, QFN, headers, shields) of een _h1.25mm-deel van de naam
test-accessinfoonderdelennets waarvoor de [test]-sectie vraagt, zonder probe-toegang vanaf de probe-zijde: geen pad van een testpunt (referentie TP1..., of een footprint met de naam TestPoint*), geen blootliggend geplateerd doorvoergat-pad (through_holes), geen via zonder deksel (vias). Nets in klassen met een impedantie-doel en de nets van paren zijn uitgesloten en worden genoemd, omdat een stub ze schaadt
test-pad-geometryinfotestpunteneen testpunt-pad kleiner dan min_test_pad, dichter dan min_test_pad_pitch tot een ander centrum tot centrum, dichter dan min_test_pad_to_body tot het lichaam van een ander onderdeel aan de probe-zijde, dichter dan min_test_pad_to_edge tot de rand van de printplaat of een gereedschapsgat (niet-geplateerde gaten en montagegaten), of niet aan de probe-zijde
placement-decoupling-distanceinfoonderdeleneen condensator tussen voeding en massa waarvan het voeding-pad verder dan decoupling_distance (3 mm) van de dichtstbijzijnde pin van een IC op die voeding ligt, 2,5 keer die afstand voor bulkcondensatoren boven 1 uF
placement-crystal-distanceinfoonderdeleneen kristal of oscillator (referentie Y, of een footprint met een naam als die van een kristal of oscillator) waarvan het signaal-pad verder dan crystal_distance (5 mm) van de IC-pin op zijn net ligt
placement-large-part-off-centreinfoonderdeleneen groot chip (een BGA, een behuizing met 16 of meer pinnen boven 25 mm2, anders de onderdelen met de meeste pinnen) waarvan het courtyard-centrum meer dan off_centre (0,6) van de weg van het printplaatcentrum naar de rand ligt
placement-hot-parts-closeinfoonderdelentwee hete onderdelen waarvan de courtyards dichter dan hot_distance (5 mm) liggen: de [[sources]] van de thermische simulaties van dit layout met 0,25 W of meer, en de grote behuizingen (courtyard van 49 mm2 of meer) die die simulaties niet vermelden
placement-cluster-spreadinfoonderdeleneen tweepassief met twee pinnen waarvan de signaal-nets naar één IC lopen en niets anders, verder dan cluster_spread (10 mm) van de pin van die IC
placement-connector-not-at-edgeinfoonderdeleneen connector (rand-pads, overhang = true, of een J/P-referentie die geen Tag-Connect, U.FL of testpad is) waarvan het courtyard verder dan connector_edge (3 mm) van de omtrek ligt
shortfoutaltijdkoper van twee verschillende nets raakt elkaar
clearancefoutaltijdkoper van twee nets dichter dan de grootste van hun klasse-clearances (een footprint-clearance vervangt ze voor zijn pads), of koper dat in een niet-geplateerd gat loopt
unroutedfoutaltijdeen net waarvan de pads niet allemaal door sporen, vias en kopervlakken zijn verbonden, met de groepen die uit elkaar liggen
dangling-trackwaarschuwingaltijdeen sporeinde dat geen koper van zijn net en geen kopervlak raakt
track-grazes-padwaarschuwingaltijdsporen die een pad alleen met hun rand raken; voer de middellijn in het pad
copper-to-edgefoutaltijdeen spoor of via dichter dan min_copper_to_edge tot de omtrek van de printplaat of een uitsparing, of buiten de printplaat (een spoor over een uitsparing verlaat de printplaat)
pad-off-boardfoutaltijdpads buiten de omtrek of in een uitsparing van de printplaat; pads met edge = true zijn uitgesloten
stitchinginfoaltijdtelt de vias die elke [[stitching]]-invoeging heeft geplaatst
stitching-emptywaarschuwingaltijdeen [[stitching]]-invoeging die geen via heeft geplaatst
fanout-emptywaarschuwingaltijdeen [[fanouts]]-invoeging die geen via heeft geplaatst
hole-to-holefoutaltijdgaten van verschillende onderdelen of vias dichter dan min_hole_to_hole, wand tot wand, geteld met het eerste paar; alleen gaten waarvan de spans een dielektricum delen tellen, dus een microvia naast een begraven via is geen paar
stacked-viafoutaltijdeen via op dezelfde plek als een andere via van zijn net door hetzelfde dielektricum (tweemaal geboord), gestapeld op een andere via op één laag wanneer stacked_microvias uit staat of buiten de bouwvolgorde van de laminatie (de via onder een stapel geboord in een latere stap dan de bovenste), of gestapeld met een via met gecontroleerde diepte
via-laminationfoutaltijdvias waarvan de span en boorgatsoort geen boorgatstap van de laminatie overeenkomen (zie Laminatie), per via-type en span; het bericht noemt het [[vias]]-element van de printplaat en somt alle spans op die de laminatie boort, per boorgatsoort. De printplaatcontrole laat een via-type dat een layout plaatst aan deze regel over
neckdowninfoaltijdeen spoor smaller dan de breedte van zijn klasse maar niet onder min_track_width, op een stuk tot de neckdown-lengte van de klasse (0,5 mm als standaard)
class-widthfoutaltijdeen spoor smaller dan de breedte van zijn klasse dat geen neck-down is
impedance-widthwaarschuwingimpedantie-klasseneen spoor van een impedantie-klasse met een andere breedte, zijn impedantie verandert
impedance-tracefoutimpedantie-klasseneen spoor van een impedantie-klasse waarvan de breedte, neck-downs inbegrepen, of het koper ernaast op een buitenlaag de impedantie buiten de tolerantie van de klasse brengt; de afstand wordt niet gecontroleerd binnen de neck-down-lengte van een pad of een knooppunt
track-overlapfoutaltijdsporen van één net die over elkaar lopen, het koper is verdubbeld
acute-turnwaarschuwingaltijdeen spoor dat meer dan 90 graden terugkeert, een zuurval
zone-overlapfoutzonesvullingen van twee nets op één laag overlappen, een short
zone-to-zonefoutzonesvullingen van twee nets op één laag dichter dan hun clearance
zone-clearancefoutzoneseen vulling die koper van een ander net bedekt of te dichtbij komt
zone-tipswaarschuwingzonesvultips scherper dan 30 graden; verhoog de min_width van de zone
copper-neckwaarschuwingzonesnekken in een vulling smaller dan 90% van de min_width van de zone, die de vulling had moeten openen; geteld op plek met de smalste
zone-islandsinfoaltijdvuleilanden die niets van het net van de zone bereiken en zijn verwijderd
courtyard-overlapfoutonderdelencourtyards van twee onderdelen aan één zijde overlappen door hun omtrek
courtyard-holefoutonderdeleneen courtyard die een montagegat of een niet-geplateerd gat van een ander onderdeel bedekt
mask-webfoutaltijdpads van verschillende nets waarvan de maskergaten minder dan min_mask_web laten, één regel per paar onderdelen; pads van één footprint met mask_web = false worden onderling overgeslagen
silk-textfoutaltijdzeefdruktxt die andere tekst benadert, op pads ligt, over vias print, een zeefdruk-omtrek kruist of van de printplaat loopt; een referentie krijgt een vrije plek (agentee silk verplaatst hem daar)
silk-hiddenwaarschuwingaltijdzeefdruktxt alleen verborgen onder het lichaam van een ander onderdeel
silk-text-heightwaarschuwingaltijdzeefdruktxt onder min_silk_text_height
silk-artworkfoutaltijdzeefdruk-afbeelding op pads, over zeefdruktxt of van de printplaat
watermarkfoutaltijdde agentee vX.Y.Z-HASH-watermark heeft geen vrije plek op de zeefdruk, of de [watermark]-plek is niet vrij; de fab weigert zonder een plek, en het uitschakelen van de regel verwijdert de watermark niet
silk-widthwaarschuwingaltijdprintplaat-zeefdruklijnen (de [[graphics]] van het layout, geen tekst) dunner dan min_silk_width, geteld met de dunste; footprint-zeefdruk wordt gecontroleerd met de footprint
pair-skewfoutpareneen paar met een skew groter dan max_skew of de max_skew van de klasse, met het net dat verlengd moet worden
pair-skew-infoinfoparende skew van elk paar binnen de limiet
pair-gapfoutpareneen paar dat naast elkaar loopt met een andere afstand dan de diff_gap van de klasse, verder dan max_uncoupled
pair-couplingwaarschuwingparenminder dan 80% van een paar loopt naast elkaar op de paar-afstand
match-lengthfoutmatchgroepeneen lid van een matchgroep dat meer dan de tolerantie afwijkt van de doelwaarde
interface-pairfoutinterfaceseen net van een differentieel interface zonder paarpartner
interface-impedancefoutinterfaceseen interface-net waarvan de klasse geen impedantiedoel heeft, een net buiten het venster, of geen paar-afstand op een differentieel interface
interface-skewfoutinterfaceseen paar met een skew groter dan de max_skew van het interface
interface-bus-skewfoutinterfacesde datasignalen spreiden zich meer uit dan max_bus_skew
interface-clock-windowfoutinterfaceseen datasignaal dat buiten clock_window aankomt ten opzichte van de klok
interface-viasfoutinterfaceseen lane met meer vias dan max_vias
interface-stubfoutinterfaceseen via-stub langer dan max_stub
interface-return-viafoutinterfaceseen signaalvia zonder referentievia binnen return_via
interface-lengthfoutinterfaceseen lane langer dan max_length
interface-referencefoutinterfaceseen lane die meer dan max_unreferenced loopt zonder een referentievlak ernaast

De plaatsingsregels zijn richtlijnen voor waar onderdelen zitten en zijn standaard meldingen; verhoog ze met [drc] severity. De drempelwaarden staan in de printplaat:

[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

De mechanische regels (part-body-to-edge, de mlcc-flex-zone-regels, tombstone-risk, tall-part-shadow) zijn richtlijnen en standaard info; verhoog ze met [drc] severity. Een keramische condensator is een onderdeel met exact twee SMD-pads waarvan de footprint C_* heet of Capacitor bevat, of waarvan de referentie C is met een cijfer, tenzij de footprintnaam CP_, Tantal, Elec of Polymer zegt; mlcc op de footprint of de plaatsing gaat boven de schatting. De behuizing komt uit de footprintnaam (1608Metric, anders een imperiale code zoals 0603), anders uit de afstand tussen de twee padcentra, die dicht bij de lichaamslengte ligt.

Een id dat geen regel noemt is een waarschuwing. Fouten in de bestanden zelf (een net dat niet in het schema staat, een laag die geen koper is, een slechte preset) zijn geen regels en kunnen niet worden uitgeschakeld.

docs/format.md · Markdown voor agents