目录
简介
上文讲到触发的硬件电路实现,这节我们来讲如何触发如何在FPGA中进行实现。以及利用TDC提高触发精度
TDC是什么
TDC = 专门测量「两个触发信号之间的时间差」,把时间变成数字,让系统知道:什么时候发生了什么、间隔多久、延迟多少。
我们现在只讨论外部触发
由于采集时钟误差,是采集触发的重大误差之一。外部触发是异步信号,FPGA 系统时钟(例如 50MHz)只能按周期采样,TDC 能测量 "触发沿" 落在两个时钟之间的微小时间差,把精度细分到时钟周期以内。
对于一些高精度的脉冲信号而言,这种误差是不可忽视的。这里我们采用进位链的方式,来进行精准数据采集。
TDC的方式,我们采用FPGA的进位链
Xilinx / Intel FPGA 内部自带超高速进位延迟单元,延迟只有 50~300ps。
它能把一个时钟周期(20ns)切成 60~100 个小格子,每个格子就是精度。

根据对应的精度要求,选择对应的抽头,要求不高的我们采用一抽头就够了,如果精度要求高,那就比所有的抽头都拿出来,当然还需要校准,因为由于时钟的抖动,会产生气泡,
导致TDC的位数不准,所以需要进行校准。当然校准的设计不是我们这节文章索要展示的重点。
这样我们就能精准的指导触发上升沿到来的位置。
- 外部触发信号一进来,立刻打入一串进位链
- 进位链像一把超高速尺子
- 系统时钟采样这把尺子
- 得到 粗计数(时钟数) + 细计数(进位链位置)
- 总时间 = 粗时间 + 细时间
- 触发精度 = 细时间(ps 级)
FPGA 进位链 TDC = 把外部触发的精度从时钟周期,细分到 ps 级,让触发时刻无限精准。