全数字锁相环的设计教程文件Word文件下载.docx

上传人:b****1 文档编号:13391962 上传时间:2022-10-10 格式:DOCX 页数:7 大小:64.26KB
下载 相关 举报
全数字锁相环的设计教程文件Word文件下载.docx_第1页
第1页 / 共7页
全数字锁相环的设计教程文件Word文件下载.docx_第2页
第2页 / 共7页
全数字锁相环的设计教程文件Word文件下载.docx_第3页
第3页 / 共7页
全数字锁相环的设计教程文件Word文件下载.docx_第4页
第4页 / 共7页
全数字锁相环的设计教程文件Word文件下载.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

全数字锁相环的设计教程文件Word文件下载.docx

《全数字锁相环的设计教程文件Word文件下载.docx》由会员分享,可在线阅读,更多相关《全数字锁相环的设计教程文件Word文件下载.docx(7页珍藏版)》请在冰豆网上搜索。

全数字锁相环的设计教程文件Word文件下载.docx

异或门鉴相器比较输入信号Fin相位和输出信号Fout相位之间的相位差Фe=Фin-Фout,并输出误差信号Se作为K变模可逆计数器的计数方向信号。

环路锁定时,Se为一占空比50%的方波,此时的绝对相为差为90°

因此异或门鉴相器相位差极限为±

90°

异或门鉴相器工作波形如图2所示。

图2异或门鉴相器在环路锁定及极限相位差下的波形

K变模可逆计数器

  K变模可逆计数器消除了鉴相器输出的相位差信号Se中的高频成分,保证环路的性能稳定。

K变模可逆计数器根据相差信号Se来进行加减运算。

当Se为低电平时,计数器进行加运算,如果相加的结果达到预设的模值,则输出一个进位脉冲信号CARRY给脉冲加减电路;

当Se为高电平时,计数器进行减运算,如果结果为零,则输出一个借位脉冲信号BORROW给脉冲加减电路。

脉冲加减电路

脉冲加减电路实现了对输入信号频率和相位的跟踪和调整,最终使输出信号锁定在输入信号的频率和信号上,工作波形如图3所示。

图3脉冲加减电路工作波形

除N计数器

  除N计数器对脉冲加减电路的输出IDOUT再进行N分频,得到整个环路的输出信号Fout。

同时,因为fc=IDCLOCK/2N,因此通过改变分频值N可以得到不同的环路中心频率fc。

DPLL部件的设计实现

  了解了DPLL的工作原理,我们就可以据此对DPLL的各部件进行设计。

DPLL的四个主要部件中,异或门鉴相器和除N计数器的设计比较简单:

异或门鉴相器就是一个异或门;

除N计数器则是一个简单的N分频器。

下面主要介绍K变模可逆计数器和脉冲加减电路的设计实现。

K变模可逆计数器的设计实现

  K变模可逆计数器模块中使用了一个可逆计数器Count,当鉴相器的输出信号dnup为低时,进行加法运算,达到预设模值则输出进位脉冲CARRY;

为高时,进行减法运算,为零时,输出借位脉冲BORROW。

Count的模值Ktop由输入信号Kmode预设,一般为2的整数幂,这里模值的变化范围是23-29。

模值的大小决定了DPLL的跟踪步长,模值越大,跟踪步长越小,锁定时的相位误差越小,但捕获时间越长;

模值越小,跟踪步长越大,锁定时的相位误差越大,但捕获时间越短。

  K变模可逆计数器的VERILOG设计代码如下(其中作了部分注释,用斜体表示):

  moduleKCounter(Kclock,reset,dnup,enable,Kmode,carry,borrow);

  inputKclock;

/*系统时钟信号*/

  inputreset;

/*全局复位信号*/

  inputdnup;

/*鉴相器输出的加减控制信号*/

  inputenable;

/*可逆计数器计数允许信号*/

  input[2:

0]Kmode;

/*计数器模值设置信号*/

  outputcarry;

/*进位脉冲输出信号*/

  outputborrow;

/*借位脉冲输出信号*/

  reg[8:

0]Count;

/*可逆计数器*/

0]Ktop;

/*预设模值寄存器*/

  /*根据计数器模值设置信号Kmode来设置预设模值寄存器的值*/

  always@(Kmode)

  begin

  case(Kmode)

  3'

b001:

Ktop<

=7;

b010:

=15;

b011:

=31;

b100:

=63;

b101:

=127;

b110:

=255;

b111:

=511;

  default:

  endcase

  end

  /*根据鉴相器输出的加减控制信号dnup进行可逆计数器的加减运算*/

  always@(posedgeKclockorposedgereset)

  if(reset)

  Count<

=0;

  elseif(enable)

  if(!

dnup)

  if(Count==Ktop)

  else

=Count+1;

  if(Count==0)

=Ktop;

=Count-1;

  end

  /*输出进位脉冲carry和借位脉冲borrow*/

  assigncarry=enable&

(!

dnup)&

(Count==Ktop);

  assignborrow=enable&

dnup&

(Count==0);

  endmodule

脉冲加减电路的设计实现

  脉冲加减电路完成环路的频率和相位调整,可以称之为数控振荡器。

当没有进位/借位脉冲信号时,它把外部参考时钟进行二分频;

当有进位脉冲信号CARRY时,则在输出的二分频信号中插入半个脉冲,以提高输出信号的频率;

当有借位脉冲信号BORROW时,则在输出的二分频信号中减去半个脉冲,以降低输出信号的频率。

VERILOG设计代码如下:

  moduleIDCounter(IDclock,reset,inc,dec,IDout);

  inputIDclock;

  inputinc;

/*脉冲加入信号*/

  inputdec;

/*脉冲扣除信号*/

  outputIDout;

/*调整后的输出信号*/

  wireQ1,Qn1,Q2,Qn2,Q3,Qn3;

  wireQ4,Qn4,Q5,Qn5,Q6,Qn6;

  wireQ7,Qn7,Q8,Qn8,Q9,Qn9;

  wireD7,D8;

  FFDFFD1(IDclock,reset,inc,Q1,Qn1);

  FFDFFD2(IDclock,reset,dec,Q2,Qn2);

  FFDFFD3(IDclock,reset,Q1,Q3,Qn3);

  FFDFFD4(IDclock,reset,Q2,Q4,Qn4);

  FFDFFD5(IDclock,reset,Q3,Q5,Qn5);

  FFDFFD6(IDclock,reset,Q4,Q6,Qn6);

  assignD7=((Q9&

Qn1&

Q3)|(Q9&

Q5&

Qn3));

  assignD8=((Qn9&

Qn2&

Q4)|(Qn9&

Q6&

Qn4));

  FFDFFD7(IDclock,reset,D7,Q7,Qn7);

  FFDFFD8(IDclock,reset,D8,Q8,Qn8);

  JKFFJK(IDclock,reset,Qn7,Qn8,Q9,Qn9);

  assignIDout=(!

Idclock)|Q9;

  endmodule

  其中,FFD为D触发器,JK为JK触发器。

  当环路的四个主要部件全部设计完毕,我们就可以将他们连接成为一个完整的DPLL,进行仿真、综合、验证功能的正确性。

DPLL的FPGA实现

  本设计中的一阶DPLL使用XILINX公司的FOUNDATION4.1软件进行设计综合,采用XILINX的SPARTAN2系列的XC2S15FPGA器件实现,并使用Modelsim5.5d软件进行了仿真。

结果表明:

本设计中DPLL时钟可达到120MHz,性能较高;

而仅使用了87个LUT和26个触发器,占用资源很少。

下面给出详细描述DPLL的工作过程。

  

(1)当环路失锁时,异或门鉴相器比较输入信号(DATAIN)和输出信号(CLOCKOUT)之间的相位差异,并产生K变模可逆计数器的计数方向控制信号(DNUP);

  

(2)K变模可逆计数器根据计数方向控制信号(DNUP)调整计数值,DNUP为高进行减计数,并当计数值到达0时,输出借位脉冲信号(BORROW);

为低进行加计数,并当计数值达到预设的K模值时,输出进位脉冲信号(CARRY);

  (3)脉冲加减电路则根据进位脉冲信号(CARRY)和借位脉冲信号(BORROW)在电路输出信号(IDOUT)中进行脉冲的增加和扣除操作,来调整输出信号的频率;

  

  (4)重复上面的调整过程,当环路进入锁定状态时,异或门鉴相器的输出DNUP为一占空比50%的方波,而K变模可逆计数器则周期性地产生进位脉冲输出CARRY和借位脉冲输出BORROW,导致脉冲加减电路的输出IDOUT周期性的加入和扣除半个脉冲。

有关一阶DPLL的一些讨论

  “波纹”(Ripple)消除

  在DPLL工作过程中,环路锁定时,异或门鉴相器的输出DNUP是一个占空比50%的方波。

因为在DPLL的基本结构中,K变模可逆计数器始终起作用。

因此当环路锁定后,如果模数K取值较小,K变模可逆计数器会频繁地周期性输出进位脉冲信号CARRY和借位脉冲信号BORROW,从而在脉冲加减电路中产生周期性的脉冲加入和扣除动作,这样就在脉冲加减电路的输出信号IDOUT中产生了周期性的误差,称为“波纹”;

如果模数K取值足够大——对于异或门鉴相器,K应大于M/4;

对于边沿控制鉴相器,K应大于M/2,则这种“波纹”误差通过除N计数器后,可以减少到N个周期出现一次,也就是说K变模可逆计数器的进位脉冲信号CARRY和借位脉冲信号BORROW的周期是N个参考时钟周期。

  为了消除“波纹”误差,可以为K变模可逆计数器产生一个计数允许信号ENABLE,环路失锁时,此信号有效,允许计数;

环路锁定时,此信号无效,禁止计数,则不会产生周期性的进位和借位脉冲信号。

  “波纹”消除电路消除“波纹”误差的同时,也减小了DPLL的锁定范围,环路的相位极限误差(异或门鉴相器为±

ECPD为±

180°

)减小为原来的1/(1+1/2K),鉴相增益也减小到原来的1/2。

  使用DPLL进行FSK解调

  一个带有边沿控制鉴相器ECPD的DPLL再加上一个D触发器,就可以构成一个FSK解调器,如图4所示。

图4FSK解调

  假设有一个输入信号Fin,它的频率在F1和F2之间变化,DPLL的中心频率为Fc,并且F1<

FC<

F2。

如果输入信号频率为F1,则ECPD会产

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1