DLL延迟锁相环_第1页
DLL延迟锁相环_第2页
DLL延迟锁相环_第3页
DLL延迟锁相环_第4页
DLL延迟锁相环_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 DLL( Delay-Locked Loop ) 周清海 2 目录 nDLL作用 nPLL原理 n数字倍频 n数字移相 nDLL原理 nDLL应用 3 DLL作用 原因:FPGA芯片规模增大,工作频率高,片内时钟分配质 量和时钟延迟变得重要、传统的时钟树无法保持片内高速 时钟的精确同步需求 作用:1、消除时钟延迟,可实现零传输延迟,使时钟输入 信号与整个芯片内部时钟引脚之间偏差最小。每个DLL驱 动两个全局时钟网络。 2、先进的多时钟控制。对Spartan-II系列FPGA有四个DLL, 可实现2倍频,以及使时钟按1.5,2,2.5,3,4,5,8 , 16分频 时钟树时钟树 零传输延迟零

2、传输延迟 PLL和DLL主要有三个功能:参考page1 1,消除时钟延迟;2,频率合成(包括倍率和分频);3,时钟校正(包括占空比和相移) 4 时钟树 图示是典型的片上时钟树图,共6级时钟。 先垂直方向后水平方向分配时钟,各级时钟最长 线4mm。第一级时钟4mm驱动2个第二级时钟, 第二级时钟用3mm匹配线驱动4个第三级时 钟.(图中只画出上面部分,下部分未画出) 1 3 3 2 3 3 5545 66 6 6 5 典型的时钟树分布图 5 零传输延迟零传输延迟 DLL技术能够实现零传输延迟,使分布于整个器 件的时钟引脚间的偏差最小。 零传输延迟指前面的时钟信号经过若干延时,能 够达到与后面的时

3、钟信号的同步,最终实现零 传输延迟 参考时钟 延迟信号 信号 延时 同步 6 PLL锁相环 锁相环由鉴相器、环路滤波器和压控振荡器组成。鉴相器用来 鉴别输入信号Ui与输出信号Uo之间的相位差 ,并输出误差 电压Ud 。Ud 中的噪声和干扰成分被低通性质的环路滤波器 滤除,形成压控振荡器(VCO)的控制电压Uc 。 Uc作用 于压控振荡器的结果是把它的输出振荡频率fo拉向环路输入 信号频率fi ,当二者相等时,环路被锁定 ,称为入锁。 7 下图是另一种PLL原理图,控制电路由上图的鉴鉴 相器相器和低通滤波器低通滤波器组成。调整振荡器的频率和相 位就可以补偿时钟分布造成的时间延迟 压控 振荡器 控

4、制 逻辑电路 时钟分布 网络 PLL原理图 输入时钟 输出 时钟 8 DPLL数字锁相环 数字鉴相器,数字低通滤波器,数字控制振荡器; DPD比较clk_dpd与Data_in相位超前或滞后关系; DPL根据DPD输出进行加/减计数,达到一定模值,产生进/借位对DCO控制, 即实现对相位差控制和滤除DPD噪声,clk_DLF是clk_DPD的两倍; DCO利用外部时钟进行分频,其中分频系数由DLF产生的信号调整,从而使 输出逼近输入 9 DLF digital low filter DPL根据DPD输出的sign,sign _ready进行加/减计数,达到模值时,产生进/借位 对DCO控制,即

5、利用相位差控制;另外,因为只有噪声连续出现的次数达到了计数 器模值时才会产生对DCO的分频系统调整,故可以产生滤除DPD噪声的效果;此外 clk_DLF是clk_DPD的两倍,可以提高滤波精度; 更智能的方法是利用锁相环状态检测电路,当没有达到锁定时,增大计数模值,使 锁相器快速进入稳定;进入稳定后,再逐步减小模值,使其再度失锁,如此可得最 佳模值,提高锁相精度。如下图 10 相比前面的DPLL,最主要的变化是增加了锁相环检测电路,用于检测是 否锁定,原理如下页 11 锁相环检测电路 由触发器与单稳态振荡器构成 fin输入参考时钟,fout为锁相 器振荡器输出时钟的移相90度 fout对fin

6、的抽样送入单稳态振荡器 锁定状态fout与fin有稳定的相位关系 fout对fin抽样应全部为0或1这样不会激发振荡器振荡,从而lock将 输出低电平;而失锁状态时fout与fin出现相位之间的滑动,抽样时就不会出现长时间的0或1,单稳态振 荡器振荡,使lock输出高电平。锁相环的锁定状态保持时间的认定,可以通过设置振荡器的性能。 12 微分型单稳态触发器 稳态时,vi等于0,vd等于0,vi2等于vdd ,vo等于0,vo1等于vdd,电 容Cd两端的电压等于0;触发脉冲到达时,vi大于vth,vd大于 vth,vo1等于0,vi2等于0,vo等于vdd,电容c开始充电,电路进入 暂稳态.当

7、电容c两端的电压上升到vth时,即vi2上升到vth时,vo 等于0,电路退出暂稳态,电路的输出恢复到稳态。显然,输 出脉冲宽度等于暂稳态持续时间。路退出暂稳态时,vd已经回 到0(这是电容cd和电阻rd构成的微分电路决定的,所以vo1等 于vdd,vi2等于vth+vdd电容c通过G2输入端的保护电路迅速放 电。当vi2下降到vdd时,电路内部也恢复到稳态。 因为CMOS门电路的输入电阻 很高,所以其输入端可以认为 开路。电容cd和电阻rd构成一 个时间常数很小的微分电路, 它能将较宽的矩形触发脉冲vi 变成较窄的尖触发脉冲vd. 13 数字倍频 倍频器的功能即在两脉冲之间等间隔插入一定 数

8、量的脉冲,使经过倍频器的信号输出频率 为输入频率的整数倍。最简单的数字倍频器 可将输入时钟进行适当延迟,然后与原始时 钟相异或,生成的信号为原信号的两倍频 原始信号原始信号 clk1 延迟信号延迟信号 clk2 异或输出异或输出 clk0 输出倍频信号的脉宽由延迟器件决定,同时也可输出倍频信号的脉宽由延迟器件决定,同时也可 看出,这种电路也是信号边沿检测的一种电路看出,这种电路也是信号边沿检测的一种电路 14 另一种方法常用的倍频方法如图:fc是数字倍频 器晶振的高频时钟,fi为输入,fo为倍频输出。 且fo =kfi,即fo是fi的K倍频。图中,fc对fi计数 Nfc /fi,再将N除以倍频

9、系数K所得商整数部 分作为下一步分频系数。则fo=fc /|N/k|.即 fo Kfi. 15 利用数字倍频器对信号进行延时操作可以达到可 控精度的移相操作。实现原理是把输入信号的 周期Tin转化为原来的1/data,Tin/data即移相 精度,即data倍频。如data=360则精度为1度, data=720则精度为0.5度.然后利用得到的倍 频信号计数N延迟输出原信号,就可以得到原 信号的(N*单位精度)的移相信号。 如:精度为1度时,只要利用倍频信号计数90次, 然后再输出原信号,那么此时相对原信号的相 移就为90度 数字移相原理 16 DLL原理 一个最简单的延时锁相环DLL与PLL

10、主要不同在于DLL 用延时线(Delay Line)代替了PLL的压控振荡器。延 时线产生输入时钟的延时输出,时钟分布网络把时钟 送到内部寄存器的时钟端口,控制逻辑对输入时钟和 反馈时钟抽样、比较,调整延时线。 压控 振荡器 控制 逻辑电路 时钟 分布 网络 输入时钟 输出 时钟 PLL原理图原理图 可变 延时线 控制 逻辑电路 时钟 分布 网络 输入时钟 输出 时钟 反馈时钟反馈时钟反馈时钟反馈时钟 DLL原理图原理图 17 DLL就是在输入时钟与反馈时钟间插入延时脉冲, 直到这两个时钟上升沿对齐达到同步,DLL才 能锁定。这样两个时钟没有了差别。也就补偿 了时钟分配网络造成的时间延时,有效

11、改善了 时钟源与负载之间延时。 区别:区别: DLL与PLL模拟电路实现时有精确的时序,而数 字电路实现时:抗噪声,低功耗,抗抖动,移 植性好。 PLL的振荡器有不稳定,相位偏移的积累而DLL 技术稳定,没有累积相位偏移,因而在延时补 偿和时钟调整时常用DLL 18 DLL应用 在virtex库中DLL简化宏符号BUFGDLL,该模块 可为整个芯提供快速有效的零传输延迟的系统 时钟。更多的库元件可查看xilinx提供的技术 资料(本文下载了一个virtex and virtex-E library guide 及using_virtex_DLL) 0ns CLKIN CLKOUT BUFGDL

12、L 简化宏符号简化宏符号 BUFGDLL CLKFB 19 下图为两个DLL库原形,分别是标准的DLL宏符 号CLKDLL和高频DLL宏符号CLKDLLHF,具 有DLL一切特性,用于更复杂的场合。 标准的标准的DLL宏宏 符号符号CLKDLL 高频高频DLL宏符号宏符号 CLKDLLHF 输入时钟输入时钟CLKIN必须在数据手册规定的低频范围必须在数据手册规定的低频范围 内,只有内,只有CLK0,CLK2X可以接可以接CLKFB 20 1、on-chip synchronization CLKFB必接由BUFG驱动的同一DLL的CLK0或CLK2X,而CLKIN接 由IBUFG驱动的系统时钟

13、 nOn-chip synchronization is achieved by connecting the CLKFB input to a point on the global clock network driven by a BUFG, a global clock buffer . The BUFG connected to the CLKFB input of the CLKDLL must be sourced from either the CLK0 or CLK2X outputs of the same CLKDLL. The CLKIN input should be

14、 connected to the output of an IBUFG, with the IBUFG input connected to a pad driven by the system clock. 2、off-chip synchronization CLKFB接由IBUFG驱动的外部时钟,CLK0,CLK2X如要用,必接 OBUF用以隔离及增加驱动 nOff-chip synchronization is achieved by connecting the CLKFB input to the output of an IBUFG, with the IBUFG input

15、connected to a pad. Either the CLK0 or CLK2X output can be used but not both. The CLK0 or CLK2X must be connected to the input of OBUF , an output buffer . 21 利用DLL产生4倍频(virtex-E Devices) IBUFG GND INV OBUF BUFG CLKDLL1 CLKDLL2 INPUT CLKDLL1没有达到稳定时LOCKED为低,则CLKDLL2的RST为高,不工 作。 CLK0CLK270分别为移相输出,占比为5

16、0/50,可通过DUTY_CYCLE_CORRECTION 来控制,默认为TURE,当FALSE时,输出与输入占空比相同。 CLKDV为N分频输出,默认N2,可取1.5、2、2.5、3、4、5、8、16,由CLKDIVIDE 设定 22 CLKDLL输出时序 CLK0 CLK90 CLK180 CLK270 DUTY_CYCLE_CORRECTION=FALSEDUTY_CYCLE_CORRECTION=TURE TURE时,输出占空比时,输出占空比50/50;FALSE时,输出具有与输入相同的占空比时,输出具有与输入相同的占空比 23 DLL属性(properties) nDuty Cycl

17、e Correction Property DUTY_CYCLE_CORRECTION (TRUE,FALSE) 参考dll_mirror_1.vhd nClock Divide Property CLKDV_DIVIDE (1.5,2,2.5,3,4,5,8,16) nStartup Delay Property STARTUP_WAIT (TRUE,FALSE) nVirtex Series DLL Location Constraints LOC (eg. LOC=DLL2) 24 1.Standard Usage 下图是BUFGDLL宏的重新实现,以提供RST,LOCKED引脚;ver

18、ilog实现 / Standard DLL Example module dll_standard (CLKIN, RESET, CLK0, LOCKED); input CLKIN, RESET; output CLK0, LOCKED; wire CLKIN_w, RESET_w, CLK0_dll, LOCKED_dll; IBUFG clkpad (.I(CLKIN), .O(CLKIN_w); IBUF rstpad (.I(RESET), .O(RESET_w); CLKDLL dll (.CLKIN(CLKIN_w), .CLKFB(CLK0), .RST(RESET_w), .

19、CLK0(CLK0_dll), .CLK90(), .CLK180(), .CLK270(), .CLK2X(), .CLKDV(), .LOCKED(LOCKED_dll); BUFG clkg (.I(CLK0_dll), .O(CLK0); OBUF lckpad (.I(LOCKED_dll), .O(LOCKED); endmodule 25 2.Board-Level Deskew of Multiple Non-Virtex Devices 用于消除virtex和非virtex芯片之间的系统时钟偏移,通常用于virtex与 SRAM,DRAM等标准的产品的互联 module dl

20、l_mirror_1 (CLKIN, CLKFB, CLK0_ext, CLK0_int); input CLKIN, CLKFB; output CLK0_ext, CLK0_int; wire CLKIN_w, CLKFB_w, CLK0_int_dll, CLK0_ext_dll; wire logic0; assign logic0 = 1b0; IBUFG clkpad (.I(CLKIN), .O(CLKIN_w); IBUFG clkfbpad (.I(CLKFB), .O(CLKFB_w); CLKDLL dllint (.CLKIN(CLKIN_w), .CLKFB(CLK0

21、_int), .RST(logic0), .CLK0(CLK0_int_dll), .CLK90(), .CLK180(), . CLK270(), .CLK2X(), .CLKDV(), .LOCKED(); CLKDLL dllext (.CLKIN(CLKIN_w), .CLKFB(CLKFB_w), .RST(logic0), .CLK0(CLK0_ext_dll), .CLK90(), .CLK180(), . CLK270(), .CLK2X(), .CLKDV(), .LOCKED(); BUFG clkg (.I(CLK0_int_dll), .O(CLK0_int); OBU

22、F clkextpad (.I(CLK0_ext_dll), .O(CLK0_ext); endmodule 26 3.Board-Level Deskew of Multiple Virtex Devices Used to deskew a system clock between multiple Virtex chips on the same board 27 4.Deskew of Clock and Its 2x Multiple Implements a 2x clock multiplier and also uses the CLK0 clock output with 0 ns skew between registers on the same chip 28 5.Generating a 4x Clock 4x clock multipler with 0 ns skew between registers in the same device. When using this circuit,it is vital to use the SRL16 cell to reset the second DLL after the initial chip reset. If this is not done,t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论