I am new in PLL field. I have some basic questions.
How can I make a behavioral model (not phase domain) using verilog AMS to observe everything before going to circuit level.
I want to be able to see PLL phase noise using noisy blocks (behavioral) in my system.
I know Verilog AMS, but most of the noisy blocks are written with jitter definition and I cannot get a phase noise plot with a jitter noise defined VCO in verilog AMS.
I do pss simulation and I guess it is only made for small signal noise. So available VCO verilog AMS codes dont work with pss and pnoise simulation.
Lets say If I have a PLL schematic and it works properly. How can I observe the closed loop phase noise ?
What kind of simulation I need to run ?
Thank you for your time and effort.
You've asked the same thing in the Designer's Guide forum and been given an answer there. You need to use the flicker_noise/white_noise functions in your Verilog-A rather than having random time-domain variation of your timing edges, and then you can run PSS of the whole PLL (once it's locked) and then run PNOISE. This is assuming that the PLL is an integer PLL, as otherwise it would not be periodic. The alternative is that you run a transient (if using your time-domain-jittery models) or transient noise (if there's small-signal noise functions) and you'd have to do a power-spectral-density measurement afterwards to convert the output into the frequency domain so you could observer the noise.
You might also find this Rapid Adoption Kit useful: PLL Verification
This application note might also be useful: Virtuoso Spectre Transient Noise Analysis and also another RAK on running transient noise: Spectre Transient Noise Simulation from ADE - Advanced
My colleague Tawna's excellent overview Demystifying Noise Simulation in RF Circuits Spectre APS and RF Option might also come in useful.
Thank you for your time and reply.
flicker_noise and white_noise functions are used in phase domain simulations. There is no available VCO code with those functions. All available codes are written with jitter.
I dont want to do phase domain simulations since I want to have realistic behavior models. Actually I tried but somehow Spectre does not run the phase.vams code ...
I am not professional with AMS so I dont know how to write a similar VCO code this time with "flicker_noise and white_noise functions"
I will try to study AMS more so I understand it completely.
Transient simulation is a good idea. I can take FFT from long simulation and observe spectrum. But since there is windowing and spectral leakage I dont know if the phase noise will be correct value or not.
I will check the other links you mentioned.
Thank you, I do appreciate.
asrf said:flicker_noise and white_noise functions are used in phase domain simulations. There is no available VCO code with those functions. All available codes are written with jitter.
This is patently untrue. flicker_noise and white_noise are small-signal noise sources that can be used in time-domain models - there's nothing to say that they can only be used for phase domain simulations. These are used to model device noise, so clearly can be used.
I suggest you look at the "osc" (it's an oscillator, not a VCO but the noise modelling will be a good start) in rfLib, which you can access by adding:
DEFINE rfLib $(inst_root_with:tools/dfII/bin/virtuoso)/tools/dfII/samples/artist/rfLib
to your cds.lib
I didn't look very hard for VCO models including noise sources - I'd be very surprised if there aren't some you can find with a bit of searching. Anyhow, adapting the approach taken in the rfLib models shouldn't be very difficult.