Forum
Mar 31st, 2023, 11:41pm
 Pages: 1 2
 How pnoise is computed (Read 9779 times)
 Slater New Member Offline Posts: 4 California Re: How pnoise is computed Reply #15 - Jan 29th, 2020, 2:44pm   Thank you so much Ken. One last question, appreciate your patience. So PSTB only uses the transfer function that corresponds to when the input and output are the same frequency (sideband 0). Is there a particular reason for this? Intuitively, it seems like the logical choice and I don't have anything against it, but I haven't found any literature that says why sideband 0 is used. Back to top IP Logged
 Ken Kundert Global Moderator Offline Posts: 2358 Silicon Valley Re: How pnoise is computed Reply #16 - Jan 29th, 2020, 7:18pm   PSTB uses the zero sideband because you are interested in loop gain. Loop gain needs the input and output to be the same point at the same frequency. Back to top IP Logged
 Paul Geraedts Community Member Offline GIGO Posts: 60 Enschede, Netherlands Re: How pnoise is computed Reply #17 - Oct 15th, 2020, 1:21pm   Ken Kundert wrote on Jan 27th, 2020, 11:42pm:In the context of this thread, the averaging occurs over time. Specifically, in a noise analysis the noise is averaged over a clock cycle. For my understanding I like to propose a thought experiment:Say I would only have access to the output of PSS and sampled Pnoise analyses; what should I do to arrive at the corresponding time-average noise?(Possibly combining something like: pnoise noisetype=timedomain noiseskipcount=0 with the corresponding PSS step sizes? Or is the sampling process filtering too much?) Back to top « Last Edit: Oct 15th, 2020, 2:22pm by Paul Geraedts »     IP Logged
 Ken Kundert Global Moderator Offline Posts: 2358 Silicon Valley Re: How pnoise is computed Reply #18 - Oct 15th, 2020, 3:40pm   I feel like this is a trick question, but here we go ...The time average noise is the noise power averaged over the period. So you would integrate the noise power over the cycle and then divide by the length of the cycle.-Ken Back to top IP Logged
 Paul Geraedts Community Member Offline GIGO Posts: 60 Enschede, Netherlands Re: How pnoise is computed Reply #19 - Oct 16th, 2020, 1:18am   No trick question; More that I feel confident with the matter to a certain degree, but still miss that part that allows me to put it into practice. To be able to play with the matter, I mean. And feel confident.Say that I request sampled Pnoise for the noise output at consecutive time points t1, t2, .. along the PSS cycle. Next, I could try to accumulate these noise outputs with the goal to come up with the corresponding time-average noise, but my question is: how should I do this? (I can imagine that the correlation between these separate noise outputs plays a role. I can also imagine that the sampling process itself already filters too much of the data that I need.)So in short, would I be able to translate the output of sampled Pnoise analysis to the output of time-average Pnoise analysis? (Is it possible in theory and if so, could I access the required data?) Back to top IP Logged
 Ken Kundert Global Moderator Offline Posts: 2358 Silicon Valley Re: How pnoise is computed Reply #20 - Oct 16th, 2020, 5:42pm   No, you just average them. You just have to do it using power or power spectral densities.In stationary noise, there is one type of correlation, correlation over time. That is responsible for coloring in the noise, or a variation in the noise power spectrum over frequency.In cyclostationary noise there is also correlation over frequency, specifically the modulation frequency. When you sample the noise, you are sampling at the modulation frequency. As a result, the modulation disappears from the sampled output (you are sampling at the same phase of the modulation period, and so the modulation disappears). The resulting sampled noise is stationary, but it is still colored. It is fully represented by a simple power-spectrum.  To get the time-average power spectrum of the entire waveform, you just have to average the power spectrums from each sample point. Of course, if the sample points are not evenly spaced you need to weight them accordingly. This is why I said you integrate the noise spectrums and then divide by the modulation period.There is a lot of complexity to these calculations, but fortunately most of that complexity is hidden in the simulator and is being used to compute the sampled noise.-Ken Back to top IP Logged
 Paul Geraedts Community Member Offline GIGO Posts: 60 Enschede, Netherlands Re: How pnoise is computed Reply #21 - Oct 17th, 2020, 2:01am   That clarifies and simplifies a lot! Thank you so much. For some reason I imagined that the sampling process complicated matters instead of simplifying them. I had it backward!Now, say we have carried out the integration and ended up with a single (time-averaged) PSD. How should I set time-averaged Pnoise analysis to reach a match? (usb, lsb, am or pm*)I can imagine that to match with the AM and PM options seperately I would have needed to use correlation data over frequency, but what about the total of AM and PM options? And for USB and LSB options, probably I could reach a match with the total of both? Also, do the USB and LSB options result in different PSDs?*According to the manual [spectre -h pnoise] all of these use single sideband convention, half of the total power. Back to top « Last Edit: Oct 17th, 2020, 4:41am by Paul Geraedts »     IP Logged
 Ken Kundert Global Moderator Offline Posts: 2358 Silicon Valley Re: How pnoise is computed Reply #22 - Oct 17th, 2020, 3:38pm   usb, lsb, am or pm: it is not any of those. I think you want noisetype=timeaverage. That is what the simulator is expecting, I don't know how to specify that from the environment.-Ken Back to top IP Logged
 Paul Geraedts Community Member Offline GIGO Posts: 60 Enschede, Netherlands Re: How pnoise is computed Reply #23 - Oct 18th, 2020, 3:05am   When setting noisetype=timeaverage this setting seems always active and defaults to usb, from [spectre -h pnoise]: Code:```34      noiseout=usb      Specify noise output. You can set a vector like noiseout=[usb am pm]. And all are using single sideband(SSB) convention, half of the total power. Possible values are usb, lsb, am and pm. ``` Back to top IP Logged
 Paul Geraedts Community Member Offline GIGO Posts: 60 Enschede, Netherlands Re: How pnoise is computed Reply #24 - Oct 19th, 2020, 11:30pm   This text explains recent changes in the Spectre interface: https://community.cadence.com/cadence_blogs_8/b/cic/posts/virtuoso-video-diary-p...At the same time it does not describe the most recent Spectre (v20.1) interface, from [spectre -h pnoise]: Code:```22      noisetype=timeaverage      Specifies computation of time-averaged or time-sampled noise information. Possible values are timeaverage, correlations, timedomain, pmjitter and sampled. ```Possibly Andrew could shed some light on this? Back to top « Last Edit: Oct 20th, 2020, 6:40am by Paul Geraedts »     IP Logged
 Paul Geraedts Community Member Offline GIGO Posts: 60 Enschede, Netherlands Re: How pnoise is computed Reply #25 - Oct 22nd, 2020, 2:45am   Ken,You are probably right: noisetype=timeaverage should do.Everything slowly comes back. Thank you for your time. Back to top IP Logged
 Andrew Beckett Senior Fellow Offline Life, don't talk to me about Life... Posts: 1742 Bracknell, UK Re: How pnoise is computed Reply #26 - Nov 14th, 2020, 2:57am   Paul Geraedts wrote on Oct 19th, 2020, 11:30pm:This text explains recent changes in the Spectre interface: https://community.cadence.com/cadence_blogs_8/b/cic/posts/virtuoso-video-diary-p...At the same time it does not describe the most recent Spectre (v20.1) interface, from [spectre -h pnoise]: Code:```22      noisetype=timeaverage      Specifies computation of time-averaged or time-sampled noise information. Possible values are timeaverage, correlations, timedomain, pmjitter and sampled. ```Possibly Andrew could shed some light on this? Sorry for the delay - bit behind on my Designer's Guide posts...That blog was written before the cleanup of the various modes related to sampling (timedomain, pmjitter). Some of the modes remain for legacy reasons - but the choices that are now used are timeaverage and sampled. The timeaverage mode is pretty much covered in the blog - unfortunately some of the terminology used in the noiseout choice is rather confusing unless you're simulating an oscillator - for driven circuits, most likely the terms usb, lsb, am and pm don't mean so much. Usually you'd want to use "usb" in that case - this is equivalent to the old "sources" mode (mostly people didn't know what "sources" meant either, so that was not great terminology as well) - it's what you'd get on a spectrum analyser and is the easiest to understand. The other modes make more sense when you are (say) simulating the noise around a carrier frequency (e.g. an oscillator output) and you want to observe the noise in the upper sideband, the lower sideband, or find the AM or PM components from the two sidebands. This used to be computed via the "correlations" mode (under the hood from the UI), but it suffered from some accuracy problems (particularly with getting accurate AM noise).The sampled mode allows you to compute the sampled output noise in various different ways; you can use "Edge Crossing", "Edge Delay" or "Sampled Phase" for the timing event; the first allows you to measure the sampled noise at one node based on a threshold crossing at another node (could be the same node); the Edge Delay allows you to measure the jitter delay between one node and another, and the Sampled Phase is essentially a way to strobe at an arbitrary time or set of times (i.e. the same as the old "timedomain" mode).Not entirely sure what info you were after - but hopefully that's a high level summary that covers things well enough?Andrew Back to top IP Logged
 Pages: 1 2