APP下载

FPGA内嵌数字可编程延迟锁定环设计技术研究

2018-09-10

微处理机 2018年4期
关键词:鉴相器移相器倍频

(中国电子科技集团公司第四十七研究所,沈阳110032)

1 引言

随着FPGA规模的增大和芯片尺寸的增加,芯片上时钟的分布质量就变得越来越重要。时钟相位差和时钟延迟严重影响系统的性能,尤其在复杂的大规模系统中,用传统的时钟网络控制时钟相位差和时钟延迟变得十分困难[1]。FPGA内嵌DLL可以解决这个问题,同时用户还可通过编程来灵活选择不同个数的DLL[2]。DLL是FPGA中的一种很有用的资源,尤其在较高频率下应用极广。利用它可以对时钟进行倍频、锁相等操作。

DLL的工作原理如图1所示:在输入时钟和反馈时钟中插入延迟,直到两个时钟上升沿相同,即同步[3]。当输入时钟和反馈时钟的边沿处在一条直线上,DLL锁存。电路直到DLL锁存之后才开始初始,所以两个时钟无区别。DLL的输出时钟补偿了时钟信号在网络的分布延迟,有效消除了源时钟和负载之间的延迟[4]。延迟线可以通过电压控制的延迟或一系列离散延迟成分来建立。

2 可编程DLL电路结构

所设计的DLL结构如图2所示。图中,输入时钟CLK_IN经可变延迟线0后输出为CLK_D,CLK_D输入一个由N级可变延迟线组成的移相器。移相器产生该输入时钟的N个相位输出,分别是CLK_1,CLK_2…CLK_N,它们与CLK_D的相位差分别是 2π/i,i=1,2,…N,也即是这些相位时钟的边沿(默认指上升沿)与CLK_D上升沿之间的时间差是T/i,i=1,2,…N。最后这N个相位时钟当中的一个由数据选择器输出,并最终形成CLK_O。CLK_O经时钟网络的延迟后形成CLK_FB,这个信号即是送入各逻辑中的时钟信号,同时将该信号反馈回鉴相器1,与原始输入时钟信号CLK_IN作鉴相。

图1 DLL实现原理图

图2 设计中的DLL结构图

图中N个相位时钟的形成和最终的CLK_FB、CLK_IN的相位对齐,都是由鉴相器的输出进行控制的。鉴相器2将CLK_D与CLK_N作鉴相,当两者相位不一致时,改变下面N级延迟线的数目,直至两者边沿对齐为止。因为改变这N级延迟的数目接近一致,所以使得每一级延迟线产生的延迟近似相等,并最终形成N个相位。

CLK_FB与CLK_IN边沿的对齐过程与此相同,只要两者的相位不一致,即改变可变延迟线0单元的延迟,进而使最终得到的CLK_FB与CLK_IN的边沿对齐。此时CLK_FB与CLK_IN之间的延时差为输入时钟周期的整数倍,即DLL锁定。

在实际上,因为制造工艺的影响和环境的波动,可变延迟线中的单个延迟单元延迟的时间长短以及时钟网络的延迟会存在差异,所以DLL锁定时所需延迟单元的数目有所不同,这使得所设计的延迟单元的数目应留有一定的裕度,保证它在存在种种偏差的影响时,DLL仍能锁定。

另一个需要在设计中考虑的问题是一级可变延迟线中延迟单元数目的大小。因为DLL具有很宽的使用频率范围,当其在中高频使用时,DLL可能会很快锁定,并且每一级延迟线中所有延迟单元的数目会很少;但在较低频率使用时,DLL的锁定时间会很长,并且需要很大数目的延迟单元。这就产生了一个矛盾,为了低频使用需用很大数目的延迟线,但这些延迟线中的很多单元在中高频使用时又被闲置,浪费了大量的面积。

对此可采取一些经验策略来进行调整:延迟线中延迟单元的数目不宜太多,只要能满足大多数的中高频使用即可;当在低频范围内使用时,可以选择上述方式,令N个相位中的一个加上前面的可变延迟线0单元的延迟输出,最终形成CLK_FB。这实质上是借用了后部移相器中的可变延迟线产生的延迟。

ASIC内嵌的DLL电路所具有的功能通常会满足ASIC的各种具体需求,如消除时钟延迟或实现固定的分频及倍频功能。而FPGA是一种用户可编程器件,不同的用户有不同的使用。因此FPGA内嵌的DLL不仅仅只满足某个用户具体的需求,其功能也要能够按照不同的用户需求而变化[5]。设计FPGA内嵌DLL单元具有灵活的可编程特性,具有DLL的所有应用模式。图2中的“可编程控制接口”和“编程控制逻辑”就是为了方便用户对DLL进行编程所设。通过编程,FPGA内嵌DLL能够灵活地实现如下功能:

(1)一倍频时钟输出,可输出 0°、90°、180°、270°四个相移时钟;

(2)N分频输出,这里N可以是1.5、2、2.5、3、4、5、8、16;

(3)两倍频时钟输出;

(4)多个DLL级联实现更多的分频和倍频;

(5)内嵌DLL既可消除片内时钟延迟,也可以作为多个器件的板级时钟镜像来用。

3 DLL各功能单元设计

3.1 可变延迟线

采用一个离散的数字延迟线[6],利于工艺集成,可通过编程来选择不同精度的延迟单元。可变延迟线电路图如图3所示。

图3 可变延迟线电路图

可变延迟线由延迟单元组成,多个延迟单元的输出由SEL信号控制选择。单元的输出接一个微调电路,一个输入经微调单元中的不同路径到达输出端的延时略有差异,其偏差应当小于前面一个延迟单元所产生的延时,最后同样用一个多路选择器选择这些路径中的一条输出。

延迟单元可由最基础的两个基本反相器构成,也可以用差分输入的反相器构成,后者可以抑制噪声,但需用更大的面积和更复杂的设计。图4是设计所采用的延迟单元电路。

图4 可变延迟单元电路图

3.2 鉴相器与移相器

鉴相器是锁相环的基本部件之一,是使输出电压与两个输入信号之间的相位差保持确定关系的电路,也用于调频和调相信号的解调。DLL中的鉴相器又称为相位比较器,它的作用是检测输入信号自检的相位差,并将检测出的相位差信号转换成uD(t)电压信号输出,该信号经低通滤波器滤波后形成压控振荡器的控制电压uC(t),对振荡器输出信号的频率实施控制。

鉴相器用来判断输入信号CLK_IN与参考信号CLK_REF之间的相位关系。CLK_REF上升沿与相邻的下一个CLK_IN上升沿之间的时间差小于半个时钟周期或者CLK_IN上升沿与下一个相邻的CLK_REF的上升沿之间相差超过半个时钟周期则称CLK_IN相位滞后于CLK_REF,反之则称CLK_IN相位超前于CLK_REF。

移相器中的可变延迟线电路及形成各个相位的工作过程如前文所述。本设计中N=4,即产生4个相位,分别是CK0,CK90,CK180,CK270。

3.3 可编程控制器

DLL中的可编程控制器的输入来自于可编程控制接口,其输出控制其它所有模块[7]。控制过程如图5所示:在芯片上电复位后,进入复位状态,下一步是利用移相器形成4个相位的信号,随后单元可变延迟线0的数目N0开始变化,其值进入一个事先所设定的一个范围之内,这个范围称之为锁定窗(Locked window),值在[Wmin,Wmax]之间。设置这样一个范围的原因如前文所述是为了防止工艺和环境的不稳定对DLL造成影响[8]。

图5 DLL控制过程

N0只要是锁定窗范围内的任意数值,且同时满足CLK_IN与CLK_FB对齐,则DLL进入锁定状态。如果N0遍历该范围内的所有值仍不能使DLL锁定,则可以利用数据选择器选择下一个相位状态(默认的起始相位是CK0)CK90作为输出。同样,检查锁定窗范围内的N0是否能让DLL锁定。如果还不符合,则依次选CK180,CK270输出,直至最终DLL锁定为止。只要DLL达成锁定,就会维持在该状态,除非手动复位或是输入信号的周期抖动大于一定的值,方可令DLL复位,重新进行锁定。

3.4 输出占空比调整

有些情况下输入信号CLK_IN的占空比不是50%,但在很多应用中又要求使用50%占空的时钟信号。另外一些情况下还会用到输入信号的倍频信号。这时就需要引入占空比调整电路来满足要求。

占空比调整电路由图6所示,用户可根据自己的设计需求,来决定是否对时钟进行占空比的调整。当不需做占空比调整时CK_A与CK_B互反;当要进行占空比调整时,CK_A与CK_B相位差180°。当CLK_A由低变高时,其与本身信号经一段延迟后的反相值求与非,会产生一个很短宽度(宽度大小约为延迟单元的延迟)的低脉冲,传向后一级的RS锁存器,使锁存器的输出发生翻转。

图6 占空比调整电路

在其余的时刻,输入锁存器的值为高,锁存器的值维持不变。当CLK_B的相位与CLK_A位差180°时,下面的一个支路会在上一支路产生低脉冲之后半个周期内同样产生一个低脉冲的信号,从而使锁存器状态翻转。这样,锁存器会在t=0和t=T/2处发生翻转,从而实现了占空比的调整。

3.5 输出信号倍频

倍频信号的电路如图7所示,其电路结构与图6类似,只是最后一级的锁存器由两个三输入的与非门构成。按照之前分析,输出信号CLK_2X会在t=0,T/4,T/2,3T/4 处发生翻转,也即是在一个周期内发生了4次翻转,而原始输入信号只在一个周期内发生2次翻转,这样得到了一个2倍频信号。通过可编程控制,理论上只要输入2N个不同相位的信号,即可得到N倍频的输出。

图7 倍频电路

4 仿真结果

DLL仿真结果如图8所示,仿真所采用的是0.22μm的库。仿真中,输入的CLK_IN为200MHz。

如图9所示是DLL的版图及在整个FPGA芯片中的位置,设计的FPGA共嵌入了4个DLL。DLL的版图面积是 350μm×275μm。

图8 仿真结果

图9 版图照片

5 结束语

设计的全数字延迟锁定环,可快速方便地同步片内片外时钟信号,得到多个不同相位的信号输出以及倍频信号,同时还能对输出信号的占空比作出调整。同样,DLL也可以用于将芯片内部的某个信号同步传送到芯片另外一部分的输入端上,或是用作时钟镜像,通过将DLL的输出信号传出到片外,再输入回芯片,这样DLL就可用来消除多个器件间的板级时钟的边沿差异。通过此法消除片上时钟的时延,设计人员可以大大简化具有高扇出和高性能时钟的系统级设计,提高工作效率。所设计的一款多功能可编程通用DLL,涵盖了DLL的所有应用模式,适于嵌入FPGA芯片中,通过对其编程,可满足FPGA在不同场合下不同用户对DLL的功能需求。

猜你喜欢

鉴相器移相器倍频
基于周期性极化钽酸锂晶体的连续激光倍频技术研究
某引进雷达超宽带数字移相器测试方法研究
基于发射极耦合逻辑结构的低相噪鉴频鉴相器设计
光量子芯片中级联移相器的快速标定方法*
菲佐干涉仪移相器的结构优化设计
基于微波倍频源太赫兹频段雷达散射截面测量
基于MCML的鉴相器设计
短波发射机自动调谐的闭环控制系统
高功率铁氧体移相器的设计与实验研究
脉冲单频Nd∶YVO4激光器及其倍频输出特性研究