环形振荡器结构TDC的校正方法及系统 |
|||||||
申请号 | CN202410106546.9 | 申请日 | 2024-01-25 | 公开(公告)号 | CN117724320A | 公开(公告)日 | 2024-03-19 |
申请人 | 山东天聚汇能微电子有限公司; | 发明人 | 罗敏; 王晨旭; 胡承源; | ||||
摘要 | 环形 振荡器 结构TDC的校正方法及系统,涉及时间数字转换技术领域。本 发明 是为了解决现有环形振荡器结构TDC的 采样 电路 在对输出正在变化的延迟单元进行采样时可能会出现错误,导致待测时间间隔不准确的问题。本发明通过查找环形振荡器单元状态变化的边界即 信号 传递到的 位置 并通过逻辑判断对采样到的环振状态进行校正,能够消除对信号传递边沿附近的延迟单元采样造成的误差。 | ||||||
权利要求 | 1.环形振荡器结构TDC的校正方法,其特征在于,包括以下步骤: |
||||||
说明书全文 | 环形振荡器结构TDC的校正方法及系统技术领域背景技术[0002] 时间数字转换器(Time‑to‑Digital Converter,TDC)是一种将时间量转化为数字量的器件,主要用于高精度时间测量,在许多领域都有广泛应用。其中,环形振荡器结构TDC应用较为广泛,其基本结构如图2所示,主要由环形振荡器、环振计数器和采样电路组成。环形振荡器由奇数个首尾相连的反相器组成,具有一定的振荡周期,而环振计数器对环振周期进行计数,得到粗略测量时间(粗计数值),同时扩大TDC的量程。采样电路在Start和Stop信号到来时分别对环振中每个反相器的输出进行采样,根据采样结果得到细计数值。其中,采样结果应为大部分0、1相间,有且只有两个0或者两个1相连。 [0003] 设Rst和Rsp分别表示Start和Stop触发采样的延迟单元状态对应的细计数值,CNT为该时间间隔下的粗计数值,τ为基本延迟单元的延迟,T为环形振荡器周期,ε则是测量误差,那么待测时间间隔ΔT满足以下公式: [0004] ΔT=CNT×T+(Rst‑Rsp)×τ+ε。 [0005] 采样电路在对输出正在变化的延迟单元进行采样时,例如在上升沿或者下降沿处,可能会出现错误,例如正确输出为10…10010,但是从低位向高位数第二个延迟单元采样出现错误,输出变成了10…10000,导致进行译码后造成Rst和Rsp错误,测得的ΔT不准确。 发明内容[0006] 本发明是为了解决现有环形振荡器结构TDC的采样电路在对输出正在变化的延迟单元进行采样时可能会出现错误,导致待测时间间隔不准确的问题,现提供环形振荡器结构TDC的校正方法及系统。 [0007] 本发明提供两种校正方法以及两种校正系统方案: [0008] 第一种环形振荡器结构TDC的校正方法,包括以下步骤: [0009] 步骤一:将环振实际状态信号ring与环振初始状态信号ring_original逐位进行异或运算,获得状态对比结果ring_temp; [0010] 步骤二:对状态对比结果ring_temp中相邻的两位进行异或运算,获得临位对比结果,对状态对比结果ring_temp中最高位和最低位进行同或运算,获得首尾对比结果,并将首尾对比结果作为最低位与临位对比结果拼凑成flag信号; [0011] 步骤三:将flag信号的最高位移动至最低位,并将剩余位向高位移动一位,获得第一移位结果,对第一移位结果的每一位取反,并将取反之后的结果与flag信号进行与运算,获得flag_edge信号; [0012] 步骤四:将flag_edge信号中从低到高位第一个为1的位数记为num; [0013] 步骤五:根据校正规则遍历环振实际状态信号ring的每一位信号值,获得环形振荡器结构TDC的校正结果ring_check; [0014] 所述校正规则为: [0015] 当k>num时,若ring_temp[k]≠ring_temp[num],则ring[k]取反,否则ring[k]不变, [0016] 当k<num时,若ring_temp[k]=ring_temp[num],则ring[k]取反,否则ring[k]不变, [0017] 当k=num时,ring[k]不变, [0018] ring_temp[k]和ring_temp[num]分别表示状态对比结果ring_temp中的第k位和第num位信号值,ring[k]表示环振实际状态信号ring中的第k位信号值。 [0019] 进一步的,上述环形振荡器结构TDC包括环形振荡器、环振计数器和采样电路; [0020] 所述环形振荡器包括N个首尾相连的反相器,N为大于1的奇数; [0021] 所述环振计数器用于对环振周期进行计数; [0022] 所述采样电路用于在Start和Stop信号到来时对环形振荡器中每个反相器的输出以及环振计数器的输出进行采样。 [0023] 进一步的,上述环振实际状态信号ring为采样电路在Start和Stop信号到来时采集的环形振荡器输出信号。 [0024] 第二种环形振荡器结构TDC的校正方法,包括以下步骤: [0025] 步骤一:将采样电路在Start和Stop信号到来时采集的环振实际状态信号ring与环振初始状态信号ring_original逐位进行异或运算,获得状态对比结果ring_temp; [0026] 步骤二:对状态对比结果ring_temp中相邻的两位进行同或运算,获得临位对比结果,对状态对比结果ring_temp中最高位和最低位进行异或运算,获得首尾对比结果,并将首尾对比结果作为最高位与临位对比结果拼凑成flag信号; [0027] 步骤三:将flag信号的最高位移动至最低位,并将剩余位向高位移动一位,获得第一移位结果,将flag信号最高的两位移动至最低两位,并将剩余位向高位移动两位,获得第二移位结果,将所述第一移位结果与所述第二移位结果逐位进行与运算,获得flag_edge信号; [0028] 步骤四:将flag_edge信号中从低到高位第一个为1的位数记为num; [0029] 步骤五:根据校正规则遍历环振实际状态信号ring的每一位,获得环形振荡器结构TDC的校正结果ring_check; [0030] 所述校正规则为: [0031] 当k>num时,若ring_temp[k]≠ring_temp[num],则ring[k]取反,否则ring[k]不变, [0032] 当k<num时,若ring_temp[k]=ring_temp[num],则ring[k]取反,否则ring[k]不变, [0033] 当k=num时,ring[k]不变, [0034] ring_temp[k]和ring_temp[num]分别表示状态对比结果ring_temp中的第k位和第num位信号值,ring[k]表示环振实际状态信号ring中的第k位信号值。 [0035] 进一步的,上述环形振荡器结构TDC包括环形振荡器、环振计数器和采样电路; [0036] 所述环形振荡器包括N个首尾相连的反相器,N为大于1的奇数; [0037] 所述环振计数器用于对环振周期进行计数; [0038] 所述采样电路用于在Start和Stop信号到来时对环形振荡器中每个反相器的输出以及环振计数器的输出进行采样。 [0039] 进一步的,上述环振实际状态信号ring为采样电路在Start和Stop信号到来时采集的环形振荡器输出信号。 [0040] 第一种环形振荡器结构TDC的校正系统,包括以下单元: [0041] 状态比较单元:用于将环振实际状态信号ring与环振初始状态信号ring_original逐位进行异或运算,获得状态对比结果ring_temp;对状态对比结果ring_temp中相邻的两位进行异或运算,获得临位对比结果,对状态对比结果ring_temp中最高位和最低位进行同或运算,获得首尾对比结果,并将首尾对比结果作为最低位与临位对比结果拼凑成flag信号; [0042] 边沿检测单元:用于将flag信号的最高位移动至最低位,并将剩余位向高位移动一位,获得第一移位结果,对第一移位结果的每一位取反,并将取反之后的结果与flag信号进行与运算,获得flag_edge信号; [0043] 误码校正单元:用于将flag_edge信号中从低到高位第一个为1的位数记为num,根据校正规则遍历环振实际状态信号ring的每一位信号值,获得环形振荡器结构TDC的校正结果ring_check; [0044] 所述校正规则为: [0045] 当k>num时,若ring_temp[k]≠ring_temp[num],则ring[k]取反,否则ring[k]不变, [0046] 当k<num时,若ring_temp[k]=ring_temp[num],则ring[k]取反,否则ring[k]不变, [0047] 当k=num时,ring[k]不变, [0048] ring_temp[k]和ring_temp[num]分别表示状态对比结果ring_temp中的第k位和第num位信号值,ring[k]表示环振实际状态信号ring中的第k位信号值。 [0049] 进一步的,上述环形振荡器结构TDC包括环形振荡器、环振计数器和采样电路; [0050] 所述环形振荡器包括N个首尾相连的反相器,N为大于1的奇数; [0051] 所述环振计数器用于对环振周期进行计数; [0052] 所述采样电路用于在Start和Stop信号到来时对环形振荡器中每个反相器的输出以及环振计数器的输出进行采样。 [0053] 进一步的,上述环振实际状态信号ring为采样电路在Start和Stop信号到来时采集的环形振荡器输出信号。 [0054] 第二种环形振荡器结构TDC的校正系统,包括以下单元: [0055] 状态比较单元:用于将采样电路在Start和Stop信号到来时采集的环振实际状态信号ring与环振初始状态信号ring_original逐位进行异或运算,获得状态对比结果ring_temp,对状态对比结果ring_temp中相邻的两位进行同或运算,获得临位对比结果,对状态对比结果ring_temp中最高位和最低位进行异或运算,获得首尾对比结果,并将首尾对比结果作为最高位与临位对比结果拼凑成flag信号; [0056] 边沿检测单元:用于将flag信号的最高位移动至最低位,并将剩余位向高位移动一位,获得第一移位结果,将flag信号最高的两位移动至最低两位,并将剩余位向高位移动两位,获得第二移位结果,将所述第一移位结果与所述第二移位结果逐位进行与运算,获得flag_edge信号; [0057] 误码校正单元:用于将flag_edge信号中从低到高位第一个为1的位数记为num,根据校正规则遍历环振实际状态信号ring的每一位,获得环形振荡器结构TDC的校正结果ring_check; [0058] 所述校正规则为: [0059] 当k>num时,若ring_temp[k]≠ring_temp[num],则ring[k]取反,否则ring[k]不变, [0060] 当k<num时,若ring_temp[k]=ring_temp[num],则ring[k]取反,否则ring[k]不变, [0061] 当k=num时,ring[k]不变, [0062] ring_temp[k]和ring_temp[num]分别表示状态对比结果ring_temp中的第k位和第num位信号值,ring[k]表示环振实际状态信号ring中的第k位信号值。 [0063] 进一步的,上述环形振荡器结构TDC包括环形振荡器、环振计数器和采样电路; [0064] 所述环形振荡器包括N个首尾相连的反相器,N为大于1的奇数; [0065] 所述环振计数器用于对环振周期进行计数; [0066] 所述采样电路用于在Start和Stop信号到来时对环形振荡器中每个反相器的输出以及环振计数器的输出进行采样。 [0067] 进一步的,上述环振实际状态信号ring为采样电路在Start和Stop信号到来时采集的环形振荡器输出信号。 [0068] 本发明提出了针对环形振荡器结构TDC的校正方法及系统,通过查找环形振荡器单元状态变化的边界即信号传递到的位置并通过逻辑判断对采样到的环振状态进行校正,能够消除对信号传递边沿附近的延迟单元采样造成的误差。附图说明 [0069] 图1为环形振荡器结构TDC的校正原理示意图; [0070] 图2为环形延迟链TDC的结构示意图。 具体实施方式[0071] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。 [0072] 具体实施方式一:如图2所示,环形振荡器结构TDC包括:环形振荡器、环振计数器和采样电路。环形振荡器包括N个首尾相连的反相器,N为大于1的奇数;环振计数器用于对环振周期进行计数;采样电路用于在Start和Stop信号到来时对环形振荡器中每个反相器的输出以及环振计数器的输出进行采样,得到代表细计时的环振状态和代表粗计时的计数器值,从而测量两个信号间的时间间隔。采样电路在Start和Stop信号到来时采集的环形振荡器输出信号为实际状态信号ring。 [0073] 结合图1原理所示,本实施方式所述的环形振荡器结构TDC的校正方法,包括以下步骤: [0074] 步骤一:将环振实际状态信号ring与环振初始状态信号ring_original逐位进行异或运算,获得状态对比结果ring_temp;目的是识别环振实际状态信号ring与环振初始状态信号ring_original相比是否有变化。 [0075] 步骤二:对状态对比结果ring_temp中相邻的两位进行异或运算,获得临位对比结果,对状态对比结果ring_temp中最高位和最低位进行同或运算,获得首尾对比结果,并将首尾对比结果作为最低位与临位对比结果拼凑成flag信号;目的是识别状态对比结果ring_temp中相邻两位是否处于同一状态。 [0076] 步骤三:将flag信号的最高位移动至最低位,并将剩余位向高位移动一位,获得第一移位结果,对第一移位结果的每一位取反,并将取反之后的结果与flag信号进行与运算,获得flag_edge信号;目的是找到flag在信号传递方向上的状态变化位置。 [0077] 步骤四:将flag_edge信号中从低到高位第一个为1的位数记为num; [0078] 步骤五:根据校正规则遍历环振实际状态信号ring的每一位信号值,获得环形振荡器结构TDC的校正结果ring_check。 [0079] 所述校正规则为: [0080] 当k>num时,若ring_temp[k]≠ring_temp[num],则ring[k]取反,否则ring[k]不变, [0081] 当k<num时,若ring_temp[k]=ring_temp[num],则ring[k]取反,否则ring[k]不变, [0082] 当k=num时,ring[k]不变, [0083] ring_temp[k]和ring_temp[num]分别表示状态对比结果ring_temp中的第k位和第num位信号值,ring[k]表示环振实际状态信号ring中的第k位信号值。 [0084] 具体实施方式二:如图2所示,环形振荡器结构TDC包括:环形振荡器、环振计数器和采样电路。环形振荡器包括N个首尾相连的反相器,N为大于1的奇数;环振计数器用于对环振周期进行计数;采样电路用于在Start和Stop信号到来时对环形振荡器中每个反相器的输出以及环振计数器的输出进行采样,得到代表细计时的环振状态和代表粗计时的计数器值,从而测量两个信号间的时间间隔。采样电路在Start和Stop信号到来时采集的环形振荡器输出信号为实际状态信号ring。 [0085] 结合图1原理所示,本实施方式所述的环形振荡器结构TDC的校正方法,包括以下步骤: [0086] 步骤一:将采样电路在Start和Stop信号到来时采集的环振实际状态信号ring与环振初始状态信号ring_original逐位进行异或运算,获得状态对比结果ring_temp;目的是识别环振实际状态信号ring与环振初始状态信号ring_original相比是否有变化。 [0087] 步骤二:对状态对比结果ring_temp中相邻的两位进行同或运算,获得临位对比结果,对状态对比结果ring_temp中最高位和最低位进行异或运算,获得首尾对比结果,并将首尾对比结果作为最高位与临位对比结果拼凑成flag信号;目的是识别状态对比结果ring_temp中相邻两位是否处于同一状态。 [0088] 步骤三:将flag信号的最高位移动至最低位,并将剩余位向高位移动一位,获得第一移位结果,将flag信号最高的两位移动至最低两位,并将剩余位向高位移动两位,获得第二移位结果,将所述第一移位结果与所述第二移位结果逐位进行与运算,获得flag_edge信号;目的是找到flag在信号传递方向上的状态变化位置。 [0089] 步骤四:将flag_edge信号中从低到高位第一个为1的位数记为num; [0090] 步骤五:根据校正规则遍历环振实际状态信号ring的每一位,获得环形振荡器结构TDC的校正结果ring_check。 [0091] 所述校正规则为: [0092] 当k>num时,若ring_temp[k]≠ring_temp[num],则ring[k]取反,否则ring[k]不变, [0093] 当k<num时,若ring_temp[k]=ring_temp[num],则ring[k]取反,否则ring[k]不变, [0094] 当k=num时,ring[k]不变, [0095] ring_temp[k]和ring_temp[num]分别表示状态对比结果ring_temp中的第k位和第num位信号值,ring[k]表示环振实际状态信号ring中的第k位信号值。 [0096] 具体实施方式三:如图2所示,环形振荡器结构TDC包括:环形振荡器、环振计数器和采样电路。环形振荡器包括N个首尾相连的反相器,N为大于1的奇数;环振计数器用于对环振周期进行计数;采样电路用于在Start和Stop信号到来时对环形振荡器中每个反相器的输出以及环振计数器的输出进行采样,得到代表细计时的环振状态和代表粗计时的计数器值,从而测量两个信号间的时间间隔。采样电路在Start和Stop信号到来时采集的环形振荡器输出信号为实际状态信号ring。 [0097] 结合图1原理所示,本实施方式所述的第一种环形振荡器结构TDC的校正系统,包括以下单元: [0098] 状态比较单元:用于将环振实际状态信号ring与环振初始状态信号ring_original逐位进行异或运算,获得状态对比结果ring_temp;对状态对比结果ring_temp中相邻的两位进行异或运算,获得临位对比结果,对状态对比结果ring_temp中最高位和最低位进行同或运算,获得首尾对比结果,并将首尾对比结果作为最低位与临位对比结果拼凑成flag信号;目的是识别环振实际状态信号ring与环振初始状态信号ring_original相比是否有变化,以及识别状态对比结果ring_temp中相邻两位是否处于同一状态。 [0099] 边沿检测单元:用于将flag信号的最高位移动至最低位,并将剩余位向高位移动一位,获得第一移位结果,对第一移位结果的每一位取反,并将取反之后的结果与flag信号进行与运算,获得flag_edge信号;目的是找到flag在信号传递方向上的状态变化位置。 [0100] 误码校正单元:用于将flag_edge信号中从低到高位第一个为1的位数记为num,根据校正规则遍历环振实际状态信号ring的每一位信号值,获得环形振荡器结构TDC的校正结果ring_check。 [0101] 所述校正规则为: [0102] 当k>num时,若ring_temp[k]≠ring_temp[num],则ring[k]取反,否则ring[k]不变, [0103] 当k<num时,若ring_temp[k]=ring_temp[num],则ring[k]取反,否则ring[k]不变, [0104] 当k=num时,ring[k]不变, [0105] ring_temp[k]和ring_temp[num]分别表示状态对比结果ring_temp中的第k位和第num位信号值,ring[k]表示环振实际状态信号ring中的第k位信号值。 [0106] 具体实施方式四:如图2所示,环形振荡器结构TDC包括:环形振荡器、环振计数器和采样电路。环形振荡器包括N个首尾相连的反相器,N为大于1的奇数;环振计数器用于对环振周期进行计数;采样电路用于在Start和Stop信号到来时对环形振荡器中每个反相器的输出以及环振计数器的输出进行采样,得到代表细计时的环振状态和代表粗计时的计数器值,从而测量两个信号间的时间间隔。采样电路在Start和Stop信号到来时采集的环形振荡器输出信号为实际状态信号ring。 [0107] 结合图1原理所示,本实施方式所述的第二种环形振荡器结构TDC的校正系统,包括以下单元: [0108] 状态比较单元:用于将采样电路在Start和Stop信号到来时采集的环振实际状态信号ring与环振初始状态信号ring_original逐位进行异或运算,获得状态对比结果ring_temp,对状态对比结果ring_temp中相邻的两位进行同或运算,获得临位对比结果,对状态对比结果ring_temp中最高位和最低位进行异或运算,获得首尾对比结果,并将首尾对比结果作为最高位与临位对比结果拼凑成flag信号;目的是识别环振实际状态信号ring与环振初始状态信号ring_original相比是否有变化,以及识别状态对比结果ring_temp中相邻两位是否处于同一状态。 [0109] 边沿检测单元:用于将flag信号的最高位移动至最低位,并将剩余位向高位移动一位,获得第一移位结果,将flag信号最高的两位移动至最低两位,并将剩余位向高位移动两位,获得第二移位结果,将所述第一移位结果与所述第二移位结果逐位进行与运算,获得flag_edge信号;目的是找到flag在信号传递方向上的状态变化位置。 [0110] 误码校正单元:用于将flag_edge信号中从低到高位第一个为1的位数记为num,根据校正规则遍历环振实际状态信号ring的每一位,获得环形振荡器结构TDC的校正结果ring_check。 [0111] 所述校正规则为: [0112] 当k>num时,若ring_temp[k]≠ring_temp[num],则ring[k]取反,否则ring[k]不变, [0113] 当k<num时,若ring_temp[k]=ring_temp[num],则ring[k]取反,否则ring[k]不变, [0114] 当k=num时,ring[k]不变, [0115] ring_temp[k]和ring_temp[num]分别表示状态对比结果ring_temp中的第k位和第num位信号值,ring[k]表示环振实际状态信号ring中的第k位信号值。 [0116] 综上所述,本发明能够消除锁存器对延迟链信号传递边沿的延迟单元造成的采样错误,有效消除由于锁存器的采样失误造成的细时间测量误差,提高TDC时间测量的精度以及线性度。 |