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

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 支持 Kintex全系列,以及Zynq A7000中7030及以上型号。(不包含Ultrascale型号,未经测试)。

在测量精度上,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的容量。可根据使用芯片容量定制。
连续触发速率取决于采用的readout机制,当使用DMA时,单通道连续触发速率>30MSa/s。当配合riffa实现PCIE传输时,可在PCIE2.0 X8配置下实现多通道总和180Msa/s的连续采样速率。

测试设置

IP 设计

IP 接口

基于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 设计框图如下图:

在这里插入图片描述

该最小系统例化了一个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,其时钟信号由cmd_axi_aclk提供。

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

布局与资源利用

该示例的所使用资源在器件中的布局如下图:
在这里插入图片描述

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

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

在这里插入图片描述

能耗预估

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

在这里插入图片描述

软硬件环境

测试硬件组成:

  • 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信号的连接方式如下表:

Hit1CCIOLA00_P (FMC LPC breakout 2.54mm pin)
Hit2User IOUser GPIO SMA P(on KC705 board)
Hit3CCIOCLK0_M2C(FMC LPC breakout SMA)
Hit4CCIOLA17_P(FMC LPC breakout 2.54mm pin)

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

连接方式参考下图:

在这里插入图片描述

需要指出的是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,以下截图是各项测试内容的计算结果:

在这里插入图片描述
为了减少篇幅,便于阅读,现将通道1的各项数据绘制如下,如需完整数据,请联系瑟如电子,可提供原始数据以及python数据分析程序。

原始数据截图

下图为串口输出的原始时间戳数据截图。第一列为通道号,第二列为时间戳,单位是ns(小数点前一位表示ns)。在IP核内部4路TDC的输出通过AXI
Stream Interconnection 连接在一起,通过一个AXI Stream
Master输出,因此读出的数据中混有各通道的时间戳。
在这里插入图片描述

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

时间戳轨迹

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tyf0aDgU-1594111926647)(media/b459e7428e2a62e87a56f5de1d5f36cd.png)]

测量残差

将测量结果的时间序列做一阶拟合,然后将真值减去拟合值,得到残差,如下图。
在这里插入图片描述

残差Histogram

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

在这里插入图片描述

邻差序列

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

在这里插入图片描述

理想情况下,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)
12176.43-485.61131.83
22178.93-482.32140.20
32175.09-485.49132.61
42183.39-480.67132,44
52185.14-478.32135.40
62184.68-479.31132.46

可以看出chan2-chan1通道差较大,为2ns左右,而另外两组通道差都小于1ns。这是因为通道2用的是KC705 USER GPIO SMA,其对应的引脚不是CCIO,因此时延较大。通道间的时延差需要通过外部校准,校准以后的,对于使用CCIO的通道,校准后的时延差变化量<20ps。

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

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

Std(Chan2-Chan1) (ps)Std(Chan3-Chan1) (ps)Std(Chan4-Chan1) (ps)
124.0921.8916.26
224.1022.3916.13
323.4121.9015.37
424.5522.3815.95
523.7321.8916.32
623.7521.5816.13
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值