CN108061848B - 基于fpga的加法进位链延时的测量方法及系统 - Google Patents
基于fpga的加法进位链延时的测量方法及系统 Download PDFInfo
- Publication number
- CN108061848B CN108061848B CN201711277942.4A CN201711277942A CN108061848B CN 108061848 B CN108061848 B CN 108061848B CN 201711277942 A CN201711277942 A CN 201711277942A CN 108061848 B CN108061848 B CN 108061848B
- Authority
- CN
- China
- Prior art keywords
- carry chain
- pulse test
- test signal
- carry
- position value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 239000000654 additive Substances 0.000 title description 4
- 230000000996 additive effect Effects 0.000 title description 4
- 238000012360 testing method Methods 0.000 claims abstract description 102
- 230000008859 change Effects 0.000 claims abstract description 22
- 238000005259 measurement Methods 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 34
- 238000005070 sampling Methods 0.000 claims description 34
- 230000000630 rising effect Effects 0.000 claims description 13
- 238000000691 measurement method Methods 0.000 claims description 10
- 230000008054 signal transmission Effects 0.000 claims 1
- 229920000729 poly(L-lysine) polymer Polymers 0.000 description 5
- 238000010516 chain-walking reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 101100240461 Dictyostelium discoideum ngap gene Proteins 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/2851—Testing of integrated circuits [IC]
- G01R31/2882—Testing timing characteristics
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31725—Timing aspects, e.g. clock distribution, skew, propagation delay
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Tests Of Electronic Circuits (AREA)
- Measurement Of Unknown Time Intervals (AREA)
Abstract
本发明提供了一种基于FPGA的加法进位链延时的测量方法及系统,该测量方法包括:脉冲测试信号触发多位加法器的进位链,且根据当前的脉冲测试信号的变化情况采集进位链的运行位置值;以产生脉冲测试信号的时钟周期为间隔,依次平移脉冲测试信号,且在每次平移脉冲测试信号后,均重新触发及获取运行位置值,直到获取得到进位链中全部运行位置所对应的运行位置值;以及获取进位链的各运行位置值与对应的各脉冲测试信号的位置之间的关系数据,并根据该关系数据得到进位链的各运行位置处的延时时间。本发明能够实时测量出不同进位链之间的延迟时间,避免温度,电压波动的影响,进而能够实现基于FPGA的TDC组件的高精度计时。
Description
技术领域
本发明涉及数字化测量技术领域,具体涉及一种基于FPGA的加法进位链延时的测量方法及系统。
背景技术
在基于FPGA的时间数字转换TDC设计架构中,使用进位链延迟链来获取高精度的延时信息已被广泛使用,然而,这种基于进位链结构的TDC受限于进位链的均匀性,不同的环境温度,不同的FPGA都会使进位链延时发生变化,这是提高TDC性能的主要限制性因素,因而需要对进位链的延迟时间进行实时测量。
目前,进位链测量方式主要分模拟和数字两种,其中模拟方式主要通过反馈电路实现,常用于集成芯片,而FPGA芯片中实现进位链测量主要通过数字方式实现。目前主要有两种实现方式,分别是平均延时和BIN-by-BIN方式,所述的BIN指的就是单个进位链。
其中的所述的平均延时方式,就是测量多个进位链总延时求平均得到单个进位链延时,具体实现方法如下:设计一条总的延时时间长度大于一个时钟周期的加法进位链,当外部HIT触发进位链进位时,该HIT会被加法进位链“捕获”两次,那么两次“捕获”之间的时间间隔就正好等于一个时钟周期,而两次“捕获”之间进位链个数是可以测得的,通过时钟周期除以进位链个数就可得到单个进位链的平均延迟时间,所述的HIT为脉冲测试信号。实际情况下,测得进位链个数不是一个固定值,甚至需要用小数来表示,所以平均测量法也需要重复多次测量,这样才能够提供更高精度的校准,该方法可在系统运行过程中实时测量,但无法反应各进位链延迟时间的差异性,精确度有所欠缺。
其中的BIN-by-BIN方式需要测量每位进位链的延迟时间,通常使用码密度法测量,该方法具体如下:在系统外部产生一个和采样时钟不相关的方波信号作为Hit信号,该信号的每个上升沿都会触发一次时间标记测量,由于Hit信号和采样时钟不相关,多次测量之后,Hit信号的触发时刻应该均匀地分布在采样时钟的一个周期内,因而触发器阵列锁存下来的进位链运行状态,其上升沿或下降沿的位置应该等概率地分布在一个周期内,反过来,每个进位链捕获的HIT数应该和该进位链的延迟时间成正比,据此就可以测得每个进位链的延迟时间,但该方法只能在系统运行之前测量,无法根据环境温度,工作电压进行实时调整。
发明内容
针对现有技术中的问题,本发明提供一种基于FPGA的加法进位链延时的测量方法及系统,能够实时测量出不同进位链之间的延迟时间,避免温度,电压波动的影响,进而能够实现基于FPGA的TDC组件的高精度计时。
为解决上述技术问题,本发明提供以下技术方案:
第一方面,本发明提供一种基于FPGA的加法进位链延时的测量方法,所述测量方法用于在FPGA中的多位加法器进行实际计时测量的空闲时间内,对加法进位链延时进行测量,所述测量方法包括:
步骤1:脉冲测试信号触发所述多位加法器的进位链,且根据当前的所述脉冲测试信号的变化情况采集所述进位链的运行位置值;
步骤2:以产生脉冲测试信号的时钟周期为间隔,依次平移所述脉冲测试信号,且在每次平移所述脉冲测试信号后,均返回步骤1,直到获取得到所述进位链中全部运行位置所对应的运行位置值;
步骤3:获取所述进位链的各运行位置值与对应的各脉冲测试信号的位置之间的关系数据,并根据该关系数据得到所述进位链的各运行位置处的延时时间;
其中,所述脉冲测试信号的产生时钟频率和采样时钟频率不同。
进一步地,在所述步骤1之前,所述方法还包括:
预获取用于采集所述进位链的运行位置值的采样时钟和用于发出所述脉冲测试信号的产生时钟的同步周期T;
相对应的,所述步骤1,包括:
步骤11:所述脉冲测试信号在每个所述同步周期T中均重新产生,且每个重新产生的脉冲测试信号均触发所述多位加法器的进位链;
步骤12:在各个同步周期T中分别根据所述脉冲测试信号的变化情况采集对应的所述进位链的待选位置值;
步骤13:在所述待选位置值中选取出现概率最大的值作为所述进位链当前的运行位置值。
进一步地,所述步骤11,包括:
所述脉冲测试信号在每个所述同步周期T中均重新产生,且每个重新产生的脉冲测试信号均经所述多位加法器的加数端的首位触发该多位加法器的进位链;
其中,所述进位链的加数端的除首位之外的其余位均为0,且所述进位链的被加数端的全部位均为1。
进一步地,所述步骤12,包括:
步骤121:在各个同步周期T中分别采集所述脉冲测试信号的变化为上升沿状态时的所述进位链的第一待选位置值,以及
步骤122:在各个同步周期T中分别采集所述脉冲测试信号的变化为下降沿状态时的所述进位链的第二待选位置值。
进一步地,所述步骤121,包括:
在所述脉冲测试信号每次变化为上升沿状态时,均对处于进位过程中的多位加法器的第一结果值进行锁存;
以及,对所述第一结果值中的0值进行计数,遇到1值时停止计数,得到处于进位过程中的进位链的第一待选位置值;
相对应的,所述进位链当前的运行位置值包括:处于进位过程中的进位链的第一运行位置值。
进一步地,所述步骤122,包括:
在所述脉冲测试信号每次变化为下降沿状态时,均对处于复位过程中的多位加法器的第二结果值进行锁存;
以及,对所述第二结果值中的1值进行计数,遇到0值时停止计数,得到处于复位过程中的进位链的第二待选位置值;
相对应的,所述进位链当前的运行位置值包括:
处于复位过程中的进位链的第二运行位置值。
进一步地,所述步骤3,包括:
步骤311:获取所述进位链的各所述第一运行位置值与对应的各脉冲测试信号的位置之间的第一关系数据;
步骤312:根据所述第一关系数据分别获取各相邻的第一运行位置值之间的时间间隔,即得到处于进位过程中的进位链的各运行位置处的延时时间。
进一步地,所述步骤3,包括:
步骤321:获取所述进位链的各所述第二运行位置值与对应的各脉冲测试信号的位置之间的第二关系数据;
步骤322:根据所述第二关系数据分别获取各相邻的第二运行位置值之间的时间间隔,即得到处于复位过程中的进位链的各运行位置处的延时时间。
第二方面,本发明提供一种基于FPGA的加法进位链延时的测量系统,所述测量系统用于实现所述的测量方法,且所述测量系统包括:
FPGA中的参考时钟、采样时钟、双路选择器和多位加法器;
所述参考时钟用于产生所述脉冲测试信号;
所述采样时钟用于根据当前的所述脉冲测试信号的变化情况采集所述进位链的运行位置值;
所述双路选择器包括输出端、第一输入端和第二输入端;
其中,所述输出端连接至所述多位加法器的加数端的首位;
所述参考时钟产生的所述脉冲测试信号经所述双路选择器的第一输入端连接至所述多位加法器;
所述双路选择器的第二输入端连接回波端口,使得所述多位加法器进行实际计时测量。
进一步地,所述参考时钟和所述采样时钟分别由所述FPGA中的两个不同的PLL模块产生。
由上述技术方案可知,本发明提供的基于FPGA的加法进位链延时的测量方法包括:脉冲测试信号触发多位加法器的进位链,且根据当前的脉冲测试信号的变化情况采集进位链的运行位置值;以产生脉冲测试信号的时钟周期为间隔,依次平移脉冲测试信号,且在每次平移脉冲测试信号后,均重新触发及获取运行位置值,直到获取得到进位链中全部运行位置所对应的运行位置值;以及获取进位链的各运行位置值与对应的各脉冲测试信号的位置之间的关系数据,并根据该关系数据得到进位链的各运行位置处的延时时间;能够实时测量出不同进位链之间的延迟时间,避免温度,电压波动的影响,进而能够实现基于FPGA的TDC组件的高精度计时,且相比于平均校准方法,结果更加精确。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一中的基于FPGA的加法进位链延时的测量方法的第一种具体实施方流程示意图;
图2是本发明实施例一中的基于FPGA的加法进位链延时的测量方法中于步骤100之前执行的步骤A及步骤100的具体展开后的具体实施方流程示意图;
图3是本发明实施例二中的基于FPGA的加法进位链延时的测量系统的结构示意图;
图4是本发明实施例二中的测量系统进行的加法进位链延时的测量的逻辑过程图;
图5是本发明的加法进位链级联图;
图6是本发明中的STOP信号的产生时序图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例一提供一种基于FPGA的加法进位链延时的测量方法的第一种具体实施方式,参见图1,所述基于FPGA的加法进位链延时的测量方法用于在FPGA中的多位加法器进行实际计时测量的空闲时间内,对加法进位链延时进行测量,且所述测量方法具体包括如下内容:
步骤1:脉冲测试信号触发所述多位加法器的进位链,且根据当前的所述脉冲测试信号的变化情况采集所述进位链的运行位置值。
在步骤1中,所述基于FPGA的加法进位链延时的测量方法具体可以应用一种基于FPGA的加法进位链延时的测量系统来实现,所述测量系统具体包括:FPGA中的参考时钟CLK_ref、采样时钟CLK_sam、双路选择器和多位加法器;所述参考时钟CLK_ref用于产生所述脉冲测试信号;所述采样时钟CLK_sam用于根据当前的所述脉冲测试信号的变化情况采集所述进位链的运行位置值;所述双路选择器包括输出端、第一输入端和第二输入端;其中,所述输出端连接至所述多位加法器的加数端的首位;所述参考时钟CLK_ref产生的所述脉冲测试信号经所述双路选择器的第一输入端发射至所述多位加法器;所述双路选择器的第二输入端连接回波端口,使得所述多位加法器进行实际计时测量。
在上述描述中,所述脉冲测试信号的产生时钟频率和采样时钟频率不同。可以理解的是,为了获得足够的测量精度,所述参考时钟CLK_ref与采样时钟CLK_sam频率之差△f越小越好,且所述参考时钟和采样时钟频率越高越好,在本实施例中的参考时钟CLK_ref与采样时钟CLK_sam均为高频时钟,且二者频率均可以为介于250MHz-400MHz之间的不同值;所述△f可以介于1MHz-5MHz之间。
步骤2:以产生脉冲测试信号的时钟周期为间隔,依次平移所述脉冲测试信号,且在每次平移所述脉冲测试信号后,均返回步骤1,直到获取得到所述进位链中全部运行位置所对应的运行位置值。
在步骤2中,以产生脉冲测试信号的时钟周期为间隔,依次平移所述脉冲测试信号,通过不断改变所述测试信号STOP在同步周期中的相对位置,每次变化一个参考时钟周期Tref,重复以上测量步骤,得到一组进位链运行位置值。
步骤3:获取所述进位链的各运行位置值与对应的各脉冲测试信号的位置之间的关系数据,并根据该关系数据得到所述进位链的各运行位置处的延时时间。
在步骤3中,根据所述进位链的各运行位置值与对应的各脉冲测试信号的位置之间的关系数据,计算出加法进位链运行到不同位置,即不同CNT_rise/CNT_fall之间的时间间隔,完成进位链时间间隔的测量。
在一种具体实施方式中,参见图2,步骤1之前还可以包括步骤A,具体包括如下内容:
步骤A:预获取用于采集所述进位链的运行位置值的采样时钟和用于发出所述脉冲测试信号的产生时钟的同步周期T。
步骤11:所述脉冲测试信号在每个所述同步周期T中均重新产生,且每个重新产生的脉冲测试信号均触发所述多位加法器的进位链。
在步骤11中,具体包括如下内容:
所述脉冲测试信号在每个所述同步周期T中均重新产生,且每个重新产生的脉冲测试信号均经所述多位加法器的加数端的首位触发该多位加法器的进位链;
其中,所述进位链的加数端的除首位之外的其余位均为0,且所述进位链的被加数端的全部位均为1。
步骤12:在各个同步周期T中分别根据所述脉冲测试信号的变化情况采集对应的所述进位链的待选位置值。
步骤13:在所述待选位置值中选取出现概率最大的值作为所述进位链当前的运行位置值。
可以理解的是,通过计算得到两个时钟周期的同步周期T,T=Tref×N1=Tsam×N2,其中,Tref为参考时钟CLK_ref的时钟周期,Tsam为采样时钟CLK_sam的时钟周期;N1、N2为整数,表示两个时钟分别经过N1、N2个时钟周期后,两个时钟的相位关系保持不变;通过在多个同步周期T中的多次测量,能够得到该测试信号对应的进位链运行位置最大概率值,进而能够进一步提高不同进位链之间的延迟时间的测量准确性。
从上述描述可知,本发明的实施例提供的基于FPGA的加法进位链延时的测量方法,能够实时测量出不同进位链之间的延迟时间,避免温度,电压波动的影响,进而能够实现基于FPGA的TDC组件的高精度计时,且相比于平均校准方法,结果更加精确。
在一种具体实施方式中,所述基于FPGA的加法进位链延时的测量方法中的所述步骤12具体包括如下内容:
步骤121:在各个同步周期T中分别采集所述脉冲测试信号的变化为上升沿状态时的所述进位链的第一待选位置值,以及,步骤122:在各个同步周期T中分别采集所述脉冲测试信号的变化为下降沿状态时的所述进位链的第二待选位置值。
在上述描述中,步骤121和步骤122仅代表标识作用,并不标识执行步骤之间的先后顺序,也就是说,步骤121可以先于步骤122执行、后于步骤122执行、也可以与步骤122同步执行。
其中,所述步骤121,还具体包括如下内容:
在所述脉冲测试信号每次变化为上升沿状态时,均对处于进位过程中的多位加法器的第一结果值R_rise进行锁存。
以及,对所述第一结果值R_rise中的0值进行计数,遇到1值时停止计数,得到处于进位过程中的进位链的第一待选位置值。
可以理解的是,对所述第一结果值R_rise中的0值进行计数的单元可以为计数器。
相对应的,所述进位链当前的运行位置值包括:处于进位过程中的进位链的第一运行位置值CNT_rise。
其中,所述步骤122,还具体包括如下内容:
在所述脉冲测试信号每次变化为下降沿状态时,均对处于复位过程中的多位加法器的第二结果值R_fall进行锁存。
以及,对所述第二结果值R_fall中的1值进行计数,遇到0值时停止计数,得到处于复位过程中的进位链的第二待选位置值。
可以理解的是,对所述第二结果值R_fall中的1值进行计数的单元也可以为计数器。
相对应的,所述进位链当前的运行位置值包括:处于复位过程中的进位链的第二运行位置值CNT_fall。
从上述描述可知,本发明的具体实施方式提供的基于FPGA的加法进位链延时的测量方法,能够实时测量出不同进位链之间的延迟时间,避免温度,电压波动的影响。
在一种具体实施方式中,本发明的步骤3具体包括如下内容:
其一,若所述进位链当前的运行位置值为处于进位过程中的进位链的第一运行位置值CNT_rise,则所述步骤3的第一种情形包括:
步骤311:获取所述进位链的各所述第一运行位置值CNT_rise与对应的各脉冲测试信号的位置之间的第一关系数据;
步骤312:根据所述第一关系数据分别获取各相邻的第一运行位置值CNT_rise之间的时间间隔,即得到处于进位过程中的进位链的各运行位置处的延时时间。
其二,若所述进位链当前的运行位置值为处于复位过程中的进位链的第二运行位置值CNT_fall,则所述步骤3的第二种情形包括:
步骤321:获取所述进位链的各所述第二运行位置值CNT_fall与对应的各脉冲测试信号的位置之间的第二关系数据。
步骤322:根据所述第二关系数据分别获取各相邻的第二运行位置值CNT_fall之间的时间间隔,即得到处于复位过程中的进位链的各运行位置处的延时时间。
其三,若所述进位链当前的运行位置值即包括处于进位过程中的进位链的第一运行位置值CNT_rise,又包括第二运行位置值CNT_fall,则所述步骤3的第三种情形包括:
步骤331:获取所述进位链的各所述第一运行位置值CNT_rise与对应的各脉冲测试信号的位置之间的第一关系数据,以及,获取所述进位链的各所述第二运行位置值CNT_fall与对应的各脉冲测试信号的位置之间的第二关系数据。
步骤332:根据所述第一关系数据分别获取各相邻的第一运行位置值CNT_rise之间的时间间隔,即得到处于进位过程中的进位链的各运行位置处的延时时间,以及,根据所述第二关系数据分别获取各相邻的第二运行位置值CNT_fall之间的时间间隔,即得到处于复位过程中的进位链的各运行位置处的延时时间。
从上述描述可知,本发明的具体实施方式提供的基于FPGA的加法进位链延时的测量方法,在能够实时测量出不同进位链之间的延迟时间的同时,能够进一步有效提高测量的准确性。
针对所述基于FPGA的加法进位链延时的测量方法,本发明还提供一种应用实例,其中,所述脉冲测试信号简称为STOP信号,具体包括如下内容:
FPGA产生两个频率之差为△f的高速时钟CLK_ref和CLK_sam,其中CLK_ref用于产生测试脉冲信号STOP,CLK_sam用于锁存进位链运行位置,为了获得足够的测量精度,CLK_ref和CLK_sam的频率越高越好,△f则越小越好,合理的取值范围为:CLK_ref介于250MHz-400MHz之间,△f介于1MHz-5MHz之间。以CLK_ref时钟周期为间隔不断平移STOP信号,改变了STOP信号与CLK_sam锁存边沿的相对位置,测出一系列进位链运行位置值,利用公式t(j-i)=Nij×|Tref-Tsam|可计算得到进位链不同位置间的时间间隔,其中Nij为标号为i与标号为j的进位链间的进位链个数,Tref为CLK_ref的时钟周期,Tsam为CLK_sam的时钟周期。
具体步骤如下:
第一步,利用FPGA芯片内部的两个不同的PLL模块产生两个频率相差△f的的时钟采样时钟CLK_sam和参考时钟CLK_ref。通过计算得到两个时钟周期的同步周期T,T=Tref×N1=Tsam×N2,其中N1、N2为整数,表示两个时钟分别经过N1、N2个时钟周期后,两个时钟的相位关系保持不变。
外部环境(温度/电源电压)的变化会对外部晶振及内部PLL模块的输出产生影响,但该影响并不会改变两时钟的同步周期数(T1,T2),且对两时钟周期之差|Tref-Tsam|的影响也较小,因而可以忽略其对测量准确度的影响。
第二步,FPGA内部逻辑产生一多位加法器电路和一双路选择器,双路选择器的输入端分别连接测试脉冲信号STOP和实际计时测量信号,输出端连接至加法器加数端最低位,加数端其余位全为0,被加数端全为1,形成加法进位链。通过双路选择器切换可以在测量实际计时信号的间隙对进位链延时进行测量。
第三步,FPGA内部产生一计数器CNT_ref,随着参考时钟CLK_ref循环递增计数,变化范围为0-(N1-1);每当CNT_ref等于设定值SET_REF_CNT时,产生脉宽为整数个时钟周期的STOP信号,其高电平持续时间大于所述加法进位链进位总时间。
当STOP信号高电平触发加法进位链进位后,通过检测加法器输出状态最低位由1变为0,在采样时钟的上升沿锁存此时的加法器输出状态值R_rise。
而当STOP信号由高电平变为低电平后,加法器由于加数端缺少输入,逐渐恢复为初始状态,通过检测加法器输出状态最低位由0变为1,在采样时钟的上升沿锁存此时的加法器输出状态值R_fall。
第四步,从最低位开始计数R_rise中的0值,遇到1停止计数,得到进位链此时的运行位置CNT_rise。
类似的,从最低位开始计数R_fall中的1值,遇到0停止计数,得到进位链此时的运行位置CNT_fall。
第五步,为了避免时钟抖动等因素的影响,重复多次测量,每经所述同步周期T,均得到一组CNT_rise,CNT_fall数据,将CNT_rise,CNT_fall出现概率最大的值作为当前情况(CNT_ref=SET_REF_CNT)下的进位链运行位置值。
第六步,平移STOP信号1个Tref,即SET_REF_CNT加1。重复第三步产生STOP脉冲进行循环测试,得到一系列的CNT_rise,CNT_fall值,当测得的数据覆盖整个进位链运行的各个位置后,完成测试。
SET_REF_CNT加1意味着进位链运行位置变化了|Tref-Tsam|,该值即测量进位链的最小刻度值LSB。由于LSB远小于单个进位链的延迟时间,同一标号CNT_rise/CNT_fall对应一系列SET_REF_CNT值,取SET_REF_CNT的中位值作为当前标号进位链的位置。
计算相邻标号CNT_rise/CNT_fall对应的SET_REF_CNT的中位值差值Ngap,则两标号之间的间隔时间为Tgap=Ngap×LSB,同样方法可计算出不同标号进位链间的延迟时间。
将延迟时间分别存入时间间隔数据表RAM_rise/RAM_fall中。
根据高精度FPGA TDC计时的需求,本发明利用两个不同频率的高速时钟测量得到加法进位链不同位置间的时间间隔,可在实际测量过程中实现实时高精度校准。
本发明的实施例二还提供能够实现上述全部基于FPGA的加法进位链延时的测量方法中的步骤的一种基于FPGA的加法进位链延时的测量系统,参见图3,所述测量系统具体包括如下内容:
FPGA中的参考时钟CLK_ref、采样时钟CLK_sam、双路选择器MUX和多位加法器;所述参考时钟用于产生所述脉冲测试信号;所述采样时钟用于根据当前的所述脉冲测试信号的变化情况采集所述进位链的运行位置值;所述双路选择器包括输出端、第一输入端和第二输入端;其中,所述输出端连接至所述多位加法器的加数端的首位;所述参考时钟产生的所述脉冲测试信号经所述双路选择器的第一输入端连接至所述多位加法器;所述双路选择器的第二输入端连接回波端口,使得所述多位加法器进行实际计时测量;所述参考时钟和所述采样时钟分别由所述FPGA中的两个不同的PLL模块产生。
在上述描述中,FPGA内部产生两个高频时钟,一为采样时钟,一为参考时钟,参考时钟周期性的产生一个脉冲测试信号,该信号连接至加法器的输入端,当信号产生后,加法器开始逐个进位,此时利用采样时钟锁存进位链运行位置状态,多次测量后,得到该测试信号对应的进位链运行位置最大概率值,之后以参考时钟周期为间隔平移测试信号,重复之前的锁存过程,对应的得到另一个进位链运行位置,两位置之间的间隔为所述采样时钟和参考时钟的时钟周期之差,不断平移脉冲测试信号,得到一组进位链位置和测试信号位置的对应关系数据,进而计算出加法进位链不同位置的间隔时间,进而可用于FPGA TDC计时的校准模块,相比于平均校准方法,结果更加精确。
本发明提供的基于FPGA的加法进位链延时的测量系统的实施例具体可以用于执行上述基于FPGA的加法进位链延时的测量方法的实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
从上述描述可知,本发明的实施例提供的基于FPGA的加法进位链延时的测量系统,能够实时测量出不同进位链之间的延迟时间,避免温度,电压波动的影响,进而能够实现基于FPGA的TDC组件的高精度计时,且相比于平均校准方法,结果更加精确。
在一种具体的应用举例中,应用本发明的基于FPGA的加法进位链延时的测量系统来实现基于FPGA的加法进位链延时的测量方法,具体包括如下内容:
如图4所示,FPGA的输入时钟CLKIN为50MHz,利用两个PLL倍频产生频率为302.083333MHz的参考时钟CLK_ref和301.785714MHz的采样时钟CLK_sam,两者的时钟周期之差LSB=1/CLK_ref-1/CLK_sam=3.26ps。
STOP测试脉冲与回波端口分别连接至双路选择器MUX的输入端,MUX输出连接至FPGA加法进位链起始端。
如图5所示,FPGA内部生成一长度为80bit的加法器,加数端A的最低位连接MUX的输出信号,其余位均为0,被加数端B全为1。
当MUX选择STOP输入时,STOP由0变1触发加法器开始逐个进位,之后STOP由1变0,加法器逐个复位。
加法器的进位结果通过同一逻辑单元的寄存器部分锁存,锁存时钟为CLK_sam。
经过固定周期T之后,(T=N1×CLK_ref=N2×CLK_sam),两时钟的相位重新恢复一致。根据参考时钟和采样时钟的频率计算得出,N1=4060,N2=4056。因而,计数器CNT_ref以参考时钟计数,以4060个时钟为循环周期,在CNT_ref=SET_REF_CNT时产生STOP脉冲,触发加法进位链工作,如图6所示。
当检测到加法器最低位输出出现由1到0/由0到1的变化,标志着上升沿/下降沿触发进位链置位/复位,在采样时钟的上升沿分别锁存此刻的寄存器状态。
对于进位链进位情况,从最低位开始计数锁存值中0的个数,遇到1停止计数,计数值CNT_rise即进位链运行的位置。对于进位链复位情况,则从最低位开始计数锁存值中1的个数,遇到0停止计数,得到计数值CNT_fall。
重复测量多次,取概率最大的CNT_rise,CNT_fall作为此SET_REF_CNT对应的进位链运行位置值。
如图6所示,通过不断递增SET_REF_CNT的值,可以得到STOP脉冲以LSB刻度不断平移后的进位链运行位置值CNT_rise/CNT_fall。
当CNT_rise/CNT_fall覆盖进位链所有标号(1-80)后,数据测量完毕。
通过计数同一标号进位链中间位置与下一标号进位链中间位置的个数N,乘以测量最小刻度LSB,即可得到两者间的时间间隔。
测试结果发现,STOP信号上升沿和下降沿测得的进位链间的延迟时间并不相同,因而实际测量时需要针对这两种情况分别进行测量,将计算结果存入对应的RAM_rise及RAM_fall中。
当MUX切换到回波端口,即可进行实际计时测量。根据更新后的时间间隔数据计算出精确延时,实现高精度FPGA TDC计时。
从上述描述可知,本发明的举例中的基于FPGA的加法进位链延时的测量系统,能够实时测量出不同进位链之间的延迟时间,避免温度,电压波动的影响,进而能够实现基于FPGA的TDC组件的高精度计时,且相比于平均校准方法,结果更加精确。
在本发明的描述中,需要说明的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于FPGA的加法进位链延时的测量方法,其特征在于,所述测量方法用于在FPGA中的多位加法器进行实际计时测量的空闲时间内,对加法进位链延时进行测量,所述测量方法包括:
步骤1:脉冲测试信号触发所述多位加法器的进位链,且采集信号根据当前的所述脉冲测试信号的变化情况获取所述进位链的运行位置值;
步骤2:以所述脉冲测试信号的信号发射周期为间隔,依次平移所述脉冲测试信号,且在每次平移所述脉冲测试信号后,均返回步骤1,直到获取得到所述进位链中全部运行位置所对应的运行位置值;
步骤3:获取所述进位链的各运行位置值与对应的各脉冲测试信号的位置之间的关系数据,并根据该关系数据得到所述进位链的各运行位置处的延时时间;
其中,所述脉冲测试信号和采集信号的频率不同,且时钟周期也不同,所述脉冲测试信号的时钟和集体进位链的运行位置值的采样时钟为FPGA中的两个不同的PLL模块产生。
2.根据权利要求1所述的测量方法,其特征在于,在所述步骤1之前,所述方法还包括:
预获取所述采集信号与所述脉冲测试信号的同步周期T,使得每经过一个所述同步周期T后,所述采集信号与脉冲测试信号的相位关系均保持不变;
相对应的,所述步骤1,包括:
步骤11:所述脉冲测试信号在每个所述同步周期T中均重新产生,且每个重新产生的脉冲测试信号均触发所述多位加法器的进位链;
步骤12:所述采集信号在各个同步周期T中分别根据所述脉冲测试信号的变化情况获取对应的所述进位链的待选位置值;
步骤13:在所述待选位置值中选取出现概率最大的值作为所述进位链当前的运行位置值。
3.根据权利要求2所述的测量方法,其特征在于,所述步骤11,包括:
所述脉冲测试信号在每个所述同步周期T中均重新产生,且每个重新产生的脉冲测试信号均经所述多位加法器的加数端的首位触发该多位加法器的进位链;
其中,所述进位链的加数端的除首位之外的其余位均为0,且所述进位链的被加数端的全部位均为1。
4.根据权利要求2所述的测量方法,其特征在于,所述步骤12,包括:
步骤121:所述采集信号在各个同步周期T中分别获取所述脉冲测试信号的变化为上升沿状态时的所述进位链的第一待选位置值,以及
步骤122:所述采集信号在各个同步周期T中分别获取所述脉冲测试信号的变化为下降沿状态时的所述进位链的第二待选位置值。
5.根据权利要求4所述的测量方法,其特征在于,所述步骤121,包括:
在所述脉冲测试信号每次变化为上升沿状态时,所述采集信号均对处于进位过程中的多位加法器的第一结果值进行锁存;
以及,对所述第一结果值中的0值进行计数,遇到1值时停止计数,得到处于进位过程中的进位链的第一待选位置值;
相对应的,所述进位链当前的运行位置值包括:处于进位过程中的进位链的第一运行位置值。
6.根据权利要求4所述的测量方法,其特征在于,所述步骤122,包括:
在所述脉冲测试信号每次变化为下降沿状态时,所述采集信号均对处于复位过程中的多位加法器的第二结果值进行锁存;
以及,对所述第二结果值中的1值进行计数,遇到1值时停止计数,得到处于复位过程中的进位链的第二待选位置值;
相对应的,所述进位链当前的运行位置值包括:
处于复位过程中的进位链的第二运行位置值。
7.根据权利要求5所述的测量方法,其特征在于,所述步骤3,包括:
步骤311:获取所述进位链的各所述第一运行位置值与对应的各脉冲测试信号的位置之间的第一关系数据;
步骤312:根据所述第一关系数据分别获取各相邻的第一运行位置值之间的时间间隔,即得到处于进位过程中的进位链的各运行位置处的延时时间。
8.根据权利要求6所述的测量方法,其特征在于,所述步骤3,包括:
步骤321:获取所述进位链的各所述第二运行位置值与对应的各脉冲测试信号的位置之间的第二关系数据;
步骤322:根据所述第二关系数据分别获取各相邻的第二运行位置值之间的时间间隔,即得到处于复位过程中的进位链的各运行位置处的延时时间。
9.一种基于FPGA的加法进位链延时的测量系统,其特征在于,所述测量系统用于实现如权利要求1至8任一项所述的测量方法,且所述测量系统包括:
FPGA中的参考时钟、采样时钟、双路选择器和多位加法器;
所述参考时钟用于产生所述脉冲测试信号;
所述采样时钟用于产生所述采集信号;
所述双路选择器包括输出端、第一输入端和第二输入端;
其中,所述输出端连接至所述多位加法器的加数端的首位;
所述参考时钟产生的所述脉冲测试信号经所述双路选择器的第一输入端发射至所述多位加法器;
所述双路选择器的第二输入端连接回波端口,使得所述多位加法器进行实际计时测量,所述脉冲测试信号的时钟和集体进位链的运行位置值的采样时钟为FPGA中的两个不同的PLL模块产生。
10.根据权利要求9所述的测量系统,其特征在于,所述参考时钟和所述采样时钟分别由所述FPGA中的两个不同的PLL模块产生。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711277942.4A CN108061848B (zh) | 2017-12-06 | 2017-12-06 | 基于fpga的加法进位链延时的测量方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711277942.4A CN108061848B (zh) | 2017-12-06 | 2017-12-06 | 基于fpga的加法进位链延时的测量方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108061848A CN108061848A (zh) | 2018-05-22 |
CN108061848B true CN108061848B (zh) | 2019-12-10 |
Family
ID=62136223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711277942.4A Active CN108061848B (zh) | 2017-12-06 | 2017-12-06 | 基于fpga的加法进位链延时的测量方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108061848B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109286463B (zh) * | 2018-12-05 | 2020-12-04 | 北京中创为南京量子通信技术有限公司 | 一种基于fpga的高精度时间测量方法 |
CN111381221B (zh) * | 2018-12-27 | 2022-07-05 | 北京万集科技股份有限公司 | 激光脉冲的计时方法、装置及可读存储介质 |
US11092648B2 (en) | 2019-04-15 | 2021-08-17 | Grammatech, Inc. | Systems and/or methods for anomaly detection and characterization in integrated circuits |
CN114637182B (zh) * | 2020-12-15 | 2023-12-01 | 武汉万集光电技术有限公司 | 基于fpga进位链的tdc细时间测量系统及方法 |
CN113655702A (zh) * | 2021-10-20 | 2021-11-16 | 南京宏泰半导体科技有限公司 | 基于fpga测试自适应进位延时链系数调节系统及方法 |
CN116009376B (zh) * | 2022-09-29 | 2024-09-27 | 深圳越登智能技术有限公司 | 进位链计时校准方法、装置、设备及存储介质 |
CN116149599B (zh) * | 2023-03-30 | 2023-08-08 | 杭州雄迈集成电路技术股份有限公司 | 一种分步进位处理方法、系统、加法器 |
CN117170210B (zh) * | 2023-09-07 | 2024-04-26 | 中国科学院近代物理研究所 | 一种基于fpga的抽头延迟链型tdc |
CN118590173B (zh) * | 2024-06-14 | 2025-02-25 | 天津大学 | 基于fpga时间测量的跨节点区的盲区时间测量方法及设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6201409B1 (en) * | 1998-06-09 | 2001-03-13 | Cypress Semiconductor Corp. | High performance product term based carry chain scheme |
CN103092059A (zh) * | 2012-12-24 | 2013-05-08 | 中国科学技术大学 | 基于反熔丝fpga的时间数字转换器及其温度漂移修正方法 |
CN103472712A (zh) * | 2013-09-26 | 2013-12-25 | 中国科学技术大学 | 一种基于fpga的高精度高集成度时间数字转换器及实现方法 |
US8707235B2 (en) * | 2000-10-27 | 2014-04-22 | Synopsis, Inc. | Techniques for use with automated circuit design and simulations |
CN203950131U (zh) * | 2014-07-22 | 2014-11-19 | 西安宏泰时频技术有限公司 | 一种基于fpga的高精度时间间隔测量装置 |
CN104597748A (zh) * | 2015-02-12 | 2015-05-06 | 中国科学技术大学 | 一种基于fpga的时间数字变换器 |
CN204347454U (zh) * | 2015-01-06 | 2015-05-20 | 杭州汇萃智能科技有限公司 | 一种通过fpga内部延时模块测量两路信号时间差的装置 |
CN105068405A (zh) * | 2015-08-28 | 2015-11-18 | 中国科学技术大学 | Fpga实现的单通道信号脉宽高精度测量方法和装置 |
CN106773613A (zh) * | 2016-12-19 | 2017-05-31 | 武汉中派科技有限责任公司 | 时间数字转换器和时间测量方法 |
CN106814595A (zh) * | 2017-02-08 | 2017-06-09 | 中国科学院测量与地球物理研究所 | 基于等效细分的高精度tdc及其等效测量方法 |
-
2017
- 2017-12-06 CN CN201711277942.4A patent/CN108061848B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6201409B1 (en) * | 1998-06-09 | 2001-03-13 | Cypress Semiconductor Corp. | High performance product term based carry chain scheme |
US8707235B2 (en) * | 2000-10-27 | 2014-04-22 | Synopsis, Inc. | Techniques for use with automated circuit design and simulations |
CN103092059A (zh) * | 2012-12-24 | 2013-05-08 | 中国科学技术大学 | 基于反熔丝fpga的时间数字转换器及其温度漂移修正方法 |
CN103472712A (zh) * | 2013-09-26 | 2013-12-25 | 中国科学技术大学 | 一种基于fpga的高精度高集成度时间数字转换器及实现方法 |
CN203950131U (zh) * | 2014-07-22 | 2014-11-19 | 西安宏泰时频技术有限公司 | 一种基于fpga的高精度时间间隔测量装置 |
CN204347454U (zh) * | 2015-01-06 | 2015-05-20 | 杭州汇萃智能科技有限公司 | 一种通过fpga内部延时模块测量两路信号时间差的装置 |
CN104597748A (zh) * | 2015-02-12 | 2015-05-06 | 中国科学技术大学 | 一种基于fpga的时间数字变换器 |
CN105068405A (zh) * | 2015-08-28 | 2015-11-18 | 中国科学技术大学 | Fpga实现的单通道信号脉宽高精度测量方法和装置 |
CN106773613A (zh) * | 2016-12-19 | 2017-05-31 | 武汉中派科技有限责任公司 | 时间数字转换器和时间测量方法 |
CN106814595A (zh) * | 2017-02-08 | 2017-06-09 | 中国科学院测量与地球物理研究所 | 基于等效细分的高精度tdc及其等效测量方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108061848A (zh) | 2018-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108061848B (zh) | 基于fpga的加法进位链延时的测量方法及系统 | |
Sui et al. | A 2.3-ps RMS resolution time-to-digital converter implemented in a low-cost cyclone V FPGA | |
JP5559142B2 (ja) | 位相測定装置、および周波数測定装置 | |
CN103257569B (zh) | 时间测量电路、方法和系统 | |
CN110703583A (zh) | 基于soc的多通道高精度大量程时间数字转换器 | |
Chaberski et al. | Comparison of interpolators used for time-interval measurement systems based on multiple-tapped delay line | |
CN112486008B (zh) | 基于tdc的分辨率可调时间测量统计系统及方法 | |
Wu | Uneven bin width digitization and a timing calibration method using cascaded PLL | |
CN113253597A (zh) | 时间数字转换装置和光学测距传感器 | |
Arabul et al. | Precise multi-channel timing analysis system for multi-stop LIDAR correlation | |
Xia et al. | A Review of Advancements and Trends in Time-to-Digital Converters Based on FPGA | |
CN215769392U (zh) | 一种时间数字转换装置和光学测距传感器 | |
CN103675383B (zh) | 一种量测波形的电路 | |
Aloisio et al. | High-precision time-to-digital converters in a fpga device | |
Kobayashi et al. | Fine time resolution TDC architectures-integral and delta-sigma types | |
EP3405797B1 (en) | Frequency multiplying device | |
Chen et al. | A PVT insensitive field programmable gate array time-to-digital converter | |
US7649969B2 (en) | Timing device with coarse-duration and fine-phase measurement | |
US6944099B1 (en) | Precise time period measurement | |
CN203502749U (zh) | 脉冲时间间隔测量装置 | |
CN114256052A (zh) | 脉冲延时装置、方法及包含该装置的飞行时间质谱仪 | |
Machida et al. | Time-to-digital converter architectures using two oscillators with different frequencies | |
Li et al. | Large dynamic range accurate digitally programmable delay line with 250-ps resolution | |
Machado et al. | A novel synchronizer for a 17.9 ps Nutt Time-to-Digital Converter implemented on FPGA | |
Dinh et al. | A novel FPGA implementation of a time-to-digital converter supporting run-time estimation and compensation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |