Time-to-digital converter

文档序号:1343466 发布日期:2020-07-17 浏览:7次 中文

阅读说明:本技术 时数转换器 (Time-to-digital converter ) 是由 袁超 于锐 陈雪松 刘苏鹏 杨腾智 于 2017-12-14 设计创作,主要内容包括:公开了一种时数转换器(time-to-digital converter,TDC)(300),包括环路振荡器模块(302)和数字差错校正模块(304)。环路振荡器模块用于接收采样信号、寻址信号和预置信号,并且包括:设置有多个反相器(3024)的环路振荡器(3022);相位采样器(3026),用于在接收到采样信号时,对环路振荡器的反相器生成的相位信号进行采样,以生成第一输出信号;计数器时钟发生器(3028),用于基于接收到的采样信号和环路振荡器的第一个和最后一个反相器分别生成的相位信号,生成第一和第二时钟信号;第一和第二计数器(3030和3032),用于基于分别接收到的第一和第二时钟信号,分别生成第一和第二计数器输出信号;及数据采样器(3034),用于对第一和第二计数器输出信号进行采样,以分别生成第二和第三输出信号。数字差错校正模块用于处理第一、第二和第三输出信号,以生成数字信号,其中数字信号表示TDC接收到启动信号与接收到停止信号之间的时间差。(A time-to-digital converter (TDC) (300) is disclosed that includes a loop oscillator module (302) and a digital error correction module (304). The loop oscillator module is for receiving a sampling signal, an address signal and a preset signal, and includes: a loop oscillator (3022) provided with a plurality of inverters (3024); a phase sampler (3026) for sampling a phase signal generated by an inverter of the loop oscillator upon receipt of the sampling signal to generate a first output signal; a counter clock generator (3028) for generating a first and a second clock signal based on the received sampling signal and phase signals generated by a first and a last inverter of the loop oscillator, respectively; first and second counters (3030 and 3032) for generating first and second counter output signals, respectively, based on first and second clock signals received, respectively; and a data sampler (3034) for sampling the first and second counter output signals to generate second and third output signals, respectively. The digital error correction module is configured to process the first, second, and third output signals to generate a digital signal, wherein the digital signal represents a time difference between the TDC receiving the start signal and the TDC receiving the stop signal.)

1. A time-to-digital converter (TDC), comprising:

a loop oscillator module for receiving a sampling signal, an addressing signal and a preset signal, wherein the loop oscillator module comprises:

(i) a loop oscillator provided with a plurality of inverters;

(ii) a phase sampler for sampling phase signals generated by the plurality of inverters of the loop oscillator upon receipt of the sampling signal to generate a first output signal;

(iii) a counter clock generator for generating first and second clock signals based on the received sampling signal and phase signals generated by first and last inverters of the loop oscillator, respectively;

(iv) first and second counters for generating first and second counter output signals, respectively, based on the first and second clock signals received, respectively; and

(v) a data sampler for sampling the first and second counter output signals to generate second and third output signals, respectively; and

a digital error correction module for processing the first, second and third output signals to generate a digital signal, wherein the digital signal represents a time difference between receipt of a start signal and receipt of a stop signal by the TDC,

the loop oscillator is configured to operate between a first mode and a second mode upon receiving the preset signal, wherein in the first mode, the loop oscillator is electrically turned on for a period corresponding to the time difference, and in the second mode, the loop oscillator is electrically turned off by presetting an inverter according to the addressing signal, and the addressing signal includes an identification of the inverter selected for presetting in each switching period of the loop oscillator.

2. The TDC of claim 1, wherein the data sampler is implemented using a D flip-flop circuit.

3. The TDC of any one of the preceding claims, characterized in that said phase sampler is implemented using a sense amplifier based D flip-flop circuit.

4. The TDC of any one of the preceding claims, characterized in that the first output signal comprises a composite phase signal based on phase signals generated by the plurality of inverters.

5. The TDC of any one of the preceding claims, further comprising a digital control module for receiving said start and stop signals to generate said sampling signal, addressing signal and preset signal, wherein said digital control module comprises:

a pseudo-random code generator for generating the identifier to randomly address one of the plurality of inverters of the loop oscillator to be preset; and

a control signal generator for generating the sampling signal and the preset signal.

6. The TDC of any one of claims 1-4, wherein the identification is predetermined to preset the same inverter at each transition period.

7. TDC as claimed in any of the preceding claims, characterized in that the digital error correction module is configured to perform the following steps for processing the first, second and third output signals:

determining whether a value of a phase signal generated by the first inverter is 0 or 1, wherein,

selecting said third output signal for processing by said digital error correction module if the value of the phase signal generated by said first inverter is 0; or, if the value of the phase signal generated by the first inverter is 1, selecting the second output signal to be processed by the digital error correction module, wherein the second output signal is further processed using the value of the phase signal generated by the last inverter and a predefined value, the predefined value being associated with a corresponding inverter selected to be preset in each switching cycle of the loop oscillator;

the predefined value is also associated with the identity.

8. The TDC of any one of the preceding claims, wherein the counter clock generator comprises: a phase signal to stop the first and last inverters from generating and providing to the counter clock generator, wherein the phase signal is stopped based on the sampling signal.

9. A method of time-to-digital conversion using a TDC as claimed in any preceding claim, the method comprising:

(i) a plurality of inverters of the loop oscillator generating phase signals;

(ii) when the loop oscillator module receives a sampling signal, the phase sampler samples the phase signal to generate a first output signal;

(iii) a counter clock generator generating a first and a second clock signal based on the received sampling signal and phase signals generated by a first and a last inverter of the loop oscillator, respectively;

(iv) the first and second counters generate first and second counter output signals based on the first and second clock signals received, respectively;

(v) a data sampler samples the first and second counter output signals to generate second and third output signals, respectively; and

(vi) a digital error correction module processes the first, second and third output signals to generate a digital signal, wherein the digital signal represents a time difference between receipt of a start signal and receipt of a stop signal by the TDC,

the method further comprises the following steps: upon receiving the preset signal, the loop oscillator operates between a first mode in which the loop oscillator is electrically turned on for a period corresponding to the time difference and a second mode in which the loop oscillator is electrically turned off by presetting an inverter according to the address signal including an identification of the inverter selected for presetting in each switching period of the loop oscillator.

10. The method of claim 9, wherein step (vi) comprises:

determining whether a value of a phase signal generated by the first inverter is 0 or 1, wherein,

selecting said third output signal for processing by said digital error correction module if the value of the phase signal generated by said first inverter is 0; or, if the value of the phase signal generated by the first inverter is 1, selecting the second output signal to be processed by the digital error correction module, wherein the second output signal is further processed using the value of the phase signal generated by the last inverter and a predefined value, the predefined value being associated with a corresponding inverter selected to be preset in each switching cycle of the loop oscillator;

the predefined value is also associated with the identity.

11. A time-to-digital converter (TDC), comprising:

a loop oscillator module for receiving a sampling signal, an addressing signal and a preset signal, wherein the loop oscillator module comprises:

(i) a loop oscillator provided with a plurality of inverters;

(ii) a phase sampler for sampling phase signals generated by the plurality of inverters of the loop oscillator upon receipt of the sampling signal to generate a first output signal;

(iii) a counter clock generator for generating first and second clock signals based on the received sampling signal and phase signals generated by first and last inverters of the loop oscillator, respectively;

(iv) first and second counters for generating first and second counter output signals, respectively, based on the first and second clock signals received, respectively; and

(v) a data sampler for sampling the first and second counter output signals to generate second and third output signals, respectively; and

a digital error correction module for processing the first, second and third output signals to generate a digital signal, wherein the digital signal represents a time difference between receipt of a start signal and receipt of a stop signal by the TDC,

the loop oscillator is configured to operate between a first mode and a second mode when receiving the preset signal, wherein in the first mode, the loop oscillator is electrically conducted in a period corresponding to the time difference, and in the second mode, the loop oscillator is electrically turned off by presetting an inverter according to the addressing signal, and the addressing signal includes an identifier of the inverter selected to be preset in each conversion period of the loop oscillator; and

a digital control module for receiving the start and stop signals, wherein the digital control module comprises:

(vi) a pseudo-random code generator for generating the identifier to randomly address one of the plurality of inverters of the loop oscillator to be preset; and

(vii) a control signal generator for generating the sampling signal and the preset signal.

Technical Field

The present invention relates to a time-to-digital converter (TDC).

Background

Time-to-digital converters (TDCs) have been widely used for over 20 years in numerous applications requiring accurate time interval measurements, some examples of applications include particle and high energy physics, biomedical imaging (e.g., Positron Emission Tomography (PET)), and various time-of-flight (ToF) measurements with the development of Complementary Metal Oxide Semiconductor (CMOS) technology, all-digital phase-locked loops (ADP LL) of digital communication systems have also adopted TDCs, TDCs being evolved from P LL to the all-digital domain by converting time or phase information to digital codes, to replace the traditional analog P LL.

Inverter-based delay line TDC

FIG. 1a shows a pseudo-differential flash type TDC100 for use in counter-based ADP LL high frequency signalsCKV and its complement are first aligned along the edge and passed through 48 complementary inverters. Inverters as delay elements, resolution T of each inverter configurationinvBetween 16ps and 21 ps. Therefore, the CKV signal is eventually delayed by kT in total after propagating through k invertersinvSee clock timing diagram 150 in fig. 1 b. Subsequently, upon receiving the reference signal frequency (FREF) signal, the delayed clock replica vector is sampled using an array of 48 sense amplifier based D flip-flops (saddffs). It can be seen that after each inverter, the polarity of the signal is opposite. Therefore, to generate the correct output, the positive and negative inputs of the adjacent saddff will be inverted.

It is emphasized that the delay line TDC100 typically makes a trade-off between resolution and dynamic range. For a fixed inverter stage number, high resolution means a smaller dynamic range and vice versa. Therefore, in order to extend the dynamic range, the number of inverter stages needs to be increased greatly. However, this results in large power consumption and increases the actual IC area required to implement the circuitry of the delay line TDC 100. Furthermore, as the number of inverter stages increases, mismatch between the inverter stages causes a serious linearity problem. In addition, due to device mismatch, the sampling times of different DFFs cannot be perfectly aligned in practical circuit implementations. In particular, the FREF signal is typically transmitted through a buffer tree for distribution to the DFFs. The imbalance of the buffer tree may cause the sampling time of the DFF to be shifted. Therefore, sampling time misalignment of different DFFs and delay mismatch between delay cells are the main causes of nonlinearity of the delay line TDC 100.

TDC based on a Loop Oscillator

A ring-oscillator (RO) based TDC200 is depicted in fig. 2. Unlike the delay line TDC100, the delay lines in the RO-based TDC200 are configured in a ring shape. The free-running RO includes an odd number of inverters and is used to generate a plurality of phases at a relatively high frequency. The phase from the last stage of the RO is then fed to a high speed counter, which is configured to run at high frequency and is always on. The start and stop signals sample the phase of the loop oscillator and the output of the counter, respectively. The time difference between the start and stop signals corresponds to the final TDC output. However, the RO-based TDC200 has a problem in that the sampled counter output may be erroneous because the start and stop signals are not synchronized with the counter clock. In addition, certain assumptions are made regarding the delay design of the RO-based TDC200, which are difficult to satisfy in actual production. When process-voltage-temperature (PVT) variations and device mismatches occur, the actual delay time may differ significantly from the target delay time. Thus, the proposed error correction algorithm (for the RO-based TDC 200) may not work as expected in an actual manufacturing environment, with a high risk. In addition, the configuration in which the RO continuously runs freely is liable to cause a large amount of power consumption. In addition, the counter is always on, thus causing greater waste of power consumption.

It is therefore an object of the present invention to address at least one of the problems of the prior art and/or to provide options useful in the art.

Disclosure of Invention

According to a first aspect of the present invention, there is provided a time-to-digital converter (TDC) comprising: a loop oscillator module for receiving a sampling signal, an addressing signal and a preset signal, wherein the loop oscillator module comprises: a loop oscillator provided with a plurality of inverters; a phase sampler for sampling phase signals generated by the plurality of inverters of the loop oscillator upon receipt of the sampling signal to generate a first output signal; a counter clock generator for generating first and second clock signals based on the received sampling signal and phase signals generated by first and last inverters of the loop oscillator, respectively; first and second counters for generating first and second counter output signals, respectively, based on the first and second clock signals received, respectively; and a data sampler for sampling the first and second counter output signals to generate second and third output signals, respectively; and a digital error correction module for processing the first, second and third output signals to generate a digital signal, wherein the digital signal represents a time difference between receipt of a start signal and receipt of a stop signal by the TDC, wherein the loop oscillator is configured to operate between a first mode and a second mode upon receipt of the preset signal, wherein in the first mode the loop oscillator is electrically turned on for a period corresponding to the time difference, and in the second mode the loop oscillator is electrically turned off by presetting an inverter in accordance with the addressing signal, the addressing signal including an identification of the inverter selected for presetting in each switching period of the loop oscillator.

Preferably, the data sampler may be implemented using a D flip-flop circuit.

Preferably, the phase sampler may be implemented using a sense amplifier based D flip-flop circuit.

Preferably, the first output signal may include a synthesized phase signal based on the phase signals generated by the plurality of inverters.

Preferably, the TDC may further include a digital control module for receiving the start and stop signals, the digital control module including: a pseudo-random code generator for generating the identifier to randomly address one of the plurality of inverters of the loop oscillator to be preset; and a control signal generator for generating the sampling signal and the preset signal.

Preferably, the identification may be predetermined to preset the same inverter at each switching period.

Preferably, the digital error correction module may be adapted to perform the following steps to process the first, second and third output signals: judging whether the value of the phase signal generated by the first inverter is 0 or 1, and if the value of the phase signal generated by the first inverter is 0, selecting the third output signal to be processed by the digital error correction module; or, if the value of the phase signal generated by the first inverter is 1, selecting the second output signal to be processed by the digital error correction module, wherein the second output signal is further processed using the value of the phase signal generated by the last inverter and a predefined value, the predefined value being associated with a corresponding inverter, the corresponding inverter being selected to be preset in each switching cycle of the loop oscillator, the predefined value being further associated with the identification.

Preferably, the counter clock generator may include: a phase signal to stop the first and last inverters from generating and providing to the counter clock generator, wherein the phase signal is stopped based on the sampling signal.

According to a second aspect of the present invention, there is provided a method of time-to-digital conversion using the TDC of the first aspect. The method comprises the following steps: (i) a plurality of inverters of the loop oscillator generating phase signals; (ii) when the loop oscillator module receives a sampling signal, the phase sampler samples the phase signal to generate a first output signal; (iii) a counter clock generator generating a first and a second clock signal based on the received sampling signal and phase signals generated by a first and a last inverter of the loop oscillator, respectively; (iv) the first and second counters generate first and second counter output signals based on the first and second clock signals received, respectively; (v) a data sampler samples the first and second counter output signals to generate second and third output signals, respectively; (vi) a digital error correction module processes the first, second and third output signals to generate a digital signal, wherein the digital signal represents a time difference between receipt of a start signal and receipt of a stop signal by the TDC. The method further comprises the following steps: upon receiving the preset signal, the loop oscillator operates between a first mode in which the loop oscillator is electrically turned on for a period corresponding to the time difference and a second mode in which the loop oscillator is electrically turned off by presetting an inverter according to the address signal including an identification of the inverter selected for presetting in each switching period of the loop oscillator.

Preferably, step (vi) may comprise: judging whether the value of the phase signal generated by the first inverter is 0 or 1, and if the value of the phase signal generated by the first inverter is 0, selecting the third output signal to be processed by the digital error correction module; or, if the value of the phase signal generated by the first inverter is 1, selecting the second output signal to be processed by the digital error correction module, wherein the second output signal is further processed using the value of the phase signal generated by the last inverter and a predefined value, the predefined value being associated with a corresponding inverter selected to be preset in each switching cycle of the loop oscillator. The predefined value is also associated with the identity.

According to a third aspect of the present invention, there is provided a time-to-digital converter (TDC) comprising: a loop oscillator module for receiving a sampling signal, an addressing signal and a preset signal, wherein the loop oscillator module comprises: a loop oscillator provided with a plurality of inverters; a phase sampler for sampling phase signals generated by the plurality of inverters of the loop oscillator upon receipt of the sampling signal to generate a first output signal; a counter clock generator for generating first and second clock signals based on the received sampling signal and phase signals generated by first and last inverters of the loop oscillator, respectively; first and second counters for generating first and second counter output signals, respectively, based on the first and second clock signals received, respectively; and a data sampler for sampling the first and second counter output signals to generate second and third output signals, respectively; and a digital error correction module for processing the first, second and third output signals to generate a digital signal, wherein the digital signal represents a time difference between receipt of a start signal and receipt of a stop signal by the TDC, wherein the loop oscillator is configured to operate between a first mode and a second mode upon receipt of the preset signal, wherein in the first mode the loop oscillator is electrically turned on for a period corresponding to the time difference, and in the second mode the loop oscillator is electrically turned off by presetting an inverter in accordance with the addressing signal, the addressing signal including an identification of the inverter selected for presetting in each switching period of the loop oscillator; and a digital control module for receiving the start and stop signals, wherein the digital control module comprises: a pseudo-random code generator for generating the identifier to randomly address one of the plurality of inverters of the loop oscillator to be preset; and a control signal generator for generating the sampling signal and the preset signal.

It will be apparent that features relating to one aspect of the invention may also be applied to other aspects of the invention.

These and other aspects of the invention are apparent from and will be elucidated with reference to the embodiments described hereinafter.

Drawings

Embodiments of the invention are disclosed below in conjunction with the appended drawings, wherein:

fig. 1a is a schematic diagram of a time-to-digital converter (TDC) of a prior art inverter-based delay line, and fig. 1b is a clock timing diagram of clock signals generated at different orders of the TDC of the delay line of fig. 1a in the prior art.

Fig. 2 is a schematic diagram of a prior art ring-oscillator (RO) based TDC.

Figure 3 is a schematic diagram of a proposed TDC in accordance with an embodiment.

Fig. 4 is a flow chart of a method of time-to-digital conversion using the TDC of fig. 3.

Fig. 5 is a clock timing diagram in the prior art, which shows an example of an error that may occur in the conventional counter output selection method for the 5-stage loop oscillator TDC.

Fig. 6a and 6b are timing diagrams of the proposed digital error correction method for the TDC of fig. 3, respectively showing the use of a first counter (i.e., CNT0) of the TDC of fig. 3 when Vout <0> samples are "1" and the use of a second counter (i.e., CNT1) of the TDC of fig. 3 when Vout <0> samples are "0".

Fig. 7 is a flow chart of the proposed digital error correction method.

Figure 8 shows different inverters of the loop oscillator randomly presetting the TDC of figure 3 at different transition periods.

Fig. 9 shows a graphical comparison of TDC differential non-linearity (DN L) measurements obtained by a conventional method of presetting a fixed inverter (inverter of the loop oscillator) and the proposed method of presetting a different random inverter (inverter of the loop oscillator).

Fig. 10 shows a timing diagram of the TDC of fig. 3 when it operates using a variable preset address (preset _ address) scheme.

Figure 11 shows a timing diagram of the TDC of figure 3 when used in operation with a fixed preset address (preset _ address) scheme.

Detailed Description

Fig. 3 is a schematic diagram of a proposed time-to-digital converter (TDC) 300 according to an embodiment. The TDC300 may also be referred to as a cyclic TDC 300. In general, the TDC300 includes a (presettable) loop oscillator module 302 and a digital error correction module 304. The loop oscillator module 302 is configured to receive a sampling signal, an addressing signal and a preset signal, and the loop oscillator module 302 includes: a loop oscillator 3022 provided with a plurality of inverters 3024 (arranged in N stages in sequence, where "N" represents the number of stages, for example "N" may be 15); a phase sampler 3026 for sampling, upon receipt of a sampling signal, phase signals generated by the plurality of inverters 3024 of the loop oscillator 3022 (i.e., denoted as "Vout <0 >", "Vout <1 >", … …, "Vout < N-1 >" in fig. 3, respectively) to generate a first output signal (i.e., denoted as "frac" in fig. 3); a counter clock generator 3028 (implemented by a conventional AND gate) for generating first AND second clock signals (i.e., "Vout <0 >" AND "Vout < N-1 >" are also provided to the counter clock generator 3028) based on the received sampling signal AND the phase signals generated by the first AND last inverters 3024, respectively, of the loop oscillator 3022 (i.e., "Vout <0 >" AND "Vout < N-1 >"), respectively (i.e., denoted as "clk _ cnt 0" AND "clk _ cnt 1", respectively, in fig. 3); first and second counters 3030 and 3032 (i.e., denoted as "CNT 0" and "CNT 1" in fig. 3) for generating first and second counter output signals (i.e., denoted as "CNT 0" and "CNT 1", respectively, in fig. 3) based on the first and second clock signals received, respectively; and a data sampler 3034 for sampling the first and second counter output signals to generate second and third output signals, respectively. The digital error correction module 304 is configured to process the first, second, and third output signals to generate a digital signal representing a time difference between the TDC300 receiving the start signal and receiving the stop signal. In particular, the digital error correction module 304 is used to correct miscounting errors caused by errors in the second and third output signals due to the first and second clock signals (i.e., "clk _ cnt 0" and "clk _ cnt 1") not being synchronized to the clock frequencies of the start signal and the stop signal (i.e., both signals have the same clock frequency). Further, it should be understood that the start signal and stop signal are generated in response to the occurrence and termination of an event, respectively, wherein the time difference between the occurrence and termination will be measured by the TDC 300.

Further, it should be understood that the counter clock generator 3028 is configured to stop the phase signal generated by the first and last inverters 3024 and provided to the counter clock generator 3028, wherein the phase signal is stopped based on the sampling signal.

Further, the loop oscillator 3022 is configured to operate between a first mode in which the loop oscillator 3022 is electrically turned on for a period corresponding to the time difference and a second mode in which the loop oscillator 3022 is electrically turned off by presetting an inverter 3024 in accordance with an address signal including an identification of the inverter 3024 selected for presetting in each switching period of the loop oscillator 3022, when receiving the preset signal. That is, the loop oscillator 3022 is turned on and off by the preset signal in both modes.

In one example, the phase sampler 3026 is implemented using a sense amplifier based D-flip-flop (SA-DFF) circuit (e.g., using "N" SA-DFFs, and where the value of "N" is the same as the number of stages of the ring oscillator 3022 configuration), while the data sampler 3034 is implemented using a D-flip-flop circuit. Further, it should be understood that the first output signal (i.e., "frac") is a composite phase signal based on the phase signal generated by inverter 3024. More specifically, the first output signal may also be defined as "frac < 0; n-1> "format, and is mapped one-to-one with" Vout <0: N-1> ". For example, it is understood that "frac <0 >" is an equivalent sample value of "Vout <0 >", frac <2> "is an equivalent sample value of" Vout <2> ", and so on.

Without limitation, the TDC300 may optionally further include a digital control module 306 for receiving start and stop signals transmitted to the TDC 300. Based on the received start and stop signals, the digital control module 306 is used to generate sampling signals, addressing signals and preset signals. Specifically, the digital control module 306 includes: a pseudo-random code generator 3062 (implemented in the form of a TDC preset randomization module) for generating the identification (i.e., N bits preset _ address) to randomly address one of the plurality of inverters 3024 of the loop oscillator 3022 to be preset for each (time-number) transition period of the loop oscillator 3022; and a control signal generator 3064 for generating the sampling signal and the preset signal. Accordingly, it should be understood that the digital control module 306 may be used as a control signal generation block for the TDC 300. In addition, pseudo-random code generator 3062 is configured to perform a modulo operation to generate an N-bit preset _ address. Then, for clarity in explaining the definition of "conversion period," it should be noted that the TDC300 is used to operate on two input clocks running at the same frequency. Thus, a "conversion period" in this context refers from the start of one (number of hours) conversion to the start of the immediately next (number of hours) conversion. Basically, the "conversion period" is thus equal to one clock period of the signal input to the TDC 300.

In addition, it should be understood that N bits of preset _ address are linked to the start code (start _ code), and the N bits of preset _ address are mapped one to one with the start _ code. The start _ code, which may also be referred to as a start phase, is an initial phase of the loop oscillator 3022 in a preset state (i.e., the second mode). The initial phase is encoded by the TDC encoder to generate a binary code (i.e., start _ code). In addition, for clarity of description, the one-to-one mapping refers to associating start _ code with N bits of preset _ address.

A method 400 of time-to-digital conversion using the TDC300 is disclosed in the flowchart of fig. 4. In general, the method 400 includes: at step 402, a plurality of inverters 3024 of the loop oscillator 3022 generate a phase signal; at step 404, phase sampler 3026 samples the phase signal (when the sampled signal is received by the loop oscillator module) to generate a first output signal; at step 406, the counter clock generator 3028 generates first and second clock signals (based on the received sampling signal and the phase signals generated by the first and last inverters 3024, respectively, of the loop oscillator 3022); at step 408, first and second counters 3030 and 3032 generate first and second counter output signals (based on the first and second clock signals received, respectively); at step 410, the data sampler 3034 samples the first and second counter output signals to generate second and third output signals, respectively; at step 412, the digital error correction module 304 processes the first, second, and third output signals to generate a digital signal representing a time difference between the TDC300 receiving the start signal and receiving the stop signal.

The method 400 further includes a step of: upon receiving the preset signal, the loop oscillator 3022 operates (not shown) between a first mode in which the loop oscillator 3022 is electrically turned on for a period corresponding to the time difference and a second mode in which the loop oscillator 3022 is electrically turned off by presetting an inverter 3024 in accordance with an address signal including an identification of the inverter 3024 selected for presetting in each switching period of the loop oscillator 3022.

Fig. 5 is a prior art clock timing diagram 500 illustrating an example of errors that may occur in a conventional counter output selection method (not shown) for a 5-stage loop oscillator TDC. In short, according to the "frac _ phase" state, the counter output (i.e., "CNT 0") in the second half of the clock cycle is generally considered error-free and is therefore selected as the final counter value. However, miscounting problems can still occur in this conventional selection method during the "frac _ phase" transition from 2N 1 to 0 or from N to N + 1. The reason for this may be a mismatch between the loop oscillator phase sampling the SA-DFF clock and the counter output sampling the DFF clock, where the two clock signals are from a common source. However, due to routing mismatch, different loading, and different buffer sizes, there may be a significant mismatch between the two clock signals, such that the counter output may be ambiguous, as shown in fig. 5. In addition, in order to save power and IC area, the two DFFs usually adopt different circuit structures. In particular, the SA-DFF is a custom latch-type dynamic comparator optimized for power, speed, and meta-stable performance, whereas the DFF used to sample the counter output is typically not so optimized.

Thus, to substantially, if not completely, eliminate possible miscounting problems caused by circuit defects, a digital error correction method 700 (i.e., see fig. 7) is proposed for use with the TDC300 of fig. 3, wherein the first and second clock signals of the first counters 3030 and 3032 are used to stabilize the first and second counter output signals at rest. It should be understood that stopping the first and second clock signals of the first and second counters 3030 and 3032 means that the associated clock signals become 0 level under certain conditions, for example, when the signals change from low level to high level. The outputs of the first and second counters 3030 and 3032 are sampled only when the first and second counter output signals have stabilized. Detailed timing diagrams of digital error correction method 700 are shown in fig. 6a and 6 b. Specifically, FIG. 6a and FIG. 6b show the values when "Vout" is reached<0>When the "sample is" 1 ", then" cnt0 "(i.e., the first counter output signal) is used, and when" Vout<0>When "sample is" 0, "cnt 1" (i.e., the second counter output signal) is used. It can be seen that when the first and second clock signals are stopped, the secondThe outputs of the first and second counters 3030 and 3032 stabilize after a short delay. Thus, the "cnt _ out _ sample" signal can be easily generated to sample the correct counter output. For clarity of illustration, it should be understood that the "cnt _ out _ sample" signal is the same sampled signal generated by control signal generator 3064. It should be noted that a minimum pulse width "T" as shown in FIG. 6a is requiredpulse". The pulse width is "T" required for the minimum rise time of the counter clock signal for switching the first counter 3030pulse"values can be obtained by simulation under different process-voltage-temperature (PVT) conditions. But in this example a programmable delay is used to generate the required pulse TpulseThis is for experimental research purposes only. The disclosed digital error correction method 700 greatly simplifies timing requirements compared to conventional selection methods. More importantly, the counter delay and meta-stable pair determine TpulseNo effect is required and circuit performance is not affected. Thus, the disclosed digital error correction method 700 is more robust against PVT variations.

Fig. 7 is a flow chart of a proposed digital error correction method 700 (where this is achieved by a counter output selection and compensation algorithm). Specifically, the first and second counter output signals to be used by the data sampler 3034 are selected based on the values of "frac <0 >" and "frac < N >". Where "frac <0 >" and "frac < N >" are the first and last SA-DFF outputs, respectively. If "frac <0 >" is 0, then a second counter 3032 ("CNT 1") is selected; otherwise, if the value of "frac <0 >" is 1, the first counter 3030 ("CNT 0") is selected. When the first counter 3030 ("CNT 0") is selected, its associated output needs to be compensated according to the value of "frac < N >" and the "start _ code" of the loop oscillator 3022 at each transition. For purposes of explanation, "start _ code" is a predefined value associated with each inverter 3024 in the loop oscillator 3022. When a different inverter 3024 is (randomly) selected for presetting, its corresponding "start _ code" is used to calculate the binary code in the digital signal generated by the digital error correction module 304. It will be appreciated that "start _ code" is determined by N bits of preset _ address (of the addressing signal), where "start _ code" will be subtracted from the first output signal (i.e. "frac").

This means that at step 412 of method 400 of fig. 4 (performed by digital error correction module 304), step 412 may generally comprise: determining whether the value of the phase signal generated by the first inverter 3024 is 0 or 1, and if the value of the phase signal generated by the first inverter 3024 is 0, selecting the third output signal to be processed by the digital error correction module 304; alternatively, if the value of the phase signal generated by the first inverter 3024 is 1, then the second output signal is selected to be processed by the digital error correction module 304, wherein the second output signal is also processed using the value of the phase signal generated by the last inverter 3024 and a predefined value associated with the corresponding inverter 3024 selected to be preset in each switching cycle of the loop oscillator 3022. It is to be understood that the predefined value is also associated with the identification.

Fig. 8 illustrates a concept 800 for randomly presetting different inverters 3024 of a loop oscillator 3022 in the TDC300 of fig. 3 for different conversion periods, when an inverter 3024 is selected to be preset (i.e., stopping the electrical operation of said inverter 3024, which causes the loop oscillator 3022 to stop oscillating), its input and output are high, when the preset signal is deasserted, the output of the selected inverter 3024 drains to low, starting to oscillate, accordingly, a TDC conversion starts, when the output of the TDC300 is sampled, the preset signal goes high, the loop oscillator 3022 stops oscillating, due to process variations, each inverter level in the loop oscillator 3022 has a different delay (inherently), resulting in TDC nonlinearity, thus, in order to improve the nonlinearity performance of the TDC300, it is proposed herein to preset different random inverters 3024 (inverters 3024 of the loop oscillator 3022) each time, which is achieved by using a pseudo-random-generator 3062 to generate an identification (e.g., device address) of the inverter 3024 in a random process to improve the nonlinearity performance of the TDC300, which theoretically, each preset different random-linear-output of the inverter 3024 is effectively shown by a different linear-to-linear.

In summary, the proposed TDC300 is intentionally designed to have high resolution and large dynamic range, and requires only a small IC area in practical circuit implementation. The TDC300 is also used to solve counter miscounting problems and provide an error-free output (generated by the digital error correction module 304) using the digital error correction method 700. Specifically, the digital error correction method 700 is used to intentionally stop the clocks of the first and second counters 3030 and 3032 when the TDC300 receives a stop signal. In this way, the outputs of the first and second counters 3030 and 3032 do not change before reset, and therefore, when the outputs are stable, the outputs of the first and second counters 3030 and 3032 can be sampled. It should be understood that two counters 3030 and 3032 are used in the TDC300 to detect the first and second half loop oscillator cycles and always select the correct counter output in the error free region (and it should be understood that this approach is also applicable to all types of TDCs based on oscillators).

Further, when the ring phase and counter outputs are read correctly, the TDC300 can be electrically stopped, resulting in low power operation. This is because the loop oscillator 3022 is configured to be preset to different phase states at different transition periods. The probability that each inverter 3042 in the loop oscillator 3022 is preset is the same regardless of the input to the TDC 300. Thus, the TDC linearity of the TDC300 is improved due to the averaging effect.

While the invention has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive; the invention is not limited to the disclosed embodiments. Other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed invention.

For example, in some cases, the digital control module 306 may also be included as part of the TDC300 of FIG. 3. Further, the N bits preset _ address may also be predefined as a fixed value instead of being randomly selected by the pseudo random code generator 3062. That is, a user of the TDC300 may provide a fixed value for the N-bit preset _ address to determine which inverter 3024 to preset. Specifically, under this variation, the same inverter 3024 will be preset in each conversion cycle. Accordingly, the pseudo random code generator 3062 is therefore turned off in this example and is not used to perform an operation. This also means that since the N bit preset _ address changes, the "start _ code" will change accordingly. In one example, the "start _ code" may be set to a value of zero.

For illustration, fig. 10 shows a timing diagram of the TDC300 of fig. 3 when operating with a variable preset address (preset _ address) scheme. It can be seen that the rate of change of the change of N bits preset _ address is also programmable, i.e. two examples are shown in fig. 10. Other rates of change are also possible, such as once every 4 cycles or 8 cycles. On the other hand, fig. 11 shows a timing diagram of the TDC300 of fig. 3 when it operates using a fixed preset address (preset _ address) scheme. It can be seen that the N-bit preset _ address is set to have a fixed value at each conversion cycle. In addition, the N-bit preset _ address is not necessarily set to "0" every time. In practice, the N bits of presetAddress may take values in the range of "0" to "N-1" (i.e., 0 ≦ presetAddress ≦ N-1), where N is the number of inverters 3024 provided in the loop oscillator 3022.

53页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种可穿戴设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!