• 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. tran vs. pss - reproducing results

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 127
  • Views 2162
  • 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

tran vs. pss - reproducing results

itos
itos over 9 years ago

Hi,

I built a simple receiver based on a passive mixer. I used pss/pac/pnoise/psp/qpss/qpac et.al. to determine NF, matching, linearity. I relied on it and get good results (e.g. NF=7dB, IIP3=16dBm).

I use a single tone at 1.1 GHz which is downconverted via fLO=1GHz to 100 MHz.

As an example, this shows the frequency domain output of the pss:

vixer2_pss_spectrum.pdf

As can be seen, the spectrum is pretty clean, HD3=100 dB and this matches reasonably well with the results for IIP3 I am getting with qpss/qpac.

Now I need to obtain the same results with tran (I build a new architecture which in the end I must verify using tran), even is simulation takes long. I am shocked that results are nothing but clean and garbage. This shows one DFT of the output signal and a zoomed version. It can be seen that there are tons of spurs:

vixer2_tran_dft.pdf

vixer2_tran_dft_zoom.pdf

I am absolutely aware of caveats of the DFT, hence I made sure that:

  • Simulation time is exactly tran_sim_periods/BW where tran_sim_periods=400 and BW=100MHz. Hence the simulation captures 400 periods of the baseband signal precicely.
  • To obtain equally-spaced samples for the DFT, I set strobeperiod to 1/(BW*NDFT) where NDFT=2^17. Hence the Nyquist rate is 100MHz*2^17=13 THz, very high!
  • I plot the DFT with db20(mag(dft(v("/vod" ?result "tran") 10/BW  tran_sim_periods/BW NDFT "Rectangular" 1 "default" ))). So I skip the first 10 periods such that the circuit can stabilize. The DFT takes 390 periods, hence the frequency resolution is very high!
  • As can be seen, the DFT runs over entire periods so no leakage can occur.

Given all these points, tran must give the same results as pss. My initial assumption was that the spurs are higher-order spurs that fold back due to too low Nyquist rate. But apart from the fact that 13 THz is huge, results do not change when I increase either NDFT or tran_sim_periods. Also, my LO has rise and fall time of 10ps, so there can't be infinite frequency content (as it would occur for sign(cos(w*t)) with zero rise/fall time).

Last but not least I cut out the last period of the tran simulation and compare it to the time domain output of pss. I export both signals to MATLAB and would expect them to be identical. Fortunately qualitatively they look similar but not even the amplitude matches:

How can that be?

Any ideas on this?

  • Cancel
  • Frank Wiedmann
    Frank Wiedmann over 9 years ago

    If the time-domain results of pss and tran are not identical, then this is obviously your main problem that you must examine and solve first. Maybe your circuit has another very large time constant (for example from a blocking capacitor) and you would have to run the tran analysis for much longer (or use the right initial conditions) in order to reach the real steady state.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • itos
    itos over 9 years ago
    Great Frank, thanks! Indeed I have a 1n coupling cap. Removing it produced good results. Also when I just use the voltages from pss analysis as initial conditions tran also works with coupling cap. However, both time domain signals are still not identical (but close). For example, a difference of 42uV at 76mV signal level -> 65dB "SNR". Maybe this is just because tran and pss use different algorithms and time steps? Interestingly the performance in terms of HD3 is now even better with tran (-90dB wrt. -80dB).
    • 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