• 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. cannot set relative harmonic as a variable

Stats

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

cannot set relative harmonic as a variable

Karev11
Karev11 over 2 years ago

Hi,

I need to set "Relative harmonic" as a variable (N) so that I can write expressions to automatically check PN where N, as part of the design is swept (i.e 1, 2, 3..).

However, the tool doesn't seem to allow using a variable here, either VAR("N") or just N returns error that  "Relative Harmonic" must be an integer.

is there a way around this?

thanks,

Kevin

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago

    Kevin,

    Please read the Guidelines for the Custom IC Design Forum - knowing which version you're using is important - and you also didn't mention which analysis you're running. From a quick test, I found that this works fine with hbnoise, but not with pnoise (in IC6.1.8/ICADVM20.1 ISR29) so my assumption is that you must be talking about pnoise?

    There's an existing (recent) change request, CCR 2705778 asking for this, so I would suggest you contact customer support and request a duplicate be filed on your behalf.

    As a workaround, if your variable is called "N", then use the Options form on the pnoise Choosing Analyses form, go to the end and in the additionalParams field enter:

    relharmnum=N

    You can leave the relative harmonic on the main form as 1 (say). What will happen is that it will netlist the relharmnum parameter twice on the pnoise analysis, but because the definition coming from the additionalParams field is netlisted last on the line, that will win. I've tested this, and it works.

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Karev11
    Karev11 over 2 years ago in reply to Andrew Beckett

    Thanks Andrew, I'll keep in mind on the guidelines

    The solution works great in running the simulations, however, there is another challenging now in the plotting. After the sim is done, I pick one case and in the "direct plot form", add "Phase noise" to output, and the problem is that it uses the specific number (as it should ) instead of variable on the output expression for PN, i.e. number 3 in below should varies based on the variable N..

    phaseNoise(3 "pss_fd" ?result "pnoiseOut1_pm")

    I then manually replaced number 3 in the expression with variable (N or VAR("N")), it doesn't work for cases other than the one where it actually applies

    do you have suggestions?

    thanks,

    Kevin

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to Karev11

    Kevin,

    Rather than using the (sort of) obsolete phaseNoise function (although that should be OK if you're using the "pm" noise output), I'd suggest using:

    pn('pnoise)

    This knows which relative harmonic was used, and it's what the direct plot form uses.

    Oh, hang on. Are you using the "multiple pnoise" checkbox? If so, it then reverts to using the phaseNoise function because it needs to pick the specific output database. That (unfortunately) doesn't seem to work with VAR("N") being used, unfortunately. I'm not entirely sure why (I don't have time to investigate before Christmas) - perhaps you could contact customer support about that. Or not use "multiple pnoise" and use the pn() function instead?

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Karev11
    Karev11 over 2 years ago in reply to Andrew Beckett

    I ended up defining a bunch of PN1 PN2 PN3 .. for different harmonics where I put real number in the phaseNoise() . and only look at corresponding PN_x for specific N. It's not elegant, but seems working

    thanks,

    Kevin

    • 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