在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4713|回复: 21

[资料] Design of a broadband PLL solution for burst-mode Clock

[复制链接]
发表于 2014-4-24 14:44:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
Design of a broadband PLL solution for burst-mode Clock and Data Recovery in All-Optical networks
Appendix A: Frequency-Domain Code
CODE:
% This code takes as input the values of the Loop filter
% Resistor and two Capacitors and returns performance
% metrics based on continuous-time and discrete-time PLL
% theory: Loop Stability Criterion, Jitter peaking, and
% Overshoot Stability Criterion are calculated from 3rd%
order Discrete-time PLL theory; Lock-time and Step-
% Response plots are obtained from the continuous-time
% approximation of 2nd-order Digital PLLs. A Step-Response %
plot of the 3rd-order continuous-time approximation is
% also provided for comparison.
clear; close all; % Reset all
% FILTER VALUES
R2=5e3;
C2=2.5e-12;
C3=300e-15;
% CONSTANTS
Kv= 2e9;
Ko= 2*pi*Kv;
Kpd= l57e-3;
(V/Cycle instead
400e-3
% VCO Gain [Hz/V] -> 2e9
% VCO Gain [Rads/s*v]
% Phase Detector Gain [V/Cycle] =>
of V/Rad => so Ip will be in [A/Cycle]) ->
gm= 400e-6;
Pump [A/V]
% Transconductance gain of the Charge->
0.790e-3
Ip= (Kpd*gm);
[V/Cycle]*[A/V]
BR= 2.488e9;
Fr= BR/2;
Wi= 2*pi*Fr;
Ts maxbits= 60;
locking - upper
% OUTPUTS
K = 0;
Tz = 0;
Wz = 0;
[Rads/s]
Kn = 0;
Wn = 0;
Wn ratio = 0;
Damping = 0;
a = 0;
b = 0;
Pl = 0;
% Charge-Pump Average Error Current
[A/Cycle]
% Bitrate [bits/s]
% Frequency of the input signal
% Angular frequency of the input [Rads/s]
% Maximum number of bits allowed for
bound (BR*4/Tau must < Ts maxbits/BR) -> 30
% Loop Gain [Rads/s]
% Time Constant of the Filter zero
% Angular Frequency of the Loop Zero
% Normalized Loop Gain
% Natural Frequency/Loop Bandwidth
% Natural Frequnecy as percentage of Bitrate
% Damping Factor
% Variable used to calc. stability
% Ripple filter factor
% Frequency location of the first pole
P2 = 0; % Frequency location of the second pole
P3 = 0; % Location of the 3rd, high-frequency Pole
Stab Limit 2nd order = 0; % 2nd order Limit of Stability
Stab Limit 3rd order = 0; % 3rd order Limit of Stability
Tau = 0; % Closed-loop time constant - 2nd order
approximation
Tau lower bound 0; % Lower bound on Tau
Ts = 0; % Lock Time
W 3dB = 0; % Unit y-Gain Bandwidth / (Gain*Bandwidth)
Product [Rads/s]
JP = 0;
H03 Numl = 0;
H03 Num2 = 0;
H3 Deni 0;
H3 Den2 0;
H3 Den3 0;
H3 Den4 0;
He3 Numl 0;
He3 Num2 0;
He3 Num3 0;
He3 Num4 0;
% Jitter Peaking
% Ho Numerators
[dB]
% Ho and He Denominators
% He Numerators
H03 Num [0 0]; % Arrays for Step Responses
He3 Num = [0 000];
H3 Den = [0 000];
H02 Numl = 0; % Ho Numerators
H02 Num2 = 0;
H2 Deni 0;
H2 Den2 = 0;
H2 Den3 = 0;
% Ho and He Denominators
He2 Numl 0; % He Numerators
He2 Num2 = 0;
He2 Num3 = 0;
H02 Num [0 0]; % Arrays for Step Responses
He2 Num [0 0];
H2 Den [000];
t = 0; % Time
%%%%%%%%%%%%%%%%%%%%%%%%%% CODE %%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Notes on the code:
% 1. Ip=Kpd*gm used here is the equivalent of Ip/(2*pi) from
Gardner/Paemel/Stephens
% 2. The definitions used here are based on the Gardner
definition of Ip, which has units
% of [A/cycle], so multiplication by 1/(2*pi) is
necessary
%%% CALCULATE SMALL-SIGNAL LOOP PARAMETERS (FROM GARNDER)%%
Tz = R2*C2; %(Loop Zero, )
K = Ko*Ip*R2/(2*pi); % (Loop Gain\Bandwidth, [Rads/s])
Damping = (Tz/2)*sqrt((Ko*Ip)/(2*pi*C2)); % (Loop Damping
factor, unitless)
Wn = sqrt((Ko*Ip)/(2*pi*C2)); % (Loop Natural Frequency,
{Rads/s])
Kn = K*Tz;
[Rads] )
Wz = (2*pi)/Tz;
[Rads/s] )
% (Normalized Loop Gain\Bandwidth,
% (Loop Zero in frequency domain,
Wn ratio = Wi/K; %(Input frequency over Loop Bandwidth)
%%%%%%%%%%%%%%% CALCULATE STABILITY CRITERIA %%%%%%%%%%%%%%
b = 1 + C2/C3;
a = exp(-(2*pi*b)/(Wi*Tz));
Stab_Limit_2nd_order = 1 / [(pi/(Wi*Tz))*(l+(pi/(Wi*Tz)))];
Stab_Limit_3rd_order = (4*(l+a)) / [((2*pi*(b-l))/(b*Wi*Tz))
* (( (2*pi* (l+a)) / (Wi*Tz)) + ((2* (l-a) * (b-l)) /b))];
%%%%%%%%%%
P3 = b/Tz;
[Rads/s]
ADDITIONAL FREQUENCY-DOMAIN BEHAVIOR %%%%%%%%%%%
% The 3rd, High-frequency pole
% Performance calculations - "Tau" anf "Jitter" Equations
W_3dB = R2*Ko*Ip/(2*pi); % 3dB frequency (Divide
by 2*pi because Ip is in A/Cycle while Ko is in Rads/s*v)
JP = 8.686/[C2*(R2 A 2)*Ko*(Ip/(2*pi))]; % Jitter Peaking
(From Razavi)
%%%%%%%%%%%%%% STEP REESPONSES (FROM EGAN) %%%%%%%%%%%%%%%%
%%% H2 Step Response:
Ho2 Numl C2*R2*Ko*Ip; % Ho Numerators
Ho2 Num2
He2 Numl
He2 Num2
He2 Num3
H2 Denl
He
H2 Den2
H2 Den3
Ko*Ip;
C2*(2*pi);
0;
0;
2*pi*C2;
C2*R2*Ko*Ip;
Ko*Ip;
Ho2 Num = [Ho2 Numl Ho2_Num2]; % Arrays for Step Responses
- Array Vector with first term S2, second term S, third term
integer
He2 Num = [He2 Numl He2 Num2 He2 Num3];
H2_Den = [H2_DenI H2_Den2 H2 Den3];
t = linspace(O, 5e-8, 50000); % linspace(a,b,n) generates
a row vector y of n points linearly spaced between and
including a and b
% Plot the Responses
figure('name', '2nd order Step Response');
step(Ho2_Num, H2 Den, t);
grid;
figure('name', '2nd order Error Step Response');
step(He2_Num, H2 Den, t);
grid;
%%% H3 Step Response:
Ho3 Numl C2*R2*Ko*Ip;
Ho3 Num2
He3 Numl
He3 Num2
He3 Num3
He3 Num4
H3 DenI
H3 Den2
H3 Den3
H3 Den4
Ko*Ip;
C2*C3*R2*(2*pi) ;
(C2+C3) * (2*pi) ;
0;
0;
2*pi*C2*C3*R2;
2*pi*(C2+C3);
C2*R2*Ko*Ip;
Ko*Ip;
% Ho Numerators
% He Numerators
% Ho and He Denominators
Ho3 Num [Ho3_NumI Ho3_Num2]; % Arrays for Step Responses
- Array Vector with first term S2, second term S, third term
integer
He3 Num = [He3 Numl He3_Num2 He3_Num3 He3 Num4];
H3 Den = [H3 DenI H3 Den2 H3 Den3 H3 Den4];
t = linspace(O, 5e-8, 50000); % linspace(a,b,n) generates a
row vector y of n points linearly spaced between and
including a and b
% Plot the Responses
figure('name', '3rd order Step Response');
step(Ho3_Num, H3 Den, t);
grid;
figure('name', '3rd order Error Step Response');
step(He3_Num, H3 Den, t);
grid;
%%%%%%%%%%%%%%%%%%% PRINT THE RESULTS %%%%%%%%%%%%%%%%%%%%%
fprintf('THE RESULTS FROM THE SMALL-SIGNAL ANALYSES ARE:
\n' ) ;
fprintf('The Loop Natural Frequency, Wn = %g Rads/s\n',Wn);
fprintf('The Damping Factor = %g\n',Damping);
fprintf('The Loop GainlBandwidth, K = %g Rads/s\n',K);
fprintf('The Time Constant of the Filter Zero, Tz = %g
Secs\n' ,Tz);
fprintf('The Loop Zero is, Tz = %g\n',Tz);
fprintf('The Normalized Loop Gain, Kn = %g Rads\n',Kn);
fprintf('And the 3rd, High-frequency pole, P3 = %g
Rads / s \n ' , P3) ;
fprintf('The Frequency of the Loop Zero, Wz %g
Rads/s\n', Wz);
fprintf('Gardners "rule-of-thumb" bandwidth ratio, Wn %g
Rads \n',Wn_ratio);
fprintf ( '\n' ) ;
fprintf('THE JITTER PERFORMANCE ESTIMATES ARE: \n');
fprintf('The Jitter Bandwidth, W_3dB = %g Rads/s\n',W_3dB);
fprintf('Resulting in Jitter Peaking, JP = %g dB\n',JP);
fprintf ( '\n' ) ;
fprintf('THE LOOP STABILITY PARAMETERS ARE: \n');
if (Kn < Stab_Limit_2nd_order) & (Kn < Stab_Limit 3rd order)
fprintf('A Charge-pump Loop is STABLE using these
parameters: ');
else
fprintf('A Charge-pump Loop in UNSTABLE using these
parameters: ');
end;
fprintf('Kn is %g Rads \n',Kn);
fprintf('The Stability Limit for Kn is %g Rads for 2nd
order and %g Rads for 3rd order\n',
Stab_Limit_2nd_order,Stab_Limit_3rd_order);
fprintf('The Ripple Filter Factor, b = %g\n',b);
pll_design.jpg

Design of a broadband PLL solution.rar

4.69 MB, 下载次数: 193 , 下载积分: 资产 -3 信元, 下载支出 3 信元

发表于 2014-4-24 17:18:26 | 显示全部楼层
谢谢分享
发表于 2014-4-24 21:44:30 | 显示全部楼层
看上去是好东西啊
发表于 2014-4-25 14:19:06 | 显示全部楼层
非常感谢提供!
发表于 2015-7-2 18:49:13 | 显示全部楼层
Thank Q very much.
发表于 2016-2-14 09:51:28 | 显示全部楼层
楼主好人,感谢分享
发表于 2016-2-14 10:30:51 | 显示全部楼层
Thanks a lot
发表于 2016-2-14 11:09:26 | 显示全部楼层
Design of a broadband PLL solution for burst-mode Clock
发表于 2016-2-14 14:58:50 | 显示全部楼层
感謝分享
发表于 2016-4-27 16:18:00 | 显示全部楼层
thanks!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 16:18 , Processed in 0.030807 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表