Моделирование
Моделирование СВЧ: FDTD и каскадное соединение
Запуск полного волнового FDTD топологии платы на GPU, добавление S-параметров и данных о шуме от производителя и чтение усиления, коэффициента шума, согласования и устойчивости.
Для работы в радиочастотном диапазоне обычно используют два расчёта. Запуск FDTD для пассивной платы, с портом в месте установки активного элемента или измеренного компонента, даёт S-параметры платы. Затем каскад подставляет S-параметры, шум и данные о линейности от производителя в эти порты. Изменили плату, пересчитываете FDTD. Изменили компонент, пересчитываете только каскад, что занимает секунды.
Пример усилителя низких частот построен именно так, и в этом руководстве используются его файлы.
Запуск FDTD
name = "lna-rf"
layout = "lna"
cell = 0.1
[frequency]
start = "50MHz"
stop = "6GHz"
points = 596
[[ports]]
name = "IN"
pad = "J1.1"
reference = "In2.Cu"
[[ports]]
name = "AMP_IN"
pad = "U1.1"
reference = "In2.Cu"
[[ports]]
name = "AMP_OUT"
pad = "U1.3"
reference = "In2.Cu"Порт это сосредоточенный порт над всей контактной площадкой, до следующего медного слоя или до слоя reference, который вы укажете. Импеданс 50 Ом, если не указано иное. Медь моделируется как листы на каждом медном слое: контактные площадки, проводники, переходные отверстия как гальванические столбики между слоями, которые они пересекают, и полигоны с их зазорами. Диэлектрики берутся из стека слоёв с их тангенсом угла диэлектрических потерь. Конденсаторы, дроссели и резисторы по умолчанию используют значения из схемы как сосредоточенные элементы; [[models]] заменяет одно из них на ваше значение или оставляет его открытым. Любой другой элемент остаётся открытым.
Проверено на 50-омной микрополосковой линии: коэффициент отражения ниже -25 дБ, вносимые потери ниже 0,2 дБ, и фазовая скорость в пределах 1,2% от расчёта по Киршнингу-Янсону.
Определите размер до запуска
FDTD требует больших затрат. Расчёт шести портов усилителя низких частот занял 27 минут на GPU рабочей станции. Всегда сначала выполняйте пробный запуск:
agentee sim lna-rf --dry-run{
"cells_millions": 4.202388,
"dt_fs": 120.43,
"grid": [335, 234, 55],
"runs": 6,
"max_steps": 150000
}Это занимает секунду и показывает стоимость расчёта: один запуск на каждый возбуждаемый порт, каждый на сетке из такого количества ячеек. Для итераций:
- Начинайте с
cell = 0.1и переходите к стандартному 0.05 только после того, как проект стабилизируется. Сетка утончается от краёв меди, поэтому самая мелкая ячейка определяет стоимость. - Обрежьте область с помощью
region = [x0, y0, x1, y1]до той части платы, по которой проходит сигнал. - Возбуждайте только нужные порты с помощью
excite = ["IN"]. Для каскада нужно возбуждать все порты, поэтому тамexciteне указывайте. - Запускайте длинные расчёты в фоне и продолжайте редактировать другие файлы. Проверка предупреждает, если результат устарел.
Запустите и прочитайте результат
agentee sim lna-rf
agentee show sim:lna-rf
agentee render sim:lna-rf -o lna-rf.pngРасчёт записывает файл .result.json и Touchstone .s6p рядом со спецификацией, с именем, основанным на имени файла спецификации. Команда show выводит показания, а render строит график модуля и диаграмму Смита, как это делает просмотрщик.

Результат хранит хеш меди, которую он видел (только область region расчёта), и хеш стека слоёв. Если что-либо изменилось, проверка предупреждает, что результат устарел, и всё, что его читает, каскад или измерение интерфейса, завершается ошибкой, пока вы не пересчитаете.
Каскад
name = "lna-cascade"
kind = "cascade"
board = "lna-rf"
bandwidth = "2MHz"
report = ["900MHz", "1090MHz", "1.9GHz"]
[after]
nf = 6.0
[[devices]]
ref = "U1"
file = "models/qorvo_spf5189z.s2p"
ports = ["AMP_IN", "AMP_OUT"]
[[devices.datasheet]]
freq = "0.9GHz"
nf = 0.55
oip3 = 38.5
p1db = 22.4
[[devices]]
ref = "L1"
file = "models/coilcraft_bcr-162.s2p"
ports = ["L1"]
mount = "shunt"Каждое устройство подключается к плате через свои порты. Двухпортовый усилитель использует свой файл Touchstone, полученный из измерений; двухконцевой элемент использует данные от производителя, mount = "shunt" или "series", как он был измерен. Порты, не подключённые к устройству, становятся портами результата.
Шум и линейность добавляются, если данные есть: блок шума из Touchstone, если он есть в файле, иначе nf из даташита, а также oip3 и p1db для каждой частоты. [after] это ступень за выходом, здесь приёмник с коэффициентом шума 6 дБ, соединённая по формуле Фриса.
agentee sim lna-cascade
agentee show sim:lna-cascadeПоказания для усилителя низких частот:
gain peak 27.0 dB S21 at 50 MHz
input match -5.1 dB S11 at 4.380 GHz
output match -9.9 dB S22 at 4.420 GHz
stability mu 1.14 lowest at 60 MHz
noise figure 0.93 dB best at 800 MHz, worst 2.16 dB at 2.200 GHz
at 900 MHz gain 17.7 dB, NF 1.00 dB, floor -110.0 dBm, SFDR 86.8 dB, IIP3 20.3 dBm, P1dB out 21.9 dBm
at 1.090 GHz gain 16.2 dB, NF 1.31 dB, floor -109.7 dBm, SFDR 87.9 dB, IIP3 22.2 dBm, P1dB out 21.9 dBmКоэффициент мю больше 1 на всех частотах означает, что усилитель безусловно стабилен на этой плате. Шумовой порог равен -174 дБм/Гц плюс коэффициент шума плюс 10 log ширины полосы, а SFDR составляет две трети IIP3 от этого порога.

Если у устройства нет данных, полоса обрезается до диапазона, где у всех устройств есть данные, а коэффициент шума вне диапазона данных остаётся пустым, а не догадывается.
Постобработка без пересчёта
agentee sparam lna-rf --tdr IN --rise 50ps
agentee sparam link --pair 1,2,3,4
agentee sparam link --xtalk 1,3sparam работает с любым результатом FDTD или каскадного моделирования: TDR одного порта, S-параметры смешанных режимов пары и перекрёстные помехи в частотной области и в виде ступенчатого отклика. Если возбуждался каждый порт, он всегда сообщает о пассивности и взаимности. См. Диаграммы глаза, PDN и S-параметры.
Поля и излучение
fields = ["1090MHz", "2.4GHz"]
far_field = trueРасчёт FDTD также может записывать карты полей E и H в препреге под верхним слоем, и дальнее поле из преобразования ближнего в дальнее, для до четырёх частот. Показания дают излучаемую мощность как долю входной, направленность и пиковое поле на расстоянии 3 м при входной мощности 1 мВт, в сравнении с классом B FCC. Порты это согласованные нагрузки, поэтому кабели и разъёмы не являются частью излучателя.
Потери
Диэлектрические потери следуют причинной модели Джорджевича-Саркары, подогнанной под диэлектрическую проницаемость и тангенс угла диэлектрических потерь каждого слоя. Медь это поверхностное импеданс, которое учитывает скин-эффект, шероховатость из стека слоёв и, при finish = "ENIG", золото и никель на внешних контактных площадках, где никель добавляет в несколько раз большее сопротивление, чем чистая медь, ниже нескольких ГГц. В справочнике по потерям FDTD описаны модели и измерения, по которым они проверялись.