基于FPGA实现TDC高精度时间间隔测量的研究与设计

发表时间:2021/7/1   来源:《科学与技术》2021年3月第7期   作者:罗渝
[导读] TDC(时间数字转换器)作为一种高分辨率时间间隔测量方法,基于FPGA实现TDC,具有设计灵活、成本低等特点,
        罗渝
        重庆九洲星熠导航设备有限公司  重庆市  400080

        摘要:TDC(时间数字转换器)作为一种高分辨率时间间隔测量方法,基于FPGA实现TDC,具有设计灵活、成本低等特点,广泛应用于激光测距等领域。本设计在Quartus II开发平台上,使用verilog语言实现粗细时间测量,其中粗时间在ModelSim实现仿真,最终该设计成功在工程项目中进行应用。
        关键词:格雷码计数器;波形联合;TDC;FPGA

        时间间隔测量技术经过多年的发展,目前在原子物理、天文观测实验、激光测距、卫星定位等领域都有广泛的应用。TDC实现方法有计数器技术、电流积分技术、时间放大技术、游标卡尺技术、“粗、细”时间测量组合技术等。
        1 时间间隔测量原理
        本文采用“粗、细”时间测量组合技术进行时间间隔测量,测量原理如下图所示,其中Tx表示时间间隔测量,其表达式为:,代表粗时间,代表细时间。
        
        2 粗时间测量设计
        2.1格雷码的特点
        格雷码(Gray Code)是20世纪40年代由贝尔实验室提出。格雷码计数器每递增一位,只有一bit位发生变化,这样克服了使用传统二进制计数器可能导致数字电路出现尖峰电流脉冲的风险,提高了电路的抗干扰能力,所以格雷码是一种可靠性较高的编码。另外格雷码是无权码,不能直接进行比较和参与运算。格雷码编码方式如下表所示。

        2.2多位格雷码计数器的实现
        本设计采用verilog逻辑语言进行设计,其中关键的计数器语言实现部份采用组合逻辑和阻塞来实现,这样电路与电路之间的延时就导致格雷码计数器不能工作在高时钟的环境,本设计的系统时钟为250MHz,从仿真以及应用中观察,没有出现因为电路的延时导致乱码的现象。
        将多位格雷码计数器进行拆分,分别拆分为两个4位计数器和1个8位计数器,这样可以组合成任意4的整数倍位的格雷码计数器。本设计中两个4位的计数器组合成低8位的格雷码计数器,用3个8位的计数器组合成高24位格雷码计数器,这样组合成32位的格雷码计数器。采用“粗、细”时间测量组合技术实现TDC设计,“粗”时间决定了TDC的动态范围,采用32位格雷码计数器作为TDC的“粗时间”测量完全可以满足绝大多数的应用场景。
        在实际编码过程中,4位格雷码计数器用5位来进行计数,利用格雷码是循环码的特点取低4位作为计数器的输出值,同理8位格雷码计数器用9位来进行计数,通过进位标志触发高位进行计数,进位位的程序实现如下所示:
assign carry=((gray_c==5'b10000)||(gray_c==5'b01000))?1'b1:1'b0;
assign carry=((gray_c==9'b100000000)||(gray_c==9'b010000000))?1'b1:1'b0;
        2.3仿真结果

        在ModelSim平台对32位格雷码计数器进行仿真,如上图所示,图中carry3_0、carry7_4代表将8位计数器拆分成的两个4位计数器的进位位、carry15_8代表8位计数器的进位位,仿真结果达到预期效果。
        3 细时间测量设计
        在TDC设计过程中,粗时间决定其动态范围,细时间决定其测量分辨率、精度等性能。利用FPGA内部有许多具备延时功能的基础逻辑单元,来构建延时链进行时钟周期的时间内插,实现细时间测量。原理框图如下所示:

        3.1 构建延时链
        延时链构建目前有两种方式,即FPGA芯片专用延时单元,另一种是加法进位链,在波形定制上,目前用得比较多的是常规延时链和波形联合,本设计采用波形联合进行设计。
        3.2 编码模块
        译码单元的主要功能是将通过"细"时间测量得到的结果,即由每一级进位单元输出的值S的状态,观察期状态是否由原来的0000跳变为1111、或者1100等非0000状态,将跳变状态对应的位置信息保存到寄存器当中去,以便最后结合"粗"时间的测量结果对整个系统的测量值进行计算。
        4 数据的合成与转换
        数据的合成与转换模块是将24位的"粗"时间的测量结果与8位的"细"时间的测量结果合并成一个32位的数据,再将数据分别输出,这样就能够更加方便地将测量得到的数据存储起来。另外“粗”时间采用32位的格雷码进行设计,在进行数据合成前需要将其转换成普通二进制,然后截取低24位作为“粗”时间。
        5 测量结果
        采用以上方法,总共设计了两个通道的TDC测量模块,用随机信号对过多次测量每个通道的精度范围在60ps以内,满足实际的工程使用。
        6 总结
        设计介绍了基于FPGA实现TDC实现原理和方法,其中粗时间测量采用的多位格雷码计数器设计方法,并提出了一种利用拆分计数的方式来组成任意位格雷码计数器的方法,采用verilog进行程序设计,并在ModelSim进行仿真,仿真结果达到预期效果。细时间采用波形联合的原理进行设计。最后TDC测量精度满足公司实际项目的使用要求。

作者简介:罗渝(1983-06-18),男,汉族,籍贯:重庆,当前职务:产品设计,当前职称:中级工程师,学历:本科,研究方向:三维激光扫描雷达研发和应用
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: