我正在设计时间要求严格的应用程序,我需要 100 皮秒的时间分辨率。
我正在考虑制作一个 20 GHz 的环形振荡器和来自环形振荡器的时钟。
是否有适用于它的 IC,或者我可以使用 CoolRunner II CPLD 或其他 FPGA 来实现它吗?
我查看了它的数据表,系统时钟的最大频率约为 256 MHz,外部时钟为 145 MHz。数据表
我应该寻找更快的设备还是有其他方法来构建它?
我正在设计时间要求严格的应用程序,我需要 100 皮秒的时间分辨率。
我正在考虑制作一个 20 GHz 的环形振荡器和来自环形振荡器的时钟。
是否有适用于它的 IC,或者我可以使用 CoolRunner II CPLD 或其他 FPGA 来实现它吗?
我查看了它的数据表,系统时钟的最大频率约为 256 MHz,外部时钟为 145 MHz。数据表
我应该寻找更快的设备还是有其他方法来构建它?
15 年前,我设计了一个双参数数字化仪(能量和时间)来测量飞行时间。对于这个系统,我在一个由 JFET 复位的电容中使用了一个恒流源。在接收到触发(NIM 快速逻辑,电平转换保持在模拟(而不是饱和开关)状态)时,JFET 打开,我能够通过将线性斜坡数字化并从 62.5MSPS ADC 中插值来实现 50ps 分辨率FPGA 电路非常简单,与仿真完美匹配。
正如有人已经指出的那样,有专门用于此目的的 IC。
如果你想自己做,一种可能的方法是使用所谓的游标延迟线。
您有两条延迟线(缓冲区链),其中一条链使用比另一条更快的缓冲区。测量的分辨率等于快链和“慢”链中元素的延迟差。
为了测量延迟,您通过慢速链发送开始脉冲,通过快速链发送停止脉冲。停止脉冲传播得更快,最终将赶上启动脉冲。所需的缓冲区数量将作为延迟的衡量标准。
我的重点是 IC 设计,所以我不确定这是否可以用 FPGA 来完成。不过,文献表明这是可能的。
很久以前,作为一个思想实验,我“设计”了一个时间捕捉FPGA。
它有一个环形振荡器,除了它有 41 个反相器之外,它是传统的。因此,该周期远低于任何门的延迟。FPGA 工艺的单个门延迟降低到 10 秒,其中路由是本地的并且扇出低,但由于块之间的多路复用、路由和加载延迟,它只能处理 100 兆赫左右的系统时钟。
然后,时间捕获过程使用 41 个 D 锁存器,每个 D 锁存器都捕获输入转换,但当然时钟在环形计数器周期的不同阶段。D-锁存器的输出可以解释为“温度计代码”,将输入转换插入到子周期精度,分辨率为 pS 的 10 秒。另外 41 个 D 锁存器捕获了一个参考时钟。
这种结构有两个主要困难。首先是让综合工具以高速方式将环形计数器和线路布置到 D 锁存器。通过直接手动放置可能会更好地处理这部分。它可能需要一种特定类型的小型高速 FPGA,也许是没有乘法器和处理器内核的!第二个是对温度计代码和由较低频率参考计时的传统计数器之间重叠的无竞争处理,但可以做到这一点,解决亚稳态问题。
我没有追求它,因为我找到了解决问题的更好方法,但它很有趣。
正如其他答案所指出的那样,FPGA 结构不能以您需要的速率提供时钟。
但是,一些 FPGA 还具有 5Gb/s 到 10Gb/s 范围内的高速串行接口,用于 SATA、PCIe 和其他高速通信协议。
可能有一些方法可以利用这些方法进行高分辨率(100ps 但可能不是 50ps)时间测量。
抱歉,我不能更具体地了解细节。