Hi All. As IHP is targeting RF applications, is th...
# ihp-sg13g2
d
Hi All. As IHP is targeting RF applications, is there any activity on its side in developing large signal noise analysis? As you are probably aware, ngspice is very limited in its handling of this (essentially offering very basic PSS capability and virtually no PNOISE capability). If you are putting effort into this, it would be interesting to see what and how far along the path you are. Thanks
โœ… 1
k
@Diarmuid Collins thank you for your feedback. Indeed you are right. Right now we are supporting the development of transient noise and 1/f nose analysis in ngspice. It is under development.
๐Ÿ™Œ 1
a
@Diarmuid Collins We have done that using ngspice Transient Noise analysis for a PLL before on Skywaters 130nm. It will take longer runtime but it could be done. Here is what you need to do fundamentally: 1. Run a normal transient analysis and save the signal in RAW file format. 2. Run a transient noise analysis and save the signal in RAW file format as well. 3. Read the data in python and use scipy to calculate the spectral density or whatever measurements you want to do on the signal. 4. Calculate the difference and here you go you got the noise spectral contribution.
I understand that the process described above is kind of lengthy process and it's not like PSS which is much faster but that's a way that you could get around the issue.
You could optimize the transient simulation time, by controlling the threads in ngspice and making sure to use batch mode and avoid any control statements in the ngspice netlist to make sure your memory doesn't get full.
Hope you find that helpful.
@Diarmuid Collins One last note, I would advise that you make sure that noise is modeled properly in the technology. Because we have seen that some issues in Skywaters models. You can do that by doing the same procedure above on a very small design. May be a ring osc. or something. Or an inverter and estimate the jitter by calculating the change in transition.
If the noise is not modeled properly in the technology, there are some other ideas that could be done in ngspice, but that would require a longer discussion and you have develop a script that parse the netlist and do some alterations.
I hope that helps.
d
@Amro Tork: Thanks for the detailed reponse. Yes, transient noise is the old traditional way to get around things. I havent done it in ngspice before so thanks for the tips in doing this. You mention noise modelling issues in SW130? Do you have anymore info on that (old threads / char data / etc)? This would suggest noise modelling issues in S130 also. Thanks
a
@Diarmuid Collins I could talk about SW130 only. We had an issue when we calculated the total noise psd from transient vs from what we expected from hand analysis if I remember correctly. This was done almost 3 years back as part of our PLL project. We wanted to analyze the VCO noise and that was the only way. You could replicate that by designing a small LNA for example single transistor with a bunch of ideal inductors and do transient analysis on that. Or an inverter and estimate jitter.
The noise that we got from transient analysis was negligible to what we expected from hand calculations.
Also, I'm not sure if the issue was the modeling issue or it was transient noise simulation issue in general in ngspice.
I just wanted to share the methodology to help. We didn't invest too much time in deeper analysis. Our target was to finish the PLL design.
๐Ÿ‘ 1
b
I saw this recent presentation regarding sky130 noise modeling also https://wiki.f-si.org/index.php?title=Working_towards_FOSS_RF_IC_design_in_SKY130 that can be another try using ISF for oscillators...
ngspice has a PSS experimental implementation that I have experienced some convergence issues for now, but not PNOISE or PAC...
๐Ÿ‘ 1