;【免责声明】
本公众号的主体为个人,作者在本公众号发表的所有文章均是出于无私分享、交流学习的目的。
作者在该公众号发表文章纯属个人行为,文章的观点也纯属个人观点,与作者曾经任职或者正在任职的公司、其他个人或组织均没有任何关系。
作者已经发表或者即将发表的MMIC设计系列文章将会严重倚赖于各类EDA软件,尤其是ADS和Cadence;作者个人的确没有实力购买这些软件的使用授权,但作者保证仅用于业余研究和交流学习的目的,绝对不会用于商业盈利;若软件商有异议,作者全力配合删除相关软件和文章。
文章中可能有些素材取材于网络,若有侵权请读者提醒,作者会在第一时间进行更正。
对于声明原创的文章,欢迎任何人转载分享,但须注明出处。
射频器件在不同的偏置电压电流下性能指标会有差异,不同工作温度条件下也有明显差异,以放大器为例,高低温环境下其增益差异可能达到2~4dB。假设在不同温度(-45℃、+25℃、+125℃)下分别测得三组S参数,保存对应的三个s2p文件:
N45.s2p
P25.s2p
P125.s2p
如果要级联仿真,三温下的性能指标只能分别代入仿真。能否将这三个文件整合到一起来表征这个放大器的高低温S参数呢?这样就可以利用参数扫描的方式来考察这个放大器的高低温S参数。
答案是可以利用mdf文件格式。S2PMDIF是一种多维二端口S参数文件(Multi-Dimensional 2-Port S-parameter File),其中MDIF全称是Measurement Data Interchange Format(测量数据交换格式),用于基于测量数据构建统计表征。
S2PMDIF可以包含任意多个小信号S参数或NF数据对,其中NF数据是可选的。它最基本的语法格式是:
! Comment Line
VAR <_Your_variable_name#1_> = <Your_Value>_
VAR <_Your_variable_name#2_> = <Your_Value>_
VAR <_Your_variable_name#n_> = <Your_Value>_
BEGIN ACDATA
! Option line
% F n11x n11y n21x n21y n12x n12y ! signal format line
! < Your small data consistent with above format line >
END
BEGIN NDATA
! Option line
% F nfmin n11x n11y rn ! noise format line
! < Your noise data >
END
! Repeat entire ACDATA and NDATA blocks above if necessary
! preceded by different VAR values to distinguish measurements.
其中,所有 ! 之后的内容为注释内容,以VAR开头的行表示定义的参数变量及其取值,BEGIN ACDATA ... END字段之间的部分为S2P测量数据,以%F开头的为数据格式控制行,BEGIN NDATA ... END字段之间的部分为NF测量数据。
ACDATA支持的小信号参数类型为S,Y,Z,H,G;
NFDATA支持的噪声数据为NFmin(最小噪声系数)、Gamma Opt(最佳源反射系数)和RN(噪声电阻);
一个s2pmdf文件的示例是:
! File using #AC ( ... ) Optionline
! Created Mon Jan 26 15:02:05 2004
VAR Wafer_Lot = 0
BEGIN ACDATA
#AC( hz S ma R 50 )
! Choice of units: Hz, KHz, MHz, or GHz
! Optional Selection: S,Z,Y,H,or G {default S}
! Optional Selection: MA, DB, RI {default RI}
! DB = 20*log(mag(value))
! Optional Selection: R XY; where XY=reference res {default R 50}
F n11x n11y n21x n21y n12x n12y n22x n22y
!F Mag_S11 Ang_S11 Mag_S21 Ang_S21 Mag_S12 Ang_S12 Mag_S22 Ang_S22
1e9 0.2416 -89.666 0.9138 -22.252 0.9138 -22.252 0.2366 -107.202
2e9 0.4456 -108.425 0.8336 -43.447 0.8336 -43.447 0.4394 -143.149
3e9 0.6068 -121.516 0.7234 -62.672 0.7234 -62.672 0.6044 -171.881
4e9 0.7203 -131.748 0.6068 -79.382 0.6068 -79.382 0.7259 -164.03
5e9 0.7945 -139.741 0.5001 -93.494 0.5001 -93.494 0.8097 143.997
END
BEGIN NDATA
! Noise Data block optional
#AC( hz S ma R 50 )
! Choice of units: Hz, KHz, MHz, or GHz
! Optional Selection: S,Z,Y,H,or G {default S}
! Optional Selection: MA, DB, RI {default RI}
! MA, DB, RI pertains to Gamma Opt data only
! DB = 20*log(mag(value))
! Optional Selection: R XY; where XY=reference res {default R 50}
F NFMIN N11X N11Y RN
! Freq nfmin_in_dB GammaOpt_Mag GammaOpt_Ang Normalized R
0.1221 0.8026 29.711 0.1200
0.2440 0.6919 57.344 0.1200
0.3659 0.6515 80.598 0.1201
0.4878 0.6507 98.564 0.1201
0.6097 0.6671 111.954 0.1202
END
! File using # freq_unit ... Optionline
! Created Mon Jan 26 15:02:05 2004
VAR Wafer_Lot = 1
BEGIN ACDATA
# hz S ma R 50
! Choice of units: Hz, KHz, MHz, or GHz
! Optional Selection: S,Z,Y,H,or G {default S}
! Optional Selection: MA, DB, RI {default RI}
! DB = 20*log(mag(value))
! Optional Selection: R XY; where XY=reference res {default R 50}
F n11x n11y n21x n21y n12x n12y n22x n22y
!F Mag_S11 Ang_S11 Mag_S21 Ang_S21 Mag_S12 Ang_S12 Mag_S22 Ang_S22
1e9 0.2416 -89.666 0.9138 -22.252 0.9138 -22.252 0.2366 -107.202
2e9 0.4456 -108.425 0.8336 -43.447 0.8336 -43.447 0.4394 -143.149
3e9 0.6068 -121.516 0.7234 -62.672 0.7234 -62.672 0.6044 -171.881
4e9 0.7203 -131.748 0.6068 -79.382 0.6068 -79.382 0.7259 -164.03
5e9 0.7945 -139.741 0.5001 -93.494 0.5001 -93.494 0.8097 143.997
END
BEGIN NDATA
! Noise Data block optional
# hz S ma R 50
! Choice of units: Hz, KHz, MHz, or GHz
! Optional Selection: S,Z,Y,H,or G {default S}
! Optional Selection: MA, DB, RI {default RI}
! MA, DB, RI pertains to Gamma Opt data only
! DB = 20*log(mag(value))
! Optional Selection: R XY; where XY=reference res {default R 50}
F NFMIN N11X N11Y RN
! Freq nfmin_in_dB GammaOpt_Mag GammaOpt_Ang Normalized R
0.1221 0.8026 29.711 0.1200
0.2440 0.6919 57.344 0.1200
0.3659 0.6515 80.598 0.1201
0.4878 0.6507 98.564 0.1201
0.6097 0.6671 111.954 0.1202
END
上面这个示例数据有一个变量Wafer_Lot,两个取值1、2代表两个不同的晶圆号,分别包含了一组S2P数据和NF数据。
回到文章开头的放大器三温S参数合并问题,方法就是定义一个温度自变量,例如:
VAR T=-45
这里暂不考虑NF数据,直接定义三个BEGIN ACDATA ... END字段分别包含三个温度下的s2p数据即可,注意源s2p文件的数据格式:
-45!低温 =
BEGIN ACDATA
#AC( hz S ma R 50 )!单位Hz、S参数、幅度/角度、参考阻抗50Ω
! Choice of units: Hz, KHz, MHz, or GHz
! Optional Selection: S,Z,Y,H,or G {default S}
! Optional Selection: MA, DB, RI {default RI}
! DB = 20*log(mag(value))
! Optional Selection: R XY; where XY=reference res {default R 50}
F n11x n11y n21x n21y n12x n12y n22x n22y
!F Mag_S11 Ang_S11 Mag_S21 Ang_S21 Mag_S12 Ang_S12 Mag_S22 Ang_S22
1e9 0.2416 -89.666 0.9138 -22.252 0.9138 -22.252 0.2366 -107.202
2e9 0.4456 -108.425 0.8336 -43.447 0.8336 -43.447 0.4394 -143.149
3e9 0.6068 -121.516 0.7234 -62.672 0.7234 -62.672 0.6044 -171.881
4e9 0.7203 -131.748 0.6068 -79.382 0.6068 -79.382 0.7259 -164.03
5e9 0.7945 -139.741 0.5001 -93.494 0.5001 -93.494 0.8097 143.997
END
25!常温 =
BEGIN ACDATA
# hz S ma R 50!单位Hz、S参数、幅度/角度、参考阻抗50Ω
! Choice of units: Hz, KHz, MHz, or GHz
! Optional Selection: S,Z,Y,H,or G {default S}
! Optional Selection: MA, DB, RI {default RI}
! DB = 20*log(mag(value))
! Optional Selection: R XY; where XY=reference res {default R 50}
F n11x n11y n21x n21y n12x n12y n22x n22y
!F Mag_S11 Ang_S11 Mag_S21 Ang_S21 Mag_S12 Ang_S12 Mag_S22 Ang_S22
1e9 0.2416 -89.666 0.9138 -22.252 0.9138 -22.252 0.2366 -107.202
2e9 0.4456 -108.425 0.8336 -43.447 0.8336 -43.447 0.4394 -143.149
3e9 0.6068 -121.516 0.7234 -62.672 0.7234 -62.672 0.6044 -171.881
4e9 0.7203 -131.748 0.6068 -79.382 0.6068 -79.382 0.7259 -164.03
5e9 0.7945 -139.741 0.5001 -93.494 0.5001 -93.494 0.8097 143.997
END
125!高温 =
BEGIN ACDATA
# hz S ma R 50!单位Hz、S参数、幅度/角度、参考阻抗50Ω
! Choice of units: Hz, KHz, MHz, or GHz
! Optional Selection: S,Z,Y,H,or G {default S}
! Optional Selection: MA, DB, RI {default RI}
! DB = 20*log(mag(value))
! Optional Selection: R XY; where XY=reference res {default R 50}
F n11x n11y n21x n21y n12x n12y n22x n22y
!F Mag_S11 Ang_S11 Mag_S21 Ang_S21 Mag_S12 Ang_S12 Mag_S22 Ang_S22
1e9 0.2416 -89.666 0.9138 -22.252 0.9138 -22.252 0.2366 -107.202
2e9 0.4456 -108.425 0.8336 -43.447 0.8336 -43.447 0.4394 -143.149
3e9 0.6068 -121.516 0.7234 -62.672 0.7234 -62.672 0.6044 -171.881
4e9 0.7203 -131.748 0.6068 -79.382 0.6068 -79.382 0.7259 -164.03
5e9 0.7945 -139.741 0.5001 -93.494 0.5001 -93.494 0.8097 143.997
END
保存为"amplifier.mdf",然后就可以在原理图里通过S2PMDIF控件调用mdf文件进行参数扫描仿真了。
注意,这里为了以示区分,mdf文件内容中温度变量为"T",而原理图中扫描的变量为"X"。
历史文章
↓关注本公众号↓