Cadence® system design and verification solutions, integrated under our System Development Suite, provide the simulation, acceleration, emulation, and management capabilities.
System Development Suite Related Products A-Z
Cadence® digital design and signoff solutions provide a fast path to design closure and better predictability, helping you meet your power, performance, and area (PPA) targets.
Full-Flow Digital Solution Related Products A-Z
Cadence® custom, analog, and RF design solutions can help you save time by automating many routine tasks, from block-level and mixed-signal simulation to routing and library characterization.
Overview Related Products A-Z
Driving efficiency and accuracy in advanced packaging, system planning, and multi-fabric interoperability, Cadence® package implementation products deliver the automation and accuracy.
Cadence® PCB design solutions enable shorter, more predictable design cycles with greater integration of component design and system-level simulation for a constraint-driven flow.
An open IP platform for you to customize your app-driven SoC design.
Comprehensive solutions and methodologies.
Helping you meet your broader business goals.
A global customer support infrastructure with around-the-clock help.
24/7 Support - Cadence Online Support
Locate the latest software updates, service request, technical documentation, solutions and more in your personalized environment.
Cadence offers various software services for download. This page describes our offerings, including the Allegro FREE Physical Viewer.
Get the most out of your investment in Cadence technologies through a wide range of training offerings.
This course combines our Allegro PCB Editor Basic Techniques, followed by Allegro PCB Editor Intermediate Techniques.
Virtuoso Analog Design Environment Verifier 16.7
Learn learn to perform requirements-driven analog verification using the Virtuoso ADE Verifier tool.
Exchange ideas, news, technical information, and best practices.
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.
It's not all about the technlogy. Here we exchange ideas on the Cadence Academic Network and other subjects of general interest.
Cadence is a leading provider of system design tools, software, IP, and services.
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)