1. TDC 延迟链的基本原理与挑战
时间数字转换器(TDC)的核心任务是将时间间隔转换为数字量。在皮秒(ps)级的高精度测量领域,FPGA 内部的进位链(Carry Chain)资源因信号传播速度快而适合实现此类测量。
延迟链的基本原理是:信号从链起点传播,每经过一级延迟单元产生固定时间延迟。当参考信号(如停止信号)到达时,通过检查链上每个单元的状态,计算信号传播的级数从而得出时间间隔。
实际应用中存在零宽度延迟单元问题。由于制造工艺偏差,部分单元几乎不产生延迟,破坏温度计码的连续性,导致非线性误差。
2. 码密度测试:诊断延迟链的健康状况
码密度测试是校准 TDC 的基础,原理类似统计学中的蒙特卡洛方法。使用 Start 信号和 Strobe 信号的两个不同频率且不相干的时钟,使每次采样的时间位置随机。通过大量采样统计每个延迟单元被'命中'的次数。
具体操作需进行数万至百万次采样。对于每个延迟单元,被命中次数越多说明其延迟时间越长,最终得到延迟时间的分布图。
在实际 FPGA 实现中,码密度测试代码示例如下:
// 码密度测试核心逻辑
always @(posedge clk) begin
if (reset) begin
counter <= 0;
density_table <= 0;
end else if (enable) begin
// 采集当前延迟链状态
sampled_chain <= delay_chain;
end
end

