The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Modeling >> Behavioral Models >> try to simulate Ken Kundert's PLL phase noise prediction verilogA model https://designers-guide.org/forum/YaBB.pl?num=1325477299 Message started by hearterinvest on Jan 1st, 2012, 8:08pm |
Title: try to simulate Ken Kundert's PLL phase noise prediction verilogA model Post by hearterinvest on Jan 1st, 2012, 8:08pm Hello, I am trying to use Ken's verilog phase domain model in his paper. I encountered several problems. The phase noise results is way too big compared to my lab test result(over 10 times), the AC sim also shows wrong stability analysis compared to real circuit based sim. My questions: 1. anyone used Ken's model to predict PN? how accurate? can I just copy his code from paper, or need to modify somewhere? 2. can this phase domain model be used to do a bode plot to analyze stability, if yes, where should I add AC source to break the loop? I appreciate any feedback who has sucessfully used Ken's code. a working testbench/netlist will highly appreciated. I attached my netlist here(for stability sim), I am using spectre as simulator. Heatt >>>>>>>>>>>>>>>>>>>>>>>>> `include "disciplines.vams" `include "phase.vams" module pll(out); output out; phase out; parameter integer m = 1 from [1:inf); // input divide ratio parameter real Kdet = 1 from (0:inf); // phase detector gain parameter real Kvco = 100m from (0:inf); // VCO gain parameter real c1 = 1n from (0:inf); // Loop filter C1 parameter real c2 = 200p from (0:inf); // Loop filter C2 parameter real r = 10K from (0:inf); // Loop filter R parameter integer n = 1 from [1:inf); // feedback divide ratio phase in, ref, fb; electrical c; oscillator OSC(in); divider #(.ratio(m)) FDm(in, ref); phaseDetector #(.gain(Kdet)) PD(ref, fbpfd, c); loopFilter #(.c1(c1), .c2(c2), .r(r)) LF(c,gnd); vco #(.gain(Kvco)) VCO(c, out); divider #(.ratio(n)) FDn(out, fb); V0 (fbpfd fb) vsource dc=0 mag=1 phase=0 type=dc endmodule ac ac start=10 stop=1e9 annotate=status noise ( out) noise start=1k stop=1000M annotate=status |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |