agentee

Symulowanie

Diagramy oka, PDN i parametry S

Przepuszczanie strumienia bitów przez kanał i odczytywanie oka, sprawdzanie impedancji szyny zasilania względem celu oraz uruchamianie analizy TDR, trybu mieszany i krzyżowych.

Trzy symulacje odczytują parametry S z symulacji FDTD dla czegoś bardziej konkretnego niż wykres: symulacja kanału przepuszcza strumień bitów przez łącze i rysuje oko, symulacja PDN zamienia porty szyny na jej impedancję względem celu, a agentee sparam analizuje dowolny wynik w dziedzinie czasu. Każda wymaga najpierw symulacji FDTD płytki; zobacz Symulacja RF, jak ją skonfigurować i utrzymać tanią.

Kanał i oko

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 nazwuje symulację, której parametry S przenoszą łącze. through = [FROM, TO] to ścieżka pojedynczo zakończona; pair = [IN+, IN-, OUT+, OUT-] to różnicowa, odczytywana z Sdd21. Odpowiedź impulsowa pochodzi ze ścieżki, pomnożona przez CTLE, jeśli jest, z krawędzią Gaussa, a oko to PRBS nałożony na nią w 64 fazach na jednostkowy interwał, z idealnym sprzężeniem zwrotnym decyzji na pierwszych dfe_taps post cursorach.

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

Odczyty to wysokość oka w najlepszej fazie, szerokość oka, gorszy przypadek szczytowej zniekształcenia, straty przy Nyquiscie i liczba cursorów. Krawędź szybsza niż zasięg parametrów S jest spowolniona do tego, co dane wspierają, z notatką.

Prawdziwe sterowniki z 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" }

Sterownik staje się źródłem Thevenina z jego tabel pull-down i pull-up, pojemnością die i obudową; jego rampa ustawia krawędź, a zakres napięć swing, chyba że podano rise lub swing. Odbiornik obciąża daleki koniec swoją obudową i pojemnością die, a oko jest odczytywane na jego die. IBIS działa obecnie na ścieżkach pojedynczo zakończonych.

Sieć dystrybucji zasilania

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

Symulacja FDTD płytki umieszcza port na każdym pinie zasilania, każdym padzie decap i regulatorze. Każdy port musi być sterowany i musi być zlewem, decapem lub VRM. Nadaj tym portom niską impedance, 0.5 do 1 ohm, ponieważ szyna leży daleko poniżej 50 ohm, a konwersja z S11 przy 50 ohm traci precyzję.

Celem jest impedancja lub napięcie, procentowe odchylenie i prąd chwilowy. Podgląd rysuje |Z| dla każdego odbiornika względem celu na wykresie log-log, a odczyty podają szczytową impedancję względem celu oraz największe antyrezonanse, czyli miejsca, w których należy dodać lub zmienić kondensator odsprzęgający. Kondensatory odsprzęgające to zmierzone pliki parametrów S lub idealne C z ESL i ESR.

Analiza parametrów 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 to impedancja w funkcji czasu z jednego portu: dane przesiane na jednorodną siatkę, uogólnione do DC, z krawędzią Gaussa i zintegrowane. Komenda ostrzega, gdy krawędź jest szybsza, niż pozwalają dane. Podgląd pokazuje ten sam TDR dla każdego sterowanego portu.
  • --pair IN+,IN-,OUT+,OUT- podaje Sdd21, Sdd11, Scc21, Scd21 i Sdc21 w trybie mieszanym.
  • --xtalk FROM,TO podaje sprzężenie w dB i zakłócenia krzyżowe skoku.

Każde uruchomienie raportuje pasywność (największa wartość osobliwa S w paśmie) i odwrotność (największa różnica między Sij a Sji), gdy sterowano każdym portem. Pasywność powyżej 1 oznacza, że obliczenia nie zbiegły się lub siatka jest zbyt gruba.

Interfejs w projekcie PCB może odczytywać zakończone symulacje i powodować błąd weryfikacji, gdy link nie spełnia wartości:

[[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"

Brakujący lub nieaktualny wynik to też błąd, więc zmiana projektu PCB, której symulacje nie uwzględniły, powoduje błąd weryfikacji do czasu ponownego uruchomienia. O to w tym chodzi: oko, które zaakceptowałeś, to oko miedzi, którą zaraz zamawiasz. Referencja interfejsów wymienia wszystkie limity.

Popraw ten przewodnik · Markdown dla agentów