SeruTek 双通道TDC测试报告

–基于Xilinx 7 Series 面向ToF应用

简介

SeruTek TDC 是一款基于Xilinx 7系列FPGA/SoC的TDC IP核。SeruTek TDC 采用多通道时间戳机制,对各个通道输入的脉冲记录其时间戳。时间戳分为两部分:粗计数和精计数。粗计数由FPGA内部实现的计数器得到,精密计数由FPGA内部的进位链组成的延时链得到。在采用类似的粗、精计数组合的技术方法中,最大的问题在于输入脉冲有可能非常靠近粗计数器时钟的上升沿,从而不满足其Flip-Flop register的setup时序要求并导致非稳态。非稳态的产生使得粗计数的值极有可能发生单周期跳变,从而严重影响计数精度。SeruTek TDC采用自研的独有技术完美解决了这一问题,从而大大提升了TDC的实用性。此外,SeruTek TDC还具有片上自动码宽度自动校准功能,并采取了多种技术手段减小了通道之间的时延差变化波动,保证了在结温变化时,通道之间的时延差小于20ps。

高精度、大量程、高速率、低通道差、多通道等优异的特性使得SeruTek广泛适用于通用计数器领域以及需要用到脉冲飞行时间(ToF)的应用,如激光测距、激光雷达、PET、超声波等应用。SeruTek TDC采用标准的AXI、AXIS接口,可方便地与Zynq A9硬核以及Microblaze软核集成,实现高速时间戳的采集与处理。

SeruTek 双通道TDC现开放免费评估试用,该IP核适用于Zynq(基于Artix的7010-7020)及Artix系列,理论上也可用于Spartan-7(未经测试)。如需更多通道或应用于更高阶的型号,请搜索SeruTek或瑟如电子了解详情。

SeruTek TDC的主要技术特性如下:

One-shot RMS 精度 < 25ps
最大量程 约70年
单通道最小触发间隔(dead time) 14 ns
最小可测时间间隔 单通道:14ns 将start、stop信号分布在不同通道上可以测量任意小的时间间隔
通道间一致性 < 20 ps
突发触发速率(burst hit rate) 70MHz 突发速率最大样本数受限于片上FIFO的容量。标准情况下为2048个点,可根据使用芯片容量定制。
连续触发速率 取决于采用的readout机制,当使用DMA时,单通道连续触发速率>30MSa/s。当配合riffa实现PCIE传输时,可在PCIE2.0 X8配置下实现多通道总和180Msa/s的连续采样速率。

实验设置

软硬件环境

测试硬件组成:

  • 一块黑金AX7103开发板,芯片型号为XC7A100T-2FGG484;

  • 一块Si5341 开发板,作为定时触发信号源;

测试软件组成:

  • Vivado Suit 2017.4

  • SeruTek sdk library r0.9 (SDK 软件库,用于TDC核配置、控制以及原始数据解析)

SeruTek 双通道TDC IP测试设置

SeruTek 双通道TDC测试报告

两路hit信号通过SMA-转杜邦线接入AX7103开发板的扩展端口(2.54mm)。这样的方式并不是最优的,但有助于了解TDC
IP在一般条件下的性能。因为2.54mm扩展口并没有经过阻抗匹配,串扰抑制能力也一般,如果客户新设计电路板,需要对时钟信号、hit信号的阻抗匹配、串扰抑制等问题多加考虑。

时钟设置

为了模拟用户真实的使用场景,TDC的时钟源与定时信号的时钟源为独立时钟源,并不同源。因此测量结果会引入两个时钟源之间的频差及相位抖动。免费评估版的SeruTek TDC的参考时钟输入为50MHz的单端输入,在AX7103上配置有200MHz的有源差分晶振,SiT9102-200,其抖动较低,约为1ps。通过MMCM模块将此差分时钟信号转换为50MHz单端时钟输入到SeruTek TDC。需要注意的是,该方法并非最优,增加的MMCM将引入额外的抖动。用户可定制TDC core的时钟输入。

Si5341 EVB是一款时钟发生器评估板,具备10组时钟输出,时钟频率
120Hz-1028MHz,输出可配置成LVCOMS或LVDS等不同的格式,便于多通道TDC的测试与评估。测试时,基于Si5431 EVB板载的48MHz晶振,产生不同频率的触发定时信号,作为SeruTek TDC的hit信号。

测试内容

本测试主要考察SeruTek TDC在不用频率的触发信号下的测量结果。主要考察测量结果的抖动、测量结果的准确度以及通道之间的时延差的波动。

TDC的一大应用领域是飞行时间测量ToF。下表是不同的hit频率下,hit信号之间的时间间隔对应光速行进的距离。由于10倍数频率与TDC参考时钟50MHz有固定的相位关系,即使两个时钟不同源,但当高速测量时(hit频率较高时),测量值的精计数值可能集中在某些bin上,表现为极低的测量抖动。然而这种情况并不能全面表征TDC在整个测量范围内的性能,因此我们特意在10倍数频率上随意增加了频率分量,以求在精密计数环节增加足够多的变化,以便全面考察TDC的性能。

光行进距离(真空) 对应的Hit信号频率 测试时选取的频率
30000m 10KHz 10.2345K
3000m 100KHz 100.23456K
300m 1MHz 1.23456M
30m 10MHz 10.23456M
4.3m 70MHz 70.23456M

频差的影响

由于TDC参考时钟与Hit信号来源于不同的晶振,因此晶振之间的频率差会影响到测量结果,造成测量值与真值的偏差,偏差可以通过下列公式估算:

Δt= Δf(tntn1) \mathrm{\Delta}t = \ \mathrm{\Delta}f*(t_{n} - t_{n - 1})

其中(tntn1)(t_{n} - t_{n - 1})是两次hit间隔的时间。可见,偏差对低频hit信号,或远距离测距影响较大,解决方式是选用频率精度较高,温漂较小的晶振作为TDC以及激光发射时序的时钟源。

测试项目

  1. 对测量获得的时间戳序列进行一阶拟合。

  2. 原值减去拟合值得到残差序列,计算残差的标准差。

  3. 对同一通道的时间戳序列使用numpy.diff函数求取相邻前后两个测量值的差,得到邻差序列,并求取平均值,得到被测信号的时钟周期。

  4. 求反,得到被测信号的频率。

  5. 邻差序列求取标准差,得到时钟周期的测量标准差

  6. 最后,两个通道的时间戳序列两两相减,并计算均值,得到通道差的平均值。

测试结果汇总

下表列出了在不同频点的hit信号下,各通道的残差标准差和邻差标准差。残差的计算方法为:采用一阶多项式对时间戳序列进行拟合,再将实测值减去拟合值,得到残差。一阶模型认为频率是常数,在时间间隔较大的时候,一阶模拟不能反映晶振频率的变化,这种情况下,残差包含了频率变化的分量,不能完全表征TDC的测量性能。一组时间戳序列a[0:n]的邻差定义为a[1:n]-a[0:n-1]。如果hit信号是周期信号,邻差序列可以表示信号的周期。在之后的章节中对各频点的测试结果做更为详尽的分析。

测试项目 10.2345KHz 100.23456KHz 1.23456MHz 10.23456MHz 70.23456MHz
通道1残差的标准差 49.81(ps) 20.87(ps) 19.14(ps) 19.41(ps) 21.75(ps)
通道1邻差的标准差 24.50(ps) 29.14(ps) 22.92(ps) 25.96(ps) 32.36(ps)
通道2残差的标准差 50.42(ps) 20.48(ps) 18.12(ps) 18.64(ps) 20.64(ps)
通道2邻差的标准差 25.62(ps) 28.81(ps) 21.45(ps) 24.63(ps) 28.86(ps)

测试结果 – 10.2345KHz

被测信号为Si5341
EVB输出的1组(2路)LVCMOS25互补(相位相差180度)信号。Si5341设置的输出频率为10.2345KHz,以下截图是各项测试内容的计算结果:
SeruTek 双通道TDC测试报告

10.2345KHz 通道1、2残差序列:

SeruTek 双通道TDC测试报告SeruTek 双通道TDC测试报告

分析:在较大的时间间隔下,晶振的频率变化的高次分量对测量结果的影响非常明显。约50ps的残差抖动也较大,原因测量是包含了两个不同晶振的频率非线性变化。

10.2345KHz,通道1、2邻差序列及其均值、标准差

SeruTek 双通道TDC测试报告SeruTek 双通道TDC测试报告

理想情况下,10.23456KHz对应的时钟周期为97708730.28ps,而通道1、2的测量均值都为97708856.6ps,与理想值相差约126.3ps。计算可以得到TDC时钟与hit时钟的频率偏差约为126.3(ps)/97708730.28 (ps) = 1.29ppm。当然,近100us的时间间隔下,晶振频差已不能用简单的常数来表示了,所以这里算出的频差与之后采用更高频率hit信号算出的有微小的误差。

测试结果 – 100.23456KHz

被测信号为Si5341 EVB输出的1组(2路)LVCMOS25互补(相位相差180度)信号。Si5341设置的输出频率为100.23456KHz,以下截图是各项测试内容的计算结果:

SeruTek 双通道TDC测试报告

100.23456KHz 残差序列

SeruTek 双通道TDC测试报告SeruTek 双通道TDC测试报告
分析:随着hit频率提升近十倍,晶振频率的高次非线性变化的影响显著减小,但二次项的影响仍然明显。残差的标准差显著减小。

100.23456KHz 邻差序列

SeruTek 双通道TDC测试报告SeruTek 双通道TDC测试报告

理想情况下,100.23456KHz对应的时钟周期为9976598.89ps,而通道1、2的测量均值都为9976611.4ps,与理想值相差约12.51ps。计算可以得到TDC时钟与hit时钟的频率偏差约为12.51(ps)/9976598.89 (ps) = 1.25ppm。

测试结果 – 1.23456MHz

被测信号为Si5341
EVB输出的1组(2路)LVCMOS25互补(相位相差180度)信号。Si5341设置的输出频率为1.23456MHz,以下截图是各项测试内容的计算结果:
SeruTek 双通道TDC测试报告

1.23456MHz 测量残差

SeruTek 双通道TDC测试报告SeruTek 双通道TDC测试报告
分析:晶振频率变化仍然明显。但残差的标准差维持在20ps以下。

1.23456MHz 邻差序列

SeruTek 双通道TDC测试报告SeruTek 双通道TDC测试报告

理想情况下,1.23456MHz对应的时钟周期为810,005.18ps。通道1、2测得的时钟周期均值都为810006.2ps,有很好的一致性。与理想值的差值约为1ps,而可以计算得到TDC时钟与hit时钟的频率偏差约为1(ps)/810005.18
(ps) = 1.25ppm。

测试结果 – 10.23456MHz

被测信号为Si5341
EVB输出的1组(2路)LVCMOS25互补(相位相差180度)信号。Si5341设置的输出频率为10.23456MHz,以下截图是各项测试内容的计算结果:
SeruTek 双通道TDC测试报告

值得一提的是,这里计算出的通道之间时间戳的差值341365.22(ps)已经不能直接表征信号相位的差值了。这里的差值包含了使能TDC通道的时延。TDC
IP的通道使能是通过寄存器实现的。Zynq A9 或Miroblaze
通过Xil_Out32指令,经过AXI接口写入对应通道的寄存器,从而使能测量。
这整个过程需耗费数十个时钟周期。要在本次测试的使用的Artix开发板上,MCU是Miroblaze, 频率较低,因此出现了近300ns的时延。可通过简单计算,将341365.22-3*97708.29 =48240.35(ps),这样就符合通道1与通道2信号相差180度的条件了。在大部分应用中使能寄存器的延时并不构成问题,比如可以等使能所有通道后,再开放hit信号。如果客户应用需要极低的使能时延,可通过瑟如电子定制。

10.23456MHz 测量残差

SeruTek 双通道TDC测试报告SeruTek 双通道TDC测试报告

分析:在近似100ns的时间间隔下,晶振频率变化已不太明显。但残差的标准差维持在20ps以下。

10.23456MHz 邻差序列

SeruTek 双通道TDC测试报告SeruTek 双通道TDC测试报告
理想情况下,10.23456MHz对应的时钟周期为97708.16ps。通道1、2测得的时钟周期均值都为97708.3ps。与理想值的差值只有0.14ps,因为从之前的计算可以得到,晶振之间的频差约为1.25ppm,那么在97708ps的时间间隔下,带来的测时偏差为:1.25E-6 * 97708 (ps)=
0.12(ps)。可以印证,当扣除频差的影响后,2000余点平均后,测时精度小于0.1ps。

测试结果 – 70.23456MHz

被测信号为Si5341 EVB输出的1组(2路)LVCMOS25互补(相位相差180度)信号。Si5341设置的输出频率为70.23456MHz,以下截图是各项测试内容的计算结果:

SeruTek 双通道TDC测试报告
与10.23456MHz的情况一样,这里计算出的通道之间时间戳的差值333547.89(ps)已经不能直接表征信号相位的差值了。这里的差值包含了使能TDC通道的时延。如果客户应用需要极低的使能时延,可通过瑟如电子定制。

70.23456M 测量残差

SeruTek 双通道TDC测试报告SeruTek 双通道TDC测试报告

分析:在近似14ns的时间间隔下,又可以看到频率变化带来的波动。而且残差的标准差维持略微超出20ps。残差抖动的略微增大可能是由于70MHz的高频信号之间的串扰导致的。

70.23456M 邻差序列

SeruTek 双通道TDC测试报告SeruTek 双通道TDC测试报告

理想情况下,70.23456MHz对应的时钟周期为14238.00ps。通道1、2测得的时钟周期均值都为14238.0ps。在这么短的时间间隔下,1.25ppm的晶振间频差影响已经微乎其微。邻差的标准差达到了30ps左右,可能是由于杜邦线无屏蔽能力,hit频率增加引起的串扰增大,从而导致抖动增大。

通道间时延变化测试

多通道测量能力是SeruTek TDC极为重要的特性,不仅拓展了其使用场景,更大大简化了多通道TDC的部署与校准流程。对于SeruTek TDC IP而言,由于每个通道hit信号、时钟信号的走线长度不同,各通道间存在时延差。这些时延差是否固定,它们随结温变化的波动幅度关系到多通道TDC测量值的可信程度。在SeruTek TDC内部,针对重要的信号如时钟信号等都采用了低时延斜率(skew)布线资源,以减小通道时延差,并控制走线长度、减小结温对时延的影响。

对通道间时延采取多次断电重启FPGA开发板的方式,验证每次重启后对同一组(2路)hit时钟信号的时差测量值。从冷机状态到多次重启后,结温也会从50度左右上升到80度左右(通过JTAG口观察),可定性的评估结温变化时,通道时延的变化情况。下表列出了6次断电启动后,对同一组100.23456KHz互补信号进行测量,得到时间戳序列,并将通道2-通道1,得到通道差序列,并求平均值,录表于下:

1 4987697.69 ps
2 4987697.03 ps (-4988917.32)
3 4987698.37 ps (-4988915.98)
4 4987700.97 ps
5 4987701.43 ps
6 4987703.48 ps

由于TDC使能时刻相对于hit信号的相位是随机的,所以TDC使能后,有可能hit0先触发,也有可能hit1先触发。Hit1先触发时,通道2-通道1的时差值就为负值,为了便于比较,可加上一个周期的时差,使其为正。

可见尽管6次断电启动后,结温从50度上升到80度左右,但通道间时延差只变化了6ps,能够满足绝大部分应用的需求。

相关文章: