一种基于FPGA进位链的Vernier型TDC电路的制作方法

文档序号:13574517阅读:5005来源:国知局
一种基于FPGA进位链的Vernier型TDC电路的制作方法

本发明属于时间量的数字化测量技术领域,特别是一种基于fpga进位链的vernier型tdc电路。



背景技术:

高精度数字时间转换器(tdc)最早是从高能粒子测量领域发展而来,目前已经扩展到很多其他重要的应用领域,如核医学成像、雷达、符合系统、全数字化相位锁相环和激光测距等。它的基本任务是测量两个时间上具有先后达到顺序的电脉冲信号之间的时间间隔。从实现原理上看,目前主流的方法包括:vernier延迟线方案和抽头延迟线方案。其中vernier延迟线方案包含两条延迟线,每条延迟线由若干延迟单元级联组成。隶属于不同延迟线的延迟单元的延迟量具有微小差异,该差异值决定了vernier延迟线方案的分辨率,能够实现小于门延迟的测量精度。抽头延迟线方案则只使用一条延迟线,它也是由若干延迟单元级联组成的,通过将这些延迟单元的状态引出来(被称为抽头)并确定信号在其中的传输状态,可以实现时间测量的功能,其测量精度受限于延迟单元的延迟量,因而其测量精度不能小于门延迟。目前以上两种方案都获得了广泛的应用。

无论采用以上哪种实现方案,非线性误差都是影响测量精度的一个重要因素。这种非线性可以用微分非线性(dnl)和积分非线性(inl)来表示。微分非线性被定义为实际延迟单元的延迟宽度与理想延迟宽度的差,一般用理想延迟宽度(1个lsb)为单位表示。积分非线性被定义为从第一个延迟单元到所在测量节点的延迟单元的微分非线性的和,即所在测量节点的读数值与理想值之间的差,一般也用lsb为单位表示。造成dnl和inl的根本原因在于延迟线中延迟单元的延迟量分布不均匀,其具体数值取决于制作过程中的环境因素以及工作时候的电压,温度等外界因素(被统称为pvt),而这些因素都是不可控的,因此非线性误差是不可避免的,只能被尽可能地减小。

从实现平台上区分,tdc的载体包括asic(applicationspecificintegratedcircuit)专用芯片和fpga(fieldprogrammablegatearray)可编程逻辑器件两类。基于asic实现的tdc实现方法较为灵活,例如为了减小pvt的影响,延迟单元的延迟量可以受延迟锁相环(dll)的延迟电压反馈控制,能够获得较低的非线性误差,目前的技术可以把dnl控制在±10%lsb之内。但是asic的开发周期长、成本高,不适合应用在小产量和需要经常性系统改动的场合。而fpga技术由于其可重构特性,降低了硬件开发的难度并提高了产品面向市场的速度,可以显著节约研发成本。进位链(carrychain)是fpga中为了实现快速的加法、比较等功能运算而特别制作的,其延迟单元的延迟量非常小,因而被认为是实现tdc功能的最佳片内资源。目前大部分基于fpga的tdc技术都是基于进位链并采用抽头延迟线的方案实现的,抽头功能可以由延迟单元后面接一个d触发器并通过采样该延时单元的状态来实现,然而该方案的非线性性能较差,dnl一般在±1lsb的水平,有的甚至到几个lsb。造成该现象的原因除了上面分析的由于延迟单元的延迟量分布不均匀外,还包含d触发器所需的采样时钟在fpga的时钟网络中的到达延迟的分布不均匀性,这类非均匀性同样也是不可控的。不均匀性的程度随着延迟线长度的增加而加剧,限制了此类tdc测量时间的动态范围,使得tdc测量精度和测量范围的确定成为矛盾体,例如短的延迟线易于实现较高的测量精度,但是其测量范围却较小,反之亦然。



技术实现要素:

本发明的目的在于提供一种非线性误差小、测量精度高的基于fpga进位链的vernier型tdc电路。

实现本发明目的的技术解决方案为:一种基于fpga进位链的vernier型tdc电路,包括粗计数单元、单步vernier细计数单元、时钟抽取单元和时间戳组合单元,其中:

所述粗计数单元用于产生时间戳结果中的粗计数部分;

所述单步vernier细计数单元用于测量被测信号和粗计数时钟信号之间的时间间隔,产生时间戳结果中的细计数部分;

所述时钟抽取单元用于寻找和搜索出现于被测信号后且距离被测信号最近的粗时钟信号,并将分别经过不同延迟的被测信号和粗计数时钟信号馈入到单步vernier细计数单元;

所述时间戳组合单元用于同步粗计数部分和细计数部分,组合输出完整的时间戳结果。

进一步地,所述粗计数单元包括级联的第一级粗计数器和第二级粗计数器,该两个粗计数器的数值被一起送入时间戳组合单元作为粗时间计数的结果。

进一步地,所述单步vernier细计数单元包括一条慢延迟线、一条快延迟线、一个鉴相器、一个细计数器和四个脉冲整形模块,其中:

所述慢延迟线和快延迟线分别由进位链的延迟单元级联组成,其中慢延迟线中传递被测信号,快延迟线中传递粗计数时钟信号,每条延迟线的输出端被回接到该条延迟线的输入端形成振荡环路,其中对应慢延迟线的环路包括2个等效的延迟单元,对应快延迟线的环路包括1个等效的延迟单元;

所述慢延迟线输出端连接细计数器的时钟端口,触发细计数器记录信号在振荡环中循环的次数,细计数器的结果被送入时间戳组合单元作为细计数的结果;

所述鉴相器的数据端口连接慢延迟线的等效延迟单元的输出端,时钟端口连接快延迟线的等效延迟单元的输出端,输出端口连接细计数器的使能端口;鉴相器用来判断领先信号即被测信号和落后信号即粗计数器的时钟信号的相对时间关系,并控制细计数器的使能端口;

所述慢延迟线和快延迟线的输入端、输出端分别设置一个脉冲整形模块,脉冲整形模块的作用是控制振荡环路中传播信号的高电平持续时间,使细计数测量范围能够覆盖粗计数时钟周期。

进一步地,所述时钟抽取单元采用双级d触发器采样,使用粗计数器的时钟信号对被测信号进行采样,第二级d触发器的输出端被同步到被测信号后面距离该被测信号最近的时钟信号上,对被测信号加入具有延迟量τcom的延迟缓冲器以抵消被抽取的粗计数时钟信号中额外引入的延迟量。

进一步地,所述脉冲整形模块包括一个d触发器和一系列延迟缓冲器,d触发器的数据端口连接固定高电平、时钟端口连接待整形的信号、输出端口连接延迟缓冲器的输入端,延迟缓冲器经过总量为高电平持续时间tp的延迟后,接入d触发器的清空端口。

本发明与现有技术相比,其显著优点为:(1)时间编码单元功能简单,其时间戳结果直接由计数器输出,避免了常规tdc结构中需要使用的独热码到二进制码的编码单元,降低实现复杂度和资源开销;(2)由于细计数部分采用了环形的vernier延迟线结构,极大降低非线性误差dnl和inl,因而其线性稳定性能显著优于常规的tdc结构,且显著提高了tdc的测量精度。

附图说明

图1为本发明基于fpga延迟链的单步vernier型tdc的结构示意图。

图2为本发明单步vernier细计数单元的电路结构图,其中(a)为传统结构的vernier型延迟线电路结构图,(b)为本实施例中本发明中采用的vernier型延迟线电路结构图。

图3为本发明实施例中脉冲整形模块的电路结构图。

图4为本发明实施例中单步vernier延迟环路的方案设计示意图。

图5为本发明实施例中时钟抽取单元的电路结构图。

图6为本发明实施例中测量得到的非线性误差曲线图,其中(a)为非线性误差dnl曲线图,(b)为非线性误差inl曲线图。

具体实施方式

本发明技术提出了一种新型的基于fpga延迟链的单步vernier延迟线结构,粗计数部分采用级联的双计数器能够提高粗计数时钟频率,目的是减小细计数测量过程中需要覆盖的测量范围,提高测量准确度。细计数部分采用了分别只有2个延迟单元和1个延迟单元的慢、快延迟线环路结构,每次振荡过程中的延迟量差值是恒定值,从根本上克服延迟单元不均匀性带来的线性误差较大的问题。

结合图1,本发明基于fpga进位链的vernier型tdc电路,包括粗计数单元、单步vernier细计数单元、时钟抽取单元和时间戳组合单元,其中:

(1)所述粗计数单元用于产生时间戳结果中的粗计数部分;所述粗计数单元包括级联的第一级粗计数器和第二级粗计数器,该两个粗计数器的数值被一起送入时间戳组合单元作为粗时间计数的结果。

(2)所述单步vernier细计数单元用于测量被测信号和粗计数时钟信号之间的时间间隔,产生时间戳结果中的细计数部分;所述单步vernier细计数单元包括一条慢延迟线、一条快延迟线、一个鉴相器、一个细计数器和四个脉冲整形模块,其中:所述慢延迟线和快延迟线分别由进位链的延迟单元级联组成,其中慢延迟线中传递被测信号,快延迟线中传递粗计数时钟信号,每条延迟线的输出端被回接到该条延迟线的输入端形成振荡环路,其中对应慢延迟线的环路包括2个等效的延迟单元,对应快延迟线的环路包括1个等效的延迟单元;所述慢延迟线输出端连接细计数器的时钟端口,触发细计数器记录信号在振荡环中循环的次数,细计数器的结果被送入时间戳组合单元作为细计数的结果;所述鉴相器的数据端口连接慢延迟线的等效延迟单元的输出端,时钟端口连接快延迟线的等效延迟单元的输出端,输出端口连接细计数器的使能端口;鉴相器用来判断领先信号即被测信号和落后信号即粗计数器的时钟信号的相对时间关系,并控制细计数器的使能端口;所述慢延迟线和快延迟线的输入端、输出端分别设置一个脉冲整形模块,脉冲整形模块的作用是控制振荡环路中传播信号的高电平持续时间,使细计数测量范围能够覆盖粗计数时钟周期。所述脉冲整形模块包括一个d触发器和一系列延迟缓冲器,d触发器的数据端口连接固定高电平、时钟端口连接待整形的信号、输出端口连接延迟缓冲器的输入端,延迟缓冲器经过总量为高电平持续时间tp的延迟后,接入d触发器的清空端口。

(3)所述时钟抽取单元用于寻找和搜索出现于被测信号后且距离被测信号最近的粗时钟信号,并将分别经过不同延迟的被测信号和粗计数时钟信号馈入到单步vernier细计数单元;所述时钟抽取单元采用双级d触发器采样,使用粗计数器的时钟信号对被测信号进行采样,第二级d触发器的输出端被同步到被测信号后面距离该被测信号最近的时钟信号上,对被测信号加入具有延迟量τcom的延迟缓冲器以抵消被抽取的粗计数时钟信号中额外引入的延迟量。

(4)所述时间戳组合单元用于同步粗计数部分和细计数部分,组合输出完整的时间戳结果。

下面结合附图及具体实施例对本发明作进一步详细说明。

实施例1

结合图1,本发明基于fpga延迟链的单步vernier型tdc电路,包括粗计数单元、单步vernier细计数单元、时钟抽取单元和时间戳组合单元,其中粗计数单元采用两个级联的计数器以提高粗计数的时钟频率。两个粗计数器的数值被一起送入时间戳组合单元作为粗时间计数的结果。单步vernier细计数单元包含两条由进位链的延迟单元级联组成的延迟线,每条延迟线的输出端被回接到延迟线的输入端形成振荡环路,两个环路分别只包含2个等效的延迟单元(对应慢延迟线)和1个等效的延迟单元(对应快延迟线)。慢延迟线输出端连接细计数器的时钟端口触发其记录信号在振荡环中循环的次数,细计数器的结果被送入时间戳组合单元作为细计数器的结果。该单元包括一个鉴相器,用来判断领先信号(被测信号)和落后信号(粗计数器的时钟信号)的相对时间关系并控制细计数器的使能端口。该单元还包括若干脉冲整形模块,其作用是合理控制振荡环路中传播信号的高电平持续时间,保证细计数测量范围能够覆盖粗计数时钟周期。时钟抽取单元用来抽取被测信号后面与其最邻近的粗计数器时钟信号,并把被测信号和时钟信号分别输送到单步vernier细计数单元的慢延迟线及快延迟线。该单元采用双级d触发器采样降低发生亚稳态的风险,对被测信号加入一段具有延迟量τcom的延迟缓冲器以抵消被抽取的粗计数时钟信号中额外引入的延迟量。时间戳组合单元用来同步和组合对应于同一个被测信号的粗计数器结果及细计数器结果,该两部分计数器结果共同构成了完整的时间戳测量结果。

本发明的一个实施例使用的fpga芯片型号是ep3se110f1152i3(altera公司生产的stratixⅲ系列芯片)。设计工具是quartusⅱ13.1版本,该工具提供了逻辑功能描述、编译、布局、布线和后期工程调整等一整套的解决方案。

图1提供了粗计数单元的具体实施方式,它的工作时钟被设置为fpga芯片内相位锁相环(pll)中压控振荡器(vco)的最大工作频率。粗计数器的工作频率的选取原则是使其尽可能高,原因是尽量减少细计数单元中被测信号在振荡环中的循环次数。细计数单元的振荡环是无反馈控制的开放系统,不能像asic芯片中制造专用的dll稳定其振荡周期,故其测量标准差rms值近似与被测信号的总传输时间成根号平方比例关系。最大的总传输时间由下式计算:tclk*tosc/rf,其中tclk表示粗计数时钟周期,tosc表示细延迟单元的延迟线的振荡周期,rf表示细计数单元的分辨率。上述公式表明,降低tclk有助于减少rms值。对于本实施例选用的fpga,数据手册上规定了其允许的工作频率范围为600mhz到1.3ghz,因此1.3ghz被选作粗计数器的工作时钟频率。然而工作于如此高频率之下,计数器的数据宽度不能被设置过大以避免造成非稳态翻转的情况。本发明提供级联计数器的方案解决这个问题。粗计数器的第一级是一个数据宽度只有2比特的计数器,其时钟端口接pll输出的1.3ghz的时钟信号。该计数器的最高位输出信号经过反相器接入到第二级粗计数器的时钟端口上,第二级计数器的数据宽度是8比特。在此种级联计数器结构中,只有第一级计数器的数据输出在11→00翻转情况下,第二级的粗计数器才会接收到一个有效的时钟信号,触发其计数器数值加1,因而第二级粗计数器的等效工作频率只有1.3ghz/4=325mhz,该工作频率足以保证一个8比特的计数器稳定翻转而不产生亚稳态现象。假设第一级粗计数的输出结果为nc1[0:1],第二级粗计数器的输出结果为nc2[0:7],则将它们组合为nc[0:9]={nc2[0:7],nc1[0:1]}(即第二级粗计数结果作为高8比特,第一级粗计数结果作为低2比特),输出给时间戳组合单元作为粗计数结果。

图2是vernier细计数单元的具体实现电路结构。该单元包含两条由延迟链的延迟单元级联组成的延迟线。vernier型中的快、慢延迟线的本质区别是它们的延迟单元包含不同数量的基本延迟单元(du),基本延迟单元是进位链中的最小的不可再分割的延迟结构。图2(a)表示传统结构的vernier型延迟线,靠上的延迟线代表慢延迟线,它的延迟单元包含2du,靠下的延迟线代表快延迟线,它的延迟单元包含1du。慢延迟线中传递的是被测信号,快延迟线中传递的是粗计数时钟信号(其抽取过程在下面详细介绍)。细计数测量被激活时,被测信号领先于时钟信号进入相应的延迟线中传播。但是由于快延迟线的延迟单元的传播延迟量比慢延迟线的少1du,所以每次经历一个如图2(a)虚线框中所示的延迟单元后,时钟信号会追赶被测信号1个du的时间差,所以rf=1du。如此最多经历个延迟单元后,时钟信号就会领先于被测信号。每对延迟单元后都设计一个d触发器用来检测传播状态,其数据端口连接慢延迟线的延迟单元输出端,时钟端连接快延迟线的延迟单元输出端。如果被测信号领先于时钟信号,d触发器的输出结果是“1”,反之则是“0”。故该d触发器序列给出的是类似于“111…1100…”的温度计编码格式的测量结果,其中“1”到“0”的转换边界代表了被测信号和时钟信号之间的细时间差。经过解码电路后可以输出相应的二进制细计数结果,提供给时间戳组合单元。然而此种方案易于受基本延迟单元分布不均匀的影响,其非线性性能较差。此外该方案还需要一个专用的温度码到二进制码的解码器。

本发明在图2(a)的基础上提供了如图2(b)表示的本实施例实际采用的单步vernier延迟线结构,目的是缩短基本延迟单元的使用数量,从而减小非线性误差。如图2(b)所示,每个延迟线的输出端都通过一个2选1的mux及一个or门被回接到该延迟线的输入端,从而形成振荡环。其中mux的作用是实现对延迟线的复位操作。图中靠上的延迟线包含2个du的等效延迟单元,即代表慢延迟线;靠下的延迟线包含1个du的等效延迟单元,即代表快延迟线。为了保持振荡的稳定性,在延迟线中加入额外的一段固定延迟τfix来控制延迟的振荡周期tosc。振荡周期的最小持续时间是要保证细计数稳定翻转并且大于振荡信号的高电平持续时间tp。而为了保证细计数器的测量范围能够覆盖粗计数器的时钟周期,需要满足条件:tp>tclk。图中的脉冲重整形模块是为了控制tp的大小而设计的。图3表示本实施例中提供的脉冲整形模块的一种具体实施电路。它由1个d触发器和一系列延迟缓冲器构成,d触发器的数据端口接固定高电平,时钟端口接待整形的信号,输出端口连接延迟缓冲器的输入端,经过总量为tp的延迟后,接入d触发器的清空端口。在此种电路结构控制下,所有输入该模块的信号都会被重新整形成高电平宽度为tp的新信号。通过合理控制τfix,进一步保证tosc>tp,则可以在两条延迟环路中建立稳定的振荡信号。在本实施例中,τfix是由进位链的若干基本延迟单元级联构成的。图2(b)中应用一个d触发器实现鉴相器的功能,它的数据端口连接慢延迟线的等效延迟单元的输出端,时钟端口连接快延迟线的等效延迟单元的输出端,输出端口连接细计数器的使能端口。当被测信号和粗计数时钟信号分别被引入慢、快延迟线中传播后,由于被测信号领先于粗计数时钟信号,d触发器的采样结果为高电平,细计数被使能。该计数器的时钟端口连接慢延迟线环路的输出端,所以每当被测信号循环一个周期,它就会触发细计数器向上计数1次,同时粗计数时钟信号会追赶被测信号rf的时间差。振荡最多个周期后,粗计数时钟信号会领先于被测信号,鉴相d触发器的输出端采样结果变为低电平,它将终止细计数器的工作状态。此时细计数器数值表示测量得到的细计数时间差,此计数结果是二进制表示形式,故不再需要专用的解码模块,降低了系统实现复杂度。

快、慢延迟线环路的设计是实现单步vernier细计数单元的关键,本实施例提供如图4表示的一种具体的设计方法。因为延迟环路中还包含除了进位链以外的其他若干组合逻辑,如mux,or门和脉冲整形模块等。当这些组合逻辑功能被表达为不同的查找表公式或者被布线在fpga内部不同的区域,它们带来的延迟差别显著,为快、慢延迟线预期延迟量的控制带来巨大的困难。为了克服上面的问题,本实施例提出了一种基于两步法的设计思路。第一步使用quartusⅱ工程设计一条以进位链为基础的振荡环,然后将其布局布线后的信息导出,此过程可以用logiclock和designpartition工具实现。第二步重新建立一个新的工程,使用上述工具把振荡环电路重复导入两次获得两条独立的延迟线环路。通过这些步骤能够保证两条延迟环路中与组合逻辑相关的查找表表达式及内部连线结构完全对称,尽管还存在由于布局在fpga内不同区域导致的延迟差异,但它们的延迟差已经被控制在了一个足够接近的范围之内,为下一步细调它们之间的延迟差提供了基础。如图4所示,假设延迟环路的进位链总长度为n,其中慢延迟线的等效延迟单元由前两个基本延迟单元构成,而快延迟线的等效延迟单元仅由第一个基本延迟单元构成。细调延迟线的方法是循环迭代地找出具有较慢延迟的延迟环路,然后在其末端与脉冲整形模块连接的地方将连线断开,缩短其一个基本延迟单元的长度并将其与脉冲整形模块重新连接起来,直到获得了预期的延迟差为止。两条延迟线的延迟快慢可以通过引出到fpga片外的示波器上观察得到。例如在图4中,最终确定的慢延迟线的进位链长度为q,而快延迟线的进位链长度为p。细调整操作是使用engineeringchangeorders(eco)工具实现的。

图5是本实施例提供的时钟抽取单元的具体实现电路。它的实现原理是使用粗计数器的时钟信号对被测信号进行采样,采样器的输出端会被同步到被测信号后面距离它最近的时钟信号上,该信号与理想的被抽取时钟信号仅相差一个采样器的输出延迟τdff。它采用了两级d触发器采样以获得更加稳定的输出结果,这是因为被测信号与粗计数器时钟信号是异步的,如果两个信号跳变沿距离太近,单级采样容易得到亚稳态,而通过双级采样可以大大降低亚稳态发生的风险。经过两级d触发器后,被抽取的时钟信号相对原始位置延迟了约2(tclk+τdff),如果它大于被测信号的高电平宽度tp,会导致单步vernier细计数单元中的鉴相器工作异常,细计数器自始至终不能被激活从而测量失败。故在图6中对被测信号特意引入一段具有τcom延迟量的延迟缓冲器,其数值需满足:2(τdff+tclk)-(tp-tclk)<τcom<2(τdff+tclk)。

图1中所示的时间戳组合单元从粗计数单元接收粗计数值和同步信号ctrl1,从单步vernier细计数单元接收细计数数值和同步信号ctrl2。它的功能是当ctrl1信号为高时,读取粗计数值数据并存入最终结果寄存器;当ctrl2信号为高时,读取细计数值数据并存入最终结果寄存器。由于粗计数值和细计数值是在不同时刻测量得到的,所以该单元实现了以上两种计数值的同步和保存任务。粗细计数器组合表示了被测信号的时间戳,不同被测信号间的时间差可以由对应的时间戳相减得到。

针对本发明提供的实施例,通过码密度法测量1000000个被测量信号事例,得到细计数器数值的最大计数范围为27,故该tdc的分辨率为1/1.3ghz/27=769ps/27=28ps。测量得到的dnl和inl如图6(a)和(b)所示,图中细计数的数值范围是(14,41),其起始点并非从0开始的原因是由于被测信号和粗计数时钟信号到达单步vernier细计数单元的延迟量并不完全相等,但是由于是时间戳表示形式,所以并不对最终结果产生实质影响。可以看出dnl和inl的变化范围分别为(-0.063lsb,0.024lsb)和(-0.063lsb,0.001lsb),该结果相对于当前主流技术中的非线性误差参数减小了约一个数量级。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1