agentee

Simulation

Diagrammes d'œil, PDN et paramètres S

Faire passer un flux de bits à travers un canal et lire l'œil, vérifier l'impédance d'un rail d'alimentation par rapport à une cible, et exécuter l'analyse TDR, mode mixte et diaphonie.

Trois simulations lisent les paramètres S d'une exécution FDTD pour quelque chose de plus précis qu'un tracé : une simulation de canal pousse un flux de bits à travers un lien et trace l'œil, une simulation PDN transforme les ports d'un rail en son impédance par rapport à une cible, et agentee sparam analyse n'importe quel résultat dans le domaine temporel. Chacune a besoin d'une exécution FDTD de la carte d'abord ; voir Simulation RF pour comment en configurer une et la garder économique.

Canal et œil

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 = 2

board nomme la simulation dont les paramètres S portent le lien. through = [FROM, TO] est un chemin simple ; pair = [IN+, IN-, OUT+, OUT-] un chemin différentiel, lu depuis Sdd21. La réponse impulsionnelle vient du chemin, multipliée par le CTLE s'il y en a un, avec une flanc gaussien, et l'œil est un PRBS superposé dessus à 64 phases par intervalle unitaire, avec retour de décision idéal sur les premiers dfe_taps post-cursors.

agentee sim usb-eye
agentee show sim:usb-eye

Les lectures sont la hauteur d'œil à la meilleure phase, la largeur d'œil, la distorsion maximale au pire cas, la perte à Nyquist et le nombre de cursors. Un flanc plus rapide que ce que les paramètres S atteignent est ralenti à ce que les données supportent, avec une note.

Pilotes réels depuis 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" }

Le pilote devient une source de Thevenin depuis ses tables de tirage vers le bas et vers le haut, sa capacité de die et son boîtier ; son flanc définit la pente et sa plage de tension l'amplitude, sauf si rise ou swing sont donnés. Le récepteur charge l'extrémité lointaine avec son boîtier et sa capacité de die, et l'œil est lu à son die. IBIS fonctionne sur les chemins simples pour l'instant.

Réseau de distribution d'alimentation

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 = 200

La simulation FDTD de la carte pose un port sur chaque broche d'alimentation, chaque pastille de découplage et le régulateur. Chaque port doit être piloté et doit être un puits, une découplage ou le VRM. Donnez à ces ports une faible impedance, 0,5 à 1 ohm, car un rail est bien en dessous de 50 ohm et convertir depuis S11 à 50 ohm perd en précision.

La cible est une impédance ou une tension, un pourcentage d'ondulation et un courant transitoire. Le visualiseur trace |Z| par puits par rapport à la cible sur un graphique log-log, et les mesures donnent l'impédance de pointe par rapport à la cible et les plus grandes anti-résonances, c'est-à-dire l'endroit où ajouter ou modifier un condensateur de découplage. Les condensateurs de découplage sont des fichiers de paramètres S mesurés ou un C idéal avec ESL et ESR.

Analyse des paramètres 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 donne l'impédance en fonction du temps depuis un port : les données rééchantillonnées sur une grille uniforme, extrapolées à la fréquence nulle, avec un front gaussien et intégrées. Il émet un avertissement si le front est plus rapide que ce que les données supportent. Le visualiseur affiche le même TDR pour chaque port piloté.
  • --pair IN+,IN-,OUT+,OUT- donne les paramètres S en mode mixte Sdd21, Sdd11, Scc21, Scd21 et Sdc21.
  • --xtalk FROM,TO donne le couplage en dB et le diaphonie d'un front.

Chaque exécution signale la passivité (la plus grande valeur singulière de S sur la bande) et la réciprocité (la plus grande différence entre Sij et Sji) lorsque tous les ports ont été pilotés. Une passivité supérieure à 1 signifie que l'exécution n'a pas convergé ou que le maillage est trop grossier.

Une interface dans le routage peut lire des simulations terminées et faire échouer la vérification si un lien ne respecte pas ses mesures :

[[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 résultat manquant ou obsolète est aussi une erreur, donc une modification du routage que les simulations n'ont pas vue fait échouer la vérification jusqu'à ce qu'elles soient relancées. C'est le but : l'œil que vous avez validé est l'œil du cuivre que vous êtes sur le point de commander. La référence des interfaces liste toutes les limites.

Améliorer ce guide · Markdown pour agents