Simulazione
Diagrammi ad occhio, PDN e parametri S
Fai passare un flusso di bit attraverso un canale e leggi l'occhio, verifica l'impedenza di un rail di alimentazione rispetto a un obiettivo, ed esegui analisi TDR, modalità mista e diafonia.
Tre simulazioni leggono i parametri S di una run FDTD per qualcosa di più specifico di un grafico: una simulazione del canale spinge un flusso di bit attraverso un link e disegna l'occhio, una simulazione PDN trasforma i porti di un rail nella sua impedenza rispetto a un target, e agentee sparam analizza qualsiasi risultato nel dominio del tempo. Ogni una ha bisogno prima di una run FDTD della scheda; vedi Simulazione RF per come impostarla e mantenerla economica.
Canale e occhio
name = "usb-eye"
kind = "channel"
board = "usb-link"
pair = ["J1+", "J1-", "J2+", "J2-"]
bit_rate = "5Gbps"
rise = "40ps"
swing = "0.8V"
prbs = 7
ctle = { dc_gain = -6.0, zero = "1GHz", poles = ["5GHz", "10GHz"] }
dfe_taps = 2board nomina la simulazione i cui parametri S portano il link. through = [FROM, TO] è un percorso single-ended; pair = [IN+, IN-, OUT+, OUT-] uno differenziale, letto da Sdd21. La risposta al impulso viene dal percorso, moltiplicata per il CTLE se c'è, con un bordo gaussiano, e l'occhio è un PRBS sovrapposto a 64 fasi per intervallo unitario, con feedback di decisione ideale sui primi dfe_taps post cursori.
agentee sim usb-eye
agentee show sim:usb-eyeLe letture sono l'altezza dell'occhio alla migliore fase, la larghezza dell'occhio, la distorsione di picco nel caso peggiore, la perdita a Nyquist e il conteggio dei cursori. Un bordo più veloce di quanto raggiungano i parametri S viene rallentato a ciò che i dati supportano, con una nota.
Driver reali da IBIS
tx = { file = "models/sn74lvc1g04.ibs", model = "LVC1G04_OUT_33", component = "LVC1G04_DBV", pin = "4" }
rx = { file = "models/sn74lvc1g04.ibs", model = "LVC1G04_IN_33", component = "LVC1G04_DBV", pin = "2" }Il driver diventa una sorgente di Thevenin dalle sue tabelle di pulldown e pullup, la sua capacità del die e il suo package; il suo rampa imposta il bordo e il suo intervallo di tensione lo swing, a meno che non siano dati rise o swing. Il ricevitore carica l'estremità lontana con il suo package e la capacità del die, e l'occhio viene letto al suo die. IBIS funziona per ora sui percorsi single-ended.
Rete di distribuzione dell'alimentazione
name = "vcc-pdn"
kind = "pdn"
board = "rail"
sinks = ["U1_VCC"]
target = { voltage = "5V", ripple = 1.0, transient = "50mA" }
[[decaps]]
port = "C3"
ref = "C3"
file = "models/grm155r61a105ke15.s2p"
mount = "series"
[[decaps]]
port = "C4"
c = "1uF"
esl = "0.4nH"
esr = "15mohm"
[[vrm]]
port = "VRM"
r = "2mohm"
l = "20nH"
[frequency]
start = "100kHz"
stop = "1GHz"
points = 200La simulazione FDTD della scheda mette un porto su ogni pin di alimentazione, ogni piazzola di decap e il regolatore. Ogni porto deve essere pilotato e deve essere un sink, un decap o il VRM. Assegna a quei porti una bassa impedance, da 0,5 a 1 ohm, poiché un rail sta ben al di sotto dei 50 ohm e convertire da S11 a 50 ohm perde precisione.
L'obiettivo è un'impedenza o una tensione, con percentuale di ripple e corrente transitoria. Il visualizzatore disegna |Z| per sink rispetto all'obiettivo su un grafico log-log, e le letture forniscono l'impedenza di picco rispetto all'obiettivo e le maggiori anti-risonanze, il punto in cui aggiungere o modificare un decap. I decap sono file S-parametri misurati o un C ideale con ESL ed ESR.
Analisi dei parametri S
agentee sparam lna-rf --tdr IN --rise 50ps
agentee sparam link --pair 1,2,3,4
agentee sparam link --xtalk 1,3--tdr PORTè l'impedenza in funzione del tempo da un singolo port: i dati ricampionati su una griglia uniforme, estrapolati a DC, con un bordo gaussiano e integrati. Emette un avviso quando il bordo è più veloce di quanto supportino i dati. Il visualizzatore mostra lo stesso TDR per ogni port guidato.--pair IN+,IN-,OUT+,OUT-fornisce Sdd21, Sdd11, Scc21, Scd21 e Sdc21 in modalità mista.--xtalk FROM,TOfornisce l'accoppiamento in dB e il crosstalk di un fronte.
Ogni esecuzione riporta la passività (il massimo valore singolare di S nella banda) e la riciprocità (la massima differenza tra Sij e Sji) quando ogni port è stato guidato. Una passività superiore a 1 significa che l'esecuzione non ha convergito o che la mesh è troppo grossolana.
Legare un link ai suoi numeri
Un'interfaccia nel layout può leggere simulazioni finite e far fallire la verifica quando un link non raggiunge i suoi numeri:
[[interfaces]]
name = "usb-ss"
preset = "usb3-gen1"
nets = ["SS_TX*", "SS_RX*"]
[[interfaces.measure]]
sim = "usb-link"
pair = ["TX1_FX+", "TX1_FX-", "TX1_J+", "TX1_J-"]
up_to = "2.5GHz"
max_loss = 1.5
min_return_loss = 10.0
max_mode_conversion = -30.0
[[interfaces.measure]]
sim = "usb-eye"
min_eye_height = "70mV"
min_eye_width = "0.47UI"Un risultato mancante o obsoleto è un errore anche, quindi un cambiamento nel layout che le simulazioni non hanno visto fa fallire la verifica finché non vengono rilanciate. Questo è il punto: l'occhio che hai approvato è l'occhio del rame che stai per ordinare. Il riferimento sulle interfacce elenca ogni limite.