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 am new to cadence virtuoso/spectre. I want to design an ADC for which I have written some components through verilog A containing their respective noise models implemented through white_noise and flicker_noise functions.
Now how to activate those sources in spectre simulation ? It's only active in small signal analysis as far as I know. However I want noise to be present along with the main signal so that I can measure SNR etc using calculator function.So which type of analysis to use: tran or noise ? and how (few lines of analysis statement will help)
Moreover, from cadence virtuoso manual I found that we can perform small signal analysis during transient analysis, by using below command:
Name tran stop=stop actimes=time acnames=name
However I got a syntax error of "ERROR (SPECTRE-16062): Output of circuit is not specified." on running below code snippet on a simple test circuit :
tran tran stop=4u write="spectre.ic" writefinal="spectre.fc" \
annotate=status maxiters=5 actimes=[2u] acnames=[noise1]
noise1 noise start=2u stop=2.1u
finalTimeOP info what=oppoint where=rawfile
I stuffed another "info what=oppoint" statement between 2nd and 3rd line, still same error. Here my understanding is tran analysis stops at 2u and till 2.1 the simulator will run noise analysis (if wrong please correct me). I am still trying to debug this and it may be a plain syntax error. However can someone please answer above questions and guide me through the right approach.
Thanks a lot!
Use transient analysis. (transient noise)
Use the latest versions of MMSIM. (Note that there were some issues with the psp103 trannoise model which are being fixed in MMSIM11.1 ISR23.)
If you are using IC615…
You may want to check out the Spectrum Assistant Appnote at:
If using IC614, use the spectrumMeas function in ADE-L/XL
You can also look at the OCEAN reference manual (information on spectrum function):
And also the spectrumMeas function, see Appendix D of the ViVA tool user guide:
Sr. Staff Support AE, Global Customer Support
Cadence Design Systems, Inc.
In reply to Tawna:
In addition to Tawna's suggestion, you could perform a small signal noise analysis at different time points. This is not the same as adding noise during the transient, but instead it is like running the small signal noise analysis at different bias points.
You tried doing that, but got the statements wrong. You'd need:
tran tran stop=4u write="spectre.ic" writefinal="spectre.fc" \ annotate=status maxiters=5 actimes=[2u] acnames=[noise1] noise1 (posOutputNode negOutputNode) noise start=startFreq stop=stopFreq ...
The noise analysis needs to know where you're measuring the noise, and the frequency sweep range for the results. It's not the time duration it does it for.
I suspect it's really transient noise you're after - although you should check if you really need to use transient noise. Transient noise is generally the method of last resort - there are often much more efficient ways to get the same result.
In reply to Andrew Beckett:
Thanks Tawna and Andrew !
At first I ran the transient noise. I saw the noise signature can be modulated changing noise scale factor.However I was not sure if my white_noise/flicker_noise sources in verilog A modules were active in this analysis, because output of a simple voltage divider circuit wasn't not much distorted (even when models of resistor thermal noise are present in verilog model) unless I gave a noise scale factor of ~ 100 say. So I got some more doubts:
Then I used the approach mentioned by Andrew. I deactivated transient noise part and explicitly used noise analysis after tran analysis. In the transient noise analysis I could see the spectral densities of resistor thermal noise sources:
Thanks a lot !!!!
In reply to OneNewBoy:
OK, to answer your first question, the answer is that you should not need to set the noise seed or scale factors. The noise seed just alters the initialization of the random number generators, so you will end up with a different sequence of random numbers, but they should have the same distribution. It's actually used if you use the "multiple runs" capability of transient noise to allow you to get a set of results to potentially average over (for example), but other than that I'd leave it alone. The scale factor just artificially increases the noise above what the model says it should be - so it's typically used for "what if" type investigations.
The problem could be that you don't have enough accuracy. Noise contributions are pretty small in general, and so it's quite likely you'll need to use errpreset=conservative at least (possibly setting reltol to 1e-4 as well, which would mean that the effective reltol is 1e-5 because conservative divides it by 10). It's also important to set a suitable value for noisefmax, so that you get noise contributions at high frequency. Note that if you don't set noisefmin, it will take whatever noise values there are at noisefmax, and use those across all frequencies (so effectively the noise will be white). If you set noisefmin, it will be coloured using the power spectral density between noisefmin and noisefmax (this involves a bit more work for the simulator though, clearly). Also of course you need a long enough simulation to effectively see the contributions of low frequency noise.
To answer your subsequent 5 questions:
Thank you Andrew for elaborate replies!
To clarify your query on what I wish to model : is noise contribution from thermal /flicker noise of MOSFETs used in designing the adc circuit.I have created models for them in verilog A, So will u not recommend small signal noise analysis for this kind of problem ?
Apart from these sources and quantization noise and mismatches in design, I think a properly designed ADC will not have any other significant noise source. Am I right in assuming this ?
If I model these sources through transient noise and if I specify both fmin and fmax then I guess contributions from both of thermal and flicker noise fucnctions will be included in the output. Then I can take a DFT of time domain output.Another doubt is: do we use the spectral domain output of small signal noise analysis to calculate any noise figures ? or they are just there for information ?
Thanks a lot again !
I'm not quite sure how you're managing to model the flicker and white noise of the devices in the ADC without a good understanding of the noise mechanisms, but maybe you have a better understanding than your questions suggest?
Obviously you can also have "noise" caused by signal integrity issues (e.g. parasitic coupling from unwanted signals onto critical nodes). But maybe if you class the ADC as "properly designed" you wouldn't get this?
In general you can use the frequency domain output of small signal noise analysis to compute noise figures for linear circuits. For example, if you have an amplifier, it's an effective way of measuring noise. If however the circuit has some kind of sampling behaviour, or translates signals from one frequency to another (such as a sample and hold, or a mixer, or an ADC), then you need to do some kind of simulation that will take that into account. As I mentioned before, pss/pnoise can be an effective way to do this for circuits which have a periodic response - the non-linearity (which is what causes the frequency translation) is captured in the pss, which finds the periodic steady state (a kind of periodic operating point), and then the pnoise is a small-signal analysis around this periodic operating point.
So the noise output is not just there for information - it is useful for many classes of circuit,
Yeah I got you. The noise sources can be myriad and it depends on which specific ones we wish to model.
Anyways I think I will try the suggested approach.
Thanks a lot for prompt feedbacks!