欢迎光临小豌豆知识网!
当前位置:首页 > 物理技术 > 测时学> 基于FPGA的时间数字变换器独创技术22578字

基于FPGA的时间数字变换器

2021-02-02 21:47:59

基于FPGA的时间数字变换器

  技术领域

  本发明属于时间量的数字化测量领域,具体涉及一种基于FPGA的时间数字变换器。

  背景技术

  时间数字变换器(TDC:Time-Digital-Convertor)是一种将时间量转化为数字量以实现一个事件发生时刻的记录的功能器件。对于两个事件之间的时间间隔的测量,一般可以由两个TDC分别测量两个事件的发生时刻,两个发生时刻的差值就是该两个事件的时间间隔。目前,TDC的实现载体可分为基于ASIC(Application Specific IntegratedCircuit)专用芯片和基于FPGA(Field Programmable Gate Array)可编程器件两种。随着FPGA技术的不断发展,单片FPGA能够提供的逻辑资源量越来越大,其可编程配置的灵活性也越来越强,FPGA已经成为数字系统集成设计的平台。在此平台上,实现时间量的测量,无疑对基于FPGA的数据获取和处理系统有重要意义。基于FPGA时间数字变换器,基本的实现方法是用一个高速时钟计数器,在被测信号到来时,记录下当时的计数器的状态,再利用人为构造的信号延迟链获得被测信号在一个系统时钟周期内的精细位置。基于信号延迟链的时间内插技术的测量精度主要取决于延迟链上延迟单元的颗粒度和均匀性。TDC的测量精度可以通过对被测信号实现多次测量来提高。但现有的多次测量技术要么是利用多个并行的TDC实现,要么使用一个TDC对被测信号逐次重复测量,前者增大TDC的硬件资源,后者增大了TDC测量的死时间。

  发明内容

  (一)要解决的技术问题

  本发明提供一种基于FPGA的时间数字变换器,以达到只利用一套时间数字变换器同时实现多次测量,在提高测量精度的同时,不会劣化时间数字变换器的其他性能指标。

  (二)技术方案

  根据本发明的一方面,提供一种基于FPGA的时间数字变换器,包括粗时钟计数器、脉动信号发生器、多抽头信号延迟链、触发器阵列、一元脉动码到二进制码变换电路以及变换结果输出电路,其中,

  所述粗时钟计数器用于产生被测信号的计数信号;

  所述脉动信号发生器用于在被测信号的触发下产生包含多个信号变化沿的脉动信号并馈入到所述多抽头信号延迟链中进行传输;

  所述多抽头信号延迟链用于对所述脉动信号进行延时传输,包括多个延迟单元,且每个延迟单元的端部有一抽头;

  所述触发器阵列用于对所述脉动信号和所述多抽头信号延迟链的各抽头状态进行锁存形成状态码;

  所述一元脉动码到二进制码变换电路用于将所述状态码变换为二进制码;

  所述变换结果输出电路用于根据所述二进制码和所述计数信号计算被测信号到达所述时间数字变换器的时间。

  在进一步的实施方案中,所述脉动信号发生器包括多个延迟单元,用于调节所述脉动信号的各个信号变化沿之间的脉宽。

  在进一步的实施方案中,所述多抽头信号延迟链的各个抽头的输出由同一系统时钟经FPGA内部时钟驱动网络驱动。

  在进一步的实施方案中,所述一元脉动码到二进制码变换电路包括:

  拆分模块,用于将状态码拆分为多个等长的子码;

  多个识别模块,用于判断各个子码内信号变化沿在子码中的位置,并在子码内对各个信号变化沿位置进行求和并输出;

  求和模块,将各个识别模块输出的求和结果进一步求和得到最终的二进制码输出。

  在进一步的实施方案中,所述的基于FPGA的时间数字变换器还包括标定电路,用于将所述二进制编码转换成时间内插值后发送给所述变换结果输出电路;且所述变换结果输出电路根据所述时间内插值和所述粗时钟计数器输出的计数信号计算被测信号到达所述时间数字变换器的时间。

  在进一步的实施方案中,所述标定电路包括:

  标定查找表,用于将所述二进制编码转换成时间内插值;

  标定查找表更新电路,用于对所述标定查找表进行更新。

  在进一步的实施方案中,所述粗时钟计数器、触发器阵列、一元脉动码到二进制码变换电路、标定电路和变换结果输出电路都在系统时钟的驱动下运行。

  在进一步的实施方案中,所述识别模块包括多组编码器,用于将各个子码拆分为多个分组并在各个分组内进行信号变化沿的位置查找。

  在进一步的实施方案中,所述识别模块用于分别判断所述子码内的各个分组内信号变化沿的个数与位置,并对各个分组的信号变化沿个数进行加权求和,对各个分组的信号变化沿位置直接求和。

  (三)有益效果

  本发明提供一种基于FPGA的时间数字变换器,脉动信号发生器产生了一个具有多个跳变沿的脉动信号在多抽头信号延迟链上传播,通过对每个跳变沿在延迟链上位置的测量实现了多次测量,从而只利用一套时间数字变换器实现了多次测量即提高了测量精度。由于本发明能够实现在一个时钟周期内同时对脉动信号上多个跳变沿进行测量,所以本发明不会造成长的测量死时间,也不会消耗过多的FPGA资源,从而实现不劣化时间数字变换器的其他性能指标。

  附图说明

  图1是本发明提供的一种基于FPGA的时间数字变换器的结构示意图;

  图2是本发明一个实施例提供的四沿脉动信号发生器的实现原理图;

  图3是本发明一个实施例提供的400位状态码拆分为子码的原理示意图;

  图4是本发明一个实施例提供的一元脉动码到二进制码变换电路中的子码编码实现原理图;

  图5是本发明一个实施例测量到的TDC的bin宽分布图;

  图6是本发明一个实施例使用不同数量信号变化沿的脉动信号对TDC测量精度的改进测试结果。

  具体实施方式

  为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。应当了解,在此所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

  如图1所示,图1是本发明提供的一种基于FPGA的时间数字变换器的结构示意图。它包括脉动信号发生器、多抽头信号延迟链、触发器阵列、一元脉动码到二进制编码变换电路、粗时钟计数器和变换结果输出电路。其中,

  所述脉动信号发生器是外触发的,其用于在被测信号的触发下产生一个含有多个沿的脉动信号并馈入到多抽头信号延迟链中进行传输。脉动信号发生器实际是对多抽头信号延迟链的始端部分改造而成,其包括多个延迟单元,用于调节所述脉动信号的各个信号变化沿之间的脉宽,它的每个延迟单元都会进行抽头输出,其抽头输出结果被锁存在触发器阵列中。

  所述多抽头信号延迟链用于对被测信号进行延时传输,其由多个延迟单元组成,且在每个延迟单元的前端具有抽头输出,抽头输出的结果与脉动信号发生器的抽头输出同时被锁存在触发器阵列中。所述多抽头信号延迟链的各个抽头的输出由同一系统时钟经FPGA内部时钟驱动网络驱动。

  所述触发器阵列用于在系统时钟的控制下,对脉动信号发生器和多抽头信号延迟链的各抽头状态进行锁存形成状态码。在被测信号到来的前提下,将锁存的抽头状态同时传递给所述的一元脉动码到二进制编码变换电路。

  一元脉动码到二进制编码变换电路用于将所述状态码变换为二进制码,即根据所述锁存的抽头状态寻找在多抽头信号延迟链上传输的多沿脉动信号的各个沿的位置,并对各个沿的位置进行加和,产生一个二进制的编码输出结果。

  所述粗时钟计数器用于产生被测信号的计数信号。

  所述变换结果输出电路用于根据所述二进制码和所述计数信号计算被测信号的到达所述时间数字变换器的时间。

  选择性地,该时间数字变换器还可包括标定电路,用于对所述二进制编码输出转换成时间内插值。标定电路通常具有一个标定查找表,用于将所述二进制编码转换成时间内插值;还可包括一个标定查找表更新电路,用于对该标定查找表进行更新。此时,结果输出电路根据内插值和粗时钟计数器输出的计数信号计算被测信号到达所述时间数字变换器的时间。

  在本发明中,所述一元脉动码到二进制码变换电路包括:

  拆分模块,用于将状态码拆分为多个等长的子码;

  多个识别模块,用于判断各个子码内信号变化沿在子码中的位置,并在子码内对各个信号变化沿位置进行求和并输出;

  求和模块,将各个识别模块输出的求和结果求和得到最终的二进制码输出。

  其中,所述识别模块包括多个编码器,用于将各个子码拆分为多个分组并在各个分组内进行信号变化沿的位置查找,子码长度等于编码器个数与组内编码长度的乘积。

  其中,所述识别模块分别判断所述子码内的各个分组内信号变化沿的个数与位置,并对各个分组的信号变化沿个数进行加权求和,对各个分组的信号变化沿位置直接求和;且所述求和模块将各个识别模块输出的子码编码结果进一步求和得到最终的二进制码输出。

  在本发明中,除了脉动信号发生器和多抽头信号延迟链,其他模块都是在系统时钟的驱动下运行的。粗时钟计数器由系统时钟进行驱动,并根据被测信号产生计数信号作为粗时间戳。触发器阵列、编码变换电路、标定电路和结果输出电路在系统时钟的驱动下构成了流水线结构,从而在保证较小的测试死时间的情况下实现数据的逐级处理和缓存。

  具体来说,本发明的工作原理为:当待测信号进入测试系统后触发脉动信号发生器产生一个多沿脉动信号在多抽头信号延迟链上传播,触发器阵列在每个系统时钟周期会对延迟链上的信号传播状态进行锁存,触发器阵列锁存的延迟链状态会在一元脉动码到二进制编码变换电路中被转换成代表跳变沿在延迟链上的位置和的二进制编码。得到的二进制编码可以选择经过标定电路标定转换为细时间戳,这样可以消除多抽头信号延迟链的延迟单元不均匀性带来的微分非线性和积分非线性误差,也可以不经过标定电路直接作为测量得到的细时间戳,最终与粗时钟计数器计数得到的粗时间戳结合起来构成代表待测信号到达时间的测试结果输出。

  在本实施例中,所使用的FPGA芯片是赛灵思(Xilinx)公司的Kintex-7xc7k325t-2ffg900,FPGA的系统时钟频率为554MHz,周期为1.805ns。由于脉动信号发生器占据了一定的延迟链长度,且为了保证剩余的延迟链总延迟时间长度大于一个系统时钟周期,由进位链构成的多抽头信号延迟链的总长度设置为400个抽头数,整个多抽头信号延迟链跨越了两个时钟域。

  如图2所示,图2是本发明一个实施例中4沿脉动信号发生器的实现原理图。如前所述,脉动信号发生器实际是延迟链始端的一部分,而图2左边的多路选择器即为延迟链的最小延迟单元。在多路选择器中,控制端口S控制输出端口O在I0、I1两路输入数据中选择一路数据作为输出。在所述4沿脉动信号发生器中,除开我们选择的a、b、c、d这4个节点,其余多路选择器均被配置为I1路数据作为输出端口O的输出,而I1端口的输入数据也就是前一级多路选择器的输出数据,这些多路选择器由此实现了作为延迟单元的配置。而前述a、b、c、d这四个节点的控制端口S则连接到待测信号,当待测信号为低电平时,这些节点的输出端口的数据来源于其I0端口,而这些节点的I0端口已经被我们预设特定的值,从而能实现如图2中间部分所示的4沿脉动信号初始波形。当待测信号到来时,这些节点的控制端口S会依次跳变为高电平,也即此时这些节点的输出数据会切换成I1端口的输入数据,其直观效果即为这个节点控制的沿开始沿着延迟链向上传播。当待测信号到达选择的所有4个节点时,这个4沿脉动信号发生器即完成了整个信号的产生和发射。需要注意的是,在此所述的虽然是4沿脉动信号的生产原理,但容易理解的是,不论想要生成包含任何数量跳变沿的多沿脉动信号,只需在恰当位置加入相应数量的设置节点即可。

  在本实施例的多沿脉动信号发生器原理中,如前所述,待测信号到达各个节点的时间存在先后顺序,依次为节点a、b、c、d,这也就意味着节点a控制的沿1会比节点b控制的沿2提前向上传输,即沿1和沿2之间的实际脉冲宽度会比按照节点a、b之间延迟链长度计算出的脉冲宽度更宽。同理,其他相邻两个沿之间的实际脉冲宽度也会比设定的更宽。实际上,在FPGA的进位链型延迟链上传输的信号,其包含的正、负脉冲宽度会随着传输而发生变化,所以为了保证在整个传输过程中正、负脉冲不会消失从而造成跳变沿的丢失,在脉动信号发生器中我们需要给脉冲初始宽度设置恰当的脉宽。因此在本发明中,我们专门利用了由于待测信号传输到不同节点的时间差异所带来的脉冲展宽,以此来减小多沿脉动信号发生器对延迟链资源的占用。

  如图3所示,图3是本发明实施例400位状态码拆分为子码的原理示意图,拆分模块将状态码拆分成子码是对跳变沿位置进行识别和编码的第一步。图3(a)中所示的延迟链状态码是一个典型的含有“冒泡”的4沿脉动信号。一个纯净的4沿脉动信号编码应该是形如“11110000111100001111”这种具有清晰的跳变沿边界的编码,但实际上在延迟链上跳变沿附近的编码总是会出现“冒泡”现象,即“0”、“1”位置的错位,从而造成信号跳变沿位置的模糊,给跳变沿位置的识别和编码带来进一步的困难。

  所述将状态码拆分成子码的过程可以有效地解决“冒泡”现象对编码带来的干扰。图3(b)中的8个子码即是将图3(a)中的原始信号编码按步长为8的规则拆分而成的。所述拆分过程实际可以看成:把原信号编码每8位排成一竖列,那么每一行即为拆分原编码得到的一个子码;若按图3(b)中箭头的顺序把每一竖列连接起来,即可还原到图3(a)中的原信号编码。从图3(b)中8个子码中可以看出,每个子码仍含有4个跳变沿,且沿跳变附近的“冒泡”已经完全消失了,这样就实现了在不丢失跳变沿位置信息的情况下消除了“冒泡”影响,这会极大地简化编码模块的逻辑设计。

  在本发明的实施例中,所述拆分编码步骤中选择拆分步长为8的原因在于:在实施例使用的Kintex-7 FPGA芯片中,延迟链上存在的“冒泡”区的最大深度为6,拆分步长选择为8可以充分保证跳变沿附近的“冒泡”可以在拆分编码过程中被消除。根据拆分编码思想在确定拆分步长设定为8的情况下,原始信号编码中的全“0”区和全“1”区的深度必须满足不小于8才能保证跳变沿的位置信息在拆分编码的过程中不被丢失。

  在本发明中,类比所述实施例的解释可以理解,对于一个N位的含有“冒泡”的原始信号编码,要把它拆分为m个长度为L的子码(N=m×L)以消除“冒泡”的影响,那么m的选取规则为:m必须大于当前所使用的FPGA芯片延迟链上的“冒泡”区的最大宽度;同时m必须不大于延迟链上全“0”区和全“1”区在整个传输过程中的最小宽度。当m的选取值确定之后,我们需要在多沿脉动信号发生器中调节多沿信号的初始脉宽,以使得全“0”区和全“1”区不小于m值这个条件在整个传输过程中始终成立。

  在本发明中,所述将状态码拆分成子码是一元脉动码到二进制编码变换电路实现功能的第一步;对子码中的跳变沿进行识别及其位置信息求和是编码变换电路实现功能的第二步。图4即为本发明实施例中一元脉动码到二进制码变换电路中的子码编码的实现原理图。所述子码编码其实质即为识别输入的子码中存在的跳变沿的个数并计算出每个跳变沿的位置给出其位置和。图4所示实施例中子码的码长为50位,为了识别其中跳变沿的个数及其位置,50位子码被每6个分成一组,跳变沿的识别和编码在分组内和组间分开进行。每个分组中包含6个6输入查找表(LUT:look-up table),接收的子码中的6位输入并连接到每个查找表的6个输入端口,最终组内查找表输出6位的查找结果,其中2位表示本小组接收的6位输入中跳变沿的个数(即图4中的“Num”),另外4位表示跳变沿的位置和(即图4中4位的“Local_Sum_*”)。需要注意的是,跳变沿不仅可能存在于各个分组内,也可能处在相邻分组的边界上,这种情况下分组内的查找表并不能识别出跳变沿,因此需要专门设计一个“异或”门电路来识别处在分组边界位置的跳变沿。各个分组在完成组内跳变沿的识别之后它们的输出会进行分组间的加和。分组间的加和分为两个部分,一个部分是跳变沿的组内位置(Local_Sum_*)的直接求和;另一部分是分组内跳变沿的数量(Num_*)的加权求和,加权的权重与分组所处的位置有关。最终两个加和部分的输出结果再直接加和即得到子码中跳变沿位置和的二进制编码输出。

  在本发明中,一元脉动码到二进制编码变换电路的第三步是利用求和模块对m个子码的二进制编码输出进行求和,求和结果即为原始状态码的二进制编码结果,至此实现了编码变换电路的所有功能。此后,编码变换电路的输出即可作为细时间戳,或者通过标定电路标定之后再转换为细时间戳,最终与粗时间戳一起通过输出电路输出。

  码密度法是一种常用于测量各延迟单元延迟量大小的方法。它是在外部产生一个和系统时钟不相关的方波信号作为外触发信号,该信号的每个上升沿都会触发脉动信号发生器产生一个多沿脉动信号(注意,在该实施例中,一个多沿脉动信号产生完成后,脉动信号发生器会恢复到初始状态),进行一次时间标记测量记录。由于外触发信号和系统时钟信号不相关,外触发信号的到来时刻应该均匀地分布在系统时钟的一个周期内。因而触发器阵列锁存下来的多抽头信号延迟链的状态,其多个跳变沿所处位置的和应该等概率地分布在一个周期内。换言之,发生在每个延迟单元的事例数(测得次数)应该和其延迟单元宽度成正比。据此,就可以测得各个延迟单元的延迟量宽度。

  如图5所示,图5是本发明实施例利用码密度法测量得到的TDC的bin宽分布图。所述TDC的一个bin宽可以看作是延迟链的一个有效延迟单元的宽度。由于多次测量方法的TDC相当于对延迟链的每个物理延迟单元进行了进一步的切分,得到更细致的基本延迟单元,从而提高TDC的测量精度,所以我们实际测得的TDC的bin数总是多于多抽头信号延迟链的抽头数。比如在图5中本发明实施例针对6沿TDC测量得到的TDC的有效bin个数为1018个。因为系统时钟采用的是554MHz,每个时钟周期为1.805ns,所以6沿TDC的平均有效bin宽为1.77ps(1.805ns/1018=1.77ps)。

  本实施例使用上述方法实现了多种不同跳变沿数量的高精度多次测量TDC。使用两个相同的TDC通道可以对一个时间间隔进行重复测量,由测量到的结果可以计算出测量结果的时间精度RMS(均方根误差)值。如图6所示,图6是本发明实施例使用不同数量信号变化沿的脉动信号对TDC测量精度的改进测试结果,其横轴是被测时间间隔,纵轴是时间精度RMS值。测得的时间精度随着被测时间间隔的变化围绕一特定值上下波动,其中1沿TDC在0-50ns时间范围内测得的时间精度平均值为8.2ns;2沿TDC为4.8ns;4沿TDC为3.5ns;6沿TDC为3.1ns;8沿TDC为3.0ns。

  正是由于本发明的创新实现方案,本实施例不仅具有很高的时间测量能力,同时TDC的测量死时间仅为两个系统时钟周期,即3.6ns。故其测量吞吐量可以达到277M,即平均每秒可进行277M次测量。更具优势的是由于本发明中的多次测量结构仅使用一条延迟链,故本发明中的多次测量TDC所占用的逻辑资源很少。本发明在高性能指标要求的场合有重要应用价值。

  以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明。应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

《基于FPGA的时间数字变换器.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)