0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

聊聊FPGA中的TDC原理

智多晶 ? 来源:智多晶 ? 2025-09-02 15:15 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

01引言

你有没有想过,我们怎么才能精确地测量“时间”?

你可能会说,掐秒表不就完事了?那如果我们要测量的不是“秒”,而是皮秒(ps)——万亿分之一秒的时候,该怎么办?这可不是什么科幻情节,在雷达、激光测距、高能物理实验里,精确到皮秒级的时间测量,是家常便饭。想达到 20 ps 的测量精度,传统“脉冲计数法”(也就是掐秒表)需要 50 GHz 的时钟,如果非得这样的话,你得精通光学和应用物理学,好好读一读这篇《基于克尔光孤子晶体微梳的 49GHz 微波 Q 波段振荡器》,我们贴心的为你放出DOI号:doi: 10.1109/JLT.2019.2930466。

今天我们不谈高大上的物理学,只聊聊如何在 FPGA 中,用一串加法器和 D 触发器,“数清楚时间”——这就是时间数字转换器(TDC)的魅力。

02时间的多米诺骨牌

想象你有一串多米诺骨牌,推倒第一块,它就会一块接一块地倒下去。这个“倒下去”的速度,就是骨牌之间的“传播延迟”。FPGA里的加法器也有类似的“骨牌”——它叫进位链(Carry Chain)。在FPGA里,为了把两个数加起来又快又稳,芯片厂商把加法器的“进位”信号做成了一个专用的、超高速的“高速公路”。这条“高速公路”的延迟,可以短到 20ps!

我们设计一个特殊的加法器串。正常情况下,它在算 111...111 + 000...000,结果是 111...111,风平浪静。但就在某一瞬间,我们给它一个“开始”信号(Start),让它突然开始算 111...111 + 000...001。这个小小的“1”,就像推倒了第一块骨牌,一个“进位”信号会从最低位开始,一级一级地向高位“链式传递”。这个“进位”信号在链上传播的距离,就代表了从“开始”到“现在”过去了多少时间。

但问题来了:我们怎么“看到”这个传播到哪里了呢?答案是:“拍照”!我们在每一个加法器后面,都接一个“小相机”(D触发器),这个“小相机”的快门,由另一个时钟信号(我们叫它“采样时钟”或Strobe)控制。当“快门”一闪,所有“小相机”就同时拍下一张照片,记录下此刻进位信号传播到了哪一级。比如,照片显示前10级都变“0”了,那我们就知道,从“开始”到“拍照”这一刻,进位信号跑了10级。

8545f488-83ab-11f0-a18e-92fbcf53809c.png

关键问题来了:每一级进位链到底有多长?我们可以使用一个标准时间来预先测量,例如说看 1 us 内传播了多少级进位链,从而得到每一级的延迟。可现实是,每一级的延迟并不完全一样!FPGA 内部的进位链并不是一颗颗“标准骨牌”。有的块近(Slice 内),有的远(跨 Slice)。这怎么办?别慌,我们可以像摄影测量那样,对每个“骨牌段”单独标尺!

03码密度法:时间标尺的“数豆子法”

我们用了一个很巧妙的方法——码密度法,听起来高大上,其实就像……数豆子!我们让 Start 和 Strobe 信号变成两个不同频率的、不相关的时钟(clk_i 和 clk_d),拍照的频率要显著大于 Start 对应时钟的频率(可以理解为骨牌重新摆放好的操作频率),然后持续反复的摆好、推倒、再拍照。这样操作的目的是为了保证每次拍照的传播时间是随机的,也就是下图中的 t 是在 [0, Tc) 之间随机分布的,Tc 是 clk_d 的周期,也就是拍照的周期。

85587b3a-83ab-11f0-a18e-92fbcf53809c.png

每次拍,骨牌只倒到某一块,这个“最后倒下的块”的编号是我们关心的。我们反复拍了很多很多次,记录每一块“成为最后倒下者”的次数。次数越多,说明这块延迟时间越长——就像谁碗里的豆子最多,谁“最拖沓”。

这样,我们就得到了整条进位链的延迟分布图,堪比给骨牌链打上精确刻度线!通过这种方法,我们就能精确地测量出每一级进位链的真实延迟时间,无论它是快是慢。然后,我们把这些数据存成一个“查找表”。

一旦我们有了这个“查找表”,TDC就真正“毕业”了,以后再要测量一个时间间隔,我们只需要:给一个“开始”信号,用“快门”拍一张照,得到进位信号传播的“级数”,最后查表把每一级的延迟加起来,就能得到精确的时间!

04总结一下这个妙招

1. 把 TDC 的 Start 和 Strobe 信号换成两个“频率不搭”的时钟;

2. 一次次拍照,记录骨牌(进位链)传播的终点;

3. 每个位置被“命中”的次数越多,说明它的延迟越长;

4. 统计出每一级进位单元的真实延迟,形成查找表,实现时间间隔的高精度换算。

Tip

(本文基于西安智多晶微电子《基于码密度法的TDC_DEMO用户指南》整理,想了解技术细节的朋友可以访问智多晶官网获取)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1648

    文章

    22143

    浏览量

    622582
  • 振荡器
    +关注

    关注

    28

    文章

    4056

    浏览量

    141388
  • TDC
    TDC
    +关注

    关注

    0

    文章

    41

    浏览量

    14047
  • 时间数字转换器

    关注

    0

    文章

    4

    浏览量

    1569

原文标题:高精度时间测量就像数碗里的豆子?聊聊FPGA中的TDC原理

文章出处:【微信号:智多晶,微信公众号:智多晶】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MCU如何配置固定TDC

    如附图所示,在发送和接收消息期间,控制器开始发送比特的时间与从接收终端接收到位置的时间之间存在延迟,即发送节点的延迟。 数据字段 CANFD 的采样点需要采用发送节点延迟补偿机制(TDC 机制
    发表于 01-22 07:29

    有做过基于FPGATDC的吗?

    最近在做TDC,一直不明白如何设计验证,有没有之前做过的?
    发表于 05-13 09:55

    海信TDC3488彩电电路图

    海信TDC3488彩电电路图 海信TDC3488彩色电视机电路图,海信TDC3488彩电图纸,海信TDC3488原理图
    发表于 05-08 15:04 ?30次下载
    海信<b class='flag-5'>TDC</b>3488彩电电路图

    海信TDC2901彩电电路图

    海信TDC2901彩电电路图海信TDC2901彩色电视机电路图,海信TDC2901彩电图纸,海信TDC2901原理图
    发表于 05-08 15:05 ?23次下载
    海信<b class='flag-5'>TDC</b>2901彩电电路图

    tdc7200

    TDC7200是高精度计时器,该文档详细介绍了TDC7200的工作模式和性能参数
    发表于 05-24 17:12 ?10次下载

    AN0014_高精度低功耗芯片 TDC-GP2在热表的应用

    AN0014_高精度低功耗芯片 TDC-GP2在热表的应用_CN
    发表于 06-03 15:53 ?18次下载

    TDC-GP2在超声波流量计时差法的应用

    TDC-GP2在超声波流量计时差法的应用
    发表于 06-14 15:45 ?34次下载

    TDC-GP2(中文版)

    TDC_GP2
    发表于 06-14 14:26 ?0次下载

    TDC1011 TDC1011 用于液位感测、流量感测的超声波感测模拟前端 (AFE)

    电子发烧友网为你提供TI(ti)tdc1011相关产品参数、数据手册,更有tdc1011的引脚图、接线图、封装手册、中文资料、英文资料,tdc1011真值表,tdc1011管脚等资料,
    发表于 08-01 18:19
    <b class='flag-5'>TDC</b>1011 <b class='flag-5'>TDC</b>1011 用于液位感测、流量感测的超声波感测模拟前端 (AFE)

    TDC7200 TDC7200 面向水、燃气、热量计量应用的时间数字转换器

    电子发烧友网为你提供TI(ti)tdc7200相关产品参数、数据手册,更有tdc7200的引脚图、接线图、封装手册、中文资料、英文资料,tdc7200真值表,tdc7200管脚等资料,
    发表于 08-01 18:11
    <b class='flag-5'>TDC</b>7200 <b class='flag-5'>TDC</b>7200 面向水、燃气、热量计量应用的时间数字转换器

    TDC1000 TDC1000:超声波模拟前端

    电子发烧友网为你提供TI(ti)tdc1000相关产品参数、数据手册,更有tdc1000的引脚图、接线图、封装手册、中文资料、英文资料,tdc1000真值表,tdc1000管脚等资料,
    发表于 08-01 18:15
    <b class='flag-5'>TDC</b>1000 <b class='flag-5'>TDC</b>1000:超声波模拟前端

    TDC7201 适用于飞行时间应用的 TDC7201 时间数字转换器

    电子发烧友网为你提供TI(ti)tdc7201相关产品参数、数据手册,更有tdc7201的引脚图、接线图、封装手册、中文资料、英文资料,tdc7201真值表,tdc7201管脚等资料,
    发表于 08-01 18:15
    <b class='flag-5'>TDC</b>7201 适用于飞行时间应用的 <b class='flag-5'>TDC</b>7201 时间数字转换器

    使用FPGA实现TDC的设计报告资料说明

    TDC英文全名叫 Time to Digital Converter,即时间数字转换器。TDC广泛应用于高能物理粒子寿命检测,自动检测设备,激光探测,医疗图像扫描,相位测量,以及频率测量等研究领域
    发表于 03-05 11:47 ?18次下载
    使用<b class='flag-5'>FPGA</b>实现<b class='flag-5'>TDC</b>的设计报告资料说明

    fpga实现tdc的设计开题报告

    fpga实现tdc的设计开题报告(桂林长城电源技术有限公司)-该文档为fpga实现tdc的设计开题报告讲解文档,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看……………
    发表于 08-04 18:29 ?10次下载
    <b class='flag-5'>fpga</b>实现<b class='flag-5'>tdc</b>的设计开题报告

    浅析TDC1000-TDC7200超声波感应水流/液位/浓度评估模块

    TDC1000 -TDC7200EVM是一款评估模块 (EVM),允许用户评估带有 TDC7200 时间数字转换器的 TDC1000 超声波模拟前端的操作和性能。
    的头像 发表于 08-29 09:05 ?4061次阅读