首页|资源下载
登录|注册

您现在的位置是:首页 > 技术阅读 >  ADS应用技巧(11)——将多个s2p文件合并成一个支持参数扫描的mdf文件

ADS应用技巧(11)——将多个s2p文件合并成一个支持参数扫描的mdf文件

时间:2024-06-02

;【免责声明】

  • 本公众号的主体为个人,作者在本公众号发表的所有文章均是出于无私分享、交流学习的目的。

  • 作者在该公众号发表文章纯属个人行为,文章的观点也纯属个人观点,与作者曾经任职或者正在任职的公司、其他个人或组织均没有任何关系。

  • 作者已经发表或者即将发表的MMIC设计系列文章将会严重倚赖于各类EDA软件,尤其是ADS和Cadence;作者个人的确没有实力购买这些软件的使用授权,但作者保证仅用于业余研究和交流学习的目的,绝对不会用于商业盈利;若软件商有异议,作者全力配合删除相关软件和文章。

  • 文章中可能有些素材取材于网络,若有侵权请读者提醒,作者会在第一时间进行更正。

  • 对于声明原创的文章,欢迎任何人转载分享,但须注明出处。


射频器件在不同的偏置电压电流下性能指标会有差异,不同工作温度条件下也有明显差异,以放大器为例,高低温环境下其增益差异可能达到2~4dB。假设在不同温度(-45℃、+25℃、+125℃)下分别测得三组S参数,保存对应的三个s2p文件:

N45.s2pP25.s2pP125.s2p

如果要级联仿真,三温下的性能指标只能分别代入仿真。能否将这三个文件整合到一起来表征这个放大器的高低温S参数呢?这样就可以利用参数扫描的方式来考察这个放大器的高低温S参数。


答案是可以利用mdf文件格式。S2PMDIF是一种多维二端口S参数文件(Multi-Dimensional 2-Port S-parameter File),其中MDIF全称是Measurement Data Interchange Format(测量数据交换格式),用于基于测量数据构建统计表征。

S2PMDIF可以包含任意多个小信号S参数或NF数据对,其中NF数据是可选的。它最基本的语法格式是:

! Comment LineVAR <_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 >ENDBEGIN 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 2004VAR Wafer_Lot = 0BEGIN 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_S221e9 0.2416 -89.666 0.9138 -22.252 0.9138 -22.252 0.2366 -107.2022e9 0.4456 -108.425 0.8336 -43.447 0.8336 -43.447 0.4394 -143.1493e9 0.6068 -121.516 0.7234 -62.672 0.7234 -62.672 0.6044 -171.8814e9 0.7203 -131.748 0.6068 -79.382 0.6068 -79.382 0.7259 -164.035e9 0.7945 -139.741 0.5001 -93.494 0.5001 -93.494 0.8097 143.997ENDBEGIN 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 R1.0000000E9 0.1221 0.8026 29.711 0.12002.0000000E9 0.2440 0.6919 57.344 0.12003.0000000E9 0.3659 0.6515 80.598 0.12014.0000000E9 0.4878 0.6507 98.564 0.12015.0000000E9 0.6097 0.6671 111.954 0.1202END! File using # freq_unit ... Optionline! Created Mon Jan 26 15:02:05 2004VAR Wafer_Lot = 1BEGIN 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_S221e9 0.2416 -89.666 0.9138 -22.252 0.9138 -22.252 0.2366 -107.2022e9 0.4456 -108.425 0.8336 -43.447 0.8336 -43.447 0.4394 -143.1493e9 0.6068 -121.516 0.7234 -62.672 0.7234 -62.672 0.6044 -171.8814e9 0.7203 -131.748 0.6068 -79.382 0.6068 -79.382 0.7259 -164.035e9 0.7945 -139.741 0.5001 -93.494 0.5001 -93.494 0.8097 143.997ENDBEGIN 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 R1.0000000E9 0.1221 0.8026 29.711 0.12002.0000000E9 0.2440 0.6919 57.344 0.12003.0000000E9 0.3659 0.6515 80.598 0.12014.0000000E9 0.4878 0.6507 98.564 0.12015.0000000E9 0.6097 0.6671 111.954 0.1202END

上面这个示例数据有一个变量Wafer_Lot,两个取值1、2代表两个不同的晶圆号,分别包含了一组S2P数据和NF数据。


回到文章开头的放大器三温S参数合并问题,方法就是定义一个温度自变量,例如:

VAR T=-45

这里暂不考虑NF数据,直接定义三个BEGIN ACDATA ... END字段分别包含三个温度下的s2p数据即可,注意源s2p文件的数据格式:

VAR T = -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_S221e9 0.2416 -89.666 0.9138 -22.252 0.9138 -22.252 0.2366 -107.2022e9 0.4456 -108.425 0.8336 -43.447 0.8336 -43.447 0.4394 -143.1493e9 0.6068 -121.516 0.7234 -62.672 0.7234 -62.672 0.6044 -171.8814e9 0.7203 -131.748 0.6068 -79.382 0.6068 -79.382 0.7259 -164.035e9 0.7945 -139.741 0.5001 -93.494 0.5001 -93.494 0.8097 143.997END

VAR T = 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_S221e9 0.2416 -89.666 0.9138 -22.252 0.9138 -22.252 0.2366 -107.2022e9 0.4456 -108.425 0.8336 -43.447 0.8336 -43.447 0.4394 -143.1493e9 0.6068 -121.516 0.7234 -62.672 0.7234 -62.672 0.6044 -171.8814e9 0.7203 -131.748 0.6068 -79.382 0.6068 -79.382 0.7259 -164.035e9 0.7945 -139.741 0.5001 -93.494 0.5001 -93.494 0.8097 143.997END
VAR T = 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_S221e9 0.2416 -89.666 0.9138 -22.252 0.9138 -22.252 0.2366 -107.2022e9 0.4456 -108.425 0.8336 -43.447 0.8336 -43.447 0.4394 -143.1493e9 0.6068 -121.516 0.7234 -62.672 0.7234 -62.672 0.6044 -171.8814e9 0.7203 -131.748 0.6068 -79.382 0.6068 -79.382 0.7259 -164.035e9 0.7945 -139.741 0.5001 -93.494 0.5001 -93.494 0.8097 143.997END

保存为"amplifier.mdf",然后就可以在原理图里通过S2PMDIF控件调用mdf文件进行参数扫描仿真了。

注意,这里为了以示区分,mdf文件内容中温度变量为"T",而原理图中扫描的变量为"X"。


历史文章




↓关注本公众号↓