• 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. Custom IC Design
  3. Nonlinearity Separation

Stats

  • Locked Locked
  • Replies 9
  • Subscribers 126
  • Views 18547
  • 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

Nonlinearity Separation

itos
itos over 8 years ago

This is with 95% a question without solution but I still try it .. maybe there is something out there.

For noise the different sources are visible in the results browser and noise summary so I can identify the devices/sources which kill noise performance.

I would be looking for something similar for linearity (e.g. IIP3, HD3, IM3, ...).

The issue: A simple differential pair (PMOS with NMOS loads or reverse).

The IIP3 versus VGS, VDS, GM/ID etc looks arbitrary and I have no control what is limiting linearity.

I can get a relatively accurate expression for IIP3 for drain current linearity but this is 30-40 dB (!!) better than what I get. So I assume I am limited by ids/vds linearity. But is it the gm transistor or the load? And what know to dial to get a handle on this?

Some sort of "nonlinearity" separation could confirm that I may neglect the common ids/vgs nonlinearity and just plot IIP3 vs. VDS of a single transistor.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Well, you might (almost) be in luck with that remaining 5%. The ac, pac and hbac analyses have some "Specialised Analyses" at the bottom of the form for performing either Compression Distortion Summary or IM2 Distortion Summary. For example:

    The idea is that for compression distortion, rather than supplying a large-signal input, it uses a perturbation method to allow a small-signal non-linear analysis with a small number of harmonics. This means that for an LNA, you can run this in AC analysis, and for a mixer you can use PAC or HBAC with just the LO applied as large signal to the mixer (so it's a single tone large-signal analysis for the PSS/HB). With the IM2 Distortion Summary you specify two tones (again can be done with AC, PAC or HBAC - so both these tones are not large signal). 

    You can specify which contributor instances you wish to compute the contribution from, and if not specified it includes all non-linear devices. The analysis is done at a single frequency, and is pretty fast (this is all part of the "Rapid IP2/IP3" type functionality - it's not dissimilar to an ac analysis with the number of points being the number of devices being analysed. 

    The analysis (for compression distortion at least, which is the one I use the most) computes the linear response from the ac (or pac) source to the output, and then computes the response with each device in turn being allowed to be non-linear (up to the number of harmonics specified; generally we suggest leaving this blank though). It then outputs the ratio of the output with the device nonlinear to the output with everything linear, and you can then (via the Results->Print menu) show the relative contribution of each device to the distortion.

    You have to specify the ac magnitude or pacmag on the source (depending on whether it's ac, pac/hbac - you will be prompted) and you should set it at a level where you are just seeing distortion.

    There isn't an IM3 Distortion Summary (if I remember rightly this was something that was technically challenging to implement, although there is an existing enhancement CCR asking for this, 1137565). However, in general you should be able to see the key distortion contributors from the normal Compression Distortion summary, it's just not shown in terms of contribution to IM3/IP3.

    More info of course in the documentation.

    Hope that helps!

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Frank Wiedmann
    Frank Wiedmann over 8 years ago

    A pretty good presentation about the Distortion Summary is available at https://www.cadence.com/cdnlive/library/documents/2014/sv/CUS102.pdf. And thanks to CCR 1260324, phase information was added in IC617.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Thanks Frank for the link to that presentation - I agree, it's a very useful and practical summary of using this capability.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • itos
    itos over 8 years ago

    Hi Andrew & Frank,

    Awesome, this is pretty incredible! Wouldn't have expected a solution for this!

    I am trying to wrap my head around the "Distortion(dB)" output for quite some time and I just do not understand it.

    Consider this simple circuit: pvccs with an IIP3 of 0dBm (in my example: c1=10 and c3=-400/3) and acmag=1mV.

    Then the Nonlinear Mag at 1st frequency is given as: a3*3/4*V^3 = (400/3) * 3/4 * 1m^3 = 100nV
    This matches perfectly the simulation. Similarly for the third harmonic: a3/4*V^3 = (400/3)/4*1m^3 = 33.3333nV

    However, "Distortion(dB)" (the second column) shows 86.86udB (!). This does not make sense to me at all!

    The Total Distortion in dB would be the squared sum of the above numbers: 10*log10(100e-9^2 + 33.3333e-9^2) = -139.5424 dB

    Even if I normalize this this by the ideal output of the fundamental in some way ((a1*V)^2 = (10*1e-3)^2 = 100e-6) the result is -99.5424 dB. I do not see how this column can be "zero dB" at all.

    If I use acmag=1, then the first column is 20.83 dB. This is close to 10*log10((100^2 + 33.333^2)/10^2) = 20.4576 dB, but since the third and last column match (and it is only a single ideal pvccs) I would expect this to match precicely as well.

    I just wanted to mention that I consulted the docs as well (spectreref.pdf, spectreRF.pdf, spectreuser.pdf, a.o.) but I did not find a description how this first column is calculated (except vague statements like "the total distortion").

    Thanks!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Frank Wiedmann
    Frank Wiedmann over 8 years ago

    The compression distortion calculation only takes the amplitudes at the fundamental frequency into account.

    For 1 mV input, you get 20*log10((10 mV - 100 nV)/10 mV) = 20*log10(0.99999) = -86.86 udB.

    This matches the result I get with SPECTRE16 ISR1 in IC617 ISR8:

    AC Compression Distortion Summary                             

    Results in        ac_distortion    

                                        Nonlinear Mag(Phase)[V(Deg)] at 1st 2nd & 3rd harm of linear freq                                       
    Instance          Distortion(dB)    freq=1            freq=2            freq=3           
    Total             -86.86u           100n(180)         1.031a(180)       33.33n(180)      
    G0                -86.86u           100n(180)         1.031a(180)       33.33n(180)      

    The phase is shown as 180 degrees, so the values are negative.

    For 1 V input, I get the following result:

    AC Compression Distortion Summary                             

    Results in        ac_distortion    

                                        Nonlinear Mag(Phase)[V(Deg)] at 1st 2nd & 3rd harm of linear freq                                       
    Instance          Distortion(dB)    freq=1            freq=2            freq=3           
    Total             19.08             100(180)          11.23f(-161.6)    33.33(180)       
    G0                19.08             100(180)          11.23f(-161.6)    33.33(180)       

    This is calculated as 20*log10(|(10 V-100 V)/10 V|) = 20*log10(9) = 19.08 dB.

    Your older version does not take the phase into account and calculates for 1 mV 20*log10(1.00001) = 86.86 udB and for 1 V 20*log10(11) = 20.83 dB.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Thanks Frank.

    Often I would say most people get the benefit out of the relative ranking of the contributors, rather than reading too much into the numbers themselves - it at least helps you identify which are the limiting devices. After all, in reality devices the devices going nonlinear do not happen in isolation - they impact each other - but it's a good start.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • itos
    itos over 8 years ago

    Hi Andrew & Frank.

    Thank you SO much for the explanation and example. I had not guessed this. It makes everything clear and I got my results matched.

    > Often I would say most people get the benefit out of the relative ranking of the contributors, rather than reading too much into the numbers themselves

    Yes, I absolutely agree on that and this is what I am interested in the end. However, before starting I want to create a baseline, understand what the numbers mean and cross-check them with other analyses before I trust them. How long did it take me to learn not to blindly trust simulator results? Specifically IIP3?

    One more question though: Is there a reason to take "(LinearOutput + Dist)/LinearOutput = 1 + Dist/LinearOutput" rather than "Dist/LinearOutput"? This results in a very unnatural feeling in me because the number is so close to one. And when else do you see udB? Something like "Dist/LinearOutput" would be way more natural and expected. And as a bonus, it would be identical to IM3 (for sufficiently simple setup).

    Not least - this is one reason why for very small noise figures one tends to use noise temperature rather than noise figure, because the number would be so close to one.

    Similarly: What is the reason to only take the the distortion at the fundamental into account and not all harmonics?

    Often I would say most people get the benefit out of the relative ranking of the contributors, rather than reading too much into the numbers themselves - See more at: community.cadence.com/.../36868
    Often I would say most people get the benefit out of the relative ranking of the contributors, rather than reading too much into the numbers themselves - See more at: community.cadence.com/.../36868
    Often I would say most people get the benefit out of the relative ranking of the contributors, rather than reading too much into the numbers themselves - See more at:
    itos
    Nonlinearity Separation
    This is with 95% a question without solution but I still try it .. maybe there is something out there. For noise the different sources are visible in the results browser and noise summary so I can identify…
    By itos over 8 years ago in Cadence Technology Forums > Custom IC Design
    9 replies
    Latest by Frank Wiedmann over 8 years ago
    How long did it take me to learn not to blindly trust the IIP3 output ... ?

    Both questions are just out of curiosity - my question itself has been answered!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    The primary reason the result is output this way is because it's the simple ratio of what the simulator is actually computing. It's computing the output with everything linear, and comparing that with the output with each device non-linear. In the second case it's getting the total output  including distortion. I guess it could subtract the linear output from this and then give the ratio of this to the linear output, but it doesn't. Typically you'd ensure you have sufficient signal to cause enough distortion that it's not in micro dB!

    Also, it is a compression distortion analysis, and so if you're looking at the effect on 1dB compression point, you'd only look at the fundamental.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Frank Wiedmann
    Frank Wiedmann over 8 years ago

    It's just the way in which compression distortion is defined (see e.g. https://www.microwaves101.com/encyclopedias/compression-point). For the 1-dB compression point P1dB, this analysis will give you -1 dB as result.

    • 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