Home > Community > Forums > Custom IC Design > adding white and flicker noise sources in cadence virtuoso

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 adding white and flicker noise sources in cadence virtuoso 

Last post Sat, Feb 16 2013 2:38 PM by OneNewBoy. 7 replies.
Started by OneNewBoy 14 Feb 2013 03:30 PM. Topic has 7 replies and 3257 views
Page 1 of 1 (8 items)
Sort Posts:
  • Thu, Feb 14 2013 3:30 PM

    • OneNewBoy
    • Not Ranked
    • Joined on Thu, Feb 14 2013
    • Posts 13
    • Points 200
    adding white and flicker noise sources in cadence virtuoso Reply

    Hi all,

    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!

    • Post Points: 20
  • Thu, Feb 14 2013 4:29 PM

    • Tawna
    • Top 25 Contributor
    • Joined on Fri, Jul 11 2008
    • Snohomish, WA
    • Posts 212
    • Points 5,625
    RE: adding white and flicker noise sources in cadence virtuoso Reply

    Hi OneNewBoy,

    Quick answer…

    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:

    http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:DocumentViewer;src=wp;q=ApplicationNotes/Custom_IC_Design/SpectrumAppNoteV1.0.pdf

    If using IC614, use the spectrumMeas function in ADE-L/XL

    You can also look at the OCEAN reference manual (information on spectrum function):

    http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:DocumentViewer;src=pubs;q=/oceanref/oceanref6.1.5/chap10.html

    And also the spectrumMeas function, see Appendix D of the ViVA tool user guide:

    http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:DocumentViewer;src=pubs;q=/wavescanug/wavescanug6.1.5/appD.html

    Best regards,

     

    Tawna

     

    Best regards, Tawna Wilsey Staff Support AE, Global Customer Support Cadence Design Systems, Inc.
    • Post Points: 20
  • Fri, Feb 15 2013 4:05 AM

    Re: RE: adding white and flicker noise sources in cadence virtuoso Reply

    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.

    Regards,

    Andrew.

    • Post Points: 20
  • Fri, Feb 15 2013 3:30 PM

    • OneNewBoy
    • Not Ranked
    • Joined on Thu, Feb 14 2013
    • Posts 13
    • Points 200
    Re: RE: adding white and flicker noise sources in cadence virtuoso Reply

    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:

     

    1. How should one decide what should be right value of noise seed and scale factors for transient noise? Or to be pessimistic should we simulate with high scale factors only ?

     

     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:

     

    1. I think with this approach I can be sure that my thermal noise models will be used by spectre. Isn't it ?
    2. Even I am not sure if I need to use transient noise  for benchmarking ADC noise figures. Is small signal noise analysis the right approach ?
    3. Lastly, I tried to compute the SNDR at one of the nodes of voltage divider circuit, just to test simple circuit first with resistor thermal noise. I used SpectrumMeas function as mentioned by Tawna. However it gave me an error. I had selected the time domain output waveform as an input wave to this function. Any big miss with this test approach ?
    4. If yes then can someone point to ways of computing SNR etc [though I know SpectrumMeas is probably the way :)] from the output of small signal noise analysis.  Do we need to use DFT functions etc. in calculator.
    5. When we perform the small signal noise analysis, what do we have to consider before picking the time point at which to do the analysis . 

     

     Thanks a lot !!!!

     

     

    • Post Points: 20
  • Sat, Feb 16 2013 6:25 AM

    Re: RE: adding white and flicker noise sources in cadence virtuoso Reply

    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:

    1. Whether you are doing small signal noise with acnames/actimes or using tran noise, it is including thermal noise.
    2. I don't think small signal noise is really appropriate for an ADC. It's not going to include any noise folding caused by sampling - whereas transient noise would. You could potentially use pss/pnoise if the circuit is periodic in nature, but sometimes that can be difficult if you are performing a lot of conversion cycles of an ADC because it could take a lot of memory (pss/pnoise will capture the non-linearity in the pss, and hence your pnoise will include noise folding effects, but it's a small signal approach so a lot more efficient).
    3. Can't say what your problem was here since you didn't say what the expression was or what the error was.
    4. You can't use SpectrumMeas on the result of small signal noise - it uses a DFT approach and so the input has to be in the time domain, not frequency domain.
    5. As I said originally, all that the actimes/acnames approach is doing is telling it to perform a small-signal noise at the DC operating point found at a specific point in time. That's fine if that's what you want, but I doubt it's what you really want here.

    Regards,

    Andrew.

    • Post Points: 20
  • Sat, Feb 16 2013 12:54 PM

    • OneNewBoy
    • Not Ranked
    • Joined on Thu, Feb 14 2013
    • Posts 13
    • Points 200
    Re: RE: adding white and flicker noise sources in cadence virtuoso Reply

    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 !

     

    • Post Points: 20
  • Sat, Feb 16 2013 2:20 PM

    Re: RE: adding white and flicker noise sources in cadence virtuoso Reply

    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,

    Regards,

    Andrew.

    • Post Points: 20
  • Sat, Feb 16 2013 2:38 PM

    • OneNewBoy
    • Not Ranked
    • Joined on Thu, Feb 14 2013
    • Posts 13
    • Points 200
    Re: RE: adding white and flicker noise sources in cadence virtuoso Reply

    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! 

    • Post Points: 5
Page 1 of 1 (8 items)
Sort Posts:
Started by OneNewBoy at 14 Feb 2013 03:30 PM. Topic has 7 replies.