• 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. pss/qpss in the same run (alter? in ADE L?)

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 125
  • Views 2439
  • 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

pss/qpss in the same run (alter? in ADE L?)

itos
itos over 9 years ago

Hi,

I simulate a mixer and I would like to obtain values for NF and IIP3 at the same time.

NF is obtained using pss+pnoise. For this analysis only one periodic signal must exist (the LO) and the port of the input signal must have zero frequency/power.

IIP3 is obtained using a swept qpss+qpac. Apart from the LO, the input port must contain a nonzero frequency signal.

The stupid way is to change the schematic for each analysis. To avoid that, I created a design variable tran_in_enable and set the frequency and amplitude of the input port to tran_in_enable*fin and tran_in_enable*Pin. In ADE L, I the set tran_in_enable to 0 and run pss/pnoise to get the NF and in the next step set it to 1 and enable qpss/qpac to get IIP3.

However, I want to obtain both values in one shot. Now I learned about the alter statement. If I manually change my input.scs the following way, everything works as expected:

simulator lang=spectre
global 0 vdd!
include "models.scs"
parameters  tran_in_enable=0
[...]
simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
    tnom=25 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
    digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \
    checklimitdest=psf
pss  pss  fund=1G  harms=50  errpreset=conservative  annotate=status
pnoise  (  vop  vom  )  pnoise  sweeptype=absolute  start=1k
+       stop=BW  dec=10  maxsideband=10  iprobe=PORT0  refsideband=-1
+       annotate=status

alter1 alter param=tran_in_enable value=1

sweepqpss  sweep  param=Pin  start=-60  stop=40  lin=100  {
  qpss  qpss  flexbalance=yes  oversample=[1  1]  funds=["LO"  "fin"]
+     maxharms=[3  3]  errpreset=moderate  annotate=status

  qpac  qpac  start=1.09G  clockmaxharm=2  annotate=status
}
[...]

However, ADE L always overwrites the alter line.

What is the correct approach to run pss/qpss simultanuously in ADE L?

Thank you!

  • Cancel
Parents
  • itos
    itos over 9 years ago

    Thanks. hb+hbac+hbnoise does not seem to suffer from this problem.

    However, for the IIP3 curve I need to sweep hb+hbac over the input power Pin. If I also enable hbnoise, the hbnoise is executed for all swept Pin, resulting in huge computation time. For hbnoise, I only need to execute it once (for an arbitrary Pin).

    Generally, I'm not sure if this really fixes the general problem. What if I need to use shooting engine rather than harmonic balance?

    EDIT: I just saw your second response :)

    The problem is I am using this with Muneda wicked (a tool for circuit optimization) and this requires to obtain all outputs using the same netlist/run.

    I'd be very happy if Andrew has an appropriate hack for this.

    (On a note: I would find it very useful to have a special "Analysis" "alter" which can be freely shifted within the analysis box. Also being able to define multiple analyses of the same type would be very useful: then I could define "hb1" as a swept variant followed by "hbac" and then "hb2" without sweep, followed by hbnoise)

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • itos
    itos over 9 years ago

    Thanks. hb+hbac+hbnoise does not seem to suffer from this problem.

    However, for the IIP3 curve I need to sweep hb+hbac over the input power Pin. If I also enable hbnoise, the hbnoise is executed for all swept Pin, resulting in huge computation time. For hbnoise, I only need to execute it once (for an arbitrary Pin).

    Generally, I'm not sure if this really fixes the general problem. What if I need to use shooting engine rather than harmonic balance?

    EDIT: I just saw your second response :)

    The problem is I am using this with Muneda wicked (a tool for circuit optimization) and this requires to obtain all outputs using the same netlist/run.

    I'd be very happy if Andrew has an appropriate hack for this.

    (On a note: I would find it very useful to have a special "Analysis" "alter" which can be freely shifted within the analysis box. Also being able to define multiple analyses of the same type would be very useful: then I could define "hb1" as a swept variant followed by "hbac" and then "hb2" without sweep, followed by hbnoise)

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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