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 have two questions regarding the phase noise simulation results (PSS + Pnoise) for ring oscillators:
(1) How much the precision of the initial oscillation frequency is important in estimating phase noise ?
(2) The results that I get for the phase noise seems a bit high. I feel there is a shift up in all the frequencies. In very low frequencies (close to carrier) the phase noise is largely positive. Comparing with the analysis presented in [Abidi, JSSC 2006] the phase noise sounds very high. Does someone has any idea that what could be wrong?
The ring oscillator designed to oscillate at 2.4 GHz using CML gates with a tail bias current of about 200 uA.
Thanks in advance for your help.
What version of the simulator are you using? Have you tried turning on "lorentzian" on the pnoise options form?
In reply to Andrew Beckett:
In reply to Ayrin:
In reply to realf:
Coming back to the issue of phase noise simulation for a ring oscillator, I have seen again the two following issues:
(1) for a differential ring oscillator, the simulated phase noise at 1 MHz offset is just very high (about 0 dBC/sq.Hz). I don't think this is correct. Here I introduce /voutp and /voutn as the outputs of the oscillator in the pnoise simulation table.
(2) when I redo the simulation and introduce the outputs in the pnoise simulation table as: /voutp and /gnd!, then the simulated phase noise goes done by about 100 dB ! Now this one sounds to me like a very good number, much better than the expected !
Do you have any suggestion for a reliable simulations ?
Sr. Staff Support AE, Global Customer Support
Cadence Design Systems, Inc.
Still not enough info to go on. Can you contact customer support instead so you can provide all the necessary information to understand what you're doing? Did you use a more recent version of the simulator? (I'm a bit surprised lorenzian wasn't there with MMSIM72, so something sounds a bit strange in your setup; maybe it was a very early MMSIM72 version - I can't quite remember when it was introduced).
Either way, I'm not sure if that's what your problem is.
Thanks for your reply!
The version of the tool I am using is: IC6.1.5 and for MMSIM it is 7.2.
I set no special option: PSS (shoting method) pluse PNOISE. The oscillator is a ring oscillator with CMOS inverter type of delay elements. To make it differential, there is a weak cross-coupled between each two differential nodes.
As I mentioned, the phase noise improves by about 100 dB when I set the output in PNOISE simulation /voutp and /gnd!. If I select the output as /voutp and /voutn, the reported phase noise is very bad.
In reply to Tawna:
Thanks for your support. Here is the option section of my setup:
analysis('pss ?fund "1.5e9" ?harms "20" ?errpreset "conservative" ?oscana t ?p "/xp<1>" ?n "/gnd!" ?ppv "" )analysis('pnoise ?sweeptype "relative" ?relharmnum "1" ?start "1e3" ?stop "1e7" ?dec "11" ?maxsideband "40" ?p "/xp<1>" ?n "/gnd!" ?oprobe "" ?iprobe "" ?refsideband "" )
option( ?categ 'turboOpts 'uniMode "APS" )
In reply to smlogan:
There are a number of things which are incorrect in your reply, Shawn.
First of all, it always uses the initial transient as a starting point for the shooting interval (the analysis was set up to use shooting because that's the default), regardless of whether you specify tstab. With an oscillator it uses a small number of cycles of the estimated frequency (4, from memory) for this initial transient which is usually not enough for the oscillation to have built up significantly.
Note that for the Shooting Newton method the initial transient does not need to be fully settled - the algorithm can find the settled steady state itself. However, generally you need to be close to the settled response - ideally past any non-linear startup behaviour.
Setting maxstep is not necessary for accuracy - because maxstep is controlled during the shooting interval to be (depending on errpreset and other settings) 5 points per period of maxacfreq, which is set to 4 times the highest harmonic requested, or 40 if fewer than 10 harmonics are requested (so at least 200 points per period, more if higher harmonics are requested). However, this does not apply to the tstab part of the simulation - there is often benefit in setting maxstep to ensure that the oscillator can build up oscillation more quickly - if there are too few points, the oscillation simulation may take a longer time to start. The lack of a driving signal in the circuit tends to result in increased numerical error and limiting the maxstep helps to mitigate that (without going into too much detail as to why).
If the circuit is a more linear oscillator (or high Q) such as a LC tank or crystal oscillator, you may want to try setting the oscic=lin option for the simulation. This can help speed up the starting of the oscillator.
So overall the advice to use maxstep was a good idea, but for the wrong reasons...
A couple of things - ADE (and OCEAN) forces you to set errpreset (to make you consciously think about it with PSS), but if running a spectre netlist it defaults to liberal, and even with liberal you'll get maxstep set to 1/50th of the period (during the shooting interval). See "spectre -h pss" in the sections on errpreset in the descriptive part after the parameter listing for more details. This will happen even if I don't specify the number of harmonics or even set it to 0...
Even with tstab set, it does seem to set maxstep automatically to 25 points per period in during the tstab (I didn't do an exhaustive test - only with a driven circuit), so I think the need to set maxstep is much less necessary now - but still may be beneficial to aid startup of the oscillator.
Hello Smlogan and Andrew,
Thank you very much for your replies and hints. I will try again with the new settings and will report the results. However in general it seems to me very strange that the results are so much better when I select only one of the two outputs of the differential ring oscillator as the ouptut node in the pnoise simulation. Compared to the case that I select the differential outputs in the pnoise analysis, the difference is very large.