SeruTek Plus 基于Kintex的4通道TDC–简介与测试

简介

SeruTek TDC 是上海瑟如电子公司开发的一款基于Xilinx 7系列FPGA/SoC的TDC IP核。当前,SeruTek TDC 分为2种型号。基本型号适用于全系列Artix-7,对Zynq最高支持到Z7020。从Z7030开始,Zynq更高阶的器件的PL部分等效于Kintex系列。虽然Kintex与Artix同为28nm制程,但速度更快,门延迟更小,因此在Kintex上TDC的形态也与Artix上的不同。基于这个原因,将适用与Kintex系列的TDC IP 单列一个型号,称为SeruTek Plus TDC。

在测量精度上,SeruTek Plus与基本型号大致相当。如果时钟信号和hit信号设计良好,SeruTek Plus的测量RMS精度能比基本型号小3-5ps,达到20ps。SeruTek Plus的主要优势在于更高的hit速率,从基本型的70MHz提升至90MHz,对应的单通道最小脉冲间隔从14ns提升至11ns。

此外,由于高阶器件资源更为丰富,便于多通道TDC与用户逻辑的集成,从而能够实现更为复杂的时间测量及数据处理逻辑。

以下对SeruTek TDC 基本型的介绍同样使用于SeruTek Plus。

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 Plus TDC的主要技术特性如下:

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

测试设置

IP 设计

SeruTek Plus 基于Kintex的4通道TDC 简介与测试

基于Kintex的4通道TDC IP如上图所示。下表是接口描述:

接口名称 输入/输出 功能
CMD_AXI 输入/输出 配置及控制TDC IP
CLK_IND_200MHz_clk_p/n 输入 200MHz差分参考时钟输入
arestn 输入 TDC IP 内部重置信号
cmd_axi_aclk 输入 CMD_AXI的时钟输入
Cmd_axi_arestn 输入 CMD_AXI的重置输入
Hitn(1…4) 输入 4路hit 脉冲信号
DATA_MAXIS 输出 输出timestamp的AXI-Stream Master 接口
CLK_OUT_100M 输出 输出100MHz频率,供Microblaze及相关外设使用
LOCKED 输出 内部MMCM锁定指示信号。可连接LED显示状态。可连接System processor reset的dcm_loced输入,实现reset时序。

示例程序

为了方便用户对4通道SeruTek Plus TDC IP进行快速测试与评估,我们开发了基于Xilinx官方开发板Avnet KC705的最小示例程序。

设计框图

示例的Vivado 设计框图如下图:

SeruTek Plus 基于Kintex的4通道TDC 简介与测试

该最小系统例化了一个MicroBlaze核,用以控制及配置TDC;128KB的BRAM用以储存程序及作为运行内存;一个UART_lite IP,波特率115200,用以打印时间戳信息;一个SeruTek Plus 4通道TDC IP;此外还例化了一个AXIS- FIFO,用来读取TDC IP输出的时间戳数据。

TDC IP具有1个AXI-lite接口:CMD_AXI,其附属的时钟和重置信号都可以通过Vivado的自动连接功能进行快速连接。 Zynq PS或MicroBlaze可通过CMD_AXI对TDC IP进行配置和控制。

时间戳原始数据通过TDC IP 上的Data_MAXIS接口向外输出。其Data宽度为12 bytes,其时钟信号在IP内部由CLK_OUT_100M提供。

与IP核一起发布的SDK函数库中提供了配置控制TDC IP以及读取时间戳并解码的函数,还提供了示例程序,用以采集时间戳数据后通过串口打印输出。

布局与资源利用

该示例的所使用资源在器件中的布局如下图:
SeruTek Plus 基于Kintex的4通道TDC 简介与测试

4通道TDC占用了两个时钟域:X0Y0和X0Y1。一部分BRAM被用作Microblaze的运存,另一部分被用作了TDC的高速FIFO。每通道FIFO的大小决定了该通道能够以高hit速率(最大约90Msa/s)测量的点数。在示例中,每通道配有2048点FIFO。FIFO大小可定制。

下图是4通道TDC最小系统所消耗资源的统计。值得注意的是,如果继续增加通道数,每增加一个通道需要增加一个BUFG。如果用户BUFG资源紧张,也可从普通IO引入hit信号,但根据测试经验,通道差在温度变化时的变化范围会增加。

SeruTek Plus 基于Kintex的4通道TDC 简介与测试

能耗预估

根据Vivado的Porject Summary预估的能耗,如下图:

SeruTek Plus 基于Kintex的4通道TDC 简介与测试

软硬件环境

测试硬件组成:

  • KC705开发板,芯片型号为XC7K325T-ffg9002-2;

  • 一块Si5338 开发板,作为TDC时钟源与hit信号源;

测试软件组成:

  • Vivado Suit 2019.1

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

SeruTek 4通道TDC 测试设置时钟及hit信号连接

KC705开发板购入已近5年,板载晶振抖动偏大。因此从Si5338 EVB引入一路200MHz LVDS信号接入KC705上的USER CLK SMA作为TDC的参考时钟源。4路hit信号也由Si5338产生。KC705通过一个FMC LPC、一个FMC
HPC接口引出了大量IO,除此之外只有一路差分USER GPIO
SMA可供使用。因此测试时,通过一块FMC LPC breakout转接板将 FMC
LPC的IO引出。4路hit信号的连接方式如下表:

Hit1 CCIO LA00_P (FMC LPC breakout 2.54mm pin)
Hit2 User IO User GPIO SMA P(on KC705 board)
Hit3 CCIO CLK0_M2C(FMC LPC breakout SMA)
Hit4 CCIO LA17_P(FMC LPC breakout 2.54mm pin)

其中除了Hit2用的是普通IO外,其它3路Hit信号都用的CCIO引脚。而4路信号中,hit3和hit2使用了SMA接口,接地性能较好,其它两路用的转接板上的2.54mm引脚,容易引起串扰。

连接方式参考下图:

SeruTek Plus 基于Kintex的4通道TDC 简介与测试

需要指出的是FMC转接板上总共有4路差分SMA,但其中3路是GT信号,无法作为hit信号的输入。

测试内容

在之前发布的《SeruTek双通道TDC测试报告》已经对Serutek TDC的各项指标进行了详尽的测试,如需了解SeruTek TDC在不同hit速率下的表现,请参阅该报告。

本次测试第一个考察项目是在最高90MHz hit 速率下,SeruTek Plus TDC的性能。

第二个考察项目是测量TDC IP核各通道之间的时延差波动。Hit信号的走线长度很难保证精确一致,这是因为hit信号线的长度是FPGA地板走线、核心板走线以及FPGA内部走线长度之和。因此当产品定型后,需要通过外部校准手段,校准各通道间的时延差。但时延差本身的波动是无法通过外部校准进行补偿的。因此,通道间的时延差波动对最终测时的准确度有着非常重要的影响。

测试结果 – 90.54321MHz

被测信号为Si5338 EVB输出的4路LVCMOS25信号,都为同相信号,频率为90.54321MHz,以下截图是各项测试内容的计算结果:

SeruTek Plus 基于Kintex的4通道TDC 简介与测试
为了减少篇幅,便于阅读,现将通道1的各项数据绘制如下,如需完整数据,和联系瑟如电子,提供原始数据以及分析的python程序。

原始数据截图

下图为串口输出的原始时间戳数据截图。第一列为通道号,第二列为时间戳,单位是ns(小数点前一位表示ns)。在IP核内部4路TDC的输出通过AXI
Stream Interconnection 连接在一起,通过一个AXI Stream
Master输出,因此读出的数据中混有各通道的时间戳。
SeruTek Plus 基于Kintex的4通道TDC 简介与测试

为了减少篇幅,便于阅读,现将通道1的各项数据绘制如下,如需完整数据,和联系瑟如电子,提供原始数据以及分析的python程序。

时间戳轨迹

SeruTek Plus 基于Kintex的4通道TDC 简介与测试

测量残差

将测量结果的时间序列做一阶拟合,然后将真值减去拟合值,得到残差,如下图。
SeruTek Plus 基于Kintex的4通道TDC 简介与测试

残差Histogram

对残差序列统计各取值区域出现的频率,绘制直方图。

SeruTek Plus 基于Kintex的4通道TDC 简介与测试

邻差序列

对测量结果序列前后做差,得到邻差序列,也就是相邻两个时间戳的差值序列。

SeruTek Plus 基于Kintex的4通道TDC 简介与测试

理想情况下,90.54321MHz对应的时钟周期为11044.45ps。所有通道测得的时钟周期均值为11044.47 ps或11044.48 ps。由于hit速率高90.54321MHz,因此每通道采样点的数量上限为每通道FIFO的深度(本示例中每通道FIFO深度为2048点,再加上AXIS Interconnection中还有一部分FIFO。在最大hit速率下,每通道可采约2200点)。可见在2000多点平均后,测时精度能达到0.1ps。

通道间时延变化测试

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

需要指出的是,通过FMC转接板将FMC LPC 的IO引出为2.54mm引脚这种形式,接地性能较差,在频率增大时容易发生串扰,所以hit频率不宜太高。

采取多次断电重启FPGA开发板的方式,验证每次重启后对相同hit时钟信号的时差测量值。下表列出了6次断电启动后,对2组(4路)180.54321KHz信号进行测量,所有信号都是同相信号。得到时间戳序列,并将通道n-通道1,得到通道间时差序列,每个通道2230个点,求平均值及标准差,录表于下:

Mean(Chan2-Chan1) (ps) Mean(Chan3-Chan1) (ps) Mean(Chan4-Chan1) (ps)
1 2176.43 -485.61 131.83
2 2178.93 -482.32 140.20
3 2175.09 -485.49 132.61
4 2183.39 -480.67 132,44
5 2185.14 -478.32 135.40
6 2184.68 -479.31 132.46

可以看出chan2-chan1通道差较大,为2ns左右,而另外两组通道差都小于1ns。这是因为通道2用的是KC705 USER GPIO SMA,其对应的引脚不是CCIO,因此时延较大。

从测试结果可以看出,在6次断电启动的过程中,各通道间时延差变化小于10ps,能够满足绝大部分应用的需求。

下表为通道时差测量值的方差。由于采用转接板的方式,对信号串扰抑制较差,所以结果仅供参考。虽然通道4-通道1的方差较小,但是很有可能是因为两者之间的串扰,使得连个本来相位接近的信号相位更加趋于一致。这两路hit信号都是通过转接板的2.54mm引脚引入的。

Std(Chan2-Chan1) (ps) Std(Chan3-Chan1) (ps) Std(Chan4-Chan1) (ps)
1 24.09 21.89 16.26
2 24.10 22.39 16.13
3 23.41 21.90 15.37
4 24.55 22.38 15.95
5 23.73 21.89 16.32
6 23.75 21.58 16.13

相关文章:

  • 2022-01-15
  • 2021-09-26
  • 2021-11-03
  • 2021-11-03
  • 2021-08-07
  • 2022-12-23
  • 2021-06-27
  • 2022-12-23
猜你喜欢
  • 2021-10-08
  • 2021-12-30
  • 2022-01-20
  • 2021-10-12
  • 2021-05-23
  • 2021-09-17
  • 2021-09-22
相关资源
相似解决方案