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| id | gravità | si esegue quando | controlli |
|---|---|---|---|
via-cuts-pad | errore | sempre | una 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-pad | avviso | vie nelle piazzole | il foro è nella piazzola ma l'anello della via supera il bordo della piazzola sotto la mask |
via-in-pad | info | vie nelle piazzole | conta 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-fill | errore | vie nelle piazzole | una 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-pad | avviso | sempre | un 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-size | errore | sempre | fori 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-size | errore | fori a fessura | fessure più strette di min_plated_slot_width o min_npth_slot_width, o più corte di due volte la loro larghezza |
aspect-ratio | errore | sempre | fori placcati la cui profondità (il rame e il dielettrico che attraversano) divisa per il foro supera max_aspect_ratio |
hole-to-copper | errore | sempre | una 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-copper | errore | 4 o più layer di rame | una 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-copper | errore | fori non placcati | una 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-edge | errore | fori non placcati | una 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-gap | errore | sempre | piazzole SMD di net diversi più vicine di min_smd_pad_gap, una riga per coppia di componenti con le piazzole più vicine |
pad-to-edge | errore | sempre | rame 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-reach | avviso | sempre | una piazzola contrassegnata con edge = true che non arriva fino al contorno della scheda |
starved-thermal | avviso | aree di rame | una 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-edge | avviso | componenti | piazzole 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-edge | info | componenti | un 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 |
fiducials | info | componenti | nessun footprint chiamato come Fiducial sulla scheda |
tooling-holes | info | componenti | nessun foro non placcato di 1,5 mm o più |
bga-pad | errore | un BGA | piazzole BGA (16 o più piazzole SMD rotonde) più piccole di min_bga_pad |
bga-pitch | errore | un BGA | passo delle sfere più fine di min_bga_pitch |
bga-pad-ratio | avviso | un BGA | diametro della piazzola fuori dal 40% al 65% del passo (dimensioni dei land IPC-7351) |
paste-without-mask | avviso | componenti | una piazzola di rame con pasta ma senza apertura di mask su quel lato, quindi la stencil stampa sulla mask |
mlcc-flex-zone-case | info | condensatori ceramici | un 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-zone | info | condensatori ceramici | un 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-info | info | condensatori ceramici | conta i condensatori ceramici più piccoli entro flex_zone che sono già allineati lungo il bordo |
tombstone-risk | info | chip di 0603 o più piccoli | un 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-shadow | info | altezze di componenti superiori a 3 mm | un 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-access | info | componenti | net 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-geometry | info | punti di test | una 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-distance | info | componenti | un 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-distance | info | componenti | un 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-centre | info | componenti | un 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-close | info | componenti | due 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-spread | info | componenti | un 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-edge | info | componenti | un 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 |
short | errore | sempre | il rame di due net diversi si tocca |
clearance | errore | sempre | il 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 |
unrouted | errore | sempre | un net le cui piazzole non sono tutte collegate da piste, vie e aree di rame, nominando i gruppi separati |
dangling-track | avviso | sempre | un'estremità di pista che non tocca il rame del suo net né un'area di rame |
track-grazes-pad | avviso | sempre | piste che raggiungono una piazzola solo con il bordo; porta la linea centrale nella piazzola |
copper-to-edge | errore | sempre | una 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-board | errore | sempre | piazzole fuori dal contorno o in un taglio della scheda; le piazzole contrassegnate con edge = true sono esenti |
stitching | info | sempre | conta le vie che ogni voce [[stitching]] ha posizionato |
stitching-empty | avviso | sempre | una voce [[stitching]] che non ha posizionato nessuna via |
fanout-empty | avviso | sempre | una voce [[fanouts]] che non ha posizionato nessuna via |
hole-to-hole | errore | sempre | fori 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-via | errore | sempre | una 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-lamination | errore | sempre | le 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 |
neckdown | info | sempre | una 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-width | errore | sempre | una pista più stretta della larghezza della sua classe che non è un neck-down |
impedance-width | avviso | classi di impedenza | una pista di una classe di impedenza a un'altra larghezza, la sua impedenza cambia |
impedance-trace | errore | classi di impedenza | una 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-overlap | errore | sempre | piste di un net che corrono una sopra l'altra, il rame è raddoppiato |
acute-turn | avviso | sempre | una pista che gira indietro di più di 90 gradi, una trappola per acido |
zone-overlap | errore | aree di rame | riempimenti di due net su un livello si sovrappongono, un cortocircuito |
zone-to-zone | errore | aree di rame | riempimenti di due net su un livello più vicini del loro clearance |
zone-clearance | errore | aree di rame | un riempimento che copre o arriva troppo vicino al rame di un altro net |
zone-tips | avviso | aree di rame | punte di riempimento più strette di 30 gradi; aumenta il min_width dell'area |
copper-neck | avviso | aree di rame | colli 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-islands | info | sempre | isole di riempimento che non raggiungono nulla del net dell'area e sono state rimosse |
courtyard-overlap | errore | componenti | courtyard di due componenti su un lato si sovrappongono per il loro contorno |
courtyard-hole | errore | componenti | un courtyard che copre un foro di montaggio o un foro non pieno di un altro componente |
mask-web | errore | sempre | piazzole 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-text | errore | sempre | testo 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-hidden | avviso | sempre | testo di serigrafia nascosto solo sotto il corpo di un altro componente |
silk-text-height | avviso | sempre | testo di serigrafia sotto min_silk_text_height |
silk-artwork | errore | sempre | grafica di serigrafia su piazzole, sopra testo di serigrafia o fuori dalla scheda |
watermark | errore | sempre | il 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-width | avviso | sempre | linee 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-skew | errore | coppie | una coppia con skew superiore al suo max_skew o al max_skew della classe, con il net da allungare |
pair-skew-info | info | coppie | lo skew di ogni coppia entro il suo limite |
pair-gap | errore | coppie | una coppia che corre affiancata con un gap diverso dal diff_gap della classe, oltre max_uncoupled |
pair-coupling | avviso | coppie | meno dell'80% di una coppia corre affiancata al gap della coppia |
match-length | errore | gruppi di match | un membro di un gruppo di match fuori dal target di più della tolleranza |
interface-pair | errore | interfacce | un net di un'interfaccia differenziale senza partner di coppia |
interface-impedance | errore | interfacce | un 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-skew | errore | interfacce | una coppia con skew superiore al max_skew dell'interfaccia |
interface-bus-skew | errore | interfacce | i segnali dati si distribuiscono di più di max_bus_skew |
interface-clock-window | errore | interfacce | un segnale dati che arriva fuori dalla clock_window rispetto all'orologio |
interface-vias | errore | interfacce | una corsia con più vie di max_vias |
interface-stub | errore | interfacce | uno stub di via più lungo di max_stub |
interface-return-via | errore | interfacce | una via di segnale senza via di riferimento entro return_via |
interface-length | errore | interfacce | una corsia più lunga di max_length |
interface-reference | errore | interfacce | una 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 centreLe 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.