agentee

シミュレーション

RFシミュレーション: FDTDとカスケード

GPU上でレイアウトのフルウェーブFDTDを実行し、ベンダーのSパラメータとノイズデータを投入し、ゲイン、ノイズフィギュア、マッチング、安定性を読み取ります。

RF設計では、通常、シミュレーションを2つに分けます。能動部品や測定済み部品が載っている位置にポートを置き、受動基板のFDTDシミュレーションを実行すると、基板のSパラメータが得られます。次にカスケードで、ベンダーのSパラメータ、ノイズ、線形性のデータをそのポートに接続します。基板を変更したらFDTDを再実行し、部品を変更したらカスケードのみを再実行します。カスケードは数秒で終わります。

LNAの例はこの方法で作られており、このガイドではそのファイルを使用します。

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 dB未満、挿入損失は0.2 dB未満、位相速度はKirschning-Jansenの値に対して1.2%以内です。

実行前にサイズを決定する

FDTDはコストが高いです。LNAの6ポート実行はワークステーションのGPUで27分かかりました。必ず先にドライランを実行してください。

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

これは1秒で済み、実行コストを示します。駆動ポートごとに1回の実行で、そのセル数のグリッド上で行われます。反復するには:

  • 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で振幅プロットとスミスチャートを描画します。ビューアと同じです。

FDTD実行によるLNA基板のSパラメータ

結果には、シミュレーションが参照した銅のハッシュ(シミュレーションの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"

各デバイスはポートで基板に接続されます。2ポート増幅器は測定済みのTouchstoneファイルを使用します。2端子部品はベンダーのフィクスチャデータを使用し、測定時の接続方法に合わせてmount = "shunt"または"series"を指定します。デバイスに接続されていないポートが結果のポートです。

データがあれば、ノイズと線形性も一緒に計算されます。ファイルにノイズブロックがあればTouchstoneのノイズブロックを使用し、なければデータシートnfを使用します。oip3とp1dbは周波数ごとに指定します。[after]は出力の後ろの段で、ここではノイズ係数6 dBの受信機をFriisの式で接続します。

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

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が1を超えることは、この基板で増幅器が無条件に安定であることを意味します。ノイズフロアは-174 dBm/Hzにノイズ係数と10 log(帯域幅)を加えたものです。SFDRはIIP3の3分の2をフロアで割ったものです。

カスケード: 利得、インピーダンス整合、ノイズ係数、安定性

データのないデバイスがある場合、帯域は全デバイスにデータがある範囲に切り詰められ、データ範囲外のノイズ係数は推測せず空白にします。

再実行せずに後処理する

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

sparam は、FDTDまたはカスケード結果のいずれにも適用できます。1ポートのTDR、ペアの混合モードSパラメータ、周波数およびステップとしてのクロストークです。すべてのポートが駆動された場合、常に受動性と相互性を報告します。詳しくは アイダイアグラム、PDN、Sパラメータ を参照。

電磁界と放射

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

FDTDシミュレーションでは、最上層下のプリプレグ内のE界とH界のマップ、およびニアフィールドからファーフィールド変換による遠界を、最大4周波数で記録できます。測定値は、入力に対する放射電力の割合、指向性、1 mW入力時の3 mでのピーク電界強度(FCC Class B基準)を示します。ポートは整合負荷であるため、ケーブルとコネクタは放射体には含まれません。

損失

誘電体損失は、各層の誘電率と損失正接角に適合させた因果的なDjordjevic-Sarkarモデルに従います。銅はスキンの効果、層構成の粗さ、finish = "ENIG"の場合の外側パッドの金とニッケルを含む表面インピーダンスとしてモデル化されます。ニッケルは数GHz以下で裸銅の抵抗の何倍もの損失を加えます。FDTD損失の参考資料にモデルと検証測定値があります。

このガイドを改善する · エージェント向けMarkdown