• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. RF Design
  3. Validate idial inductor using Yparam expression

Stats

  • Locked Locked
  • Replies 15
  • Subscribers 63
  • Views 24969
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Validate idial inductor using Yparam expression

yefJ
yefJ over 6 years ago

Hello , i would like to verify  an idial inductor using its Y-param.i have built a two port system as shown bellow and performed SP simulation for it.

From the direct plot window there are only option to view the Imaginary or the Real part of the Yparam where as in my formula i need the whole Complex number(as shown bellow).

When i imported the imaginary part it showed me  imag(ypm('sp 1 1)).

I assumed ypm('sp 1 1) is Y11. so by this logic my formula need to be expressed as

(ypm('sp 1 1)+ypm('sp 2 2)+2*ypm('sp 2 1))/(ypm('sp 1 1)*ypm('sp 2 2)-ypm('sp 1 2)*ypm('sp 1 2)).

Afterwards i pressesed the button of "evaluate the buffer and express the result in a table" i got the table shown in the end.
The table has only real values, no complex numbers in it .

Where did i go wrong?
Thanks

*************************************

  

********************************

*************************


*******************


*************************************


******************************************


************************************************

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago

    If you send complex-valued data to either the table or to the graph (as a rectangular graph) then it automatically displays the magnitude because they are only designed to display scalar data not complex data. You would have to use the real() and imag() functions to extract the real and imaginary parts separately do to this.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • yefJ
    yefJ over 6 years ago in reply to Andrew Beckett

    Hello Andrew, I have tried to implement the expression with real and imaginary a part.

    ((imag(ypm('sp 1 1))+real(ypm('sp 1 1)))+(imag(ypm('sp 2 2))+real(ypm('sp 2 2)))+(imag(ypm('sp 2 1))+real(ypm('sp 2 1))))/ ((imag(ypm('sp 1 1))+real(ypm('sp 1 1)))*(imag(ypm('sp 2 2))+real(ypm('sp 2 2)))-(imag(ypm('sp 1 2))+real(ypm('sp 1 2)))*(imag(ypm('sp 1 2))+real(ypm('sp 1 2))))

    still i couldnt see complex values. 
    I have try to verify my expression in ADS as shown bellow , and i succseeded recreating the inductance from the imaginary part of the expression as shown bellow

    How can i plot my the imaginary part of my expression? Where did i go wrong creating this expression in Cadence virtuoso Calculator.

    Thanks

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to yefJ

    I don't know why you've complicated this so much - especially when you've shown the ADS expression which would be almost the same in structure as it would be in the ADE calculator. The ypm function returns complex numbers (versus frequency) and only when a complex expression is sent to the graph or a table does it automatically take the magnitude. You do not need to separate out the real and imaginary parts and then add them back together again - that is a pointless exercise, and it will still show the magnitude at the end anyway when sent to the table.

    You could do it in two steps (e.g. using the expression editor in the calculator, or with separate outputs in ADE):

    zz=(ypm('sp 1 1)+ypm('sp 2 2)+2*ypm('sp 2 1))/(ypm('sp 1 1)*ypm('sp 2 2)-ypm('sp 1 2)*ypm('sp 1 2))
    l=imag(zz)/(2*3.1415926535*xval(sp(1 1)))  ; the xval part is to the get the frequency

    I can't quite remember whether the access function to get s-parameters is sp(1 1) - but the point here is to just give something you can get xval of.

    Or you could just use imag() around your whole expression:

    imag((ypm('sp 1 1)+ypm('sp 2 2)+2*ypm('sp 2 1))/(ypm('sp 1 1)*ypm('sp 2 2)-ypm('sp 1 2)*ypm('sp 1 2)))

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • yefJ
    yefJ over 6 years ago in reply to Andrew Beckett

    Hello Andrew, i have tried to implement your guidance by entering the  expression you suggested

    imag((ypm('sp 1 1)+ypm('sp 2 2)+2*ypm('sp 2 1))/(ypm('sp 1 1)*ypm('sp 2 2)-ypm('sp 1 2)*ypm('sp 1 2)))

    However i got a very noisy plot aroung zero , not even ascending  as we should expect by Z_L=jwL

    Its an idial inductor of 1n its suppose to give me a straight line.
    Where did i go wrong?
    Thanks

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 6 years ago in reply to yefJ

    Dear yefj,

    I wish you would study your results a bit more closely as Andrew spent a lot of effort answering your questions! Your results appear as expected with a sign inversion (although noisy likely due to the resolution of your y parameters). In your prior response, you computed the expected inductance as 1 nH. The expression you provide above is not the inductance, but the impedance expressed in ohms. With a 1 nH inductance and at 10 GHz, the impedance should be 1e-09*2*pi*10e9 = +62.8 ohms. If I take your spectre plot of impedance versus frequency and apply some post-processing to make it more readable, I can include an average trend line over the data in red. Note that at 10 GHz, the estimated impedance is just about -60 ohms or so - which is exactly what I would expect with a sign inversion possibly due to your simulation or ADE expression

    Does this make sense yefj?

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • yefJ
    yefJ over 6 years ago in reply to ShawnLogan

    Hello Shawn,-60 ohm is not what we can expect from a formula like Z_L=jwL , wL cannot be negative.

    Furthermore its an idial inductor simulation, its not suppose to give me such noisy peaks only a straight line.

    Thanks 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to yefJ

    The issue is that you have a very simplistic ideal network (with infinite Q) and it is highly sensitive to numerical error in calculating the Y parameters and your subsequent calculations based on the Y parameters. 

    Simulators are not generally that good at dealing with ideal circuits because they are not optimised for that - but this would be a numerical problem anyway.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • yefJ
    yefJ over 6 years ago in reply to Andrew Beckett

    Hello Andrew, is there a way to make the numerical calculation more strict and even if it will take more time it will get a more accurate result?

    Thanks

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to yefJ

    I would ask a different question - what is the point of doing this with an ideal inductor anyway? You know what the inductance is. 

    One way you could compute it is a slightly different way:

    ; convert two-port to single port s11
    s11_1port=spm('sp 1 1)-spm('sp 1 2)*spm('sp 21)/(1+spm('sp 2 2))
    ; Convert s11 to z11
    portImpedance=50
    PI=3.14159265358979323
    z11_1port=portImpedance*(1+s11_1port)/(1-s11_1port)
    L=imag(z11_1port)/(xval(spm('sp 1 1))*2*PI)
    plot(L)

    This is still a bit noisy, but the error is in the 15th/16th digit, so insignificant.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 6 years ago in reply to Andrew Beckett

    Hi yefj,

    In addition to Andrew's comments regarding your subsequent computations, I still believe you have a sign error. As validation, I made a Virtuoso schematic with your two ports and an ideal 1 nH inductor. I performed an S-parameter analysis and exported the real and imaginary parts of the y parameters. I converted the y parameters to z parameters and computed the imaginary part of the input impedance using the 50 ohm load port. The plot of the imaginary impedance is shown below and it is exactly as desired with a positive complex value of 62.3 ohms at 10 GHz. I have also attached the Excel file I used to do the conversions and create the plot. A screenshot of the schematic I used is also contained in the Excel file.

    Shawn

    y_real_imag_t0_z_params_to_zin_1nH_sml_051419.xlsx

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
>

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information