CN105653238B - 一种计时方法及装置 - Google Patents

一种计时方法及装置 Download PDF

Info

Publication number
CN105653238B
CN105653238B CN201510897299.XA CN201510897299A CN105653238B CN 105653238 B CN105653238 B CN 105653238B CN 201510897299 A CN201510897299 A CN 201510897299A CN 105653238 B CN105653238 B CN 105653238B
Authority
CN
China
Prior art keywords
output
clock
sub
count
gray
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
Application number
CN201510897299.XA
Other languages
English (en)
Other versions
CN105653238A (zh
Inventor
赵玉秋
梁国栋
杨龙
高鹏
张军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenyang Zhihe Medical Technology Co ltd
Original Assignee
Neusoft Medical Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Neusoft Medical Systems Co Ltd filed Critical Neusoft Medical Systems Co Ltd
Priority to CN201510897299.XA priority Critical patent/CN105653238B/zh
Publication of CN105653238A publication Critical patent/CN105653238A/zh
Priority to US15/369,848 priority patent/US9866220B2/en
Application granted granted Critical
Publication of CN105653238B publication Critical patent/CN105653238B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K23/00Pulse counters comprising counting chains; Frequency dividers comprising counting chains
    • H03K23/004Counters counting in a non-natural counting order, e.g. random counters
    • H03K23/005Counters counting in a non-natural counting order, e.g. random counters using minimum change code, e.g. Gray Code

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Manipulation Of Pulses (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Measurement Of Unknown Time Intervals (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)

Abstract

本发明提供了一种计时方法及装置,所述方法包括:对基本时钟进行格雷码计数,得到格雷码计数输出;分别对格雷码计数输出中的最低位输出进行移相得到m路子时钟,其中,各路子时钟与所述最低位输出的相位差满足:180°能被α整除,n为满足0<n<(180°/α)的整数;若90°能α被整除,m=180/α‑2,若90°不能被α整除,m=180/α‑1;当预定事件发生时,根据格雷码计数输出的输出值、m路子时钟的输出、基本时钟的周期和α,获得对所述预定事件的计时结果。可见,本发明减少了计数单元的个数,同时m路子时钟的输出与格雷码计数输出不会出现同时跳变的情况,提高了计时准确性。

Description

一种计时方法及装置
技术领域
本发明涉及电子技术领域,尤其是涉及一种计时方法及装置。
背景技术
在很多电子系统中,需要对预定事件进行计时,得到的计时结果可能会影响系统的输出。例如在PET(Positron Emission Computed Tomography,正电子发射型计算机断层显像)系统中,需要对两个光子到达探测器的时间进行计时,根据计时结果确定是否属于符合事件,从而根据符合事件生成最终的PET图像。
请参阅图1,一种常用的计时过程包括:时钟输入单元输出基本时钟,由多个子时钟单元分别对基本时钟进行移相,得到多个子时钟,相邻子时钟的相位差相同,每个计数单元分别对应一个子时钟单元和一个锁存单元,每个计数单元分别对其对应的子时钟单元输出的子时钟进行计数,当预定事件发生时,每个锁存单元分别对其对应的计数单元的计数结果进行锁存,求和单元对所有锁存单元锁存的计数结果进行求和,根据求和结果以及相邻子时钟的相位差得到对预定事件的计时结果。
显然在上述计时方式中,由于每个子时钟单元都对应一个计数单元,例如当存在20个子时钟单元时,就需要至少20个计数单元,造成了计数单元的个数较多,从而导致硬件资源的浪费。并且,由于计数单元采用的是二进制计数,因此会出现计数结果的多路输出同时跳变的情况,导致锁存的计数结果不准确,从而影响计时的准确性。
发明内容
本发明解决的技术问题在于提供一种计时方法及装置,用于减少计数单元的个数并且减少多路输出同时跳变的情况,从而减少硬件资源的浪费以及提高计时准确性。
为此,本发明解决技术问题的技术方案是:
本发明提供了一种计时方法,所述方法包括:
对基本时钟进行格雷码计数,得到格雷码计数输出;
分别对所述格雷码计数输出中的最低位输出进行移相,得到m路子时钟,其中,所述m路子时钟中各路子时钟与所述最低位输出的相位差满足:180°能被α整除,n为满足0<n<(180°/α)的整数;若 90°能α被整除,m=180/α-2,若90°不能被α整除,m=180/α-1;
当预定事件发生时,根据所述格雷码计数输出的输出值、所述m路子时钟的输出、所述基本时钟的周期和所述α,获得对所述预定事件的计时结果。
可选的,所述计时结果为(B×90°/α+X)×Δt;
其中,B为所述格雷码计数输出的输出值,X为子时钟计数值,若B被4 除得到的余数为0,X为SP中高电平的个数,SP为所述m路子时钟的输出,若B被4除得到的余数为1,X为SP中高电平的个数与i的差值,若B被4 除得到的余数为2,X为2×i的积与SP中高电平的个数的差值,若B被4除得到的余数为3,X为i与SP中高电平的个数的差值,i为大于或等于90°/α-1 的最小整数,Δt=t0×α/90°,t0为所述基本时钟的周期。
可选的,所述获得对所述预定事件的计时结果,包括:
获得所述格雷码计数输出的输出值被4除的余数;
若所述余数为0,获得所述m路子时钟的输出中高电平的个数作为子时钟计数值;若所述余数为1,将所述m路子时钟的输出右移90°/α-1位后,获得高电平的个数作为子时钟计数值;若所述余数为2,将所述m路子时钟的输出取反后,获得高电平的个数作为子时钟计数值;若所述余数为3,将所述 m路子时钟的输出先取反再右移90°/α-1位后,获得高电平的个数作为子时钟计数值;
根据所述格雷码计数输出的输出值、所述子时钟计数值、所述基本时钟的周期和所述α,获得对所述预定事件的计时结果。
可选的,所述获得对所述预定事件的计时结果,包括:
通过查表方式获得对所述预定事件的计时结果。
可选的,所述对基本时钟进行格雷码计数得到格雷码计数输出,包括:
对所述基本时钟进行二进制计数,得到二进制计数输出;
将所述二进制计数输出转换为格雷码计数输出。
可选的,所述对基本时钟进行格雷码计数得到格雷码计数输出,包括:
对所述基本时钟进行分频和延时,得到所述格雷码计数输出。
本发明提供了一种计时装置,所述装置包括:
计数单元,用于对基本时钟进行格雷码计数,得到格雷码计数输出;
m个子时钟单元,用于分别对所述格雷码计数输出中的最低位输出进行移相,得到m路子时钟,其中,所述m路子时钟中各路子时钟与所述最低位输出的相位差满足:180°能被α整除,n为满足 0<n<(180°/α)的整数;若90°能α被整除,m=180/α-2,若90°不能被α整除,m=180/α-1;
锁存单元,用于当预定事件发生时,锁存所述格雷码计数输出和所述m 路子时钟的输出;
计时单元,用于根据所述锁存单元锁存的格雷码计数输出的输出值、所述锁存单元锁存的所述m路子时钟的输出、以及所述基本时钟的周期和所述α,获得对所述预定事件的计时结果。
可选的,所述计时结果为(B×90°/α+X)×Δt;
其中,B为所述格雷码计数输出的输出值,X为子时钟计数值,若B被4 除得到的余数为0,X为SP中高电平的个数,SP为所述m路子时钟的输出,若B被4除得到的余数为1,X为SP中高电平的个数与i的差值,若B被4 除得到的余数为2,X为2×i的积与SP中高电平的个数的差值,若B被4除得到的余数为3,X为i与SP中高电平的个数的差值,i为大于或等于90°/α-1 的最小整数,Δt=t0×α/90°,t0为所述基本时钟的周期。
可选的,所述计时单元具体用于:
获得所述格雷码计数输出的输出值被4除的余数;
若所述余数为0,获得所述m路子时钟的输出中高电平的个数作为子时钟计数值;若所述余数为1,将所述m路子时钟的输出右移90°/α-1位后,获得高电平的个数作为子时钟计数值;若所述余数为2,将所述m路子时钟的输出取反后,获得高电平的个数作为子时钟计数值;若所述余数为3,将所述 m路子时钟的输出先取反再右移90°/α-1位后,获得高电平的个数作为子时钟计数值;
根据所述格雷码计数输出的输出值、所述子时钟计数值、所述基本时钟的周期和所述α,获得对所述预定事件的计时结果。
可选的,所述计时单元具体用于,通过查表方式获得对所述预定事件的计时结果。
可选的,所述计数单元包括:
计数子单元,用于对所述基本时钟进行二进制计数,得到二进制计数输出;
转换单元,用于将所述二进制计数输出转换为格雷码计数输出。
可选的,所述计数单元包括:分频延时单元,用于对所述基本时钟进行分频和延时,得到所述格雷码计数输出。
通过上述技术方案可知,本发明实施例对基本时钟进行格雷码计数,得到格雷码计数输出;之后对格雷码计数输出的最低位输出分别进行移相,得到m路子时钟,其中,m路子时钟中各路子时钟与所述最低位输出的相位差为n为满足0<n<180°/α的整数。若90°能被α整除,m=180/α-2,若90°不能被α整除,m=180/α-1;当预定事件发生时,根据格雷码计数输出的输出值、m路子时钟的输出、基本时钟的周期和所述α,获得对预定事件的计时结果。可见,在本发明实施例中,由于只需对基本时钟进行计数,而无需再对多个子时钟进行计数,因此减少了计数单元的个数,从而减少了硬件资源。同时,本发明实施例中不再采用二进制计数,而是进行格雷码计数,因此格雷码计数输出的多路输出不会出现同时跳变的情况,而且m路子时钟与所述最低位输出的相位差也能够保证,m路子时钟的输出与格雷码计数输出不会出现同时跳变的情况,因此提高了计时准确性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。
图1为现有的一种计时装置的结构示意图;
图2为本发明实施例提供的一种方法实施例的流程示意图;
图3为基本时钟和格雷码计数输出的波形图;
图4为本发明实施例提供的一种装置实施例的结构示意图;
图5为本发明实施例提供的m个子时钟单元的结构示意图;
图6为格雷码计数输出的最低位输出和8路子时钟的波形图;
图7为本发明实施例提供的步骤S203的一种实现方式的流程示意图。
具体实施方式
对预定事件进行计时,指的是获得从起始时刻到预定事件的发生时刻的时间间隔,将该时间间隔作为计时结果。
请参阅图1,一种常用的计时过程包括:时钟输入单元输出基本时钟,由m个子时钟单元分别对基本时钟进行移相,得到m路子时钟,相邻子时钟的相位差相同,每个计数单元分别对应一个子时钟单元和一个锁存单元,每个计数单元分别对其对应的子时钟单元输出的子时钟进行计数。当计时开始时,可以通过触发清零单元将所有的计数单元和锁存单元清零,当预定事件发生时,每个锁存单元分别对其对应的计数单元的计数结果进行锁存,求和单元对所有锁存单元锁存的计数结果进行求和,根据求和结果以及相邻子时钟的相位差得到对预定事件的计时结果。其中,计时结果为 Z×t0×β/360°,Z为所述求和结果,β为所述相邻子时钟的相位差,t0为所述基本时钟的周期。
显然在上述计时方式中,由于每个子时钟单元都对应一个计数单元,例如当存在20个子时钟单元时,就需要至少20个计数单元,造成了计数单元的个数较多,从而导致硬件资源的浪费。并且,由于计数单元采用的是二进制计数,会出现计数结果的多路输出同时跳变的情况,导致锁存的计数结果不准确,从而影响计时的准确性。
本发明实施例提供一种计时方法及装置,用于减少计数单元的个数并且减少多路输出同时跳变的情况,从而减少硬件资源的浪费以及提高计时准确性。
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
请参阅图2,本发明实施例提供了计时方法的一种方法实施例。
本实施例的所述方法包括:
S201:对基本时钟进行格雷(Gray)码计数,得到格雷码计数输出。
本实施例中,不再采用二进制计数,而是采用格雷码计数,得到格雷码计数输出,从而能够保证格雷码计数输出的多路输出不会出现同时跳变的情况。例如,格雷码计数输出可以如图3所示,其中clk为基本时钟,c[0]、c[1]、 c[2]、c[3]和c[4]分别为格雷码计数输出的第0位输出、第1位输出、第2位输出、第3位输出和第4位输出。
在本实施例中,所述基本时钟可以是对原始时钟倍频后得到的时钟信号,是否需要倍频根据计时精度确定。其中原始时钟可以由时钟输入单元输出。
S202:分别对所述格雷码计数输出中的最低位输出进行移相,得到m路子时钟。
其中,所述格雷码计数输出中的最低位输出即相当于所述格雷码计数输出的第0位输出,例如具体为图3中的c[0]。
在移相时,将所述格雷码计数输出的最低位输出分别移相0,α,2α,..., 180°,能够得到180°/α+1个子时钟,其中180°能被α整除。由于在本实施例中,所述最低位输出的周期为所述基本时钟的周期的4倍,因此所述格雷码计数输出的输出值每变化1时,对应所述最低位输出的相位变化90°,因此本实施例中不需要对所述最低位输出移相0,90°和180°,也能够通过格雷码计数输出的输出值对这三个相位差与其他相位差进行区分,本实施例中不需要产生这三个相位差的子时钟。因此,本实施例中所述m路子时钟中各路子时钟与所述最低位输出的相位差满足:n为满足 0<n<(180°/α)的整数。若90°能被α整除,子时钟的路数为:m=180/α-2,若90°不能被α整除,子时钟的路数为:m=180/α-1。因此,本实施例中能够保证m路子时钟的输出与格雷码计数输出不会出现边沿重合的问题,即不会出现同时跳变的情况,
例如,假设α=18°,本实施例中m路子时钟与所述最低位输出的相位差分别为18°,36°,54°,72°,108°,126°,144°和162°。其中需要说明的是,由于相位差为72°时,以及相位差为90°时,所对应的格雷码计数输出的输出值不同,例如相位差为72°时格雷码计数输出的输出值为0,相位差为90°时格雷码计数输出的输出值为1,因此通过格雷码计数输出的输出值就能够区分相位差72°和相位差90°,不需要产生相位差为90°的子时钟。基于类似的理由,也不需要产生相位差为0°和180°的子时钟。从而减少了子时钟的路数。
本实施例的计时精度,即最小计时单位与移相角度相关,其中计时精度Δt 具体为Δt=t0×α/90°,t0为所述基本时钟的周期。
S203:当预定事件发生时,根据所述格雷码计数输出的输出值、所述m 路子时钟的输出、所述基本时钟的周期和所述α,获得对所述预定事件的计时结果。
在本实施例中,所述计时结果为从起始时刻到预定事件的发生时刻的时间间隔。在一般情况下,在起始时刻开始时(即计时开始时),将所述格雷码计数输出以及m路子时钟的输出全部清零,从而能够根据预定事件发生时的所述格雷码计数输出的输出值和所述m路子时钟的输出,并根据所述基本时钟的周期和所述α,获得对所述预定事件的计时结果。
其中,当预定事件发生时,可以锁存所述格雷码计数输出和所述m路子时钟的输出,之后根据锁存的所述格雷码计数输出的输出值、锁存的所述m 路子时钟的输出、所述基本时钟的周期和所述α,获得所述计时结果。此外,由于目前机器语言一般只识别二进制,因此可以根据所述格雷码计数输出得到二进制输出值,作为所述格雷码计数输出的输出值。
通过上述技术方案可知,本发明实施例对基本时钟进行格雷码计数,得到格雷码计数输出;之后对格雷码计数输出的最低位输出分别进行移相,得到m路子时钟,其中,m路子时钟中各路子时钟与所述最低位输出的相位差为n为满足0<n<180°/α的整数。若90°能被α整除,m=180/α-2,若90°不能被α整除,m=180/α-1;当预定事件发生时,根据格雷码计数输出的输出值、m路子时钟的输出、基本时钟的周期和所述α,获得对预定事件的计时结果。
可见,在本发明实施例中,由于只需对基本时钟进行计数,而无需再对多个子时钟进行计数,因此减少了计数单元的个数,从而减少了硬件资源。同时,本发明实施例中不再采用二进制计数,而是进行格雷码计数,因此格雷码计数输出的多路输出不会出现同时跳变的情况,而且m路子时钟与所述最低位输出的相位差也能够保证,m路子时钟的输出与格雷码计数输出不会出现同时跳变的情况。也就是说,本实施例的输出在相邻位间转换时,只有一位产生变化,减少了由一个状态到下一个状态时的逻辑混乱,因此提高了计时准确性。
本实施例所述的方法可以用于PET系统中,即对光子到达探测器的时间进行计时,因此,所述预定事件可以为探测到一个光子到达探测器。
本实施例具体可以用于如图4所示的计时装置中,所述计时装置包括:计数单元401、m个子时钟单元402、锁存单元403和计时单元404。m个子时钟单元可以如图5所示,包括子时钟单元0、子时钟单元1、...、子时钟单元m-1。其中,计数单元401对基本时钟进行格雷码计数得到格雷码计数输出; m个子时钟单元402分别对所述格雷码计数输出中的最低位输出进行移相,得到m路子时钟,当预定事件发生时,锁存单元403锁存所述格雷码计数输出和所述m路子时钟的输出,计时单元404根据锁存单元403锁存的所述格雷码计数输出的输出值和所述m路子时钟的输出,以及所述基本时钟的周期和所述α,获得对所述预定事件的计时结果。所述装置可以用于FPGA(Field -Programmable Gate Array现场可编程门阵列)、或者CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)等电子器件中。
下面分别对本发明实施例中:所述格雷码计数输出、所述子时钟的输出以及所述计时结果进行详细说明。
1、首先说明格雷码计数输出。
本发明实施例中,对基本时钟进行格雷码计数得到所述格雷码计数输出。其中,格雷码计数输出的位数决定了最大计时长度,具体地,格雷码计数输出的位数越多,所述计时方法的最大计时长度则越长。下面提供格雷码计数输出的两种可选的生成方式。
第一种方式是先对所述基本时钟进行二进制计数,得到二进制计数输出,再将所述二进制计数输出转换为格雷码计数输出。其中,将所述二进制计数输出转换为格雷码计数输出的转换方式可以为GC=BC^(BC>>1),BC为所述二进制计数输出,GC为所述格雷码计数输出,“^”表示异或操作,“>>”表示右移操作。
第二种方式是对所述基本时钟进行分频和延时,得到所述格雷码计数输出。
其中,可以先对所述基本时钟进行分频得到多路分频输出,再对所述多路分频输出进行延时,得到所述格雷码计数输出。
例如,若所述格雷码计数输出的位数为j,具体的分频方式是:当0≤k<j-1 时,所述多路分频输出的第k路输出的分频数为fk=4×2k,即所述多路分频输出的第k路输出的周期为所述基本时钟的周期的4×2k,当k=j-1时,所述多路分频输出的第k路输出的分频数为fk=4×2k-1,即与上一路分频数相同;具体的延时方式是:当0<k≤j-1时,通过将所述多路分频输出的第k路输出延时qk个基本时钟的周期得到所述格雷码计数输出的第k位输出,qk=qk-1-1+fk-1/4,qk-1为所述格雷码计数输出的第k-1位输出所延时的基本时钟的周期个数,fk-1为多路分频输出的第k-1路输出的分频数;当k=0 时,qk=0。
例如,对所述基本时钟进行分频的分频数分别为4、8、16、32和64,得到5路分频输出,再对5路分频输出进行延时,即可得到如图3所示的格雷码计数输出。其中在对所述基本时钟进行分频时,可以采用如下方式得到5 路分频输出d[0],d[1],d[2],d[3]和d[4]。其中,d[1],d[2],d[3]和d[4]的分频数分别为4、8、16和32。
d[0]=!d[0];
d[1]=d[0]^d[1];
d[2]=(d[0]&d[1])^d[2];
d[3]=(d[0]&d[1]&d[2])^d[3];
d[4]=(d[0]&d[1]&d[2]&d[3])^d[4]。
其中,“!”表示非操作,“&”表示与操作。在根据上述方式获得d[0]时,具体可以是由所述基本时钟输入D触发器的时钟输入端,所述D触发器的输出端通过非门接到D触发器的输入端,非门的输出为d[0]。类似的,可以根据上述方式,通过与门、D触发器和异或门的组合得到d[1]、d[2]、d[3]和d[4],这里不再赘述。
2、其次说明子时钟的输出。
在本实施例中,分别对所述格雷码计数输出中的最低位输出进行移相,得到m路子时钟。所述m路子时钟中各路子时钟与所述最低位输出的相位差满足:n为满足0<n<180°/α的整数。例如,若α=18°,如图6所示,本实施例中得到8路子时钟SP[0]、SP[1]、SP[2]、SP[3]、SP[4]、 SP[5]、SP[6]和SP[7],该8路子时钟与所述最低位输出的相位差分别为18°, 36°,54°,72°,108°,126°,144°和162°。
其中可以通过延时的方式实现移相,具体地,对所述基本时钟分别延时能够得到所述m路子时钟,t0为所述基本时钟的周期。
3、下面对所述计时结果的表达式进行推导。
本发明实施例中,计时结果可以表示为总计数值与最小计时单位的乘积,其中最小计时单位,即计时精度为Δt=t0×α/90°。而总计数值为计数时钟计数值与子时钟计数值(记为X)之和。下面通过一个例子说明计数时钟计数值和子时钟计数值X如何获得。
假设α=18°,即分别对所述格雷码计数输出中的最低位输出进行移相18°, 36°,54°,72°,108°,126°,144°和162°,得到8路子时钟。当所述格雷码计数输出的输出值分别为0,1,2,3时,所述8路子时钟SP[0]、SP[1]、SP[2]、 SP[3]、SP[4]、SP[5]、SP[6]和SP[7]的输出如表1所示,其中1代表高电平, 0代表低电平。
表1
根据表1可以看出所述格雷码计数输出的输出值(记为B)每变化1时,对应5个计数,因此,计数时钟计数值为B乘以5的积,所述计时结果为 (B×5+X)×Δt。其中,若B被4除的商为0,X与SP的高电平的个数相等, SP为所述8路子时钟的输出,即SP[0]至SP[7]。若B被4除的商为1,X为 SP的高电平的个数减去4的差,若B被4除的商为2,X为8减去SP中的高电平的个数的差,若B被4除的商为3,X为4减去SP中的高电平的个数的差。
因此,所述计时结果通用的表达式为:(B×90°/α+X)×Δt。
其中,B为所述格雷码计数输出的输出值,X为子时钟计数值,若B被4 除得到的余数为0,X为SP中高电平的个数,SP为所述m路子时钟的输出,若B被4除得到的余数为1,X为SP中高电平的个数与i的差值,若B被4 除得到的余数为2,X为2×i的积与SP中高电平的个数的差值,若B被4除得到的余数为3,X为i与SP中高电平的个数的差值,i为大于或等于90°/α-1 的最小整数,Δt=t0×α/90°,t0为所述基本时钟的周期。
在本发明实施例中,B一般为二进制输出值,因此本发明实施例中还需要将所述格雷码计数输出转换为二进制计数输出,从而得到二进制输出值B。例如若格雷码计数输出具有32位,将格雷码计数输出转换为二进制计数输出的转换方式为,依次执行以下5个转换公式:
BC=GC^(GC>>1);
BC=BC^(BC>>2);
BC=BC^(BC>>4);
BC=BC^(BC>>8);
BC=BC^(BC>>16)。
其中,BC为所述二进制计数输出,GC为所述格雷码计数输出。
除了上述转换方式之外,本发明实施例中也可以采用查表或者简单的运算,例如加法运算等方式,将格雷码计数输出转换为二进制计数输出。
在本发明实施例中,既可以通过查表的方式获得所述计时结果,例如通过查询表1获得所述计时结果;也可以通过计算的方式获得所述计时结果。下面具体说明一种可选的所述计时结果的计算方式。
请参阅图7,S203中的所述获得对所述预定事件的计时结果,包括:
S2031:获得所述格雷码计数输出的输出值被4除的余数。
S2031:若所述余数为0,获得所述m路子时钟的输出中高电平的个数作为子时钟计数值X;若所述余数为1,将所述m路子时钟的输出右移90°/α-1 位后,获得高电平的个数作为X;若所述余数为2,将所述m路子时钟的输出取反后,获得高电平的个数作为X;若所述余数为3,将所述m路子时钟的输出先取反再右移90°/α-1位后,获得高电平的个数作为X。
例如,若α=18°,若所述余数为0,将8路子时钟的输出SP中高电平的个数作为X;若所述余数为1,将SP右移4位后,将高电平的个数作为X;若所述余数为2,将SP取反后,将高电平的个数作为X;若所述余数为3,将SP先取反再右移4位,将高电平的个数作为X。其中,可以通过一个统一的方式对SP进行处理得到DP,之后只需计算DP中高电平的个数即可得到X。上述统一的方式为依次执行以下2个公式:
Rem=B&0x03;
DP=(SP^{4×Rem[1]})>>(Rem[0]<<2)。
其中,Rem[0]表示Rem的第0位,Rem[1]表示Rem的第1位。“<<”表示左移操作。
计算DP的高电平的个数(即X)可以通过依次执行以下3个公式:
X=DP;
X=(X&0x5)+((X>>1)&0x5);
X=(X&0x3)+((X>>2)&0x3)。
S2031:根据所述格雷码计数输出的输出值、所述子时钟计数值X、所述基本时钟的周期和所述α,获得对所述预定事件的计时结果。
其中,所述计时结果具体为:(B×90°/α+X)×Δt。B为所述格雷码计数输出的输出值。
需要说明的是,本发明实施例中的所有公式,在有括号的情况下先执行括号中的运算,在没有括号的情况下,先执行乘除运算,再执行加减运算。
对应上述方法实施例,本申请还提供了计时装置的实施例,下面具体说明。
请参阅图4,本申请提供了计时装置的一种装置实施例。所述装置可以用于FPGA或者CPLD等电子器件中。
本实施例的所述装置包括:计数单元401、m个子时钟单元402、锁存单元403以及计时单元。
计数单元401,用于对基本时钟进行格雷码计数,得到格雷码计数输出。
本实施例中,不再采用二进制计数,而是采用格雷码计数,得到格雷码计数输出,从而能够保证格雷码计数输出的多路输出不会出现同时跳变的情况。
在本实施例中,所述基本时钟可以是对原始时钟倍频后得到的时钟信号,是否需要倍频根据计时精度确定。其中原始时钟可以由时钟输入单元输出。
m个子时钟单元402,用于分别对所述格雷码计数输出中的最低位输出进行移相,得到m路子时钟。m个子时钟单元可以如图5所示,包括子时钟单元0、子时钟单元1、...、子时钟单元m-1。
其中,所述m路子时钟中各路子时钟与所述最低位输出的相位差满足:180°能被α整除,n为满足0<n<(180°/α)的整数;若 90°能α被整除,m=180/α-2,若90°不能被α整除,m=180/α-1。
锁存单元403,用于当预定事件发生时,锁存所述格雷码计数输出和所述 m路子时钟的输出。本实施例所述的装置可以用于PET系统中,即对光子到达探测器的时间进行计时,因此,所述预定事件可以为探测到一个光子到达探测器。
计时单元404,用于根据锁存单元403锁存的格雷码计数输出的输出值、锁存单元403锁存的所述m路子时钟的输出、以及所述基本时钟的周期和所述α,获得对所述预定事件的计时结果。
在本实施例中,所述计时结果为从起始时刻到预定事件的发生时刻的时间间隔。在一般情况下,在起始时刻开始时(即计时开始时),将所述格雷码计数输出以及m路子时钟的输出全部清零,从而能够根据预定事件发生时的所述格雷码计数输出的输出值和所述m路子时钟的输出,并根据所述基本时钟的周期和所述α,获得对所述预定事件的计时结果。
本实施例中,所述计时结果可以为(B×90°/α+X)×Δt;其中,B为所述格雷码计数输出的输出值,X为子时钟计数值,若B被4除得到的余数为0,X 为SP中高电平的个数,SP为所述m路子时钟的输出,若B被4除得到的余数为1,X为SP中高电平的个数与i的差值,若B被4除得到的余数为2,X 为2×i的积与SP中高电平的个数的差值,若B被4除得到的余数为3,X为 i与SP中高电平的个数的差值,i为大于或等于90°/α-1的最小整数,Δt=t0×α/90°,t0为所述基本时钟的周期。
本发明实施例中,对基本时钟进行格雷码计数得到所述格雷码计数输出。下面提供格雷码计数输出的两种可选的生成方式。
第一种方式中,计数单元401包括:计数子单元,用于对所述基本时钟进行二进制计数,得到二进制计数输出;转换单元,用于将所述二进制计数输出转换为格雷码计数输出。其中,将所述二进制计数输出转换为格雷码计数输出的转换方式可以为GC=BC^(BC>>1),BC为所述二进制计数输出,GC 为所述格雷码计数输出。
第二种方式中,计数单元401包括:分频延时单元,用于对所述基本时钟进行分频和延时,得到所述格雷码计数输出。其中,可以通过分频单元先对所述基本时钟进行分频得到多路分频输出,再通过延时单元对所述多路分频输出进行延时,得到所述格雷码计数输出。
在本发明实施例中,计时单元404可以具体用于通过查表方式获得对所述预定事件的计时结果,例如通过查询表1获得所述计时结果;也可以通过计算的方式获得所述计时结果,下面具体说明。
计时单元404可以具体用于:
获得所述格雷码计数输出的输出值被4除的余数;
若所述余数为0,获得所述m路子时钟的输出中高电平的个数作为子时钟计数值;若所述余数为1,将所述m路子时钟的输出右移90°/α-1位后,获得高电平的个数作为子时钟计数值;若所述余数为2,将所述m路子时钟的输出取反后,获得高电平的个数作为子时钟计数值;若所述余数为3,将所述 m路子时钟的输出先取反再右移90°/α-1位后,获得高电平的个数作为子时钟计数值;
根据所述格雷码计数输出的输出值、所述子时钟计数值、所述基本时钟的周期和所述α,获得对所述预定事件的计时结果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种计时方法,其特征在于,所述方法包括:
对基本时钟进行格雷码计数,得到格雷码计数输出;
分别对所述格雷码计数输出中的最低位输出进行移相,得到m路子时钟,其中,所述m路子时钟中各路子时钟与所述最低位输出的相位差满足:180°能被α整除,n为满足0<n<(180°/α)的整数;若90°能α被整除,m=180/α-2,若90°不能被α整除,m=180/α-1;α为能够整除180°的角度值;
当预定事件发生时,根据所述格雷码计数输出的输出值、所述m路子时钟的输出、所述基本时钟的周期和所述α,获得对所述预定事件的计时结果;
所述计时结果为(B×90°/α+X)×Δt;
其中,B为所述格雷码计数输出的输出值,X为子时钟计数值,若B被4除得到的余数为0,X为SP中高电平的个数,SP为所述m路子时钟的输出,若B被4除得到的余数为1,X为SP中高电平的个数与i的差值,若B被4除得到的余数为2,X为2×i的积与SP中高电平的个数的差值,若B被4除得到的余数为3,X为i与SP中高电平的个数的差值,i为大于或等于90°/α-1的最小整数,Δt是计时精度,Δt=t0×α/90°,t0为所述基本时钟的周期。
2.根据权利要求1所述的方法,其特征在于,所述获得对所述预定事件的计时结果,包括:
获得所述格雷码计数输出的输出值被4除的余数;
若所述余数为0,获得所述m路子时钟的输出中高电平的个数作为子时钟计数值;若所述余数为1,将所述m路子时钟的输出右移90°/α-1位后,获得高电平的个数作为子时钟计数值;若所述余数为2,将所述m路子时钟的输出取反后,获得高电平的个数作为子时钟计数值;若所述余数为3,将所述m路子时钟的输出先取反再右移90°/α-1位后,获得高电平的个数作为子时钟计数值;
根据所述格雷码计数输出的输出值、所述子时钟计数值、所述基本时钟的周期和所述α,获得对所述预定事件的计时结果。
3.根据权利要求1所述的方法,其特征在于,所述获得对所述预定事件的计时结果,包括:
通过查表方式获得对所述预定事件的计时结果。
4.根据权利要求1所述的方法,其特征在于,所述对基本时钟进行格雷码计数得到格雷码计数输出,包括:
对所述基本时钟进行二进制计数,得到二进制计数输出;
将所述二进制计数输出转换为格雷码计数输出。
5.根据权利要求1所述的方法,其特征在于,所述对基本时钟进行格雷码计数得到格雷码计数输出,包括:
对所述基本时钟进行分频和延时,得到所述格雷码计数输出。
6.一种计时装置,其特征在于,所述装置包括:
计数单元,用于对基本时钟进行格雷码计数,得到格雷码计数输出;
m个子时钟单元,用于分别对所述格雷码计数输出中的最低位输出进行移相,得到m路子时钟,其中,所述m路子时钟中各路子时钟与所述最低位输出的相位差满足:180°能被α整除,n为满足0<n<(180°/α)的整数;若90°能α被整除,m=180/α-2,若90°不能被α整除,m=180/α-1;α为能够整除180°的角度值;
锁存单元,用于当预定事件发生时,锁存所述格雷码计数输出和所述m路子时钟的输出;
计时单元,用于根据所述锁存单元锁存的格雷码计数输出的输出值、所述锁存单元锁存的所述m路子时钟的输出、以及所述基本时钟的周期和所述α,获得对所述预定事件的计时结果;
所述计时结果为(B×90°/α+X)×Δt;
其中,B为所述格雷码计数输出的输出值,X为子时钟计数值,若B被4除得到的余数为0,X为SP中高电平的个数,SP为所述m路子时钟的输出,若B被4除得到的余数为1,X为SP中高电平的个数与i的差值,若B被4除得到的余数为2,X为2×i的积与SP中高电平的个数的差值,若B被4除得到的余数为3,X为i与SP中高电平的个数的差值,i为大于或等于90°/α-1的最小整数,Δt是计时精度,Δt=t0×α/90°,t0为所述基本时钟的周期。
7.根据权利要求6所述的装置,其特征在于,所述计时单元具体用于:
获得所述格雷码计数输出的输出值被4除的余数;
若所述余数为0,获得所述m路子时钟的输出中高电平的个数作为子时钟计数值;若所述余数为1,将所述m路子时钟的输出右移90°/α-1位后,获得高电平的个数作为子时钟计数值;若所述余数为2,将所述m路子时钟的输出取反后,获得高电平的个数作为子时钟计数值;若所述余数为3,将所述m路子时钟的输出先取反再右移90°/α-1位后,获得高电平的个数作为子时钟计数值;
根据所述格雷码计数输出的输出值、所述子时钟计数值、所述基本时钟的周期和所述α,获得对所述预定事件的计时结果。
8.根据权利要求6所述的装置,其特征在于,所述计时单元具体用于,通过查表方式获得对所述预定事件的计时结果。
9.根据权利要求6所述的装置,其特征在于,所述计数单元包括:
计数子单元,用于对所述基本时钟进行二进制计数,得到二进制计数输出;
转换单元,用于将所述二进制计数输出转换为格雷码计数输出。
10.根据权利要求6所述的装置,其特征在于,所述计数单元包括:分频延时单元,用于对所述基本时钟进行分频和延时,得到所述格雷码计数输出。
CN201510897299.XA 2015-12-08 2015-12-08 一种计时方法及装置 Active CN105653238B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510897299.XA CN105653238B (zh) 2015-12-08 2015-12-08 一种计时方法及装置
US15/369,848 US9866220B2 (en) 2015-12-08 2016-12-05 Timing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510897299.XA CN105653238B (zh) 2015-12-08 2015-12-08 一种计时方法及装置

Publications (2)

Publication Number Publication Date
CN105653238A CN105653238A (zh) 2016-06-08
CN105653238B true CN105653238B (zh) 2018-10-02

Family

ID=56482205

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510897299.XA Active CN105653238B (zh) 2015-12-08 2015-12-08 一种计时方法及装置

Country Status (2)

Country Link
US (1) US9866220B2 (zh)
CN (1) CN105653238B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3022572B1 (en) * 2013-07-19 2020-12-16 Koninklijke Philips N.V. Reducing interference in a combined assembly for mri and nuclear imaging
US10976709B1 (en) 2020-03-30 2021-04-13 Stmicroelectronics (Research & Development) Limited Latched gray code for ToF applications
CN113238610B (zh) * 2021-05-13 2022-10-21 北京东土军悦科技有限公司 一种计数器信号同步的方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6392455B1 (en) * 2001-03-30 2002-05-21 Koninklijke Philips Electronics N.V. Baud rate generator with fractional divider
CN1622464A (zh) * 2003-11-27 2005-06-01 华为技术有限公司 输出格雷码计数的方法及其计数器
CN1642010A (zh) * 2004-01-01 2005-07-20 华为技术有限公司 时钟锁定和频率偏差的检测装置
CN203104406U (zh) * 2012-12-24 2013-07-31 上海集成电路研发中心有限公司 一种异步计数器
CN103856211A (zh) * 2014-03-28 2014-06-11 龙芯中科技术有限公司 计数器、计数方法和分频器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6894953B2 (en) 2001-09-12 2005-05-17 Lockheed Martin Corporation Circuit for measuring time of arrival of an asynchronous event
US20060129350A1 (en) * 2004-12-14 2006-06-15 West Burnell G Biphase vernier time code generator
US7979228B2 (en) 2007-07-20 2011-07-12 The Regents Of The University Of Michigan High resolution time measurement in a FPGA
CN103345144A (zh) 2013-06-24 2013-10-09 沈阳东软医疗系统有限公司 一种时间测量方法和装置
US9213316B2 (en) 2014-02-06 2015-12-15 Texas Instruments Incorporated Circuit for detecting and correcting timing errors

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6392455B1 (en) * 2001-03-30 2002-05-21 Koninklijke Philips Electronics N.V. Baud rate generator with fractional divider
CN1622464A (zh) * 2003-11-27 2005-06-01 华为技术有限公司 输出格雷码计数的方法及其计数器
CN1642010A (zh) * 2004-01-01 2005-07-20 华为技术有限公司 时钟锁定和频率偏差的检测装置
CN203104406U (zh) * 2012-12-24 2013-07-31 上海集成电路研发中心有限公司 一种异步计数器
CN103856211A (zh) * 2014-03-28 2014-06-11 龙芯中科技术有限公司 计数器、计数方法和分频器

Also Published As

Publication number Publication date
CN105653238A (zh) 2016-06-08
US9866220B2 (en) 2018-01-09
US20170163262A1 (en) 2017-06-08

Similar Documents

Publication Publication Date Title
CN102045062B (zh) 一种基于Cordic算法的数字锁相环
CN105653238B (zh) 一种计时方法及装置
CN104660220B (zh) 一种产生整数频率脉冲的信号发生器及信号产生方法
US9874863B2 (en) Finite state machine-based trigger event detection employing interpolation
CN103067016B (zh) 一种流水线时数转换器及其方法
US20190199356A1 (en) By odd integer digital frequency divider circuit and method
CN107836094A (zh) 时钟恢复电路
CN102879641A (zh) 频率量测方法及系统
CN110324026A (zh) 一种芯片内部时钟源的时钟频率检测方法
JP2013191213A (ja) メディアンフィルタ装置及びメディアンフィルタ方法
Najafi et al. High-speed stochastic circuits using synchronous analog pulses
US20210044299A1 (en) Method and apparatus for stochastic ring oscillator time-to-digital converter with interleaved loop counters
Canals et al. Stochastic-based pattern-recognition analysis
CN105811968A (zh) 调制器、锁相回路及响应频率控制字产生控制码的方法
Wang et al. Low-complexity Winograd convolution architecture based on stochastic computing
CN112162724A (zh) 一种带精度的量子除法运算方法及装置
US9891594B2 (en) Heterogeneous sampling delay line-based time to digital converter
Piestrak Design of multi-residue generators using shared logic
Park et al. Application of weighing matrices to simultaneous driving technique for capacitive touch sensors
CN103095297B (zh) 直接数字频率合成器产生精准频率的方法
Gupta et al. Performance Investigation of Binary Counter with Different Clock Gating Networks
CN102710237B (zh) 一种一阶数字低通滤波方法、滤波器及电子设备
CN100458452C (zh) 一种电能计量芯片中的数频转换电路
US9564904B2 (en) Asynchronous high-speed programmable divider
Mukherjee et al. High-speed on-chip event counters for embedded systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 110179 No. 177-1 Innovation Road, Hunnan District, Shenyang City, Liaoning Province

Patentee after: Shenyang Neusoft Medical Systems Co.,Ltd.

Address before: Hunnan New Century Road 110179 Shenyang city of Liaoning Province, No. 16

Patentee before: SHENYANG NEUSOFT MEDICAL SYSTEMS Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20230413

Address after: Room 308, No. 177-2 Chuangxin Road, Hunnan District, Shenyang City, Liaoning Province, 110167

Patentee after: Shenyang Zhihe Medical Technology Co.,Ltd.

Address before: 110179 No. 177-1 Innovation Road, Hunnan District, Shenyang City, Liaoning Province

Patentee before: Shenyang Neusoft Medical Systems Co.,Ltd.

TR01 Transfer of patent right