CN103905038A - 周期预计算偏斜补偿电路及其fpga片内延迟锁定环方法 - Google Patents
周期预计算偏斜补偿电路及其fpga片内延迟锁定环方法 Download PDFInfo
- Publication number
- CN103905038A CN103905038A CN201410110889.9A CN201410110889A CN103905038A CN 103905038 A CN103905038 A CN 103905038A CN 201410110889 A CN201410110889 A CN 201410110889A CN 103905038 A CN103905038 A CN 103905038A
- Authority
- CN
- China
- Prior art keywords
- clock
- qoc
- phase
- dll
- delay chain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
Abstract
本发明公开一种周期预计算偏斜补偿电路及其FPGA片内延迟锁定环方法,在原有的传统DLL锁定方法的基础上采用周期预计算与偏斜预处理技术对FPGA片内时钟偏斜进行两级处理,在保持系统稳定与不添加硬件开销的情况下,快速去除时钟偏斜实现锁定。本发明DLL结构在锁相过程中,由第一级数字逻辑根据移相延时链数字化的周期信息来计算和加载预处理偏斜值,在此基础上通过二级计数逼近处理完成时钟锁定。该方法能够有效缩短锁定时间,尤其适合低频、偏斜补偿需求大的场合,能够平衡DLL工作频率范围内的锁相时间,提高FPGA内部时钟管理性能。
Description
技术领域
本发明涉及集成电路设计技术领域,用于改进现场可编程逻辑阵列(FPGA)芯片内部数字时钟管理方法,具体是一种基于周期预计算偏斜补偿的FPGA片内延迟锁定环方法和周期预计算偏斜补偿电路,主要是针对FPGA芯片内部DLL去除时钟系统中的时钟偏斜所消耗的锁定时间长、已有DLL改进结构方案消耗资源大等问题提出新的改进方法。
背景技术
缩略语和关键术语定义
时钟偏斜:在同步数字系统中,时钟沿到达不同空间的时间差别;
时钟偏斜补偿:采用延迟锁定环电路额外的引入一些延时,使得引入的延时加上原来的时钟偏斜正好是输入时钟周期的整数倍,经过延时补偿后原来存在时钟偏斜的时钟信号边沿(上升沿或者下降沿)对齐,达到时钟同步的目的;
可变延时链:由一系列延时单元组成,对输入时钟信号产生一定的相移,使延时链输出时钟相对于输入时钟有相应的延时,根据DLL实现方式的不同,延时链结构种类也各不相同。
1、相关技术背景以及现有技术分析
1.1背景技术:用于方便读者理解本发明的技术背景
在大规模集成电路设计中,降低时钟偏斜是必不可少的环节,目前锁相技术的实现方法主要包括PLL电路和DLL电路。时钟偏斜使数字系统各个区域的时钟边沿产生偏差,这种偏差由时钟缓冲延迟、时钟网络传播延时等原因造成的。通常PLL比较输入时钟和反馈时钟的相位关系不断调节压控振荡器输出时钟的频率和相位,逐步补偿时钟分布网络产生的延时。DLL则在输入时钟和反馈时钟之间插入可变延时链结构,通过DLL控制器调节可变延时链接入DLL的延时值,使输入时钟和反馈时钟相位对齐,实现DLL锁定。
DLL根据实现方法不同又可以分为模拟DLL、数字DLL以及数模混合DLL。模拟DLL和数模混合DLL电路采用压控可变延时链结构。数字DLL可变延时链延时单元的延时值是固定不变的,它是通过控制模块改变输入时钟经过可变延时链所产生延时的大小来调整反馈时钟和输入时钟的相位关系,数字DLL控制模块通常包括鉴相器和数字控制逻辑电路,其中数字控制逻辑电路实现算法有很多种,不同的的实现算法决定可变延时链的结构。全数字DLL的典型电路结构包括RDLL、SARDLL以及TDCDLL,其中RDLL实现方法又包括SRDLL和CRDLL。
出于对时钟系统稳定性的考虑,FPGA片内数字时钟管理采用计数器控制型延迟锁定环结构(CRDLL),CRDLL与其他结构的DLL相比不容易出现失锁的情况,拥有更加出色的稳定性能,从而能够满足FPGA对抗环境变化的要求。但是CRDLL结构相对简单,通常采用逐级鉴相方式接入分立的延时单元,当时钟处于相对较低的工作频率范围之内,CRDLL要花费上百个甚至上千个时钟周期来完成DLL锁定,尤其在需要较大时钟偏斜补偿的场合,FPGA片内时钟管理性能有待优化。
1.2与本发明相关的现有技术
1.2.1现有技术方案
1.2.1.1FPGA片内延迟锁定环
FPGA片内DLL在保证时钟稳定性和可靠性的基础上,要能够为众多的应用需求提供丰富的时钟资源,如图1所示,可变延时链用来去除时钟偏斜,移相延时链用来产生四个正交的移相的时钟,第一级移相延时链的输入与第四级移相延时链的输出相差一个时钟周期,所以每一级移相延时链的输出相对于前一级相差90度相位,其中移相延时链和可变延时链采用相同的的延时单元结构。DLL在输入时钟CLK_IN和反馈时钟CLK_FB之间插入可变延时链结构,通过控制器调节可变延时链接入DLL的延时值使输入时钟CLK_IN和反馈时钟CLK_FB相位对齐实现锁定。输入时钟CLK_IN经过DLL输出时钟为DLL_CLK,再经过时钟网络提供给FPGA内部逻辑单元使用,同时到达局部时钟网络的时钟作为反馈时钟CLK_FB输入到DLL的反馈时钟输入端,所以CLK_FB即为FPGA内部逻辑单元真正使用到的时钟信号,在DLL完成锁定之后CLK_IN和CLK_FB边沿对齐,即FPGA内部逻辑单元使用的时钟信号已经去除了时钟偏斜。
假设CLK_IN的输入时钟周期用T表示,当DLL可变延时链产生的延时为0(不考虑DLL内部固有延时)时,DLL_CLK和CLK_IN边沿对齐,DLL_FB与它们之间会有一个相位偏差tskew,tskew即为时钟偏斜。当DLL完成相位锁定之后,CLK_FB的上升沿比CLK_IN的上升沿晚一个或者多个时钟周期n*T,DLL由可变延时链产生的延时值tdelay为(1)所示,
tdelay=n×T–tskew (1)
传统的FPGA片内DLL锁相的基本原理:
(1)四条移相延时链接入DLL的延时单元级数由四个计数器控制,DLL开始工作后移相控制器同时调节四条移相延时链对应的计数器,逐步增加延时,当CLK0时钟和CLK360时钟之间相差一个时钟周期时,DLL完成移相,由于DLL的四条移相延时链的结构完全相同,在完成移相之后四个计数器产生相等数量的延时值,CLK0到CLK360依次相差90度相位;
(2)可变延时链接入DLL延时单元的级数由锁相控制器内部的计数器控制,移相完成之后,锁相控制器调节可变延时链计数器的计数值,DLL_CLK_SEL选通CLK0,当CLK_IN与CLK_FB的上升沿对齐之后,DLL实现锁定;
(3)在频率较低、需要补偿偏斜较大的场合,如果可变延时链全部用完DLL仍然未锁定,锁相控制器通过设置DLL_CLK_SEL选通信号,DLL选择CLK90输入到时钟网络产生CLK_FB反馈时钟,完成锁定之后DLL环路相当于接入移相延时链1和一定数量延时单元的可变延时链;
(4)如果接入移相延时链之后仍未达到锁定要求,DLL会依次接入移相延时链2、移相延时链3和移相延时链4,直到实现锁定。
1.2.1.2现有的改进FPGA片内延迟锁定环技术方案
在文献1(王忠涛.FPGA片内延时锁相环架构研究与设计[D].合肥工业大学,2010.)中,提出了一种适合FPGA应用的快速逼近数字锁相环结构,它通过2个工作模式依次完成对输入时钟和反馈时钟之间时钟偏斜进行测量和补偿,实现DLL锁定。在偏斜测量的工作模式下,DLL通过控制模块产生时钟网络的偏斜值,即DLL延时链需要接入的延时量。在偏斜补偿的工作模式下,DLL在输入时钟和反馈时钟之间插入延迟单元产生这些额外的延迟量,使得输出时钟与输入时钟同步。这种结构的优点在于仅需要通过一次逼近尝试就可以得到需要补偿的时钟偏斜量,再由控制器控制计数器实现锁定,与传统的FPGA片内DLL相比,其锁定时间大大减少。
1.2.2现有技术方案的缺点
(1)在原有传统的FPGA片内DLL方案中,可变延时链的延时单元采用一级一级鉴相比较的方式逐级接入DLL,每个计数周期完成一次计数,并且每个计数周期通常需要有多个输入时钟周期边沿来触发以完成包括复位、鉴相、延时链调节等操作,所以对于低频的场合,时钟周期自身就比较大,较大的时钟偏斜会使DLL花费几百个计数周期完成锁定,这样的方案需要很长的锁定时间;
(2)已有的改进方案中,在偏斜测量工作模式下,每级延时单元的测量结果需要相应的存储单元锁存,整体上需要的锁存器数目与延迟链中的延时单元级数相同,当频率调节范围扩大或者精度提高时,这种结构的DLL需要采用大量的延迟链、锁存器、译码器和多路选择器,从而消耗大量的逻辑资源及面积,对FPGA芯片而言,如此大的面积和资源占用是不切实际的;
(3)同时在已有的改进方案中,DLL控制器对偏斜测量依耐性较强,如果偏斜测量计算产生误差时,FPGA片内时钟可能出现失锁的风险,这对高稳定性和可靠性的应用是难以接受的。
发明内容
发明目的:本发明主要是针对FPGA芯片内部DLL去除时钟系统中的时钟偏斜所消耗的锁定时间长、已有DLL改进结构方案消耗资源大等问题,提出新的一种基于周期预计算偏斜补偿的FPGA片内延迟锁定环方法和一种周期预计算偏斜补偿电路。在原有的传统DLL锁定方法的基础上设计了周期预计算与偏斜预处理模块对FPGA片内时钟偏斜进行两级处理,在保持原有锁定精度和稳定性的基础上,以添加小于千分之一的硬件开销为代价实现快速去除时钟偏斜的目的。本发明DLL结构在锁相过程中,由第一级数字逻辑根据移相延时链数字化的周期信息来计算和加载预处理偏斜值,在此基础上通过二级计数逼近处理完成时钟锁定。能够有效缩短锁定时间,尤其适合低频、偏斜补偿需求大的场合,能够平衡DLL工作频率范围内的锁相时间,提高FPGA内部时钟管理性能。
技术方案:一种基于周期预计算偏斜补偿的FPGA片内延迟锁定环的改进方法,具体步骤如下:
步骤1,DLL通过移相控制器调节四条移相延时链产生正交的时钟信号,这一步和传统的FPGA内部DLL移相原理一致。
步骤2,移相完成之后,DLL进入本发明所提出的周期预计算和偏斜预处理流程,移相延时链接入DLL延时单元的数目由内部四个计数器确定,由于每条移相延时链结构相同,所以移相完成之后的四个计数值CNT_SFT相等,以4条移相延时链为例,当需要更多的相移时钟时,可以设置多条结构相同的移相延时链,这里为了分析的普适性,将移相延时链的条数用Lsft来表示,每条移相延时链内部延时单元级数用Csft来表示,移相锁定完成后移相延时链对应的计数器计数值用CNT_SFT来表示,所以由移相延时链计数器可以计算出输入时钟周期对应于延时单元的级数,这里用CYCLE来表示,QOC表示四分之一个时钟周期对应的延时单元的数量,其中QOC满足(2),
QOC计算电路可以根据DLL移相延时链的计数值计算出QOC、2QOC以及3QOC的数值。
步骤3,由于时钟具有周期性,超前滞后信号的判定都是在半个周期内进行的,FB_LEAD_IN表示反馈时钟CLK_FB的边沿超前于输入时钟CLK_IN,并且超前时间小于时钟周期的一半。FB_LEAD_IN的判断依据:选择最靠近CLK_FB上升沿的两个CLK_IN上升沿,如果CLK_FB上升沿与它之前的CLK_IN上升沿较近,则表示反馈时滞后于输入时钟,此时FB_LEAD_IN无效,否则表示反馈时钟超前于输入时钟,FB_LEAD_IN有效。在计算完QOC之后,首先对输入时钟和反馈时钟的相位关系进行判断,如果FB_LEAD_IN有效则跳到步骤9。否则FB_LEAD_IN无效表示CLK_FB时钟的边沿滞后CLK_IN时钟,并且时钟沿相对差值在二分之一个时钟周期内。在这种情况下,锁相控制器可以确定输入时钟的时钟上升沿与反馈时钟的下一个上升沿之间的偏斜补偿值大于2QOC数量的延时单元对应的延时值,用DESKEW表示要补偿的延时值,其中DESKEW满足范围(2QOC,4QOC)锁相控制器尝试插入3QOC数量的延时单元到DLL。
步骤4,在插入3QOC数量的延时单元之前,需要对时钟频率进行判定,因为可变延时链的延时单元级数可能小于3QOC,即可能存在(3)所示的情况,其中用Csync表示可变延时链所有的延时单元级数,用NQOC信号表示选择器的输出,
NQOC>Csync (3)
如果不是(3)所示的情况则跳到步骤5,否则需要借用移相延时链的延时单元,并对NQOC进行调节,对延时链进行调节可以用(4)表示,其中CNT_SYNC表示借用M条移相延时链之后可变延时链补偿NQOC还需要接入延时单元的数量,
NQOC=CNT_SYNC +M×Csft (4)
由于CNT_SYNC满足(5),
0≤CNT_SYNC ≤Csync (5)
锁相控制器将会根据(6)设定M值,即产生反馈时钟选通器选择信号DLL_CLK_SEL,
由于借用了M条移相延时链,所以要调节补偿的NQOC值,新产生的NQOC用NQOC_C表示,有(7)所示的关系;
NQOC_C =NQOC-M×Csft (7)
步骤5,移相延时链和可变延时链采用相同的延时链结构,所以如图3所示,可以直接将QOC_FINAL直接加载到可变延时链对应的计数器;
步骤6,加载QOC_FINAL之后再对DLL进行锁相判定,如果DLL进入同步窗则锁定完成,跳到步骤12,否则对鉴相器的超前滞后信号进行判断,如果FB_LEAD_IN有效,表示补偿3QOC之后还未实现锁定,由于DESKEW小于CYCLE,即小于4QOC,所以还需要计数器逐次计数完成剩余的延时单元接入工作,剩余的偏差补偿量用DELTA_DESKEW来表示如(8)所示,
DELTA_DESKEW =DESKEW -3QOC <QOC (8)在这种情况下,采用周期预计算偏斜补偿的改进方案可以一次性补偿相当于四分之三个输入时钟周期的延时量,补偿了大部分时钟偏斜,大大缩短DLL的锁定时间,接下来跳到步骤11。
步骤7,如果步骤6中相位比较FB_LEAD_IN无效,表示补偿的3QOC的延时量大于需要补偿DESKEW值,由于步骤3判断相位关系确定需要补偿的延时单元级数大于2QOC,所以这时可以确定DESKEW处于2QOC和3QOC之间,锁相控制器会决定重新插入2QOC个延时单元作为一级偏斜预补偿值,即相当于从已经插入的3QOC延时单元中减少QOC个延时单元。
步骤8,在加载2QOC之前需要对2QOC与Csync的大小关系进行比较,具体操作与步骤4相似,减少QOC处理和对DLL_CLK_SEL设置完成之后重新加载2QOC到计数器,这种情况下该方案一次性补偿2QOC的时钟延时量,接下来跳到步骤11;
步骤9,步骤3相位判定FB_LEAD_IN有效,表示输入时钟和反馈时钟需要补偿的偏斜值DESKEW处于0到2QOC之间,所以锁相控制器尝试作1倍QOC个延时单元的偏斜补偿,如果QOC可能大于可变延时单元级数Csync,这里需要频率检测决定是否借用移相延时链,在FPGA的DLL应用中可变延时链延时单元的级数通常大于QOC,这里不作频率检测,锁相控制器加载QOC值到计数器;
步骤10,加载QOC后对DLL进行锁相判定,如果DLL进入同步窗则锁定完成,跳到步骤12,否则判断相位关系,如果FB_LEAD_IN有效,即反馈时钟超前于输入时钟,表示需要补偿的时钟偏斜值DESKEW处于QOC和2QOC之间,DLL延时链接受补偿的QOC值,并且跳到步骤11,否则表示时钟偏斜值处于0到QOC之间,这种情况表明需要补偿的时钟偏斜较小不需要偏斜预加载,DLL重新加载0到计数器,跳转到步骤11。
步骤11,一级偏斜预补偿完成之后,DLL由内部计数器继续完成式(8)所示的剩余的偏斜补偿值的计数周期,直到完成锁定,由于周期预计算和偏斜预补偿已经完成了大部分延时,剩余的偏斜值小于输入时钟四分之一个时钟周期,所以本方案可以大大缩短FPGA内部DLL的锁定时间。
步骤12,输入时钟和反馈时钟进入同步窗,DLL完成锁定,DLL_LOCKED有效。
一种周期预计算和偏斜补偿控制电路,电路结构包括:QOC计算电路模块、左移器、加法器、四选一多路器、二选一多路器、偏斜范围预估电路、带置位的可逆计数器、鉴相器以及控制状态机逻辑。
有益效果:与现有技术相比,本发明针对FPGA芯片内部DLL去除时钟系统中的时钟偏斜所消耗的锁定时间长、已有DLL改进结构方案消耗资源大等问题,提出了一种基于周期预计算偏斜补偿的改进方法和电路。在原有的传统DLL锁定方法的基础上采用周期预计算与偏斜预处理技术对FPGA片内时钟偏斜进行两级处理,在保持系统稳定与不添加硬件开销的情况下,快速去除时钟偏斜实现锁定。本发明DLL结构在锁相过程中,由第一级数字逻辑根据移相延时链数字化的周期信息来计算和加载预处理偏斜值,在此基础上通过二级计数逼近处理完成时钟锁定。该方案能够有效缩短锁定时间,尤其适合低频、偏斜补偿需求大的场合,能够平衡DLL工作频率范围内的锁相时间,提高FPGA内部时钟管理性能。
附图说明
图1为传统的FPGA片内DLL电路示意图;
图2为基于周期预计算偏斜补偿的FPGA片内延迟锁定环的改进方法电路示意图;
图3为周期预计算偏斜补偿方案的锁相流程图;
图4为周期预计算与偏斜预补偿电路示意图;
图5为场景1.1的锁相时序示意图;
图6为场景1.2的锁相时序示意图;
图7为场景1.3的锁相时序示意图;
图8为场景2.1的锁相时序示意图;
图9为场景2.2的锁相时序示意图;
图10为本发明方案与原方案性能仿真图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
如图2-3所示,DLL内部基于周期预计算和偏斜补偿控制电路的锁相控制器,电路结构包括:QOC计算电路模块、左移器、加法器、四选一多路器、二选一多路器、偏斜范围预估电路、带置位的可逆计数器、鉴相器以及控制状态机逻辑;
QOC计算电路模块输入移相控制器提供的移相延时链接入地址,并且在状态机逻辑控制下由GET_QOC信号锁存和输出QOC计算结果;
左移器和加法器负责完成2QOC和3QOC的运算操作,其中左移器完成左移一位操作,即完成乘2运算,左移器输出为2QOC,加法器完成QOC加2QOC的运算,输出3QOC;
四选一多路器的输入为0、QOC、2QOC以及3QOC数据,由控制状态机逻辑产生选通信号QOC_SEL;
偏斜范围预估电路判断需要加载到带置位可逆计数器的NQOC值是否在锁相延时链的加载范围内,如果NQOC超出锁相延时链的加载范围,则通过产生NQOC_C、CHANGE_QOC和ADD_SFT_LINE信号对NQOC进行调节;
二选一多路器输出QOC_FINAL到带置位可逆计数器的置位端,如果NQOC在锁相延时链的加载范围内,偏斜预估电路输出的CHANGE_QOC无效,
QOC_FINAL等于NQOC,如果NQOC超出锁相延时链的加载范围,偏斜预估电路通过ADD_SFT_LINE信号来指示状态机控制逻辑借用移相延时链来辅助锁相,并且计算出借用移相延时链后新的NQOC值,即NQOC_C,同时输出的CHANGE_QOC有效使二选一多路器的输出QOC_FINAL选择NQOC_C;
鉴相器比较CLK_IN和CLK_FB的相位关系,输出超前/滞后信号FB_LEAD_IN到状态机控制逻辑;
控制状态机逻辑负责为各个模块产生控制信号,GET_QOC是QOC锁存信号,QOC_SEL表示在不同的场景下选择0、QOC、2QOC或3QOC到四选一多路器的输出端,产生NQOC信号,CNT_EN表示计数使能信号,CNT_UP等于1/0表示加/减计数,LOAD_QOC表示对计数器进行置位操作;
带置位可逆计数器在控制状态机的控制下进行置位操作或者加减计数操作。
实施例采用如图2所示的四级移相延时链,每条移相延时链包含128级延时单元,可变延时链包含256级延时单元,即满足式(9)所示,
Csft=128,Lsft=4,Csync=256 (9)
场景设置1:时钟周期对应于延时单元的级数CYCLE=200,延时单元延时tcell=100ps,则200个延时单元对应的时钟频率为50MHz,QOC=CYCLE/4=50,时钟偏斜SKEW分别设置为SKEW=40、90、190,对应的偏差补偿DESKEW分别等于160、110、10。
场景1.1:当SKEW=40时,需要DLL延时链补偿的延时级数DESKEW=CYCLE–SKEW=160,如图5所示,锁相步骤如下所述:
步骤1,GET_Q有效表示移相控制器锁存QOC值,本场景下QOC锁存等于50;
步骤2,FB_LEAD_IN等于0表示延时链需要补偿的延时链级数DESKEW在(2QOC,4QOC)之间,即DESKEW=160处于(100,200)的范围之间,延时链将要尝试插入3QOC=150的偏斜预补偿,可变延时链由256级延时单元组成,所以150级延时单元没有超过可变延时链级数范围,不需要借用移相延时链的延时单元,通过判断逻辑得到QOC_FINAL等于150;
步骤3,可变延时链插入150级延时单元到DLL,CNT_SYNC等于150,反馈时钟边沿后移150*100ps=15ns,即后移四分之三个时钟周期,若这时输入时钟和反馈时钟进入同步窗,则完成预加载和计数周期的操作,DLL微调后完成锁定;
步骤4,如果还未进入同步窗,则再次相位关系判定,FB_LEAD_IN有效表示DLL还需要接入延时单元完成同步,即延时链需要补偿的延时链级数DESKEW在(3QOC,4QOC)之间,即DESKEW=160处于(150,200)范围之间,剩下的偏斜补偿由计数器计数完成,实现原理与文献2(Goetting F E,Logue JD,Percey A K.Synchronized multi-output digital clock manager:U.S.Patent7,187,742[P].2007-3-6.)实现的原理相同,直至完成时钟同步,DLL_LOCKED有效,在这种场景下,由周期预计算和偏斜预补偿方案接入的延时单元级数等于150,计数器完成计数周期为10,实际花费的计数周期等于11,而传统的实现方案采用逐级计数方式需要花费160个计数周期,锁相时间大大减少。
场景1.2:当SKEW=90时,DESKEW=CYCLE–SKEW=110,如图6所示,锁相步骤如下所述:
步骤1-3,与场景1.1相同;
步骤4,FB_LEAD_IN无效表示DLL需要接入延时单元数量小于3QOC,所以延时链需要补偿的延时链级数DESKEW在(2QOC,3QOC)之间,即DESKEW=110处于(100,150)的范围之间,可变延时链重新加载2QOC个延时单元到计数器,此时CNT_SYNC等于100,反馈时钟边沿后移100*100ps=10ns,即与初始状态相比后移二分之一个时钟周期,剩下的偏斜补偿由计数器计数完成,直至完成时钟同步。在这种场景下,由周期预计算和偏斜预补偿方案接入的延时单元级数等于100,计数器完成计数周期为10,实际花费的计数周期等于12,而传统的实现方案采用逐级计数方式需要花费110个计数周期。
场景1.3:当SKEW=190时,DESKEW=CYCLE–SKEW=10,如图7所示,锁相步骤如下所述:
步骤1,GET_Q有效表示移相控制器锁存QOC值,本场景下QOC锁存等于50;
步骤2,与场景1.1和场景1.2不同,初次相位关系判定时FB_LEAD_IN等于1表示需要补偿的延时链级数DESKEW在(0,2QOC)之间,即DESKEW=10处于(0,100)的范围之间,延时链将要尝试插入QOC=50的偏斜预补偿,通过判断逻辑得到QOC_FINAL等于50;
步骤3,可变延时链插入50级延时单元到DLL,CNT_SYNC等于50,反馈时钟边沿后移50*100ps=5ns,即后移四分之一个时钟周期,若这时输入时钟和反馈时钟进入同步窗,则完成预加载和计数周期的操作,DLL微调后完成锁定;
步骤4,如果还未进入同步窗,则再次判定相位关系,FB_LEAD_IN等于0表示DLL需要接入延时单元数量小于QOC,所以延时链需要补偿的延时链级数DESKEW在(0,QOC)之间,即DESKEW=10处于(0,50)的范围之间,可变延时链重新加载0到计数器使得CNT_SYNC等于0,返回到初始状态,10个单位的补偿值全部由计数器计数完成,直至完成时钟同步。在这种场景下,周期预计算和偏斜预补偿方案不接入延时单元级数,虽然该场景下消耗的计数周期比原始DLL方案多,但由于该场景自身需要补偿的延时单元级数较少,计数周期较短,本方案可以接受这样的额外开销。
场景设置2:此场景需要借用移相延时链实现相位锁定,时钟周期对应延时单元的级数CYCLE=400,延时单元延时tcell=100ps,则400个延时单元对应的时钟频率为25MHz,QOC=100,时钟偏斜分别设置为SKEW=40和140。
场景2.1:当SKEW=40,DESKEW=CYCLE–SKEW=360,如图8所示,锁相步骤如下所述:
步骤1,GET_Q有效表示移相控制器锁存QOC值,本场景下QOC锁存等于100;
步骤2,FB_LEAD_IN等于0表示延时链需要补偿的延时链级数DESKEW在(2QOC,4QOC)之间,即DESKEW=260处于(200,400)的范围之间,延时链将要尝试插入3QOC=300的偏斜预补偿,可变延时链由256级延时单元组成,所以300级延时单元超过可变延时链级数范围,需要借用1条128级移相延时链,如图3所示,所以通过判断逻辑得到3QOC_FINAL=3QOC-128=172,DLL_CLK_SEL=1;
步骤3,可变延时链插入172级延时单元、移相延时链插入128级延时单元到反馈环路,CNT_SYNC等于172,反馈时钟边沿后移300*100ps=30ns,即后移四分之三个时钟周期;
步骤4,此时FB_LEAD_IN有效表示DLL还需要接入延时单元完成同步,即延时链需要补偿的延时链级数DESKEW在(3QOC,4QOC)之间,即DESKEW=360处于(300,400)的范围之间,剩下的偏斜补偿由计数器计数完成,直至完成时钟同步。在这种场景下,由周期预计算和偏斜预补偿方案接入的延时单元级数等于300,计数器完成计数周期为60,实际花费的计数周期等于61,而传统的实现方案采用逐级计数方式需要花费360个计数周期。
场景2.2:当SKEW=140,DESKEW=CYCLE–SKEW=260,如图9所示,锁相步骤如下所述:
步骤1-3与场景2.1相同;
步骤4,FB_LEAD_IN无效表示DLL需要接入延时单元数量小于3QOC,即延时链需要补偿的延时链级数DESKEW在(2QOC,3QOC)之间,即DESKEW=260处于(200,300)的范围之间,可变延时链重新加载2QOC到计数器,由于2QOC=200在可变延时链的调节范围之内,所以由可变延时链接入200个延时单元到DLL,不需要借用移相延时链,所以DLL_CLK_SEL等于0,此时CNT_SYNC等于200,反馈时钟边沿后移200*100ps=20ns,即与初始状态相比后移二分之一个时钟周期,剩下的偏斜补偿由计数器计数完成,直至完成时钟同步。需要注意的是由于需要补偿的延时单元级数大于256,所以最终还需要借用移相延时链的四个延时单元完成时钟同步。在这种场景下,由周期预计算和偏斜预补偿方案接入的延时单元级数等于200,计数器完成计数周期为60,实际花费的计数周期等于62,而传统的实现方案采用逐级计数方式需要花费260个计数周期。
在该实施例设置的同样实验场景下,原有FPGA内部DLL方案与本发明改进技术方案分别对时钟锁定时间进行了仿真比较。图10是两种方案在不同的时钟偏斜补偿需求和时钟周期下的锁定时间的性能比较,偏斜补偿需求用DESKEW来表示,时钟周期用CYCLE来表示,它们的单位用各自所对应延时单元级数来表示。
本发明的技术关键点
1、QOC周期预计算方法
采用该方法使DLL对输入时钟的周期进行数化,能够有针对性的对不同的输入时钟频率进行偏斜预补偿,而不是盲目的采用逐级延时链接入方法,从而使DLL在同步时钟过程中能够根据时钟周期信息有效的选择最佳的偏斜补偿方式,减少锁相时间,提高时钟同步的效率;
2、可重复加载的可逆计数器结构
该方法如2.2节所述,采用该结构能够以QOC为单位进行长延时的偏斜补偿尝试,使得大部分偏斜补偿值能够通过重复加载的方式一次性的获得,减少锁相过程中实际消耗的周期数,减少接入延时单元的时间;
3、根据相位关系预估偏斜范围方法
该方法如2.2节所述,采用该方法能够根据鉴相器的相位判定结果预估DLL时钟偏斜的范围,通过两级相位比较确定输入时钟和反馈时钟边沿的位置关系,指示DLL正确的进行偏斜补偿预加载;
4、基于周期预计算偏斜补偿的FPGA片内延时锁定环的改进方法
该方法包括2.2节所述的12个步骤、图3所示的流程图以及图4~图9所示的场景波形示意图。主要包括QOC周期预计算获取、延时链补偿范围判断、采用相位关系预估偏斜范围、基于周期的补偿方法4大部分。
Claims (2)
1.一种基于周期预计算偏斜补偿的FPGA片内延迟锁定环方法,其特征在于通过对时钟偏斜进行预处理来快速去除FPGA片内时钟偏斜,具体步骤如下:
步骤1,DLL通过移相控制器调节四条移相延时链产生正交的时钟信号;
步骤2,移相完成之后,DLL进入周期预计算和偏斜预处理流程,移相延时链接入DLL延时单元的数目由内部四个计数器确定,由于每条移相延时链结构相同,所以移相完成之后的四个计数值CNT_SFT相等,当需要更多的相移时钟时,可以设置多条结构相同的移相延时链,将移相延时链的条数用Lsft来表示,每条移相延时链内部延时单元级数用Csft来表示,移相锁定完成后移相延时链对应的计数器计数值用CNT_SFT来表示,所以由移相延时链计数器可以计算出输入时钟周期对应于延时单元的级数,这里用CYCLE来表示,QOC表示四分之一个时钟周期对应的延时单元的数量,其中QOC满足(2),
QOC计算电路可以根据DLL移相延时链的计数值计算出QOC、2QOC以及3QOC的数值;
步骤3,由于时钟具有周期性,超前滞后信号的判定都是在半个周期内进行的,FB_LEAD_IN表示反馈时钟CLK_FB的边沿超前于输入时钟CLK_IN,并且超前时间小于时钟周期的一半;FB_LEAD_IN的判断依据:选择最靠近CLK_FB上升沿的两个CLK_IN上升沿,CLK_FB的上升沿处于这两个CLK_IN上升沿之间,如果CLK_FB上升沿接近于它之前的CLK_IN上升沿,则表示反馈时滞后于输入时钟,此时FB_LEAD_IN无效,否则表示反馈时钟超前于输入时钟,FB_LEAD_IN有效;在计算完QOC之后,首先对输入时钟和反馈时钟的相位关系进行判断,如果FB_LEAD_IN有效则跳到步骤9;否则FB_LEAD_IN无效表示CLK_FB时钟的边沿滞后CLK_IN时钟,并且时钟沿相对差值在二分之一个时钟周期内;在这种情况下,锁相控制器可以确定输入时钟的时钟上升沿与反馈时钟的下一个上升沿之间的偏斜补偿值大于2QOC数量的延时单元对应的延时值,用DESKEW表示要补偿的延时值,其中DESKEW满足范围(2QOC,4QOC),锁相控制器尝试插入3QOC数量的延时单元到DLL;
步骤4,在插入3QOC数量的延时单元之前,需要对时钟频率进行判定,因为可变延时链的延时单元级数可能小于3QOC,即可能存在(3)所示的情况,其中用Csync表示可变延时链所有的延时单元级数,用NQOC信号表示选择器的输出,
NQOC >Csync (3)
如果不是(3)所示的情况则跳到步骤5,否则需要借用移相延时链的延时单元,并对NQOC进行调节,对延时链进行调节可以用(4)表示,其中CNT_SYNC表示借用M条移相延时链之后可变延时链补偿NQOC还需要接入延时单元的数量,
NQOC =CNT_SYNC +M×Csft (4)
由于CNT_SYNC满足(5),
0≤CNT_SYNC ≤Csync (5)
锁相控制器将会根据(6)设定M值,即产生反馈时钟选通器选择信号DLL_CLK_SEL,
由于借用了M条移相延时链,所以要调节补偿的NQOC值,新产生的NQOC用NQOC_C表示,有(7)所示的关系;
NQOC_C =NQOC -M×Csft (7)
步骤5,移相延时链和可变延时链采用相同的延时链结构,可以直接将QOC_FINAL直接加载到可变延时链对应的计数器;
步骤6,加载QOC_FINAL之后再对DLL进行锁相判定,如果DLL进入同步窗则锁定完成,跳到步骤12,否则对鉴相器的超前滞后信号进行判断,如果FB_LEAD_IN有效,表示补偿3QOC之后还未实现锁定,由于DESKEW小于CYCLE,即小于4QOC,所以还需要计数器逐次计数完成剩余的延时单元接入工作,剩余的偏差补偿量用DELTA_DESKEW来表示如(8)所示,
DELTA_DESKEW =DESKEW -3QOC <QOC (8)接下来跳到步骤11;
步骤7,如果步骤6中相位比较FB_LEAD_IN无效,表示补偿的3QOC的延时量大于需要补偿DESKEW值,由于步骤3判断相位关系确定需要补偿的延时单元级数大于2QOC,所以这时可以确定DESKEW处于2QOC和3QOC之间,锁相控制器会决定重新插入2QOC个延时单元作为一级偏斜预补偿值,即相当于从已经插入的3QOC延时单元中减少QOC个延时单元;
步骤8,在加载2QOC之前需要对2QOC与Csync的大小关系进行比较,具体操作与步骤4相似,减少QOC处理和对DLL_CLK_SEL设置完成之后重新加载2QOC到计数器,这种情况下该方案一次性补偿2QOC的时钟延时量,接下来跳到步骤11;
步骤9,步骤3相位判定FB_LEAD_IN有效,表示输入时钟和反馈时钟需要补偿的偏斜值DESKEW处于0到2QOC之间,所以锁相控制器尝试作1倍QOC个延时单元的偏斜补偿,如果QOC可能大于可变延时单元级数Csync,这里需要频率检测决定是否借用移相延时链,在FPGA的DLL应用中可变延时链延时单元的级数通常大于QOC,这里不作频率检测,锁相控制器加载QOC值到计数器;
步骤10,加载QOC后对DLL进行锁相判定,如果DLL进入同步窗则锁定完成,跳到步骤12,否则判断相位关系,如果FB_LEAD_IN有效,即反馈时钟超前于输入时钟,表示需要补偿的时钟偏斜值DESKEW处于QOC和2QOC之间,DLL延时链接受补偿的QOC值,并且跳到步骤11,否则表示时钟偏斜值处于0到QOC之间,这种情况表明需要补偿的时钟偏斜较小不需要偏斜预加载,DLL重新加载0到计数器,跳转到步骤11;
步骤11,一级偏斜预补偿完成之后,DLL由内部计数器继续完成式(8)所示的剩余的偏斜补偿值的计数周期,直到完成锁定。
步骤12,输入时钟和反馈时钟进入同步窗,DLL完成锁定,DLL_LOCKED有效。
2.一种周期预计算和偏斜补偿控制电路,其特征在于,包括锁相控制器;所述锁相控制器电路结构包括:QOC计算电路模块、左移器、加法器、四选一多路器、二选一多路器、偏斜范围预估电路、带置位的可逆计数器、鉴相器以及控制状态机逻辑;
在进行周期预计算和偏斜补偿之前,移相控制器通过逐级接入延时单元的方式产生移相延时链的接入地址;
QOC计算电路模块输入FPGA片内DLL电路的移相控制器提供的移相延时链接入地址,并且在状态机逻辑控制下由GET_QOC信号锁存和输出QOC计算结果;
左移器和加法器负责完成2QOC和3QOC的运算操作,其中左移器完成左移一位操作,即完成乘2运算,左移器输出为2QOC,加法器完成QOC加2QOC的运算,输出3QOC;
四选一多路器的输入为0、QOC、2QOC以及3QOC数据,由控制状态机逻辑产生选通信号QOC_SEL;
偏斜范围预估电路判断需要加载到带置位可逆计数器的NQOC值是否在锁相延时链的加载范围内,如果NQOC超出锁相延时链的加载范围,则通过产生NQOC_C、CHANGE_QOC和ADD_SFT_LINE信号对NQOC进行调节;
二选一多路器输出QOC_FINAL到带置位可逆计数器的置位端,如果NQOC在锁相延时链的加载范围内,偏斜预估电路输出的CHANGE_QOC无效,QOC_FINAL等于NQOC,如果NQOC超出锁相延时链的加载范围,偏斜预估电路通过ADD_SFT_LINE信号来指示状态机控制逻辑借用移相延时链来辅助锁相,并且计算出借用移相延时链后新的NQOC值,即NQOC_C,同时输出的CHANGE_QOC有效使二选一多路器的输出QOC_FINAL选择NQOC_C;
鉴相器比较CLK_IN和CLK_FB的相位关系,输出超前/滞后信号FB_LEAD_IN到状态机控制逻辑;
控制状态机逻辑负责为各个模块产生控制信号,GET_QOC是QOC锁存信号,QOC_SEL表示在不同的场景下选择0、QOC、2QOC或3QOC到四选一多路器的输出端,产生NQOC信号,CNT_EN表示计数使能信号,CNT_UP等于1/0表示加/减计数,LOAD_QOC表示对计数器进行置位操作;
带置位可逆计数器在控制状态机的控制下进行置位操作或者加减计数操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410110889.9A CN103905038B (zh) | 2014-03-24 | 2014-03-24 | 周期预计算偏斜补偿电路及其fpga片内延迟锁定环方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410110889.9A CN103905038B (zh) | 2014-03-24 | 2014-03-24 | 周期预计算偏斜补偿电路及其fpga片内延迟锁定环方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103905038A true CN103905038A (zh) | 2014-07-02 |
CN103905038B CN103905038B (zh) | 2017-01-25 |
Family
ID=50996214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410110889.9A Expired - Fee Related CN103905038B (zh) | 2014-03-24 | 2014-03-24 | 周期预计算偏斜补偿电路及其fpga片内延迟锁定环方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103905038B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536924A (zh) * | 2014-12-11 | 2015-04-22 | 中国人民解放军国防科学技术大学 | 面向板级高速传输总线的多通道延迟斜偏纠正方法及装置 |
CN106817123A (zh) * | 2015-11-27 | 2017-06-09 | 上海贝岭股份有限公司 | 基于数字延时的相位补偿装置 |
CN107528584A (zh) * | 2017-07-19 | 2017-12-29 | 成都华微电子科技有限公司 | 复用延迟线的高精度数字延时锁相环 |
CN107612651A (zh) * | 2017-09-29 | 2018-01-19 | 北京无线电测量研究所 | 一种同步信号调整方法和系统 |
CN108011621A (zh) * | 2017-12-01 | 2018-05-08 | 深圳先进技术研究院 | 一种可编程的延时触发脉冲同步装置 |
CN108111224A (zh) * | 2017-12-05 | 2018-06-01 | 艾乐德电子(南京)有限公司 | 一种异步光纤通信方法、装置及网络 |
CN108494396A (zh) * | 2018-04-09 | 2018-09-04 | 哈尔滨工业大学(威海) | 相位同步装置和方法 |
CN109428661A (zh) * | 2017-08-21 | 2019-03-05 | 中兴通讯股份有限公司 | 一种基于fpga的主备时钟相位对齐装置及方法 |
CN109830252A (zh) * | 2018-12-29 | 2019-05-31 | 灿芯半导体(上海)有限公司 | 实现时钟周期的数字电路及实现四分之一时钟周期的方法 |
CN111124982A (zh) * | 2019-12-17 | 2020-05-08 | 中国电子科技集团公司第五十八研究所 | 一种异步时钟数据同步电路 |
CN112910459A (zh) * | 2021-01-29 | 2021-06-04 | 华中科技大学 | 一种用于产生四相延时信号的方法及dll电路 |
CN113886300A (zh) * | 2021-09-23 | 2022-01-04 | 珠海一微半导体股份有限公司 | 一种总线接口的时钟数据自适应恢复系统及芯片 |
CN116318124A (zh) * | 2023-03-30 | 2023-06-23 | 浙江力积存储科技有限公司 | 一种延迟锁相环和延迟锁相环的锁定方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5744991A (en) * | 1995-10-16 | 1998-04-28 | Altera Corporation | System for distributing clocks using a delay lock loop in a programmable logic circuit |
US6836168B1 (en) * | 2002-10-02 | 2004-12-28 | Xilinx, Inc. | Line driver with programmable slew rates |
US6825690B1 (en) * | 2003-05-28 | 2004-11-30 | Actel Corporation | Clock tree network in a field programmable gate array |
US7456672B1 (en) * | 2006-09-11 | 2008-11-25 | Lattice Semiconductor Corporation | Clock systems and methods |
-
2014
- 2014-03-24 CN CN201410110889.9A patent/CN103905038B/zh not_active Expired - Fee Related
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536924B (zh) * | 2014-12-11 | 2017-08-04 | 中国人民解放军国防科学技术大学 | 面向板级高速传输总线的多通道延迟斜偏纠正方法及装置 |
CN104536924A (zh) * | 2014-12-11 | 2015-04-22 | 中国人民解放军国防科学技术大学 | 面向板级高速传输总线的多通道延迟斜偏纠正方法及装置 |
CN106817123A (zh) * | 2015-11-27 | 2017-06-09 | 上海贝岭股份有限公司 | 基于数字延时的相位补偿装置 |
CN106817123B (zh) * | 2015-11-27 | 2021-12-17 | 上海贝岭股份有限公司 | 基于数字延时的相位补偿装置 |
CN107528584A (zh) * | 2017-07-19 | 2017-12-29 | 成都华微电子科技有限公司 | 复用延迟线的高精度数字延时锁相环 |
CN109428661A (zh) * | 2017-08-21 | 2019-03-05 | 中兴通讯股份有限公司 | 一种基于fpga的主备时钟相位对齐装置及方法 |
CN107612651A (zh) * | 2017-09-29 | 2018-01-19 | 北京无线电测量研究所 | 一种同步信号调整方法和系统 |
CN108011621A (zh) * | 2017-12-01 | 2018-05-08 | 深圳先进技术研究院 | 一种可编程的延时触发脉冲同步装置 |
CN108111224A (zh) * | 2017-12-05 | 2018-06-01 | 艾乐德电子(南京)有限公司 | 一种异步光纤通信方法、装置及网络 |
CN108494396A (zh) * | 2018-04-09 | 2018-09-04 | 哈尔滨工业大学(威海) | 相位同步装置和方法 |
CN109830252A (zh) * | 2018-12-29 | 2019-05-31 | 灿芯半导体(上海)有限公司 | 实现时钟周期的数字电路及实现四分之一时钟周期的方法 |
CN109830252B (zh) * | 2018-12-29 | 2024-03-22 | 灿芯半导体(上海)股份有限公司 | 实现时钟周期的数字电路及实现四分之一时钟周期的方法 |
CN111124982A (zh) * | 2019-12-17 | 2020-05-08 | 中国电子科技集团公司第五十八研究所 | 一种异步时钟数据同步电路 |
CN111124982B (zh) * | 2019-12-17 | 2021-07-06 | 中国电子科技集团公司第五十八研究所 | 一种异步时钟数据同步电路 |
CN112910459A (zh) * | 2021-01-29 | 2021-06-04 | 华中科技大学 | 一种用于产生四相延时信号的方法及dll电路 |
CN113886300A (zh) * | 2021-09-23 | 2022-01-04 | 珠海一微半导体股份有限公司 | 一种总线接口的时钟数据自适应恢复系统及芯片 |
CN113886300B (zh) * | 2021-09-23 | 2024-05-03 | 珠海一微半导体股份有限公司 | 一种总线接口的时钟数据自适应恢复系统及芯片 |
CN116318124A (zh) * | 2023-03-30 | 2023-06-23 | 浙江力积存储科技有限公司 | 一种延迟锁相环和延迟锁相环的锁定方法 |
CN116318124B (zh) * | 2023-03-30 | 2024-04-09 | 浙江力积存储科技有限公司 | 一种延迟锁相环和延迟锁相环的锁定方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103905038B (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103905038A (zh) | 周期预计算偏斜补偿电路及其fpga片内延迟锁定环方法 | |
US6731667B1 (en) | Zero-delay buffer circuit for a spread spectrum clock system and method therefor | |
US7295049B1 (en) | Method and circuit for rapid alignment of signals | |
US7046060B1 (en) | Method and apparatus compensating for frequency drift in a delay locked loop | |
US7378893B1 (en) | Circuit and method for digital delay and circuits incorporating the same | |
CN102594341B (zh) | 数字相位频率检测器、数字锁相环及其检测方法 | |
CN1622466B (zh) | 具有锁相检测功能的锁相环电路及其检测锁相的方法 | |
CN103441757B (zh) | 多相位延迟锁相环及其控制方法 | |
US8942333B2 (en) | Apparatus and methods for clock alignment for high speed interfaces | |
EP3170262B1 (en) | Clock synchronization | |
US7323915B2 (en) | Delay locked loop with selectable delay | |
US7453297B1 (en) | Method of and circuit for deskewing clock signals in an integrated circuit | |
CN101419483B (zh) | 基于锁相环的时钟发生器及时钟发生方法 | |
CN103840830A (zh) | 时间数字转换器及数字锁相环 | |
CN103560786B (zh) | 一种全数字逐次逼近寄存器式快速锁定延时锁定环 | |
US20090153205A1 (en) | Methods, devices, and systems for a delay locked loop having a frequency divided feedback clock | |
CN100486114C (zh) | 数字忙闲度校正器及其方法 | |
CN101789784A (zh) | 用于延时锁定环的可配置鉴相器 | |
CN111492584B (zh) | 用于提供分频时钟的设备及方法 | |
CN103427798B (zh) | 一种多相位时钟产生电路 | |
CN106209075A (zh) | 数字延迟单元与信号延迟电路 | |
US6956415B2 (en) | Modular DLL architecture for generating multiple timings | |
CN107528584A (zh) | 复用延迟线的高精度数字延时锁相环 | |
CN108768387B (zh) | 一种快速锁定的延时锁定环 | |
CN103607199A (zh) | 快速全数字逐次逼近寄存器延时锁定环 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170125 Termination date: 20200324 |
|
CF01 | Termination of patent right due to non-payment of annual fee |