• 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. Clean DFT with tran

Stats

  • Locked Locked
  • Replies 1
  • Subscribers 124
  • Views 15125
  • 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

Clean DFT with tran

itos
itos over 8 years ago

Hello,

I do get the following distorted DFT plot from my tran simulation:

The circuit is the following simple circuit:

Note that I can get clean DFT plots with different circuits but I think the caveat here is the feedback. In the end I want to read off HD3 and match it together with Pin to IIP3 obtained via hb. However, the results are off by up to 30dB!! I assume the fundamental issue is the distorted DFT spectrum.

I am doing everything I could think of ensuring a clean DFT:

  1. My input frequency is "fin". The length of my tran simulation is 21/VAR("fin") and ensures an integer amount of cycles
  2. strobe period is set to 1/(4096*VAR("fin")) ensuring exactly 4096 points per cycle
  3. As can be seen from the expression in the plot, the start and stop time is obtained from 10/VAR("fin") to 20/VAR("fin") ensuring precisely 20 cycles
  4. The time constant of the circuit is (50+50)*200p*(10+1)=220ns. After 10 cycles, the exponentional has died off by 400dB!! Hence I skip the first 10 cycles. Skipping 100 or even 10000 does not change anything
  5. Integration method is set to gear2 and reltol=1e-15, iabstol=vabstol=1e-18. The accuracy must be high enough. The noise floor should be around dB20(1e-15)=-300 dB (numerical precision). However, the spurs are down to -150dB; resulting in precision of 30e-9.

What are the DFT artefacts, what is the cause and how can they be avoided (also in a feedback circuit!) ?

Thank you!

itos

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    I don't get exactly the same results as you (I may be guessing some of the values you've set), but the primary problem is your reltol/vabstol settings which would require higher precision than double precision floating point numbers on the machine. Because of this, you are completely defeating the accuracy controls in the simulator.

    You should understand that double precision floating point numbers have a 52 bit mantissa, which corresponds to about 15 decimal digits of resolution. There needs to be some margin in there too - realistically a reltol tighter than about 1e-8 is not beneficial. If you have a 1V amplitude signal, you cannot resolve 1e-18 either - so it's expecting the various tolerances to be smaller than can be resolved.

    With this netlist (default tolerances):

    //

    parameters fin=1M
    port0 (in1 0) port type=sine freq=fin ampl=1
    r1 (in1 mid) resistor r=50
    c1 (mid vo) capacitor c=200p
    e2 (vo 0 mid 0) vcvs gain=-10

    tran tran stop=20/fin strobeperiod=1/fin/4096
    //opts options reltol=1e-15 vabstol=1e-18 iabstol=1e-18

    and then calculating:

    dB20(dft(v("vo" ?result "tran") 10/1.0M 20/1.0M 4096 "Rectangular" 1 "default" 1.0 ))

    I get:

    This is with the default tolerances. With the settings you had, I get a similarly bad result (it seems to be mostly the vabstol that causes the problem - but a reltol that small is ridiculous and is pointless).

    Regards,

    Andrew.

    • 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