Моделирование
Диаграммы глаза, PDN и S-параметры
Пропускание битового потока через канал и чтение глазка, проверка импеданса шины питания по целевому значению и запуск анализа TDR, смешанного режима и перекрёстных помех.
Три моделирования читают S-параметры расчёта FDTD для чего-то более конкретного, чем график: моделирование канала пропускает битовый поток через линию и строит глаз, моделирование PDN превращает порты шины в её импеданс относительно целевого, а agentee sparam анализирует любой результат во временной области. Каждому нужен предварительный расчёт FDTD платы; см. Радиочастотное моделирование, как его настроить и сделать дешёвым.
Канал и глазок
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 указывает на моделирование, S-параметры которого описывают линию. through = [FROM, TO] это однополюсный путь; pair = [IN+, IN-, OUT+, OUT-] дифференциальный, читаемый из Sdd21. Импульсная реакция берётся из пути, умноженной на CTLE, если он есть, с гауссовым фронтом, и глаз строится как суперпозиция PRBS на 64 фазы на интервал символа, с идеальной обратной связью решения на первых dfe_taps посткурсорных коэффициентах.
agentee sim usb-eye
agentee show sim:usb-eyeПоказания: высота глаза на лучшей фазе, ширина глаза, худший случай пиковых искажений, потери на частоте Найквиста и количество курсоров. Фронт, быстрее, чем охватывают S-параметры, замедляется до того, что поддерживает данные, с примечанием.
Реальные драйверы из 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" }Драйвер становится источником Тевенена из его таблиц подтяжки и оттяжки, ёмкости кристалла и корпуса; его фронт задаёт крутизну, а диапазон напряжений размах, если не заданы rise или swing. Приёмник нагружает дальний конец ёмкостью корпуса и кристалла, и глаз читается на кристалле. IBIS пока работает только с однополюсными путями.
Сеть распределения питания
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Моделирование FDTD платы ставит порт на каждый силовой вывод, каждую площадку конденсатора и регулятор. Каждый порт должен быть источником и быть либо приёмником, конденсатором, либо VRM. Задайте этим портам низкий impedance, 0,5-1 Ом, так как шина лежит далеко ниже 50 Ом, и преобразование из S11 при 50 Ом теряет точность.
Целевым значением служит импеданс или напряжение, процент пульсаций и ток переходного процесса. Просмотрщик строит график |Z| по каждому потребителю относительно целевого значения в лог-лог-масштабе. Показания дают пиковый импеданс относительно целевого значения и самые крупные антирезонансы, в которых нужно добавить или изменить конденсатор развязки. Конденсаторы развязки задаются файлами S-параметров или идеальным C с ESL и ESR.
Анализ 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показывает импеданс во времени от одного порта: данные, пересэмплированные на равномерную сетку, экстраполированные до постоянного тока, с гауссовым фронтом и интегрированные. Команда предупреждает, если фронт быстрее, чем позволяют данные. Просмотрщик показывает тот же TDR для каждого управляемого порта.--pair IN+,IN-,OUT+,OUT-вычисляет смешанные режимы Sdd21, Sdd11, Scc21, Scd21 и Sdc21.--xtalk FROM,TOпоказывает связь в дБ и перекрёстную связь от ступеньки.
Каждый запуск сообщает о пассивности (наибольшее сингулярное значение S в полосе) и взаимности (наибольшая разница между Sij и Sji), если был возбуждён каждый порт. Пассивность выше 1 означает, что расчёт не сошёлся или сетка слишком грубая.
Связь с её числами
Интерфейс в топологии платы может читать завершённые симуляции и проваливать проверку, если связь не соответствует числам:
[[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"Отсутствующий или устаревший результат тоже ошибка, поэтому изменение топологии, которое не видели симуляции, проваливает проверку, пока их не пересчитать. В этом суть: глаз, который вы утвердили, это глаз того меди, который вы собираетесь заказать. Справочник по интерфейсам перечисляет все ограничения.