oermens
|
I replied this topic on another forum, but will post here for anyone who is interested:
s11, s12, s21, s22 have no meaning to spectre, you must use aaSP(m n) where m,n can take value 1 or 2
try loading these variables into your ADE calculator:
armSetCalcMemory( "Sdiff" "(aaSP(1 1)-aaSP(1 2)-aaSP(2 1)+aaSP(2 2))/2" ) armSetCalcMemory( "Zdiff" "2*50*(1+(aaSP(1 1)-aaSP(1 2)-aaSP(2 1)+aaSP(2 2))/2)/ (1-(aaSP(1 1)-aaSP(1 2)-aaSP(2 1)+aaSP(2 2))/2)" ) armSetCalcMemory( "Rdiff" "real(2*50*(1+(aaSP(1 1)-aaSP(1 2)-aaSP(2 1)+aaSP(2 2) )/2)/(1-(aaSP(1 1)-aaSP(1 2)-aaSP(2 1)+aaSP(2 2))/2))" ) armSetCalcMemory( "Xdiff" "imag(2*50*(1+(aaSP(1 1)-aaSP(1 2)-aaSP(2 1)+aaSP(2 2) )/2)/(1-(aaSP(1 1)-aaSP(1 2)-aaSP(2 1)+aaSP(2 2))/2))" ) armSetCalcMemory( "Ldiff" "imag(2*50*(1+(aaSP(1 1)-aaSP(1 2)-aaSP(2 1)+aaSP(2 2) )/2)/(1-(aaSP(1 1)-aaSP(1 2)-aaSP(2 1)+aaSP(2 2))/2))/(2*pi*xval(aaSP(1 1)))" ) armSetCalcMemory( "Qdiff" "imag(2*50*(1+(aaSP(1 1)-aaSP(1 2)-aaSP(2 1)+aaSP(2 2) )/2)/(1-(aaSP(1 1)-aaSP(1 2)-aaSP(2 1)+aaSP(2 2))/2))/real(2*50*(1+(aaSP(1 1)-aa SP(1 2)-aaSP(2 1)+aaSP(2 2))/2)/(1-(aaSP(1 1)-aaSP(1 2)-aaSP(2 1)+aaSP(2 2))/2)) " )
in order: differential sparameter, differential impedance, differential resistance, differential reactance, differential inductance, differential quality factor. even if you define a variable in calculator, if you just type the variable name (ex, Sdiff) into calculator expression it will give error. you have to select the variable from the list of user defined variables in calculator, then in the expression you will see the full equation that the variable represents. for example you can not type in calculator 0.5*Z0*(1+Sdiff)/(1-Sdiff) to get differential impedance. very stupid i know, but it is the way calculator works.
|