DLL延迟锁相环

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

DLL(Delay-LockedLoop)周清海2目录DLL作用PLL原理数字倍频数字移相DLL原理DLL应用3DLL作用原因:FPGA芯片规模增大,工作频率高,片内时钟分配质量和时钟延迟变得重要、传统的时钟树无法保持片内高速时钟的精确同步需求作用:1、消除时钟延迟,可实现零传输延迟,使时钟输入信号与整个芯片内部时钟引脚之间偏差最小。每个DLL驱动两个全局时钟网络。2、先进的多时钟控制。对Spartan-II系列FPGA有四个DLL,可实现2倍频,以及使时钟按1.5,2,2.5,3,4,5,8,16分频时钟树零传输延迟PLL和DLL主要有三个功能:[参考page1]1,消除时钟延迟;2,频率合成(包括倍率和分频);3,时钟校正(包括占空比和相移)4时钟树图示是典型的片上时钟树图,共6级时钟。先垂直方向后水平方向分配时钟,各级时钟最长线4mm。第一级时钟4mm驱动2个第二级时钟,第二级时钟用3mm匹配线驱动4个第三级时钟…..(图中只画出上面部分,下部分未画出)133233554566665典型的时钟树分布图5零传输延迟DLL技术能够实现零传输延迟,使分布于整个器件的时钟引脚间的偏差最小。零传输延迟指前面的时钟信号经过若干延时,能够达到与后面的时钟信号的同步,最终实现零传输延迟参考时钟延迟信号信号延时同步6PLL锁相环锁相环由鉴相器、环路滤波器和压控振荡器组成。鉴相器用来鉴别输入信号Ui与输出信号Uo之间的相位差,并输出误差电压Ud。Ud中的噪声和干扰成分被低通性质的环路滤波器滤除,形成压控振荡器(VCO)的控制电压Uc。Uc作用于压控振荡器的结果是把它的输出振荡频率fo拉向环路输入信号频率fi,当二者相等时,环路被锁定,称为入锁。7下图是另一种PLL原理图,控制电路由上图的鉴相器和低通滤波器组成。调整振荡器的频率和相位就可以补偿时钟分布造成的时间延迟压控振荡器控制逻辑电路时钟分布网络PLL原理图输入时钟输出时钟8DPLL数字锁相环数字鉴相器,数字低通滤波器,数字控制振荡器;DPD比较clk_dpd与Data_in相位超前或滞后关系;DPL根据DPD输出进行加/减计数,达到一定模值,产生进/借位对DCO控制,即实现对相位差控制和滤除DPD噪声,clk_DLF是clk_DPD的两倍;DCO利用外部时钟进行分频,其中分频系数由DLF产生的信号调整,从而使输出逼近输入9DLFdigitallowfilterDPL根据DPD输出的sign,sign_ready进行加/减计数,达到模值时,产生进/借位对DCO控制,即利用相位差控制;另外,因为只有噪声连续出现的次数达到了计数器模值时才会产生对DCO的分频系统调整,故可以产生滤除DPD噪声的效果;此外clk_DLF是clk_DPD的两倍,可以提高滤波精度;更智能的方法是利用锁相环状态检测电路,当没有达到锁定时,增大计数模值,使锁相器快速进入稳定;进入稳定后,再逐步减小模值,使其再度失锁,如此可得最佳模值,提高锁相精度。如下图10相比前面的DPLL,最主要的变化是增加了锁相环检测电路,用于检测是否锁定,原理如下页11锁相环检测电路由触发器与单稳态振荡器构成fin输入参考时钟,fout为锁相器振荡器输出时钟的移相90度fout对fin的抽样送入单稳态振荡器锁定状态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开始充电,电路进入暂稳态.当电容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数字倍频倍频器的功能即在两脉冲之间等间隔插入一定数量的脉冲,使经过倍频器的信号输出频率为输入频率的整数倍。最简单的数字倍频器可将输入时钟进行适当延迟,然后与原始时钟相异或,生成的信号为原信号的两倍频原始信号clk1延迟信号clk2异或输出clk0输出倍频信号的脉宽由延迟器件决定,同时也可看出,这种电路也是信号边沿检测的一种电路14另一种方法常用的倍频方法如图:fc是数字倍频器晶振的高频时钟,fi为输入,fo为倍频输出。且fo=k·fi,即fo是fi的K倍频。图中,fc对fi计数N=fc/fi,再将N除以倍频系数K所得商整数部分作为下一步分频系数。则fo=fc/|N/k|.即fo≈K·fi.15利用数字倍频器对信号进行延时操作可以达到可控精度的移相操作。实现原理是把输入信号的周期Tin转化为原来的1/data,Tin/data即移相精度,即data倍频。如data=360则精度为1度,data=720则精度为0.5度….然后利用得到的倍频信号计数N延迟输出原信号,就可以得到原信号的(N*单位精度)的移相信号。如:精度为1度时,只要利用倍频信号计数90次,然后再输出原信号,那么此时相对原信号的相移就为90度数字移相原理16DLL原理一个最简单的延时锁相环DLL与PLL主要不同在于DLL用延时线(DelayLine)代替了PLL的压控振荡器。延时线产生输入时钟的延时输出,时钟分布网络把时钟送到内部寄存器的时钟端口,控制逻辑对输入时钟和反馈时钟抽样、比较,调整延时线。压控振荡器控制逻辑电路时钟分布网络输入时钟输出时钟PLL原理图可变延时线控制逻辑电路时钟分布网络输入时钟输出时钟反馈时钟反馈时钟DLL原理图17DLL就是在输入时钟与反馈时钟间插入延时脉冲,直到这两个时钟上升沿对齐达到同步,DLL才能锁定。这样两个时钟没有了差别。也就补偿了时钟分配网络造成的时间延时,有效改善了时钟源与负载之间延时。区别:DLL与PLL模拟电路实现时有精确的时序,而数字电路实现时:抗噪声,低功耗,抗抖动,移植性好。PLL的振荡器有不稳定,相位偏移的积累而DLL技术稳定,没有累积相位偏移,因而在延时补偿和时钟调整时常用DLL18DLL应用在virtex库中DLL简化宏符号BUFGDLL,该模块可为整个芯提供快速有效的零传输延迟的系统时钟。更多的库元件可查看xilinx提供的技术资料(本文下载了一个virtexandvirtex-Elibraryguide及using_virtex_DLL)0nsCLKINCLKOUTBUFGDLL简化宏符号BUFGDLLCLKFB19下图为两个DLL库原形,分别是标准的DLL宏符号CLKDLL和高频DLL宏符号CLKDLLHF,具有DLL一切特性,用于更复杂的场合。标准的DLL宏符号CLKDLL高频DLL宏符号CLKDLLHF输入时钟CLKIN必须在数据手册规定的低频范围内,只有CLK0,CLK2X可以接CLKFB201、on-chipsynchronizationCLKFB必接由BUFG驱动的同一DLL的CLK0或CLK2X,而CLKIN接由IBUFG驱动的系统时钟On-chipsynchronizationisachievedbyconnectingtheCLKFBinputtoapointontheglobalclocknetworkdrivenbyaBUFG,aglobalclockbuffer.TheBUFGconnectedtotheCLKFBinputoftheCLKDLLmustbesourcedfromeithertheCLK0orCLK2XoutputsofthesameCLKDLL.TheCLKINinputshouldbeconnectedtotheoutputofanIBUFG,withtheIBUFGinputconnectedtoapaddrivenbythesystemclock.2、off-chipsynchronizationCLKFB接由IBUFG驱动的外部时钟,CLK0,CLK2X如要用,必接OBUF用以隔离及增加驱动Off-chipsynchronizationisachievedbyconnectingtheCLKFBinputtotheoutputofanIBUFG,withtheIBUFGinputconnectedtoapad.EithertheCLK0orCLK2Xoutputcanbeusedbutnotboth.TheCLK0orCLK2XmustbeconnectedtotheinputofOBUF,anoutputbuffer.21利用DLL产生4倍频(virtex-EDevices)IBUFGGNDINVOBUFBUFGCLKDLL1CLKDLL2INPUTCLKDLL1没有达到稳定时LOCKED为低,则CLKDLL2的RST为高,不工作。CLK0~CLK270分别为移相输出,占比为50/50,可通过DUTY_CYCLE_CORRECTION来控制,默认为TURE,当FALSE时,输出与输入占空比相同。CLKDV为N分频输出,默认N=2,可取1.5、2、2.5、3、4、5、8、16,由CLKDIVIDE设定22CLKDLL输出时序CLK0CLK90CLK180CLK270DUTY_CYCLE_CORRECTION=FALSEDUTY_CYCLE_CORRECTION=TURETURE时,输出占空比50/50;FALSE时,输出具有与输入相同的占空比23DLL属性(properties)DutyCycleCorrectionPropertyDUTY_CYCLE_CORRECTION(TRUE,FALSE)参考dll_mirror_1.vhdClockDividePropertyCLKDV_DIVIDE(1.5,2,2.5,3,4,5,8,16)StartupDelayPropertySTARTUP_WAIT(TRUE,FALSE)VirtexSeriesDLLLocationConstraintsLOC(eg.LOC=DLL2)241.StandardUsage下图是BUFGDLL宏的重新实现,以提供RST,LOCKED引脚;verilog实现//StandardDLLExamplemoduledll_standard(CLKIN,RESET,CLK0,LOCKED);inputCLKIN,RESET;outputCLK0,LOCKED;wireCLKIN_w,RESET_w,CLK0_dll,LOCKED_dll;IBUFGclkpad(.I(CLKIN),.O(CLKIN_w));IBUFrstpad(.I(RESET),.O(RESET_w));CLKDLLdll(.CLKIN(CLKIN_w),.CLKFB(CLK0),.RST(RESET_w),.CLK0(CLK0_dll),.CLK90(),.CLK180(),.CLK270(),.CLK2X(),.CLKDV(),.LOCKED(LOCKED_dll));BUFGclkg(.I(CLK0_dll),.O(CLK0));OBUFlckpad(.I(LOCKED_dll),.O(LOCKED));endmodule252.Board-LevelDeskewofMultipleNon-VirtexDevices用于消除virte

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功