Hi, I was not sure whether to ask this in #xschem or #ngspice, is there something equivalent to transient noise in ngspice/Xschem or xyce/Xschem for simulating oscillators ? So far I have used
.ic
statements to set nodes to either
gnd
or
vdd
to start an oscillation. But I am getting some weird results in a cross coupled oscillator I am trying to design.
Do the SKY130 models include noise by default i.e. I shouldn't have to use
.ic
statements or do I have to manually add a noise voltage source in the circuit ?
In this design
DIFF_OUT_N
seems to have a "stable" oscillation whereas
DIFF_OUT_P
continues to grow exponentially when I set the former to 1.8V. From what I can tell the design satisfies Barkhausen's criteria since the product of gain of both the stages is greater than or equal to one.
l
Luis Henrique Rodovalho
07/09/2024, 12:32 PM
The best way to initialize a LC VCO is with a current pulse, not an initial voltage. I guess that series resistance could be better for the simulator to model the inductor quality factor. You should model the coupling between the inductors also. As far as I know, it's common to use two coils sharing the same area.
k
Koustubh
07/09/2024, 12:35 PM
@Luis Henrique Rodovalho I have not studied about how to control oscillators yet. I have just read some basics from Prof Razavi's book.
Could you please tell me, where/which node should I push/pull the current pulse to/from?
l
Luis Henrique Rodovalho
07/09/2024, 12:56 PM
You should insert the current pulse source between the two outputs. Try to use a better modeled voltage source, with a series resistance. This should prevent the output signal amplitude to increase indefinitely, as it limits the supply current.
s
Stefan Schippers
07/09/2024, 9:14 PM
If you design an oscillator it will do its best to stay stable.
If you design a compensated feedback amplifier it will always oscillate. /s
d
Diarmuid Collins
07/13/2024, 7:08 AM
As the saying goes "my amplifiers will but my oscillators won't"😀
Linen is a search-engine friendly community platform. We offer integrations with existing Slack/Discord communities and make those conversations Google-searchable.