I was trying to run multiple PNOISE analysis to observe different output points. So, I ran these as separate batch jobs using one of our local scripts, which simply takes in different cases as inputs and launches them as parallel runs.
When doing this for PNOISE (pmjitter), I ran into a hitch. I get the data all right but the PNOISE data is in form of V/sqrt(Hz) instead of sec/sqrt(Hz). At the moment, I am simply integrating the noise, taking dv/dt at the threshold crossing point and mapping the voltage noise error to jitter, but you can see that:(a) It is hard to be sure if one hasn't made a mistake
(b) I canot see the noise summary anymore.
I also noticed that running the sims straight out of the GUI gives you the phase noise but that voltage noise cannot be found anywhere, else I might have done a reality check by comparing results.
Does Spectre run some sort of a postprocessing script after PNOISE analysis is completed? If yes, then how can I force this postprocessor to run on my data. I would like to have that noise summary.
I tried copying over all the data in the psf directory to the default psf directory produced when running the sims out of the GUI and loading results, but to no avail.
Could anyone suggest a way out of this problem? I really don't want to have to run a whole bunch of sims all out of the GUI and wait for weeks in order to see the results.
After a simulation from the GUI, sampled voltage noise should be available from the Results Browser (giving the calculator expression getData("/out" ?result "pnoise_pmjitter") ).
When you add jitter results from the Direct Plot form to the Outputs, expressions with special functions like drplJitter or drplRFJc are generated there. You might want to use these to calculate your results.
I don't think that it is possible to get a noise summary with jitter in seconds instead of sampled voltage noise. This is not really a problem for me as I still get the most important noise contributors and the percentage of their contribution to the total noise (or jitter).
In reply to Frank Wiedmann:
But I fear that that doesn't answer my question. I would like to run sims outside the GUI so as to be able to parallelize things. But doing so prevents me from being able to evaluate pnoise_pmjitter. I only get the voltage mode noise, and more importantly, I cannot get a noise summary.
I don't care if the noise summary is in voltage or jitter terms. I am just looking for the contributors.
So, to rephrase my question:
1) Is there a way in which I may run my sims in batch mode without using the GUI but then get the pnoise_pmjitter and noise summary out of these, e.g. by moving the psf back to the GUI sim directory, opening up ADE-L and doing some operation on the data?
2) Failing which, if I try to run multiple pnoise analyses out of the GUI, is there any way to get each of those to start as a separate thread?
I notice that pnoise only runs as a single-thread simulation. I would like to run 5 pnoise runs and observe the jitter at say 5 different nodes, but I don't wish to wait 5x longer while the GUI launches the runs one after the other.
In reply to vivkr:
With respect to your concerns about accessing the noise contributions and ADE based jitter computations from a pnoise job run outside the ADE, from within the ADE you can open the results from the batch job of interest. I think this will provide the capability of accessing the individual noise contributions and jitter computations.
Concerning your request to use multiple threads, my personal thought is that multiple threads are designed for a single job submission. It sounds as if you are suggesting its use for multiple job submissions. Is there a reason you cannot submit 5 batch jobs to run in parallel? In other words, a "multiple thread" based job, to me, assumes a job is segmented in mutiple parallel jobs and all results are re-combined at the end of the job. From my understanding of your request, the 5 jobs are distinct and there is no combinational process that occurs at the conclusion of the 5 jobs.
ADE can submit 5 parallel jobs when in its distributed mode.
In reply to smlogan:
Thanks for your response. I do run my various jobs in batch mode. But I find that once I have the results, then I am unable to get ADE to read the results and give me say "pmjitter" or a noise summary. The former is not an issue since it is trivial to compute phase noise from integrated voltage noise and signal slope, but the latter is.
What you are saying is that it is no problem to open the results from a batch job using ADE, which is what I also thought. But as I am unable to do so, I was wondering if I am missing some files or such that are perhaps only generated when running a sim out of ADE, maybe as part of some postprocessing.
Regarding threads, you are right. I am referring to multiple jobs and not threads. In my batch mode setup, I can start as many parallel jobs as I wish to. I just have trouble getting ADE to read in the results and give me a noise summary later on.
Anyway, I suppose it might be possible to do things in a bit of a roundabout fashion to get what I want.
Thanks for your response.
My only suggestion with respect to ADE's inability to load your batch simulation data is to make sure that the netlist directory is alongside your psf directory when your batch simulation is run. If the mapping file is not present, ADE may not be able to locate the proper nodes.
You should be able to use the OCEAN noiseSummary function to do this:
openResults("/path/to/results/psf")selectResult('pnoise_pmjitter)sweepValues() ; will show the list of event times
; pick appropriate arguments to this function - note that the paramValues is one of my event timesnoiseSummary('spot ?result 'pnoise_pmjitter ?frequency 1M ?paramValues 6.92444e-10)