agentee

Scheda

Controlli delle regole di progettazione

Ogni regola di layout con il suo id, gravità e condizione di esecuzione: rame, fori, mask, serigrafia, assemblaggio, aree di rame, segnali, accesso di test e posizionamento.

I controlli del layout partono da un registro di regole, ognuna con un id stabile, una categoria (copper, drill, mask, silk, assembly, zone, signal, test, placement), una gravità predefinita e una condizione sulla scheda: una regola per i layer interni si esegue solo con 4 o più layer di rame, una regola di riempimento delle vie solo quando le vie sono nelle piazzole, una regola BGA solo quando c'è un BGA. Ogni messaggio di una regola inizia con il suo id tra parentesi quadre, ad esempio [via-cuts-pad]. agentee drc NAME --list (MCP drc con list = true) stampa ogni regola con la sua categoria, gravità e se si applica a questa scheda e perché; agentee drc NAME stampa solo i messaggi delle regole del 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
idgravitàsi esegue quandocontrolli
via-cuts-paderroresempreuna via il cui rame si sovrappone o tocca una piazzola SMD mentre il suo foro non è completamente all'interno della piazzola: la saldatura scende nel barile e il bordo della piazzola si danneggia. Una via di un altro net che tocca una piazzola viene segnalata come short
via-annulus-past-padavvisovie nelle piazzoleil foro è nella piazzola ma l'anello della via supera il bordo della piazzola sotto la mask
via-in-padinfovie nelle piazzoleconta le vie nelle piazzole SMD del proprio net (foro all'interno della piazzola); fab-notes.txt chiede al produttore di riempire e coprire esattamente queste (IPC-4761 tipo VII)
via-in-pad-fillerrorevie nelle piazzoleuna via in una piazzola forata più larga di max_filled_via_drill, o il cui tipo di via imposta un fill diverso da filled_capped (IPC-4761 tipo VII)
hole-to-smd-padavvisosempreun foro di via più vicino di min_hole_to_smd_pad a una piazzola SMD del proprio net (o senza net) che non tocca; la pasta e la saldatura possono fluire al suo interno
drill-sizeerroresemprefori nelle piazzole sotto min_drill (placcati) o min_npth_drill (non placcati), o sopra max_drill (i fori più grandi sono instradati, disegna come tagli). Le dimensioni delle vie sono controllate nel [[vias]] della scheda
slot-sizeerrorefori a fessurafessure più strette di min_plated_slot_width o min_npth_slot_width, o più corte di due volte la loro larghezza
aspect-ratioerroresemprefori placcati la cui profondità (il rame e il dielettrico che attraversano) divisa per il foro supera max_aspect_ratio
hole-to-coppererroresempreuna parete di foro di via o di piazzola placcata più vicina di min_via_hole_to_copper o min_pth_hole_to_copper al rame di un altro net su un layer che il foro attraversa: piste, piazzole, vie, aree di rame
inner-hole-to-coppererrore4 o più layer di rameuna parete di foro di piazzola placcata più vicina di min_inner_pth_hole_to_copper al rame di un altro net su un layer interno
npth-to-coppererrorefori non placcatiuna parete di foro non placcato più vicina di min_npth_to_copper a qualsiasi rame, inclusa l'area di rame del proprio net
hole-to-edgeerrorefori non placcatiuna parete di foro non placcato più vicina di min_copper_to_edge al contorno della scheda o a un taglio della scheda, o che lo attraversa
smd-pad-gaperroresemprepiazzole SMD di net diversi più vicine di min_smd_pad_gap, una riga per coppia di componenti con le piazzole più vicine
pad-to-edgeerroresemprerame di piazzola più vicino di min_copper_to_edge al contorno della scheda o a un taglio della scheda; le piazzole contrassegnate con edge = true sono esentate
edge-pad-reachavvisosempreuna piazzola contrassegnata con edge = true che non arriva fino al contorno della scheda
starved-thermalavvisoaree di rameuna piazzola collegata a un'area di rame del proprio net su meno della metà del suo contorno, con meno di due razze larghe almeno min_track_width, e con meno rame in totale della larghezza della piazzola stessa
part-to-edgeavvisocomponentipiazzole SMD più vicine di min_part_to_edge al contorno o a un taglio della scheda, dove lo stress di separazione può incrinare i componenti; salta i fiduciali, i fori di montaggio e i componenti con piazzole edge
part-body-to-edgeinfocomponentiun corpo di componente più vicino di min_body_to_edge al contorno o a un taglio della scheda, o che lo supera (superare un taglio conta come superarlo) (guide DFM di assemblaggio: nessun componente entro 1 mm dal bordo). Il corpo è il contorno del produttore, altrimenti il courtyard, altrimenti il rame della piazzola, e il messaggio indica quale; salta i fiduciali, i fori di montaggio, i componenti con piazzole edge e i footprint con overhang = true
fiducialsinfocomponentinessun footprint chiamato come Fiducial sulla scheda
tooling-holesinfocomponentinessun foro non placcato di 1,5 mm o più
bga-paderroreun BGApiazzole BGA (16 o più piazzole SMD rotonde) più piccole di min_bga_pad
bga-pitcherroreun BGApasso delle sfere più fine di min_bga_pitch
bga-pad-ratioavvisoun BGAdiametro della piazzola fuori dal 40% al 65% del passo (dimensioni dei land IPC-7351)
paste-without-maskavvisocomponentiuna piazzola di rame con pasta ma senza apertura di mask su quel lato, quindi la stencil stampa sulla mask
mlcc-flex-zone-caseinfocondensatori ceramiciun condensatore ceramico di case 0805 (2012 metrico) o più grande entro flex_zone dal contorno, da un angolo della scheda, da un taglio della scheda, da un foro di montaggio (un footprint MountingHole*) o da un foro non placcato di 2 mm o più (Knowles: la zona di stress è tipicamente entro 5 mm dal bordo del PCB o dai punti di fissaggio); più il chip è lungo, più le sue estremità subiscono deformazione
mlcc-flex-zoneinfocondensatori ceramiciun condensatore ceramico più piccolo entro flex_zone il cui asse lungo punta verso il bordo, l'angolo o il foro più vicino (FAQ Murata: orienta il chip orizzontalmente rispetto alla direzione di stress, in modo che il suo asse lungo corra lungo il bordo)
mlcc-flex-zone-infoinfocondensatori ceramiciconta i condensatori ceramici più piccoli entro flex_zone che sono già allineati lungo il bordo
tombstone-riskinfochip di 0603 o più piccoliun componente SMD a due piazzole di 0603 (1608 metrico) o più piccolo le cui piazzole differiscono per dimensione o forma, che ha una via in una piazzola e non nell'altra, o il cui rame entro 0,3 mm da una piazzola sul suo layer (piste, vie, aree di rame del suo net) è superiore a tombstone_ratio (predefinito 3) volte quello dell'altra; una piazzola collegata alla sua area di rame tramite un alleggerimento termico è pesata per la larghezza della sua razza rispetto alla larghezza della pista sull'altra piazzola, e una piazzola senza ancora pista, via o area di rame non viene confrontata; l'estremità che si riscalda per prima si bagna per prima e fa stare in piedi il componente (guide DFM di EMS: land simmetrici e rame bilanciato su entrambe le estremità)
tall-part-shadowinfoaltezze di componenti superiori a 3 mmun chip a due piazzole di 0603 o più piccolo più vicino a un componente alto più di 3 mm di quanto non sia l'altezza di quel componente, misurato dalle piazzole del chip al corpo del componente alto (regola empirica EMS 1:1: ombreggiatura nel reflow e nell'ispezione); le altezze provengono dall'height del footprint, altrimenti dal corpo che la vista 3D disegna senza modello: il suo predefinito di famiglia (SOIC, QFN, header, shield) o una parte del nome _h1.25mm
test-accessinfocomponentinet che la sezione [test] richiede senza accesso di sonda dal lato sonda: nessuna piazzola di un punto di test (riferimento TP1..., o un footprint denominato TestPoint*), nessuna piazzola di foratura piena esposta (through_holes), nessuna via senza cappuccio (vias). I net in classi con un target di impedenza e i net delle coppie sono esenti e vengono nominati, perché uno stub li danneggia
test-pad-geometryinfopunti di testuna piazzola di punto di test sotto min_test_pad, più vicina di min_test_pad_pitch a un altro centro, più vicina di min_test_pad_to_body al corpo di un altro componente sul lato sonda, più vicina di min_test_pad_to_edge al bordo della scheda o a un foro di lavoro (fori non pieni e fori di montaggio), o non sul lato sonda
placement-decoupling-distanceinfocomponentiun condensatore tra un alimentatore e massa la cui piazzola di alimentazione è più lontana di decoupling_distance (3 mm) dal pin più vicino di un IC su quell'alimentatore, 2,5 volte quella distanza per i condensatori bulk sopra 1 uF
placement-crystal-distanceinfocomponentiun cristallo o oscillatore (riferimento Y, o un footprint denominato come un cristallo o oscillatore) la cui piazzola di segnale è più lontana di crystal_distance (5 mm) dal pin dell'IC sul suo net
placement-large-part-off-centreinfocomponentiun chip grande (un BGA, un package con 16 o più pin sopra 25 mm2, altrimenti i componenti con più pin) il cui centro del courtyard è più lontano di off_centre (0,6) dal centro della scheda verso il bordo
placement-hot-parts-closeinfocomponentidue componenti caldi i cui courtyard sono più vicini di hot_distance (5 mm): le [[sources]] delle simulazioni termiche di questo layout a 0,25 W o più, e i package grandi (courtyard di 49 mm2 o più) che quelle simulazioni non elencano
placement-cluster-spreadinfocomponentiun passivo a due pin i cui net di segnale raggiungono un solo IC e nient'altro, più lontano di cluster_spread (10 mm) dal pin di quell'IC
placement-connector-not-at-edgeinfocomponentiun connettore (piazzole a bordo, overhang = true, o un riferimento J/P che non è un Tag-Connect, U.FL o punto di test) il cui courtyard è più lontano di connector_edge (3 mm) dal contorno
shorterroresempreil rame di due net diversi si tocca
clearanceerroresempreil rame di due net è più vicino del maggiore dei loro clearances di classe (un clearance di un footprint li sostituisce per le sue piazzole), o il rame entra in un foro non pieno
unroutederroresempreun net le cui piazzole non sono tutte collegate da piste, vie e aree di rame, nominando i gruppi separati
dangling-trackavvisosempreun'estremità di pista che non tocca il rame del suo net né un'area di rame
track-grazes-padavvisosemprepiste che raggiungono una piazzola solo con il bordo; porta la linea centrale nella piazzola
copper-to-edgeerroresempreuna pista o una via più vicina di min_copper_to_edge al contorno della scheda o a un taglio, o fuori dalla scheda (una pista attraverso un taglio esce dalla scheda)
pad-off-boarderroresemprepiazzole fuori dal contorno o in un taglio della scheda; le piazzole contrassegnate con edge = true sono esenti
stitchinginfosempreconta le vie che ogni voce [[stitching]] ha posizionato
stitching-emptyavvisosempreuna voce [[stitching]] che non ha posizionato nessuna via
fanout-emptyavvisosempreuna voce [[fanouts]] che non ha posizionato nessuna via
hole-to-holeerroresemprefori di componenti diversi o vie più vicini di min_hole_to_hole, parete contro parete, contati con la prima coppia; contano solo i fori i cui span condividono un dielettrico, quindi una microvia accanto a una via sepolta non è una coppia
stacked-viaerroresempreuna via nello stesso punto di un'altra via del suo net attraverso lo stesso dielettrico (forata due volte), impilata su un'altra via a un livello quando stacked_microvias è spento o fuori dall'ordine di costruzione della laminazione (la via sotto uno stack forata in un passo successivo rispetto a quella sopra), o impilata con una via a profondità controllata in generale
via-laminationerroresemprele via il cui span e tipo di foratura non corrispondono a nessun passo di foratura della laminazione (vedi Laminazione), per tipo di via e span; il messaggio indica la voce [[vias]] della scheda e elenca ogni span che la laminazione forisce, per tipo di foratura. La verifica della scheda lascia a questa regola un tipo di via che il layout posiziona
neckdowninfosempreuna pista più stretta della larghezza della sua classe ma non sotto min_track_width, su un tratto fino alla lunghezza neckdown della classe (0,5 mm di default)
class-widtherroresempreuna pista più stretta della larghezza della sua classe che non è un neck-down
impedance-widthavvisoclassi di impedenzauna pista di una classe di impedenza a un'altra larghezza, la sua impedenza cambia
impedance-traceerroreclassi di impedenzauna pista di una classe di impedenza la cui larghezza, inclusi i neck-down, o il rame accanto su un livello esterno porta la sua impedenza fuori dalla tolleranza della classe; il gap non viene controllato entro la lunghezza neck-down di una piazzola o di una giunzione
track-overlaperroresemprepiste di un net che corrono una sopra l'altra, il rame è raddoppiato
acute-turnavvisosempreuna pista che gira indietro di più di 90 gradi, una trappola per acido
zone-overlaperrorearee di rameriempimenti di due net su un livello si sovrappongono, un cortocircuito
zone-to-zoneerrorearee di rameriempimenti di due net su un livello più vicini del loro clearance
zone-clearanceerrorearee di rameun riempimento che copre o arriva troppo vicino al rame di un altro net
zone-tipsavvisoaree di ramepunte di riempimento più strette di 30 gradi; aumenta il min_width dell'area
copper-neckavvisoaree di ramecolli in un riempimento più stretti del 90% del min_width dell'area, che il riempimento avrebbe dovuto aprire; contati per posizione con il più stretto
zone-islandsinfosempreisole di riempimento che non raggiungono nulla del net dell'area e sono state rimosse
courtyard-overlaperrorecomponenticourtyard di due componenti su un lato si sovrappongono per il loro contorno
courtyard-holeerrorecomponentiun courtyard che copre un foro di montaggio o un foro non pieno di un altro componente
mask-weberroresemprepiazzole di net diversi le cui aperture di mask lasciano meno di min_mask_web, una riga per coppia di componenti; le piazzole di un footprint con mask_web = false vengono saltate tra loro
silk-texterroresempretesto di serigrafia che affolla altro testo, sta su piazzole, stampa sopra vie, incrocia un contorno di serigrafia o esce dalla scheda; un riferimento ottiene un punto libero (agentee silk lo sposta lì)
silk-hiddenavvisosempretesto di serigrafia nascosto solo sotto il corpo di un altro componente
silk-text-heightavvisosempretesto di serigrafia sotto min_silk_text_height
silk-artworkerroresempregrafica di serigrafia su piazzole, sopra testo di serigrafia o fuori dalla scheda
watermarkerroresempreil watermark agentee vX.Y.Z-HASH non ha un punto libero sulla serigrafia, o il punto [watermark] non è libero; il produttore rifiuta senza un punto, e disattivare la regola non rimuove il watermark
silk-widthavvisosemprelinee di serigrafia della scheda (le [[graphics]] del layout, non testo) più sottili di min_silk_width, contate con la più sottile; la serigrafia del footprint viene controllata con il footprint
pair-skewerrorecoppieuna coppia con skew superiore al suo max_skew o al max_skew della classe, con il net da allungare
pair-skew-infoinfocoppielo skew di ogni coppia entro il suo limite
pair-gaperrorecoppieuna coppia che corre affiancata con un gap diverso dal diff_gap della classe, oltre max_uncoupled
pair-couplingavvisocoppiemeno dell'80% di una coppia corre affiancata al gap della coppia
match-lengtherroregruppi di matchun membro di un gruppo di match fuori dal target di più della tolleranza
interface-pairerroreinterfacceun net di un'interfaccia differenziale senza partner di coppia
interface-impedanceerroreinterfacceun net di interfaccia la cui classe non ha un target di impedenza, uno fuori dalla finestra, o senza gap di coppia su un'interfaccia differenziale
interface-skewerroreinterfacceuna coppia con skew superiore al max_skew dell'interfaccia
interface-bus-skewerroreinterfaccei segnali dati si distribuiscono di più di max_bus_skew
interface-clock-windowerroreinterfacceun segnale dati che arriva fuori dalla clock_window rispetto all'orologio
interface-viaserroreinterfacceuna corsia con più vie di max_vias
interface-stuberroreinterfacceuno stub di via più lungo di max_stub
interface-return-viaerroreinterfacceuna via di segnale senza via di riferimento entro return_via
interface-lengtherroreinterfacceuna corsia più lunga di max_length
interface-referenceerroreinterfacceuna corsia che corre per più di max_unreferenced senza un piano di riferimento accanto

Le regole di posizionamento sono una guida su dove posizionare i componenti, notifiche di default; alza la severità con [drc] severity. Le loro soglie sono nella scheda:

[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

Le regole meccaniche (part-body-to-edge, le regole mlcc-flex-zone, tombstone-risk, tall-part-shadow) sono una guida e di default sono info; alza la severità con [drc] severity. Un condensatore ceramico è un componente con esattamente due piazzole SMD il cui footprint si chiama C_* o contiene Capacitor, o il cui riferimento è C e una cifra, a meno che il nome del footprint non dica CP_, Tantal, Elec o Polymer; mlcc sul footprint o sul posizionamento sovrascrive l'ipotesi. Il case viene dal nome del footprint (1608Metric, altrimenti un codice imperiale come 0603), altrimenti dalla distanza tra i centri delle due piazzole, che è vicina alla lunghezza del corpo.

Un id che non nomina una regola è un avviso. Gli errori nei file stessi (un net non presente nello schema, uno strato non in rame, un preset errato) non sono regole e non possono essere disabilitati.

docs/format.md · Markdown per agenti