一种基于FPGA的时间数字变换器的制作方法

文档序号:13147023阅读:273来源:国知局
技术领域本发明属于时间量的数字化测量领域,具体涉及一种基于FPGA的时间数字变换器(TDC:Time-to-DigitalConverter)。

背景技术:
时间测量是指测量一个事件发生的时刻,或者是测量两个事件之间的时间间隔。时间测量技术在许多领域都具有重要应用,例如高能物理实验研究、核医学成像、军事和民用雷达,以及激光测距等领域都需要高精度的时间测量技术。时间数字变换器(TDC:Time-Digital-Convertor)就是一种将时间量转化为数字量以实现一个事件发生时刻的记录的功能器件。对于两个事件之间的时间间隔的测量,一般可以由两个TDC分别测量两个事件的发生时刻,两个发生时刻的差值就是该两个事件的时间间隔。目前,TDC的实现载体可分为基于ASIC(ApplicationSpecificIntegratedCircuit)专用芯片和基于FPGA(FieldProgrammableGateArray)可编程器件两种。随着FPGA技术的不断发展,单片FPGA能够提供的逻辑资源量越来越大,其可编程配置的灵活性也越来越强,FPGA已经成为数字系统集成设计的平台。在此平台上,如果能够同时实现一些物理量的测量,例如时间量的测量,无疑对基于FPGA的用户特制的数据获取和处理系统有重要意义。基于FPGA将事件发生时刻进行数字化,最简单的实现方法是用一个高速时钟计数器实现。在被测信号到来时,记录下当时的计数器的状态,该状态就是事件发生时刻的时间测量值。该方法的TDC精度就是计数器时钟信号的周期。为了获得高测量精度,可采用一种时间内插技术来测量被测信号在一个系统时钟周期内的精细位置,目前基于FPGA技术最常用的时间内插技术是设法构造出一条由多个延迟单元联成的延迟链。该延迟链的总延迟时间长度要大于一个系统时钟的周期,每个延迟单元的状态由抽头引出。将被测信号馈入该延迟链中传输,在每个系统时钟的到来时刻同时记录下时钟计数器的状态和延迟链的状态。前者是被测信号的粗时间标记,后者是被测信号的细时间标记,将两者结合就是被测信号的精确测量结果。使用这种时间内插技术,TDC的测量精度主要取决于延迟链中延迟单元的大小和一致性。目前,在FPGA中均是利用算术逻辑运算资源中的进位逻辑来构成延迟链,每一个进位逻辑构成一个延迟单元,使用和进位链处于同一资源单位中的触发器可以把各个延迟单元的状态采样输出,用于后续电路对延迟量状态的编码输出。

技术实现要素:
(一)要解决的技术问题本发明旨在有效地提高TDC的测量精度的同时,不增加单个TDC通道所要占用的FPGA逻辑资源量。(二)技术方案为解决上述技术问题,本发明提出一种基于FPGA的时间数字变换器,包括粗时钟计数器、脉冲信号发生器、双采样多抽头信号延迟链、抽头重排序连接网络、温度计码到二进制码变换电路以及变换结果输出电路,其中,所述粗时钟计数器用于产生被测信号产生计数信号;所述脉冲信号发生器用于是在被测信号的触发下产生脉冲信号并馈入到所述双采样多抽头信号延迟链中进行传输;所述双采样多抽头信号延迟链用于对被测信号进行延时传输,其由N个延迟单元组成,每个延迟单元的端部被两个触发器采样输出,每个采样输出称为一个延迟链的抽头,整个双采样多抽头信延迟链具有2N个抽头,N≥1;所述抽头重排序连接网络对所述2N个抽头的顺序进行重排序,使各抽头的顺序和各抽头实际传输时间的大小顺序一致;所述温度计码到二进制码变换电路将所述重排序的抽头状态的温度计码变换为二进制码;所述变换结果输出电路用于根据所述二进制码和所述粗时钟计数器输出的计数信号一起换算成被测信号的到来时间。根据本发明的具体实施方式,所述双采样多抽头信号延迟链的2N个抽头的输出由同一系统时钟经FPGA内部时钟驱动网络驱动。根据本发明的具体实施方式,所述抽头重排序连接网络将输入的2N个抽头经过交叉连接可以输出同等数量的2N抽头数,也可以输出不同于2N值的m个抽头,m≥1。根据本发明的具体实施方式,基于FPGA的时间数字变换器还包括标定电路,所述标定电路将所述二进制码转换成时间内插值后发送给所述变换结果输出电路;所述变换结果输出电路根据所述时间内插值和所述粗时钟计数器输出的计数信号一起换算成被测信号的到来时间。基于FPGA的时间数字变换器,所述脉冲信号具有上升沿或下降沿。(三)有益效果本发明公开的双采样多抽头信号延迟链,可以将常规基于FPGA的多抽头延迟链的延迟单元个数增加一倍,即每个单元的平均延迟时间减少一半,从而可显著提高时间测量的精度。本发明在有关时间精密测量领域有重要的应用价值。附图说明图1是本发明的TDC的一个实施例的结构示意图;图2为本发明的一个实施例所用UltraScaleFPGA资源特点连接而成的双采样TDL结构示意图;图3a为本发明的一个实施例所用UltraScaleFPGA资源特点连接而成的单采样TDL经重排序后用码密度法测量到的TDC的bin宽分布图;图3b为本发明的一个实施例所用UltraScaleFPGA资源特点连接而成的单采样TDL经重排序后用码密度法测量到的TDC的bin宽分布直方图;图4a为本发明的一个实施例所用UltraScaleFPGA资源特点连接而成的双采样TDL经重排序后用码密度法测量到的TDC的bin宽分布图;图4b为本发明的一个实施例所用UltraScaleFPGA资源特点连接而成的双采样TDL经重排序后用码密度法测量到的TDC的bin宽分布直方图;图5a为本发明的一个实施例所用UltraScaleFPGA资源特点连接而成的单或双采样TDL构成的两通道TDC测试一个固定时间间隔得到的典型的测量直方图,由此图计算测量的标准偏差及时间分辨率;图5b为本发明的一个实施例所用UltraScaleFPGA资源特点连接而成的单和双采样TDL构成的两通道TDC测试得到的时间分辨率随被测时间间隔而变换的结果比较曲线图。具体实施方式给定一种FPGA,其延迟单元的延迟时间量就确定了,所能实现的TDC的精度一般也就受限于各个延迟单元量的大小和一致性。为了将TDC的测量精度提高到超出各延迟单元基本延迟量的限制,本发明不同于现行所有的一个延迟单元对应一个触发器采样输出的结构形式,将一个延迟单元用两个触发器同时采样输出。由于在现代FPGA中延迟单元的物理延迟量已经很小,即便将延迟单元在同一点被两次采样输出,由于从该点到两个触发器输入端的传输路径有差异,以及同一时钟到达两个触发器的真正时刻也有差别,将这些差别全部等效到延迟链的延迟量上去,这就相当于两个触发器采样得到的延迟链的状态不同。这种双采样的结果是将延迟链的抽头数目加倍,等价于将原来的延迟单元再次分割,产生二倍个数的延迟单元,各个延迟单元的延迟量减小,平均减小为原来的一半。这样TDC的测量精度可以得到进一步的提高。另外通过上述方法将延迟单元细分,可能会使抽头输出的物理连接顺序和它们在延迟链上等效的实际延迟时间的大小顺序不一致,这种不一致必须经过重排序,以确定按各抽头实际延迟量由小到大的顺序抽出,才能得到正确和准确的测量结果。图1是本发明提供的基于FPGA的时间数字变换器的结构示意图。其包括粗时钟计数器、脉冲信号发生器、双采样多抽头信号延迟链、抽头重排序连接网络、温度计码到二进制码变换电路,标定电路以及粗时间戳和细时间戳输出电路。粗时钟计数器由系统时钟信号驱动,并用于产生被测信号的粗时间戳。脉冲信号发生器是外触发的,其用于是在被测信号的触发下产生一个具有变化沿的脉冲信号并馈入到信号延迟链中进行传输。所述变化沿可选为上升沿或者下降沿。双采样多抽头信号延迟链用于对被测信号进行延时传输,其由多个延迟单元组成,且在每个延迟单元的端部具有两次采样抽头,因此信号延迟链是双采样多抽头的信号延迟链。双采样多抽头的信号延迟链中有两个触发器阵列,用于在系统时钟的控制下,对信号延迟链的各抽头状态进行锁存,并将该锁存的抽头状态按照原先自然的物理排序传递给所述抽头重排序连接网络。抽头重排序连接网络,用于将接收到的锁存的抽头状态按照预先设定的连接关系进行变换,再传递给所述温度计码到二进制码变换电路;抽头重排序连接网络的输入是2N个延迟链抽头(N是延迟量上进位逻辑单元的个数),由于各个抽头的天然物理连接顺序可能和信号在延迟链上实际传输时间的大小关系不一致,预先将这种不一致用码密度法测量出来,并按照其大小关系调整各个抽头的排序,形成一个描述抽头序列变换关系的数据结构,该数据结构在TDC综合实现时控制该电路模块的输入和输出的对应关系,从而实现重排序。一种重排序策略是输出2N个抽头,即抽头数不变仅改变抽头之间的顺序,也可以采取其它重排序策略输出不同于2N个的m个抽头。不管哪种情况,输出抽头的顺序一定和各抽头实际传输时间的大小顺序一致。上述抽头重排序连接网络所用的用于描述连接关系变换的数据是用码密度法结合计算机软件测量得到的,以仅作重排序输出2N个抽头为例说明该数据获取的过程如下:双采样TDL(TappedDelayLine)缺省的输出是按照它们在FPGA内的物理连接顺序的。给定一个被测信号并假定用上升沿表示,双采样TDL会输出一个状态码(例如…11110001100101000000…),计算机读出该码,将码中所有的0状态的抽头往右侧逐个移动,同样把码中所有1状态的抽头往左逐个移动。这样改变顺序后的码字为(…11111111000000000000…)。再次输入一个被测触发信号,并做上述抽头位置的相应移动。经过足够多的重复,直到所形成的新的抽头顺序在测量一个触发信号时,所有的1状态都会在左侧,而所有的0状态都会在右侧即可。这样形成的变换关系描述数据在TDC设计综合时用于限定硬件的连接关系。重排序的2N个抽头对一个被测触发信号所产生的是一个温度计码,输入到温度计码到二进制码变换电路变换以后,将测量结果用二进制码表示。该结果可以直接输出,也可以经过标定电路标定输出,一般经过标定可以获得比不标定高的测量精度。变换结果输出电路根据所述二进制码或标定电路输出的时间内插值,和所述粗时钟计数器输出的计数信号一起换算成被测信号的到来时间。下面通过对本发明的一个实施例的技术方案的描述来使本发明的特点和有益效果更加清楚、完整。应当了解,在此所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图2是本发明的一个实施例,使用Xilinx的UltraScaleFPGA所形成的双采样TDL结构示意图。UltraScaleFPGA每个Slice里有8个进位逻辑,每个进位逻辑电路伴随两个触发器可以实现本发明的双采样,即一个Slice内有16个抽头。注意16个触发器由两个系统时钟驱动子网络分别驱动。本实施例所使用的FPGA芯片是KintexUltraScaleFPGA:xcku040-ffvall56-2-e。FPGA的系统时钟频率选为500MHz,周期为2.0ns。多个Slice内的延迟链串联起来构成整个TDL,它的总延迟时间长度要大于一个系统时钟的周期,在2.0ns的周期内时间内插需要的总抽头数测定为862个。为了比较显示双采样TDL对TDC性能的提高效果,本实施例分别实现了传统的单采样TDL(即每一个进位逻辑仅用一个触发器采样输出)和双采样TDL,并都用码密度法对两种TDL进行重排序综合实现最后的TDC。图3a和图3b是单采样TDL实现的一个TDC,使用码密度法测量得到的TDC各bin宽的分布图,以及bin宽分布的直方图。这里总bin数为431个,平均bin宽为2.0ns/431=4.64ps。作为比较,图4a和图4b是双采样TDL构成的TDC的对应测量结果,这时总bin数862个,平均bin宽为2.32ps。上述TDCbin宽的测量结果同样可以作为标定表的内容存储在所实现的TDC的标定电路中,即触发信号被测量在某个bin上时,根据bin宽分布图可以校正该bin实际对应的时间戳的值。为了能够测量一个固定的时间宽度来衡量TDC的时间测量分辨率,每一种TDL都实现了两个相同的TDC通道,通道1测量时间宽度的起点时间戳,通道2用于测量时间宽度的终止时间戳,两者相差就是被测时间宽度,对同一时间宽度多次测量可以得到测量直方图,在两种TDL构成的TDC系统中,对已知时间宽度测量的直方图的形状类似,如图5a,据此图可以计算在该时间间隔测量时各自的时间分辨率,即RMS值。图5b是两种TDC系统对不同时间长度测量得到的时间分辨率随待测时间宽度而变化的曲线比较图。其中前30ns的测量点被放大在图片的右上角。可以看出单采样TDL构成的TDC系统的时间分辨率总是较大而,双采样TDL构成的TDC系统的时间分辨率总是较小,在整个测量时间间隔范围内,它们的平均值分别是5.9ps和3.9ps,可见同样的延迟链,采用双采样结构对所实现的TDC的时间分辨率的提升非常明显。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1