Progettazione
Impedenza controllata e coppie
Larghezze di pista risolte con forma chiusa e campo GPU, linee RF coplanari, coppie differenziali, abbinamento di lunghezza e interfacce come USB 3.
Una linea a impedenza controllata è una promessa tra tre cose: lo stackup, la larghezza della pista e il rame attorno. agentee mantiene la promessa in un unico posto, la classe di net, e verifica ogni pista della classe rispetto ad essa.
Chiedi prima
agentee calc impedance --layer F.Cu --target 50ohm
agentee calc impedance --layer F.Cu --target 90ohm --gap 0.15mm
agentee calc trace-width --current 2AQuesti leggono la scheda nel progetto. Il primo risponde con una larghezza per una microstrip da 50 ohm sul layer superiore; il secondo per una coppia differenziale da 90 ohm con un gap di 0,15 mm:
{
"geometry": { "er": 4.4, "h_mm": 0.2104, "kind": "microstrip", "t_mm": 0.035 },
"line": { "coplanar_gap_mm": null, "diff_gap_mm": 0.15 },
"target_ohm": 90.0,
"width_for_target_mm": 0.2682
}Le forme chiuse sono Hammerstad-Jensen per la microstrip, Wheeler per la stripline e mappatura conforme per la coplanare a terra, tutte non rivestite. Ignorano la solder mask e, su prepreg sottili, possono essere fuori di diversi ohm.
Risolvi il campo
agentee calc field --netclass RF
agentee calc field --netclass RF --sweep 10MHz,6GHz,21Il risolutore di campo esegue una risoluzione di Laplace a differenze finite della sezione trasversale sulla GPU, con spessore del rame, solder mask, terre coplanari e coppie. Si colloca entro lo 0,5% della stripline esatta di Cohn e lo 0,4% della microstrip di Hammerstad-Jensen, in una frazione di secondo:
{
"closed_form_uncoated_ohm": 51.12,
"coplanar_gap_mm": 0.2,
"field": {
"backend": "gpu",
"eeff": 3.094,
"delay_ps_per_mm": 5.87,
"z0": 49.88
},
"solder_mask": true,
"width_mm": 0.3
}--sweep aggiunge una tabella delle perdite per frequenza: R, L, G, C, Z0 e dB per metro e per pollice, suddivisa in perdita del conduttore e del dielettrico, con effetto pelle, rugosità del rame dallo stackup (roughness o huray) e un modello dielettrico causale. Senza GPU, il risolutore 2D passa alla CPU.
Metti l'obiettivo sulla classe
[[netclasses]]
name = "RF"
impedance = "50ohm"
impedance_tolerance = "5%"
coplanar_gap = "0.2mm"
layers = ["F.Cu"]
solver = "field"Con solver = "field", la verifica risolve la classe su ogni strato che può usare e, quando è fuori, dice di quanto e cosa usare:
error: lna.board.toml: lna netclass RF on F.Cu: field solver gives 59.4 ohm with solder mask, outside 50ohm +/- 5%, use track_width = "0.2985mm" (50.2 ohm)Lascia fuori track_width e la verifica lo risolve per il primo strato. Dove una larghezza non va bene per tutti gli strati, dai widths = { "In2.Cu" = "0.16mm" }.
Tienilo sulla scheda
La classe è una promessa; il layout la mantiene. La verifica misura ogni pista di una classe di impedenza:
impedance-traceè un errore quando la larghezza di una pista, i suoi restringimenti, o il rame accanto su un layer esterno spostano la sua impedenza fuori dalla tolleranza. Una linea coplanare con l'area di rame troppo lontana, o una che si restringe troppo a lungo, viene catturata qui.impedance-widthavverte su una pista della classe a un'altra larghezza.neckdownsegnala una pista più stretta della sua classe per un breve tratto verso una piazzola piccola, che è consentito fino alla lunghezzaneckdowndella classe (0,5 mm di default).
agentee neck NAME restringe le estremità esistenti di piste che entrano in una piazzola più stretta della pista, e --taper riporta la larghezza su una breve catena.
Coppie differenziali
[[netclasses]]
name = "USB"
impedance = "90ohm"
diff_gap = "0.15mm"
layers = ["F.Cu"]
max_skew = "0.1mm"diff_gap rende una classe una coppia e la sua impedenza differenziale. I net che finiscono in _P e _N, _DP e _DN, + e -, o P e N si accoppiano da soli; altrimenti nominali nel layout:
[[pairs]]
p = "USB_DP"
n = "USB_DN"
max_skew = "0.1mm"calc field --netclass USB aggiunge un blocco pair: Zdiff, Zcommon, le impedenze e i ritardi dei modi dispari e pari, il coefficiente di accoppiamento e il crosstalk di estremità vicina di una linea lunga. La verifica riporta lo skew di ogni coppia in mm e ps, ogni tratto con il gap sbagliato oltre max_uncoupled, e le coppie che corrono fianco a fianco per meno dell'80% della loro lunghezza. Una coppia attraverso componenti in serie, come i condensatori AC su una lane USB, viene misurata da un'estremità all'altra. agentee route NAME --nets 'USB_*' --pairs sbrogliare entrambe le metà insieme.
Abbina lunghezza
[[match_groups]]
name = "ddr-dq0"
nets = ["DQ?", "DQS0_*"]
tolerance = "0.5mm"agentee tune NAME
agentee show pcb:NAMEtune crea meandri sul net corto di ogni pair in base al suo skew e su ogni membro di un gruppo di abbinamento che è corto rispetto al suo target, sui segmenti rettilinei più lunghi dove le gobbe non toccano nessun altro net, e riscrive i punti nelle piste. Su un pair, allunga prima i tratti dove le gambe sono già separate. Un net oltre il suo target viene riportato, non accorciato. agentee calc serpentine --from 10,5 --to 20,5 --add 2.5mm fornisce i punti di un meandro su un segmento che scegli tu. Le lunghezze e i ritardi dei net sono in show.
Interfacce
Un'interfaccia dichiara cosa un link deve soddisfare, e la verifica misura il rame contro tutto questo in una volta:
[[interfaces]]
name = "usb-ss"
preset = "usb3-gen1"
nets = ["SS_TX*", "SS_RX*"]| preset | impedenza | skew | via | altro |
|---|---|---|---|---|
usb3-gen1, usb3-gen2 | 90 ohm +/-7% diff | 5 mil | 2 | stubs di 15 mil, 3500 / 3000 mil di lunghezza, via di ritorno entro 200 mil |
usb2-hs | 90 ohm +/-10% diff | 50 mil | 4 | 12000 mil di lunghezza |
lvds | 100 ohm +/-10% diff | |||
rf-50 | 50 ohm +/-10% | 0 | ||
cmos | 2 mm senza riferimento |
I valori USB sono le linee guida di layout ad alta velocità di TI. Oltre agli obiettivi di classe, un'interfaccia verifica la lunghezza da un'estremità all'altra, le via per ogni pista, gli stub delle via, il tratto senza piano di riferimento sottostante, la via di massa accanto a ogni via di segnale e, per i bus, la dispersione di arrivo e la finestra rispetto all'orologio. Può anche leggere una simulazione completata: perdita di inserzione e di riflessione peggiori e conversione di modo da una simulazione FDTD, altezza e larghezza dell'occhio da una simulazione del canale. Vedi Diagrammi ad occhio, PDN e parametri S.
tune funziona sulle interfacce in tempo oltre che in lunghezza: un pair oltre il suo skew in ps, e un bus fuori dalla sua finestra di orologio, vengono allungati sul lato corto con il ritardo per mm proprio di ogni net.