PLL 设计理论

目录

传输函数的分析

相位噪声

CP

LPF

CML

DIV

SDM

AFC

锁定检测周期

LDO


鉴相器的输出驱动电荷泵的开关,再经过滤波器得到一个输出电压,通过VCO产生一个频率,再通过分频器反馈回鉴相器。

杂散:常见的杂散分为参考杂散和小数杂散。参考杂散是指在锁相环输出信号的频谱中,特定频偏处出现的非理想成分,假设参考时钟为fref,晶振时钟为f0,则参考杂散就会出现在f0±Nfref频偏处。小数杂散主要出现在带有小数分频的频率合成器中,它是由于分频器中,其分频比不断变化,导致频谱上出现一些离散的杂散分量。

杂散的优化,可以降低压控振荡器的增益KVCO或者增加参考时钟的频率fref,对于一般的设计来说KVCO和fref都是经过系统的整体性能折中之后定出来的,故优化杂散的最有效的方法就是减小△VC(VCO输入信号Vctrl上的波纹)。

spur=10log\left ( \frac{KVCO\cdot \Delta VC}{2fref} \right )^{2}=10log\frac{KVCO\cdot \Delta VC}{2fref}

锁定时间是从一个频率跳变到另一个目标频率所经历的时间。在锁定到目标频率之前,系统必然会经历一个无用的过程,这就造成了时间和功耗上的损失。要减小锁定时间,可以增大环路带宽。

T_{lock}=\frac{4}{f_{c}}

传输函数的分析

1、将PFD和CP看成一个整体,称为鉴相器,该模块的输入为两个时钟信号,输出为两个时钟信号的相位差,其可实现相位转换成电流的功能,Kd表示鉴相器从输入到输出的传输函数,Kd=I/2π。理想的鉴相器传输函数是一条输入信号正比于相位差过零点的直线。电阻一般是几K左右,电容是几百pF左右。

2、三阶环路滤波器贡献一个零点和三个极点,分别位于原点,第二级点和第三极点处。

如果VCO的Vctrl是NMOS管,那么三阶环路滤波器的另一端接地。如果VCO的Vctrl是PMOS管,那么三阶环路滤波器的另一端经过LDO接VDD。这样做可以使电路具有更好的PSRR。

Z\left ( S \right )=\frac{1}{S\left ( C1+C2+C3 \right )}*\frac{1+\frac{S}{\omega z}}{\left ( 1+\frac{1}{\omega p2} \right )\left ( 1+\frac{1}{\omega p3} \right )}

其中,零点是1/R1C1,第二级点是1/R1(C2+C3),第三极点是1/R3(C2//C3),一般来说C1>C2>C3,所以零点为1/R1C2,第二个极点是1/R1C2,第三个极点是1/R3C3

3、理想压控振荡器的输出频率随输入电压线性变化,由于相位与频率之间成导数关系,故VCO的传输函数为\frac{KVCO}{S}

4、分频器的作用时将输入频率除以一个倍数转换成输出频率,故传输函数为1/N

从上面图可以看出原点处有两个极点,一个是环路滤波器产生的,一个是KVCO产生的。使得波特图中相频特性曲线的初始相位是-180°,带内贡献一个零点,该零点可将相位曲线抬高,可确保环路带宽处的相位裕度。由于带外极点的存在,使得相位曲线往下拉,可有效抑制带外噪声以及杂散。三阶环路滤波器比两级环路滤波器带外多引入一个极点,使得系统对带外的噪声和杂散得到了更进一步的抑制。

开环传输函数:

Ho=\frac{Kd*Z\left ( S \right )KVCO}{N*S}

锁相环系统的总的输出噪声等于输入参考时钟的相位噪声,电荷泵(CP)的电流噪声,环路滤波器(LP)的电压噪声,压控振荡器的相位噪声,分频器的相位噪声,分别乘以各自噪声源到输出端的传递函数,然后将其相加,即可得到总的相位噪声。

噪声源

传输函数特性
输入参考噪声N\cdot \frac{Ho}{1+Ho}低通
CP噪声\frac{N}{Kd}\frac{Ho}{1+Ho}低通
LP噪声\frac{KVCO}{S}\frac{1}{1+Ho}带通
VCO噪声\frac{1}{1+Ho}高通
DIV噪声-N\frac{Ho}{1+Ho}低通

CP的电流噪声、输入参考噪声及分频器的相位噪声的传输函数特性与闭环传输函数的特性一样,都表现为低通特性,所以带内主要噪声由这三者决定;环路滤波器电压噪声表现为带通特性;而VCO的相位噪声表现为高通特性,所以VCO噪声性能主要决定了锁相环频率合成器的带外噪声性能优劣。

如果CP的噪声在PLL噪声中占主要作用,那么需要减小带宽来降低噪声,如果VCO的噪声再PLL中占主导作用,那么需要增大带宽来降低噪声。

环路带宽是由CP的电流、环路滤波器的电阻R1、分频器的倍数N和KVCO决定的。一般通过调节CP的电流去调节环路带宽。但是增大电流环路稳定性变差,因此在波特图中零点和第二级点的位置不变,但是单位增益带宽变大,说明单位增益带宽并未处于零点和第二级点中间,而是向右偏移,说明相位裕度变差。

令开环传递函数等于1就可以求出环路带宽。

\omega _{c}=\frac{C1}{C1+C2+C3}\frac{ICP\cdot R1\cdot KVCO}{N} 

相位裕度最大的时候时\omega _{c}在零点和第二极点的中间的时候,相位裕度最大。当b=1+C1/C2=13时,相位裕度大概在60°左右,当b=30时,相位裕度等于70°

相位噪声

1、晶振的相位噪声,晶振一般是以20dB每十倍频下降,比如在10K处时100dB,那么在100K处就是120dB每十倍频。那么这个相位噪声的曲线乘以传输函数的平方就是输入参考噪声的noise。

2、CP的噪声,因为CP是电流,所以有下式,但是开关在每个周期只到通过一次,所以要乘上Ton(up和down同时导通的时间)/周期。由于CP有两个电流源所以要乘2。(这里只考虑了热噪声,没有考虑闪烁噪声,所以结果只是近似)

In^{2}=4KTgm=\frac{2I}{Vgs-Vth}*\frac{Ton}{Tref}*2

上式的噪声再乘以CP的传输函数即得到CP的noise。

那么减小电流对PLL的噪声影响是变大还是变小呢?

答案是变大,因为由上面公式可以看出减小电流对CP自身的噪声是减小,但是对于PLL来说,PLL的噪声是各模块的噪声乘传递函数的平方,而CP的传输函数的分母上有Kd,而Kd=I/2π,经过平方后,电流出现在PLL噪声的分母上,所以减小CP电流对PLL整体来说,噪声是增大的。

3、VCO的噪声是刚开始以30dB每十倍频下降,经过转角频率之后,变成-20dB每十倍频。

4、DIV的phase noise一般比较好,可以忽略。

5、环路振荡器的噪声,只需要考虑电阻的噪声,不需要考虑电容的噪声。首先考虑二阶,等效电阻为R1//\left ( \frac{1}{sC1} +\frac{1}{sC2}\right ),电阻的电流噪声为\sqrt{\frac{4KT}{R}}

所以二阶环路振荡器的总的噪声为

Z=\sqrt{\frac{4KT}{R}}*R1//\left ( \frac{1}{sC1}+\frac{1}{sC2} \right )*\frac{\frac{1}{sC2}}{C1//C2}

同理对于三阶来说,等效电阻为R//\left ( \frac{1}{sC3}+Z \right )

那么三阶环路振荡器的总的噪声为\sqrt{\frac{4KT}{R}}*\frac{\frac{1}{sC3}}{Z+\frac{1}{sC3}}*R//\left ( Z+\frac{1}{sC3} \right )

所以总的噪声为上式乘以环路振荡器的传递函数。

如何优化噪声?

如果带内噪声占主导作用,首先可以降低带宽,通过滤波作用降低噪声。如果不降低带宽的情况下,根据带宽公式,可以通过增大电流来降低CP噪声,那么久意味着R会减小,带宽不变的情况下,意味着电容会增大,带来面积损耗。

如果带外噪声占主导作用,那么可以增大带宽或者将VCO做的更好一点。

晶振频率为2.4MHZ和输出时钟频率为2.4GHZ,可以计算出N=100

环路带宽的选取,主要表现在锁定时间、系统的相位噪声以及杂散等方面。

在锁相环的设计中,假设线性模型近似成立,环路带宽不能超过参考时钟的1/10~1/15,大致估算环路带宽应大于20KHZ。

使用matlab对pll系统进行分析。代码如下:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%pll based frequency synthesizer frequency domin stability evaluation
%3-order type-2 phase lock loop
clear all;
close all;


f=[1e3:1e2:1e4,1e4:1e3:1e5,1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8];

s=2*pi*f*i;
%
%fo=1.023e6;
fcrs= 30e6;
%fcrs=0.256e6;
fvco=16*fcrs;
N=fvco/fcrs
%N=127;
%

Kvco=50e6;
lcp=25e-6;
Kcp=lcp/2/pi;


BW=120e3;
% ------+-------R2---
%     |     |            | 
%    R1 C2        C3
%     |  
%    C1
%R1 =11000;
%R2= 5500;
%C1=471e-12;
%C2= 20e-12;
%C3=10e- 12;
%BW= (R1*Kvco*lcp)/2/pi/N
R1=(BW*2*pi*N)/Kvco/lcp;
R2=R1/2;
C1=1/(BW*2*pi/3.6*R1);
C2=C1/14;
C3=C2/2;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%B=24;
%Rx=R1*(B+1);
%C=C1/(B+1);
%Ry=Rx/B;
%Z1=1./s./C1+R1;
%Z2=(1+s*R2"C3)./(s.^2*R2*C2*C3+s*(C2+C3));

%K=(Z1.*Z2)./(Z1+Z2);


zlf=(1+s*R1*C1)./s./(s.^2*R1*R2*C1*C2*C3+s*(C1*R1*(C2+C3)+C3*R2*(C1+C2))+C1+C2+C3);
Hol=Kcp*(2*pi*Kvco./s).*zlf/N;
Hcl=N*Hol./(1+Hol);
Hvco=Hcl./(Kcp*(2*pi*Kvco./s).*zlf);
Hcp=Hcl/Kcp; %%%% I think Kcp is right,lcp is wrong.
Hlf=Hcl./(Kcp.*zlf);

fc=Kcp*Kvco*R1/N
fz=1/R1/C1/2/pi
fp1=1/R1/(C2+C3)/2/pi
fp2=1/(R2*C2*C3/(C2+C3))/2/pi;

figure(1)
title('loop fiter transfer function')
subplot(2,1,1)
semilogx(f,20*log10(abs(zlf)));grid;
ylabel('magnitude(dB)')
xlabel('frequency(Hz)')
subplot(2,1,2)
semilogx(f,360/2/pi*atan(imag(zlf)./real(zlf)))
grid;
ylabel('phase(deg)')
xlabel('frequency(Hz)')

figure(2)
title('PLL open loop transfer function')
subplot(2,1,1)
semilogx(f,20*log10(abs(Hol))); grid;
ylabel('magnitude(dB)')
xlabel('frequency(Hz)')
subplot(2,1,2)
semilogx(f,180/pi*atan(imag(Hol)./real(Hol)))
grid;
ylabel('phase(deg)')
xlabel('frequency(Hz)')
figure(3)
semilogx(f,20*log10(abs(Hvco)),'r');
hold;
semilogx(f,20*log10(abs(Hcp)),'b');
semilogx(f,20*log10(abs(Hlf)),'k');
%semilogx(f,20*log10(abs(Hol./(1+Hol)));'m');
semilogx(f,20*log10(abs(Hol)),'g');
semilogx(f,20*log10(abs(Hcl)),'m');
hold;
grid;
title('Transfer Function')
legend('Hvco','Hcp','Hlf','hol','Hcl')
ylabel('magnitude(dB)')
xlabel('frequency(Hz)')

%%%%%%%%%%%%%%%%%%%%086009%6%6%% %%%%09%26%6%%%
%noise contribution evaluation

pn= -109; %vco phase noise @100KHzoffset
pnx=-115; %crystal phase noise @1kHzoffset

Vnvco=[10^(pn/20)./(([1e3:1e2:1e4,1e4:1e3:1e5]/1e5).^1.5),10^(pn/20)./([1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8]/1e5)];
Nvco=Vnvco.*abs(Hvco);
Vncrs=[10^(pnx/20)./(([1e3:1e2:1e4,1e4:1e3:1e5,1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8]/1e3).^1)];
Ncrs=Vncrs.*abs(Hcl);

VnR1=sqrt(R1/50)*0.91e-9; % VnR1 =sqrt(4KTR)  K=1.38e-23
VnR2=sqrt(R2/50)*0.91e-9;
VnR1If=VnR1*C1/(C1 +C2+C3)./(1+s*R1*(C2+C3))./(1+s*R2*C2*C3/(C2+C3)); % VnR1 to loopfilter point
VnR2lf=VnR2*(C1+C2)/(C1+C2+C3)./(1+s*R1*(C2+C3))./(1+s*R2*C2*C3/(C2+C3)).*(1+s*R1*C1*C2/(C1+C2));
NR1=abs(VnR1If.*Hlf); % VnR1 to pll output
NR2=abs(VnR2lf.*Hlf);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9%%%%%%%%%%%%%%%%%%%%

%VnRx=sqrt(Rx/50)*0.91e-9;
%VnRxIf=VnRx.*zlf./K./(1+(Rx+1./.C./s).*((B*C.*s+ B./Z2)./(Rx*C.*s-B)+1./Z2));
%NRx= abs(VnRxIf.*Hlf);
%%%%%%%%%%%%%%%%%%%%%%%%6%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ton=1e-9; % antibacklash time slot of PFD
fcor=1e5;
Incur=4e-12*sqrt(lcp/0.5e-3)+6e-12; % add active filter opamp noise
%Incur=14e-12;


lncp=sqrt(Incur^2./([1e3:1e2:1e4,1e4:1e3:1e5,1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8]/fcor))+Incur;
%1*sqrt(Ton*fcrs).*
Ncp=lncp.*abs(Hcp); % themal noise & 1/f noise
%Ncp=Incur.* abs(Hcp); %only themal noise


%{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%pll based frequency synthesizer frequency domin stability evaluation
%3-order type-2 phase lock loop
clear all;
close all;


f=[1e3:1e2:1e4,1e4:1e3:1e5,1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8];

s=2*pi*f*i;
%
%fo=1.023e6;
fcrs= 30e6;
%fcrs=0.256e6;
fvco=16*fcrs;
N=fvco/fcrs
%N=127;
%

Kvco=50e6;
lcp=25e-6;
Kcp=lcp/2/pi;


BW=120e3;
% ------+-------R2---
%     |     |            |
%    R1 C2        C3
%     |  
%    C1
%R1 =11000;
%R2= 5500;
%C1=471e-12;
%C2= 20e-12;
%C3=10e- 12;
%BW= (R1*Kvco*lcp)/2/pi/N
R1=(BW*2*pi*N)/Kvco/lcp;
R2=R1/2;
C1=1/(BW*2*pi/3.6*R1);
C2=C1/14;
C3=C2/2;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%B=24;
%Rx=R1*(B+1);
%C=C1/(B+1);
%Ry=Rx/B;
%Z1=1./s./C1+R1;
%Z2=(1+s*R2"C3)./(s.^2*R2*C2*C3+s*(C2+C3));

%K=(Z1.*Z2)./(Z1+Z2);


zlf=(1+s*R1*C1)./s./(s.^2*R1*R2*C1*C2*C3+s*(C1*R1*(C2+C3)+C3*R2*(C1+C2))+C1+C2+C3);
Hol=Kcp*(2*pi*Kvco./s).*zlf/N;
Hcl=N*Hol./(1+Hol);
Hvco=Hcl./(Kcp*(2*pi*Kvco./s).*zlf);
Hcp=Hcl/Kcp; %%%% I think Kcp is right,lcp is wrong.
Hlf=Hcl./(Kcp.*zlf);

fc=Kcp*Kvco*R1/N
fz=1/R1/C1/2/pi
fp1=1/R1/(C2+C3)/2/pi
fp2=1/(R2*C2*C3/(C2+C3))/2/pi;

figure(1)
title('loop fiter transfer function')
subplot(2,1,1)
semilogx(f,20*log10(abs(zlf)));grid;
ylabel('magnitude(dB)')
xlabel('frequency(Hz)')
subplot(2,1,2)
semilogx(f,360/2/pi*atan(imag(zlf)./real(zlf)))
grid;
ylabel('phase(deg)')
xlabel('frequency(Hz)')

figure(2)
title('PLL open loop transfer function')
subplot(2,1,1)
semilogx(f,20*log10(abs(Hol))); grid;
ylabel('magnitude(dB)')
xlabel('frequency(Hz)')
subplot(2,1,2)
semilogx(f,180/pi*atan(imag(Hol)./real(Hol)))
grid;
ylabel('phase(deg)')
xlabel('frequency(Hz)')
figure(3)
semilogx(f,20*log10(abs(Hvco)),'r');
hold;
semilogx(f,20*log10(abs(Hcp)),'b');
semilogx(f,20*log10(abs(Hlf)),'k');
%semilogx(f,20*log10(abs(Hol./(1+Hol)));'m');
semilogx(f,20*log10(abs(Hol)),'g');
semilogx(f,20*log10(abs(Hcl)),'m');
hold;
grid;
title('Transfer Function')
legend('Hvco','Hcp','Hlf','hol','Hcl')
ylabel('magnitude(dB)')
xlabel('frequency(Hz)')

%%%%%%%%%%%%%%%%%%%%086009%6%6%% %%%%09%26%6%%%
%noise contribution evaluation

pn= -109; %vco phase noise @100KHzoffset
pnx=-115; %crystal phase noise @1kHzoffset

Vnvco=[10^(pn/20)./(([1e3:1e2:1e4,1e4:1e3:1e5]/1e5).^1.5),10^(pn/20)./([1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8]/1e5)];
Nvco=Vnvco.*abs(Hvco);
Vncrs=[10^(pnx/20)./(([1e3:1e2:1e4,1e4:1e3:1e5,1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8]/1e3).^1)];
Ncrs=Vncrs.*abs(Hcl);

VnR1=sqrt(R1/50)*0.91e-9; % VnR1 =sqrt(4KTR)  K=1.38e-23
VnR2=sqrt(R2/50)*0.91e-9;
VnR1If=VnR1*C1/(C1 +C2+C3)./(1+s*R1*(C2+C3))./(1+s*R2*C2*C3/(C2+C3)); % VnR1 to loopfilter point
VnR2lf=VnR2*(C1+C2)/(C1+C2+C3)./(1+s*R1*(C2+C3))./(1+s*R2*C2*C3/(C2+C3)).*(1+s*R1*C1*C2/(C1+C2));
NR1=abs(VnR1If.*Hlf); % VnR1 to pll output
NR2=abs(VnR2lf.*Hlf);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9%%%%%%%%%%%%%%%%%%%%

%VnRx=sqrt(Rx/50)*0.91e-9;
%VnRxIf=VnRx.*zlf./K./(1+(Rx+1./.C./s).*((B*C.*s+ B./Z2)./(Rx*C.*s-B)+1./Z2));
%NRx= abs(VnRxIf.*Hlf);
%%%%%%%%%%%%%%%%%%%%%%%%6%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ton=1e-9; % antibacklash time slot of PFD
fcor=1e5;
Incur=4e-12*sqrt(lcp/0.5e-3)+6e-12; % add active filter opamp noise
%Incur=14e-12;


Incp=sqrt(Incur^2./([1e3:1e2:1e4,1e4:1e3:1e5,1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8]/fcor))+Incur;
%1*sqrt(Ton*fcrs).*
Ncp=lncp.*abs(Hcp); 
%Ncp=Incur.* abs(Hcp); % only themal noise


%{
incp= sqrt(2*ton/Tref*1e-18/50*2*lcp/Vod).*(1+1./sqrt(i/100e3));
iincp = incp*sqrt(Tref/ton/2);
%}


Nall=Ncrs.^2+NR1.^2+NR2.^2+Ncp.^2+Nvco.^2;
%Nall=Ncrs.^2+ NRx.^2+NRy.^2+NR2.^2+Ncp.^2+Nvco.^2;
figure(4)
semilogx(f,20*log10(Nvco),'b'); 
hold;
%semilogx(f,20*log10(VnR1lf),'b');

semilogx(f,20*log10(Ncrs),'k');
semilogx(f,20*log10(NR1),'g');
semilogx(f,20*log10(NR2),'y');
%semilogx(f,20*log10(NRx),'o');
%semilogx(f.20*log10(NRy),'m');
semilogx(f,20*log10(Ncp),'r');
semilogx(f,10*log10(Nall),'kx');
grid;
title('Phase Noise Contribution')
xlabel('frequency')
ylabel('Phase Noise (dB)')
legend('Nvco','Ncrs',NR1','NR2','Ncp','Nall')
hold;= sqrt(2*ton/Tref*1e-18/50*2*lcp/Vod).*(1+1./sqrt(i/100e3));
iincp = incp*sqrt(Tref/ton/2);
%}


Nall=Ncrs.^2+NR1.^2+NR2.^2+Ncp.^2+Nvco.^2;
%Nall=Ncrs.^2+ NRx.^2+NRy.^2+NR2.^2+Ncp.^2+Nvco.^2;
figure(4)
semilogx(f,20*log10(Nvco),'b'); 
hold;
%semilogx(f,20*log10(VnR1lf),'b');

semilogx(f,20*log10(Ncrs),'k');
semilogx(f,20*log10(NR1),'g');
semilogx(f,20*log10(NR2),'y');
%semilogx(f,20*log10(NRx),'o');
%semilogx(f.20*log10(NRy),'m');
semilogx(f,20*log10(Ncp),'r');
semilogx(f,10*log10(Nall),'kx');
grid;
title('Phase Noise Contribution')
xlabel('frequency')
ylabel('Phase Noise (dB)')
legend('Nvco','Ncrs','NR1','NR2','Ncp','Nall')
hold;

上述代码的解释:

fcrs为晶振的频率,fvco是PLL的频率,lcp是CP的电流,kcp为\frac{I}{2\pi },根据BW写出R1,R2可以取R1的一半,C3可以取C2的一半,C1由于\omega _{z}=\frac{1}{R1C1},又由\omega _{c}=\sqrt{b}\omega _{z},可以得到\omega _{z}=\frac{\omega _{c}}{\sqrt{b}}=\frac{1}{R1C1},可以求出C1,3.6是根号13。zlf是三阶环路振荡器的传递函数。Hol是开环传递函数,Hcl是闭环传递函数,Hvco是VCO的传递函数,Hcp是CP的传递函数,hlf是滤波器的传递函数,fc是带宽,fz是零点,fp1和fp2是第一极点和第二极点,pn是phase noise,pnx是晶振的频率,Vnvco是vco的noise,vco的噪声曲线一开始是以30dB每十倍频,后面是以20dB每十倍频,这里描述的时候用1.5和10是因为在后面的Nall里面还会再平方,平方之后就是30和20,Nvco是总的vco的传递函数=vco自身噪声乘以传递函数。vncrs是晶振的noise,VnR1是电阻的噪声,VnR1IF是电阻的传递函数。Ton是PFD导通的时间,fcor是转角频率,incur是考虑热噪声,lncp是考虑热噪声和1/f噪声,Nall是总的pll噪声=各模块噪声平方。

设计实例

1、输入频率为24MHZ晶振输入

2、输出频率为2.4GHZ,并且提供正交输出信号

3、锁相环频率合成器全集成,滤波器内置

4、相位噪声小于-120dBc/HZ@3MHZ;

5、锁定时间小于200us。

首先根据锁定时间,确定环路带宽应该大于20KHZ。根据环路带宽不能超过参考时钟的1/10~1/15(要满足连续时间近似),可以确定环路带宽不能超过1.6MHZ。

在matlab里进行分析,首先取带宽为200KHZ,输入时钟频率24MHZ,N=100,假设KVCO为300M,电流取25u,pn=-100@100KHZ。

可以看出在3MHZ处噪声并不能达到要求,经过分析,带外噪声占主导作用,可以看出总的噪声由CP主导。可以增加CP的电流至250u,可以看出调整电流后噪声满足要求。查看相位裕度,带宽为200KHZ,相位裕度为60度左右。

代码如下:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%pll based frequency synthesizer frequency domin stability evaluation
%3-order type-2 phase lock loop
clear all;
close all;


f=[1e3:1e2:1e4,1e4:1e3:1e5,1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8];

s=2*pi*f*i;
%
%fo=1.023e6;
fcrs= 24e6;
%fcrs=0.256e6;
fvco=100*fcrs;
N=fvco/fcrs
%N=127;
%

Kvco=300e6;
lcp=250e-6;
Kcp=lcp/2/pi;


BW=200e3;
% ------+-------R2---
%     |     |            | 
%    R1 C2        C3
%     |  
%    C1
%R1 =11000;
%R2= 5500;
%C1=471e-12;
%C2= 20e-12;
%C3=10e- 12;
%BW= (R1*Kvco*lcp)/2/pi/N
R1=(BW*2*pi*N)/Kvco/lcp;
R2=R1/2;
C1=1/(BW*2*pi/3.6*R1);
C2=C1/24;
C3=C2/2;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%B=24;
%Rx=R1*(B+1);
%C=C1/(B+1);
%Ry=Rx/B;
%Z1=1./s./C1+R1;
%Z2=(1+s*R2"C3)./(s.^2*R2*C2*C3+s*(C2+C3));

%K=(Z1.*Z2)./(Z1+Z2);


zlf=(1+s*R1*C1)./s./(s.^2*R1*R2*C1*C2*C3+s*(C1*R1*(C2+C3)+C3*R2*(C1+C2))+C1+C2+C3);
Hol=Kcp*(2*pi*Kvco./s).*zlf/N;
Hcl=N*Hol./(1+Hol);
Hvco=Hcl./(Kcp*(2*pi*Kvco./s).*zlf);
Hcp=Hcl/Kcp; %%%% I think Kcp is right,lcp is wrong.
Hlf=Hcl./(Kcp.*zlf);

fc=Kcp*Kvco*R1/N
fz=1/R1/C1/2/pi
fp1=1/R1/(C2+C3)/2/pi
fp2=1/(R2*C2*C3/(C2+C3))/2/pi;

figure(1)
title('loop fiter transfer function')
subplot(2,1,1)
semilogx(f,20*log10(abs(zlf)));grid;
ylabel('magnitude(dB)')
xlabel('frequency(Hz)')
subplot(2,1,2)
semilogx(f,360/2/pi*atan(imag(zlf)./real(zlf)))
grid;
ylabel('phase(deg)')
xlabel('frequency(Hz)')

figure(2)
title('PLL open loop transfer function')
subplot(2,1,1)
semilogx(f,20*log10(abs(Hol))); grid;
ylabel('magnitude(dB)')
xlabel('frequency(Hz)')
subplot(2,1,2)
semilogx(f,180/pi*atan(imag(Hol)./real(Hol)))
grid;
ylabel('phase(deg)')
xlabel('frequency(Hz)')
figure(3)
semilogx(f,20*log10(abs(Hvco)),'r');
hold;
semilogx(f,20*log10(abs(Hcp)),'b');
semilogx(f,20*log10(abs(Hlf)),'k');
%semilogx(f,20*log10(abs(Hol./(1+Hol)));'m');
semilogx(f,20*log10(abs(Hol)),'g');
semilogx(f,20*log10(abs(Hcl)),'m');
hold;
grid;
title('Transfer Function')
legend('Hvco','Hcp','Hlf','hol','Hcl')
ylabel('magnitude(dB)')
xlabel('frequency(Hz)')

%%%%%%%%%%%%%%%%%%%%086009%6%6%% %%%%09%26%6%%%
%noise contribution evaluation

pn= -100; %vco phase noise @100KHzoffset
pnx=-115; %crystal phase noise @1kHzoffset

Vnvco=[10^(pn/20)./(([1e3:1e2:1e4,1e4:1e3:1e5]/1e5).^1.5),10^(pn/20)./([1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8]/1e5)];
Nvco=Vnvco.*abs(Hvco);
Vncrs=[10^(pnx/20)./(([1e3:1e2:1e4,1e4:1e3:1e5,1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8]/1e3).^1)];
Ncrs=Vncrs.*abs(Hcl);

VnR1=sqrt(R1/50)*0.91e-9; % VnR1 =sqrt(4KTR)  K=1.38e-23
VnR2=sqrt(R2/50)*0.91e-9;
VnR1If=VnR1*C1/(C1 +C2+C3)./(1+s*R1*(C2+C3))./(1+s*R2*C2*C3/(C2+C3)); % VnR1 to loopfilter point
VnR2lf=VnR2*(C1+C2)/(C1+C2+C3)./(1+s*R1*(C2+C3))./(1+s*R2*C2*C3/(C2+C3)).*(1+s*R1*C1*C2/(C1+C2));
NR1=abs(VnR1If.*Hlf); % VnR1 to pll output
NR2=abs(VnR2lf.*Hlf);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9%%%%%%%%%%%%%%%%%%%%

%VnRx=sqrt(Rx/50)*0.91e-9;
%VnRxIf=VnRx.*zlf./K./(1+(Rx+1./.C./s).*((B*C.*s+ B./Z2)./(Rx*C.*s-B)+1./Z2));
%NRx= abs(VnRxIf.*Hlf);
%%%%%%%%%%%%%%%%%%%%%%%%6%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ton=1e-9; % antibacklash time slot of PFD
fcor=1e5;
Incur=4e-12*sqrt(lcp/0.5e-3)+6e-12; % add active filter opamp noise
%Incur=14e-12;


lncp=sqrt(Incur^2./([1e3:1e2:1e4,1e4:1e3:1e5,1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8]/fcor))+Incur;
%1*sqrt(Ton*fcrs).*
Ncp=lncp.*abs(Hcp); % themal noise & 1/f noise
%Ncp=Incur.* abs(Hcp); %only themal noise


%{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%pll based frequency synthesizer frequency domin stability evaluation
%3-order type-2 phase lock loop
clear all;
close all;


f=[1e3:1e2:1e4,1e4:1e3:1e5,1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8];

s=2*pi*f*i;
%
%fo=1.023e6;
fcrs= 30e6;
%fcrs=0.256e6;
fvco=16*fcrs;
N=fvco/fcrs
%N=127;
%

Kvco=50e6;
lcp=25e-6;
Kcp=lcp/2/pi;


BW=120e3;
% ------+-------R2---
%     |     |            |
%    R1 C2        C3
%     |  
%    C1
%R1 =11000;
%R2= 5500;
%C1=471e-12;
%C2= 20e-12;
%C3=10e- 12;
%BW= (R1*Kvco*lcp)/2/pi/N
R1=(BW*2*pi*N)/Kvco/lcp;
R2=R1/2;
C1=1/(BW*2*pi/3.6*R1);
C2=C1/14;
C3=C2/2;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%B=24;
%Rx=R1*(B+1);
%C=C1/(B+1);
%Ry=Rx/B;
%Z1=1./s./C1+R1;
%Z2=(1+s*R2"C3)./(s.^2*R2*C2*C3+s*(C2+C3));

%K=(Z1.*Z2)./(Z1+Z2);


zlf=(1+s*R1*C1)./s./(s.^2*R1*R2*C1*C2*C3+s*(C1*R1*(C2+C3)+C3*R2*(C1+C2))+C1+C2+C3);
Hol=Kcp*(2*pi*Kvco./s).*zlf/N;
Hcl=N*Hol./(1+Hol);
Hvco=Hcl./(Kcp*(2*pi*Kvco./s).*zlf);
Hcp=Hcl/Kcp; %%%% I think Kcp is right,lcp is wrong.
Hlf=Hcl./(Kcp.*zlf);

fc=Kcp*Kvco*R1/N
fz=1/R1/C1/2/pi
fp1=1/R1/(C2+C3)/2/pi
fp2=1/(R2*C2*C3/(C2+C3))/2/pi;

figure(1)
title('loop fiter transfer function')
subplot(2,1,1)
semilogx(f,20*log10(abs(zlf)));grid;
ylabel('magnitude(dB)')
xlabel('frequency(Hz)')
subplot(2,1,2)
semilogx(f,360/2/pi*atan(imag(zlf)./real(zlf)))
grid;
ylabel('phase(deg)')
xlabel('frequency(Hz)')

figure(2)
title('PLL open loop transfer function')
subplot(2,1,1)
semilogx(f,20*log10(abs(Hol))); grid;
ylabel('magnitude(dB)')
xlabel('frequency(Hz)')
subplot(2,1,2)
semilogx(f,180/pi*atan(imag(Hol)./real(Hol)))
grid;
ylabel('phase(deg)')
xlabel('frequency(Hz)')
figure(3)
semilogx(f,20*log10(abs(Hvco)),'r');
hold;
semilogx(f,20*log10(abs(Hcp)),'b');
semilogx(f,20*log10(abs(Hlf)),'k');
%semilogx(f,20*log10(abs(Hol./(1+Hol)));'m');
semilogx(f,20*log10(abs(Hol)),'g');
semilogx(f,20*log10(abs(Hcl)),'m');
hold;
grid;
title('Transfer Function')
legend('Hvco','Hcp','Hlf','hol','Hcl')
ylabel('magnitude(dB)')
xlabel('frequency(Hz)')

%%%%%%%%%%%%%%%%%%%%086009%6%6%% %%%%09%26%6%%%
%noise contribution evaluation

pn= -109; %vco phase noise @100KHzoffset
pnx=-115; %crystal phase noise @1kHzoffset

Vnvco=[10^(pn/20)./(([1e3:1e2:1e4,1e4:1e3:1e5]/1e5).^1.5),10^(pn/20)./([1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8]/1e5)];
Nvco=Vnvco.*abs(Hvco);
Vncrs=[10^(pnx/20)./(([1e3:1e2:1e4,1e4:1e3:1e5,1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8]/1e3).^1)];
Ncrs=Vncrs.*abs(Hcl);

VnR1=sqrt(R1/50)*0.91e-9; % VnR1 =sqrt(4KTR)  K=1.38e-23
VnR2=sqrt(R2/50)*0.91e-9;
VnR1If=VnR1*C1/(C1 +C2+C3)./(1+s*R1*(C2+C3))./(1+s*R2*C2*C3/(C2+C3)); % VnR1 to loopfilter point
VnR2lf=VnR2*(C1+C2)/(C1+C2+C3)./(1+s*R1*(C2+C3))./(1+s*R2*C2*C3/(C2+C3)).*(1+s*R1*C1*C2/(C1+C2));
NR1=abs(VnR1If.*Hlf); % VnR1 to pll output
NR2=abs(VnR2lf.*Hlf);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9%%%%%%%%%%%%%%%%%%%%

%VnRx=sqrt(Rx/50)*0.91e-9;
%VnRxIf=VnRx.*zlf./K./(1+(Rx+1./.C./s).*((B*C.*s+ B./Z2)./(Rx*C.*s-B)+1./Z2));
%NRx= abs(VnRxIf.*Hlf);
%%%%%%%%%%%%%%%%%%%%%%%%6%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ton=1e-9; % antibacklash time slot of PFD
fcor=1e5;
Incur=4e-12*sqrt(lcp/0.5e-3)+6e-12; % add active filter opamp noise
%Incur=14e-12;


Incp=sqrt(Incur^2./([1e3:1e2:1e4,1e4:1e3:1e5,1e5:1e4:1e6,1e6:1e5:1e7,1e7:1e6:1e8]/fcor))+Incur;
%1*sqrt(Ton*fcrs).*
Ncp=lncp.*abs(Hcp); 
%Ncp=Incur.* abs(Hcp); % only themal noise


%{
incp= sqrt(2*ton/Tref*1e-18/50*2*lcp/Vod).*(1+1./sqrt(i/100e3));
iincp = incp*sqrt(Tref/ton/2);
%}


Nall=Ncrs.^2+NR1.^2+NR2.^2+Ncp.^2+Nvco.^2;
%Nall=Ncrs.^2+ NRx.^2+NRy.^2+NR2.^2+Ncp.^2+Nvco.^2;
figure(4)
semilogx(f,20*log10(Nvco),'b'); 
hold;
%semilogx(f,20*log10(VnR1lf),'b');

semilogx(f,20*log10(Ncrs),'k');
semilogx(f,20*log10(NR1),'g');
semilogx(f,20*log10(NR2),'y');
%semilogx(f,20*log10(NRx),'o');
%semilogx(f.20*log10(NRy),'m');
semilogx(f,20*log10(Ncp),'r');
semilogx(f,10*log10(Nall),'kx');
grid;
title('Phase Noise Contribution')
xlabel('frequency')
ylabel('Phase Noise (dB)')
legend('Nvco','Ncrs',NR1','NR2','Ncp','Nall')
hold;= sqrt(2*ton/Tref*1e-18/50*2*lcp/Vod).*(1+1./sqrt(i/100e3));
iincp = incp*sqrt(Tref/ton/2);
%}


Nall=Ncrs.^2+NR1.^2+NR2.^2+Ncp.^2+Nvco.^2;
%Nall=Ncrs.^2+ NRx.^2+NRy.^2+NR2.^2+Ncp.^2+Nvco.^2;
figure(4)
semilogx(f,20*log10(Nvco),'b'); 
hold;
%semilogx(f,20*log10(VnR1lf),'b');

semilogx(f,20*log10(Ncrs),'k');
semilogx(f,20*log10(NR1),'g');
semilogx(f,20*log10(NR2),'y');
%semilogx(f,20*log10(NRx),'o');
%semilogx(f.20*log10(NRy),'m');
semilogx(f,20*log10(Ncp),'r');
semilogx(f,10*log10(Nall),'kx');
grid;
title('Phase Noise Contribution')
xlabel('frequency')
ylabel('Phase Noise (dB)')
legend('Nvco','Ncrs','NR1','NR2','Ncp','Nall')
hold;

CP

(a)由于时钟馈通,开关脉冲到来的时候,会对VOUT有一定的影响。当开关都断开的时候,VOUT处于高阻状态,会通过VOUT的寄生电容漏电,发生电荷共享,会导致VOUT电压下降。还有就是两个电流源会有一定的mismatch。

(b)首先需要开关导通,再将MOS管导通,所以响应速度会变慢,还有就是开关脉冲会通过栅漏电容对VOUT有一定影响。

(c)开关的脉冲不会对VOUT形成电荷注入。但是MOS关闭需要Vgs小于Vth,那么开关需要上升到一定的电压值才会将MOS管关断,所以比较难关断。

 解决办法:左边支路和右边支路一直会有且仅有一边是导通的,运放两个输入端电压相等,所以一条支路关闭时,VOUT处于高阻状态,但是由于运放,电压并不会下降。

需要注意的一点是,IUP和IDW两个电流源的大小需要保证运放能够正常工作。

CP设计需要注意的点:

1、时序的失配,电荷泵的时序失配问题。

2、时钟馈通,由于MOS管的栅极和漏极之间会形成寄生电容,UP和DN在高低电平切换的时候,通过寄生电容耦合引起Vctrl发生抖动。解决时钟馈通的方法是将开关MOS管放在电流源管的源极,这样开关MOS管漏极的变化不会直接影响Vctrl进而消除了UP和DN在高低电平切换时对Vctrl抖动的影响

3、电荷注入,开关MOS管导通的时候,由于沟道中存在电荷。故关断时,电荷会由沟道注入到输出节点(Vctrl)中,这就是电荷注入。由于上下开关管中的注入电荷不可能完全一致,故正负电荷不能完全抵消,因而输出节点Iout存在周期抖动。解决办法,将开关管和Vctrl用电流源管隔开。在一定程度上可以起到隔离电荷注入的效果。

4、漏电流,简单来说就是开关管关不断电流源。即在环路锁定后,端来充放电支路时,理论上等效输出电流为0,然而由于漏电流的存在,相当于有一个小电流持续对滤波器放电,导致Vctrl一直缓慢下降,从而导致环路产生相位差,使充电时间大于放电时间,将Vctrl拉高,从而在Vctrl上引入周期性的抖动。

5、电荷共享,在电流源MOS管漏极产生的寄生电容会对电荷信号进行分流。当DN关断的时候,会对NMOS电流源的漏极上的寄生电容彻底放电,使其漏极电压为0,当DN开关闭合之后,NMOS电流源漏极电压会快速上升到与输出端同电压,这个过程就是对其漏极寄生电容充电的过程,也是此寄生电容对电荷信号分流的过程,因此会造成电荷误差。同样PMOS电流源的漏极寄生电容也会对电荷信号分流从而造成系统相位误差。进而导致控制电压上产生纹波。

6、电流源的失配,在实际电路中,上下两路电流存在差异。也就是说,在两路电流支路同时导通的时间内,存在不为0的净输出电流。即上下电流的分配。造成了Vctrl在一定范围内变化,因此环路只能通过产生固定的相位差,使充放电时间不同,补偿Vc的变化,造成电压的周期抖动。

以上所有非线性因素都会造成基准杂散过高。

电路:源级开关电路同样不能解决电荷共享的问题。例如,以M3和DN的开关为例,当开关关端
后,M3的源级仍然处于低电位,要使M3彻底关断,M3必定会对进行放电,直到M3的源级和栅极电压相差小于一个Vth才能关断。为解决这个问题,本设计在源级开关的基础上加入了上拉和下拉的虚拟(dummy)管M11和M12,那么当M6关断的时候,上拉dummy管M11;直接将M3的源级电位拉高,这就解决了电荷共享的问题。
电路在整体环路工作时,存在正负反馈的问题:运放和M7起构成负反馈的环路;运放和M8起构成正反馈的环路,要使整体的环路稳定必须保证负反馈大于正反馈。
CP中最关键的设计性能就UP和DN的电流的match情况,如图给出了CP的静态电流match的仿真情况。从图中可以看出,在0.3V-1V的范围内的match情况非常好,仿真结果表明其match精度误差小于1%,相比传统结构的CP误差(5%-10%) 要小,故本设计的CP远好于传统结构。

此电路设计的关键是运放的带宽和增益的选取,运放在此电路中的作用是实现电压的跟随功能。运放的增益决定了跟随的精度,即运放的负端和正端的差值,理论上,运放的增益越大,正负端的差值就越小,由于管子m8也有一定的增益,故整体电路的增益由运放和M8。构成一个两级负反馈的结构。所以这个运放的增益不需要很大,就可以达到跟随的精度要求。运放的带宽决定了运放正输入端的电压可以多快跟随上运放负输入端的电压变化。因为该电路是放在整体PLL环路中应用的,故对于整体环路而言,此运放的带宽只要能保证运放的正端最终能跟随上负端的变化就可以了。根据以往流片的经验表明,这个运放的单位增益带宽只要大于十倍的环路带宽就可以实现这个功能。

CP的运放选取也是非常关键的因素,因为该电路输出节点Vctrl在整体环路中的变化趋势,必须覆盖0.3V-1V,故此运放必须选取轨到轨电路结构。

CP需要仿真电流源的失配。

下图的CP是由两个运放组成的,也可以解决电荷共享,时钟馈通等等一系列问题。还添加了启动电路。

电路如图,X=10uA,电容是为了环路稳定性

查看Iup和Idn电流失配,可以看出电流在0.3V到1.4V之间都有较好的匹配,精度\frac{0.728-0.604}{40}=3‰

查看稳定性

M39管子是为了更好的关断CP,当up为低电平时,CP正常工作,当up为高电平时,M39漏端电压为0,可以迅速关断电流源。M38同理。

LPF

环路滤波器中的电容值,在nF级别,若采用无源滤波器,其面积相当大,很难实现锁相环的全集成。考虑到面积成本的问题,这里采用电容倍增技术,以减少环路滤波器中的电容容值,从而降低成本。

V1=V2=\frac{1/sC}{X*R+1/sC}*V

I=I1+I2=\frac{V}{X*R+1/sC}+\frac{V-V2}{R}

Z\left ( S \right )=\frac{V}{I}\left ( S \right )=\frac{X}{X+1}*R+\frac{1}{s\left ( X+1 \right )*C}

可以得到等效电阻Reff=\frac{X}{X+1}*R,等效电容Ceff=\left ( X+1 \right )*C

电容倍增技术,是增大电阻的倍数,来使电容缩小了相同系数。因为电容面积比电阻的面积大,故节省了面积。X值的选取同样也需要折中考虑,如果X选取的太大,那么大的电阻引入大的噪声,从而恶化系统的性能。若太小,则不能使其达到电容倍增技术的效果,同时,环路中引入的buffer也同样会恶化系统的性能。

有源滤波器和无源滤波器的阻抗特性,由于有源滤波器运放在低频处存在一个极点,导致其无法像无源器件低频阻抗无穷大,故在低频处两条曲线略有不同,但在接近环路带宽时,有源和无源滤波器的阻抗曲线几乎重合,所以这里设计的有源滤波器可是实现环路所需要滤波器的功能。

CML

电流型逻辑(CML)电路,具有高速、低功耗、抗噪声等优点,在高频设计中使用非常广泛。工作原理类似于普通的DFF,当时钟上升沿到来时,电路中存在两个状态: 一个处于锁存状态; 一个处于翻转状态。当clkp. 上升沿到来时,图a左侧的尾电流源管导通,使q和qn的状态发生翻转,而左侧,尾电流管关断,和in则处于锁存状态。当clkp 下降沿到来时,图a右侧的尾电流源管导通,q和qn处于锁存状态,图b右侧,尾电流源管关断,则和in处于翻转状态。此时和in随输入信号q和qn发生第一次翻转;当clkp. 上升沿第二次到来时,图b锁存住和in信号,而图a的q和qn翻转,当ckp下降沿再次到来,和in才 发生第二次翻转。从而使得i、in和q、qn每经历clk一个周期发生一次翻转,故可实现了二分频功能。且保持相位正交,符合接收机对IQ正交信号的要求。

CML中R的选取

CML设计的重点是对电阻的选取

CML的等效电路的总的输出阻抗Rout=\frac{R}{1-gmR}

当gmR>1时才能发生自振荡,根据大信号和大带宽的条件:

V=\frac{It}{C},t=\frac{1}{\omega _{0}}

所以有:

\frac{I}{C_{L}}=V\omega _{0}=\frac{1}{2}RIss*2\pi f

可以得出R\leq \frac{1}{\pi fC_{L}}

取f=2.4GHZ,CL的寄生电容假设200fF,可以得出R=512Ω,为满足自振荡条件,gm=1.5/R,可求出gm的值。

DIV


modin=1:
P=0,Fo= 1/2*Fin,mod out=1/2*fin
P=1,Fo=1/3*Fin,mod out=1/3*fig
mod in=0:
Fo=1/2*Fin, mod out=O
mod out= Fo&mod in

SDM

小数分频的基本原理就是使分频比不断的变化,取其平均值来实现的。例如,实现一个N.F=10.3的小数分频,N和F分别表示整数部分和小数部分。因为分频器不可能除以一个小数,所以只能周期的改变其分频比来实现。若把10分频周期设为一个整体,其中7个分频周期为10分频,3个分频周期为11分频,则平均的分频比N.F为:N.F=(1/10)*(10*7+11*3)=10.3,但是缺点是杂散比较大。

上面所讲的采用白噪声频谱形状的伪随机数列来动态的改变分频比,每个时刻分频比都比理想的小数分频比不相等,但是其平均下来是相等的,于是就引入了量化噪声,从而导致带内噪声被这些白噪声恶化,PLL又滤不掉分频器带内的噪声。SDM产生的也是伪随机数列,但其频谱不是白噪声,而表现为高通特性,由于PLL对高频具有抑制作用,故SDM有整形效果。

PLL是低通特性,sigama dealt是分频相对随机一点,SDM是高通特性但是由于PLL对高频有抑制作用,所以性能不会有什么恶化。

例如,需要20.35的分频器,那么SDM会在16,17,18,19,20,21,22,23随机跳,最后加权平均=20.35

AFC

用于校准VCO产生的频率

锁定检测周期

检测PLL是否锁定,查看Fref和Fb的两个频率的上升沿是否小于某一范围,若小于某一范围,判断为锁定,若大于这一值,则未锁定。为了防止误差,需要连续判断至少三个周期的上升沿。

LDO

选用LDO给VCO供电时,需要至少在全频带范围内小于-20dB。

PLL整体接好之后,需要做tran仿真功能和功耗

PLL整体设计思路

1、首先,系统给定PLL的频率、带宽、晶振指标,根据晶振和PLL频率比率可以知道N(分频器)的值。

2、根据fc=\frac{Kvco*Icp*R1}{N}在matlab里面分别给出不同的Icp、Kvco和R1,然后将其排列组合,经过多次参数选取优化对比之后,得出一组最优相位噪声的数据。

  • 3
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值