• 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. plotting noise via Matlab

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 124
  • Views 14202
  • 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

plotting noise via Matlab

wgtkan
wgtkan over 5 years ago

Hello,

My cadence Virtuoso version is IC6.1.8-64b.500.9 and my Spectre simulator version is sub-version 19.1.0.237.isr3

I am working with a PSP103 transistor model. I am simulating the DC operating point via a Matlab config file that will start the spectre simulation engine. The simulation runs fine and the netlist file is generated. 

Here is my netlist file: 

Here is my Matlab configuration file: 

The Thermal and flicker noise setup is from line 80-82 in techsweep_config_psp_120_spectre.txt file

c.outvars_noise = {'STH','SFL'};
c.n_noise{1}= {'mn:sid', ''};
c.n_noise{2}= {'mn:sfl', ''};

Here is the main script that calls the simulator and cds_srr

The noise simulation setup is  from line 73 to line 86 in the techsweep_config_spectre.txt file and when I run the script, I get the following error:

Simulation Starts for L = 0.120
Simulation Finished for L = 0.120 with VSB = 1.00 V
Error: The special signal is not exist.
One or more output arguments not assigned during call to "cds_innersrr".

Error in techsweep_spectre_run (line 80)
struct_n = cds_innersrr(c.outfile, c.sweep_noise, params_n{1},0);

In this forum from a long time ago, a similar question was asked: 

https://community.cadence.com/cadence_technology_forums/f/rf-design/19229/cds_srr-error

The replay was provided by the great Andrew Beckett.  "I've only seen this if either the directory name or the result dataset (second arg) is invalid for the data that exists - and then it gives a message before the error."  The answer to that is the result data set is valid. 

"Also, I believe it may happen with non-spectre simulation results"  The answer to that is it is a spectre simulation result. 

But when I do this: 

cds_innersrr(c.outfile, c.sweep_noise, params_n{1})
Error: The special signal is not exist.

Why is this error showing up? I have checked from PSP103p2 model summary that the flicker noise current spectral density is given by "sfl" and the channel thermal noise current spectral density is called "sid".

And when I do this:

cds_innersrr(c.outfile, c.sweep_noise), I get:

Total: 40 properties
'PSFversion' 'BINPSF creation time' 'ENV_VAR_0' 'ENV_VAR_1' 'ENV_VAR_2' 'ENV_VAR_3' 'ENV_VAR_4' 'ENV_VAR_5' 'ENV_VAR_6' 'ENV_VAR_7' 'ENV_VAR_8' 'ENV_VAR_9' 'ENV_VAR_10' 'ENV_VAR_11' 'ENV_VAR_12' 'ENV_VAR_13' 'PSF style' 'PSF types' 'PSF sweeps' 'PSF sweep points' 'PSF sweep min' 'PSF sweep max' 'PSF groups' 'PSF traces' 'simulator' 'version' 'date' 'design' 'analysis type' 'analysis name' 'analysis description' 'xVecSorted' 'tolerance.relative' 'operating point producer' 'output' 'output probe' 'output probe type' 'ground' 'positive output signal' 'negative output signal'

Total: 1 type(s) of signals
Signal type: A_sqrt_Hz_ Data type: Real
'out'


ans =

struct with fields:

signal_info: {'prop' 'Unknown' 'A_sqrt_Hz_' 'Real'}
prop: {40×1 cell}
A_sqrt_Hz_: {'out'}

I do not know what I am doing wrong?

Your help is highly appreciated.

Thanks

  • Cancel
Parents
  • wgtkan
    wgtkan over 5 years ago

    Hello,

    Any idea as to why it is not working?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to wgtkan

    First of all if this was urgent enough for you to chase within a day, then you should contact customer support. I just looked at it and it needed a bit of work to adapt your examples so that it worked in my environment (without the model files) and I'm travelling this week so had limited time.

    The issue here is that you're giving the wrong signal names. They are not "sid" and "sfl". You have looked at the operating point parameters called these, but just because there are operating point parameters called that does not mean that these are the noise contribution parameters in the noise analysis.

    I opened the noise results in ViVA and saw they should be called "Sfl" and "Sthd" (I'm assuming these are the right names - the documentation on noise contributors is a bit lacking; maybe the NXP SimKit documentation covers this (I didn't check)).

    So around line 83 (approx) in the techweep_config code it should be:

    c.n_noise{1}= {'mn:Sthd', ''};
    c.n_noise{2}= {'mn:Sfl', ''};
    %
    c.p_noise{1}= {'mp:Sthd', ''};
    c.p_noise{2}= {'mp:Sfl', ''};

    I also see no reason why you're using cds_innersrr rather than cds_srr. I'm not aware of this being buggy with noise - and it's cds_srr that's the public function. So I changed the calls to:

    struct_n = cds_srr(c.outfile, c.sweep_noise, params_n{1});
    struct_p = cds_srr(c.outfile, c.sweep_noise, params_p{1});

    All seemed to work OK when I tried it with these.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • wgtkan
    wgtkan over 5 years ago in reply to Andrew Beckett

    This is incredible. 

    It works like a charm. I agree that the documentation on noise with the NXP SimKit is quite limited. 

    Thank you very much indeed.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • wgtkan
    wgtkan over 5 years ago in reply to Andrew Beckett

    This is incredible. 

    It works like a charm. I agree that the documentation on noise with the NXP SimKit is quite limited. 

    Thank you very much indeed.

    • 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