agentee

Simulation

Simulation RF : FDTD et cascade

Exécutez une simulation FDTD à ondes complètes d'un routage sur le GPU, y intégrez les paramètres S et les données de bruit du fabricant, et lisez le gain, le facteur de bruit, l'adaptation et la stabilité.

Pour le travail en RF, la séparation habituelle est deux simulations. Une exécution FDTD de la carte passive, avec un port à l'endroit où se trouve un composant actif ou un composant mesuré, donne les paramètres S de la carte. Une cascade insère ensuite les paramètres S, le bruit et les données de linéarité du fabricant dans ces ports. Modifiez la carte et vous relancez la FDTD ; modifiez un composant et vous ne relancez que la cascade, qui prend quelques secondes.

L'exemple LNA est construit ainsi, et ce guide utilise ses fichiers.

L'exécution 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"

Un port est un port localisé sur une pastille entière, jusqu'à la couche de cuivre suivante ou jusqu'à la couche reference que vous nommez, 50 ohms sauf indication contraire. Le cuivre est modélisé comme des feuilles sur chaque couche de cuivre : pastilles, pistes, vias comme des colonnes métallisées entre les couches qu'ils traversent, et remplissages de zones avec leurs dégagements. Les diélectriques proviennent de l'empilement avec leur tangente de perte. Les condensateurs, inductances et résistances prennent leur valeur de schéma comme composants localisés par défaut ; [[models]] en remplace une par une valeur de votre choix, ou la laisse ouverte. Tout autre composant est ouvert.

Validé sur une microbande de 50 ohms : perte de retour inférieure à -25 dB, perte d'insertion inférieure à 0,2 dB, et vitesse de phase dans les 1,2 % de Kirschning-Jansen.

Dimensionnez avant d'exécuter

La FDTD est coûteuse. L'exécution à six ports du LNA a pris 27 minutes sur une GPU de station de travail. Faites toujours une exécution à sec d'abord :

agentee sim lna-rf --dry-run
{
  "cells_millions": 4.202388,
  "dt_fs": 120.43,
  "grid": [335, 234, 55],
  "runs": 6,
  "max_steps": 150000
}

Cela prend une seconde et indique ce que coûtera l'exécution : une exécution par port excité, chacune sur une grille de cette taille de cellules. Pour itérer :

  • Commencez avec cell = 0.1 et resserrez seulement à la valeur par défaut 0.05 une fois que la conception est stabilisée. Le maillage se dégrade depuis les bords du cuivre, donc la cellule la plus fine fixe le coût.
  • Rogez avec region = [x0, y0, x1, y1] sur la partie de la carte que le signal traverse.
  • Excitez seulement les ports dont vous avez besoin avec excite = ["IN"]. Une cascade a besoin que tous les ports soient excités, donc laissez excite de côté là.
  • Exécutez les longues simulations en arrière-plan et continuez à modifier d'autres choses. La vérification avertit quand un résultat est devenu obsolète.

Exécutez et lisez

agentee sim lna-rf
agentee show sim:lna-rf
agentee render sim:lna-rf -o lna-rf.png

L'exécution écrit un .result.json et un Touchstone .s6p à côté de la spécification, nommés d'après le fichier de spécification. show affiche les mesures, et render dessine le graphique d'amplitude et un diagramme de Smith, comme le fait le visualiseur.

Paramètres S de la carte LNA de l'exécution FDTD

Le résultat enregistre un hachage du cuivre qu'il a vu (seulement la region de la simulation) et de l'empilement. Quand l'un des deux change, la vérification avertit que le résultat est obsolète, et tout ce qui le lit, une cascade ou une mesure d'interface, échoue jusqu'à ce que vous relanciez.

La cascade

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"

Chaque dispositif se joint à la carte par ses ports. Un amplificateur à deux ports prend son fichier Touchstone comme mesuré ; un composant à deux bornes prend les données de montage du fabricant, mount = "shunt" ou "series" selon la mesure. Les ports non joints à un dispositif sont les ports du résultat.

Le bruit et la linéarité viennent avec quand les données sont là : le bloc de bruit Touchstone quand le fichier en a un, le nf de la fiche technique sinon, et oip3 et p1db par fréquence. [after] est le stade derrière la sortie, un récepteur avec un facteur de bruit de 6 dB ici, joint par Friis.

agentee sim lna-cascade
agentee show sim:lna-cascade

Les mesures pour le LNA :

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

Mu supérieur à 1 à chaque fréquence signifie que l'amplificateur est inconditionnellement stable sur cette carte. Le plancher de bruit est -174 dBm/Hz plus le facteur de bruit plus 10 log de la bande passante, et SFDR est les deux tiers de IIP3 au-dessus du plancher.

La cascade : gain, adaptation, facteur de bruit et stabilité

Quand un dispositif n'a pas de données, la bande est coupée à l'endroit où tous les dispositifs en ont, et un facteur de bruit hors des données est laissé vide plutôt que deviné.

Post-traitez sans relancer

agentee sparam lna-rf --tdr IN --rise 50ps
agentee sparam link --pair 1,2,3,4
agentee sparam link --xtalk 1,3

sparam fonctionne sur tout résultat FDTD ou en cascade : TDR d'un port, paramètres S en mode mixte d'une paire, et diaphonie en fréquence et en échelon. Il signale toujours la passivité et la réciprocité lorsque tous les ports ont été excités. Voir Diagrammes d'œil, PDN et paramètres S.

Champs et émissions

fields = ["1090MHz", "2.4GHz"]
far_field = true

Une exécution FDTD peut aussi enregistrer des cartes de champs E et H dans le préimprégné sous la couche supérieure, et le champ lointain d'une transformation proche-vers-lointain, à quatre fréquences au maximum. Les mesures donnent la puissance rayonnée comme fraction de l'entrée, la directivité, et le champ de pointe à 3 m pour 1 mW d'entrée, contre la classe B de la FCC. Les ports sont des charges adaptées, donc les câbles et connecteurs ne font pas partie de l'émetteur.

Pertes

La perte diélectrique suit un modèle causal Djordjevic-Sarkar ajusté à la permittivité et à la tangente de perte de chaque couche. Le cuivre est une impédance de surface qui suit l'effet de peau, la rugosité de l'empilement et, avec finish = "ENIG", l'or et le nickel sur les pastilles externes, dont le nickel ajoute plusieurs fois la résistance du cuivre nu en dessous de quelques GHz. La référence des pertes FDTD a les modèles et les mesures contre lesquelles ils ont été vérifiés.

Améliorer ce guide · Markdown pour agents