yes...there is this support answer #11003524 which should address the topic.
I also learnt from Andrew some time ago about saving oppoints and/or specific info through a file and attaching it to the model libraries.
What I am experiencing now is that the method:
a) gives me the info out of a *tran*
b) gives me the info out of a *envlp_td*
c) for a *pss*, I get
1. a _constant_ value in the *pss_td* folder, if I use the shooting method (seems like a DCOP value)
2. nothing if I use the HB method
Just wondering whether that is the behavior to be expected, or shouldn't I get a (nice) plot of my wanted gm over a period, exactly like I get it for any other V/I in the circuit after a pss?
I seem to remember having done the same thing some 6 months ago and it worked fine..
Thanks for any help.
So...I must be growing older since I do not remember replying to myself in the past ;-)
Anyhow, I found out yesterday what the issue is. I was simulating using the 'High Performance Simulator -- APS'.
For some reason - I am in contact with the Support for this - it looks like the stored gm is just a DC value.
I had a glimpse yesterday and tried the same simulation with good ole Spectre and bam! My gm Vs. time was there!
Maybe this helps someone,
In reply to MicheleA:
That sounds like a bug to me. This ought to work, so support should ensure that a CCR is filed to get this fixed.
That said, I tried to reproduce it with MMSIM12.1 ISR14, and for me I get the gm value saved during shooting in the pss_td database (as a waveform) even when using APS. This isn't true with harmonic balance, but then again that doesn't surprise me - with harmonic balance it would need to solve the gm as a harmonic series and then convert it back into the time domain - and it only computes the voltages and currents as a harmonic series.
Here's the netlist I used:
// test of saving gm during a pss analysismodel nch bsim4 type=nmodel pch bsim4 type=pMP1 (z a vdd vdd) pch w=2u l=0.5uMN1 (z a 0 0) nch w=1u l=0.5uVz (a 0) vsource type=pulse period=40n width=20n rise=1n fall=1n val0=0 val1=1.5Vvdd (vdd 0) vsource type=dc dc=1.5save *:gm sigtype=dev devtype=bsim4tran tran stop=200npss pss period=40n outputtype=all // harmonicbalance=yes
In reply to Andrew Beckett:
yes I just sent my netlist to the Support via our internal channel. Will keep you posted here anyways.
I do not know which MMSIM version I am under (what's the command to see this?), just the Cadence version.
I could source from 500.4 to 500.15 but all gave me this (with APS).
By the way, I was under the impression that HB would not work for time rep of gm. Then why do you say 'harmonicbalance=yes' in your netlist?
Type "spectre -W" or look at the top of your spectre output log - it will tell you the subversion you're using.
The harmonicbalance=yes in my netlist is commented out (it's preceded by // which is a comment).
Surprised you're using the base MMSIM12.1 version - been quite a few hotfixes since then. However, with my netlist, that version works too - I get a waveform in the pss_td database for the gm.
Perhaps you can check? Run "spectre invpss.scs" and open the results in ViVA. Maybe there's some subtle difference in your testcase.
Of course I meant "spectre +aps invpss.scs".
I like to encourage people to live on the edge now and again ;-)
In general I'd expect you to be running from ADE; obviously the benefit of a small command line example is that it's a bit easier to share in a forum like this (and I can throw it together in a few seconds).
I look forward to hearing your findings!
Thank you for fostering my growth Andrew ;-)
...And indeed, your netlist works like a charm! But what a crappy gm :-D
I then tried to use ADE instead of ADEXL for my circuit, however the result is the same: I get a curve with Spectre only. APS gives a sort of DC value out.
Same thing if I sim my circuit from the command line (now I'm a master :-))
I also noted that the whole sim setup is waaay faster when using cmd line. Ok, the circuit is two transitors but I got the impression that the processes *before* actual simulation took a fraction of the time.
Can you please point me to the help entries containing - possibly an overview - of topics like 'running Spectre from the command line' and directory structure...things like that. Maybe the time has come for me to understand all this a little better.
MicheleAI also noted that the whole sim setup is waaay faster when using cmd line. Ok, the circuit is two transitors but I got the impression that the processes *before* actual simulation took a fraction of the time.Can you please point me to the help entries containing - possibly an overview - of topics like 'running Spectre from the command line' and directory structure...things like that. Maybe the time has come for me to understand all this a little better.Hi Michele,
Oh no! What have I done? ;-)
The actual simulation will be the same time - it's doing the same thing - but you've eliminated the overhead of starting the ICRP job, netlisting, managing the job and so on. There's been quite a bit of work on optimizing that recently though, so should be less significant in recent IC616 ISRs, at least for the case of having large numbers of jobs.
As for running spectre from the command line, this is covered in the Spectre User and Reference manuals. Also "spectre -h" is your friend...
As for the actual issue, it must be something to do with some other setting in your example - I don't know what that might be (without seeing the example).
Do you think you could start something if I attached the netlist...well..stripped of the actual devices and just options and simulations?
I'd be more than happy to do that :)
Ideally if you can include the transistor instances, and just omit the model files - presumably you can reproduce this with a simple circuit (similar to my inverter) - and also the options and analysis statements included. Then I can replace them with some other models and see what happens.