US20090257319A1 - Method and Device for Measuring Time Intervals - Google Patents
Method and Device for Measuring Time Intervals Download PDFInfo
- Publication number
- US20090257319A1 US20090257319A1 US12/101,814 US10181408A US2009257319A1 US 20090257319 A1 US20090257319 A1 US 20090257319A1 US 10181408 A US10181408 A US 10181408A US 2009257319 A1 US2009257319 A1 US 2009257319A1
- Authority
- US
- United States
- Prior art keywords
- delay path
- timing event
- timing
- delay
- signal
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 18
- 238000002347 injection Methods 0.000 claims description 73
- 239000007924 injection Substances 0.000 claims description 73
- 230000004044 response Effects 0.000 claims description 31
- 230000001902 propagating effect Effects 0.000 claims description 24
- 230000002452 interceptive effect Effects 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000005259 measurement Methods 0.000 description 39
- 238000010586 diagram Methods 0.000 description 17
- 230000000903 blocking effect Effects 0.000 description 13
- 230000007704 transition Effects 0.000 description 9
- 230000003111 delayed effect Effects 0.000 description 4
- 101100191136 Arabidopsis thaliana PCMP-A2 gene Proteins 0.000 description 2
- 101100422768 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SUL2 gene Proteins 0.000 description 2
- 101100048260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UBX2 gene Proteins 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G04—HOROLOGY
- G04F—TIME-INTERVAL MEASURING
- G04F10/00—Apparatus for measuring unknown time intervals by electric means
- G04F10/04—Apparatus for measuring unknown time intervals by electric means by counting pulses or half-cycles of an ac
Definitions
- a time-to-digital converter can be used for a variety of purposes.
- a TDC can be used to measure the duration of time that has elapsed between a START and a STOP pulse or any other timing event. It can also be used to output the time of arrival for an incoming pulse.
- High resolution TDCs are increasingly popular in many applications, including time of flight measurements, phase detectors in phase-locked-loops (PLLs), data converters, high speed signal capturing, demodulators, and other measurement or instrumentation applications.
- TDC systems allow a single TDC to perform only single measurements at any one time. This means that simultaneous measurements of 2 or more time intervals cannot be performed by a single TDC. Multiple TDCs have to be provided to measure multiple time intervals simultaneously. This increases the area consumption of the TDC system. Further, the TDC cannot be started immediately after the termination of the previous measurement. Not only does this limit the type of measurements that can be performed, it also slows down the operating efficiency of the TDC system. Dead or inert time slots, during which no acquisition can be performed, have to be injected when the TDC is calibrated. Calibration is essential, especially for high-precision applications, because process variations and component deviations can cause undesirable offsets in time and gain errors in the TDC converter characteristics. In conventional systems, calibration is typically performed in fixed calibration intervals, which is undesirable because the TDC is unable to respond quickly to changes. Moreover, some systems do not allow interruptions in operation for calibration purposes.
- FIG. 1 a shows a block diagram of a TDC in accordance with one implementation.
- FIG. 1 b shows a schematic operational diagram of the TDC shown in FIG. 1 ;
- FIG. 1 c shows an exemplary waveform and exemplary time intervals measured for the waveform with the TDC shown in FIG. 1 .
- FIG. 2 shows a block diagram of exemplary components of the TDC shown in FIG. 1 .
- FIGS. 3 a - b show schematic diagrams of exemplary implementations of an injection point for a TDC.
- FIG. 3 c shows a schematic diagram of an exemplary implementation of a pulse generator.
- FIG. 3 d shows a schematic diagram of an alternative exemplary implementation of an injection point.
- FIG. 3 e shows a schematic circuit diagram of an alternative exemplary implementation of a pulse generator.
- FIGS. 4 a - b show schematic circuit diagrams of exemplary implementations of a delay path and delay unit respectively.
- FIGS. 5 a - b show exemplary implementations of a delay path and delay unit respectively.
- FIG. 5 c shows an alternative implementation of a delay unit.
- FIG. 5 d shows a schematic diagram of an exemplary implementation of comparator.
- FIG. 6 shows an exemplary implementation of a counter unit.
- FIG. 7 shows the timing diagram of a TDC when it is operated with first and second start signals.
- FIGS. 8 a - b illustrate the partial reset of a delay path.
- FIG. 9 shows a timing diagram of a partial reset operation.
- FIG. 10 shows an exemplary Vernier TDC.
- FIG. 11 shows a flow chart illustrating an exemplary method of measuring multiple time intervals.
- At least one implementation described herein relates a device including at least one delay path for propagating at least one timing event.
- the device also includes a plurality of injection points provided along the delay path.
- the injection points are configurable to receive the timing event and to deliver the timing event to the delay path.
- the method may include propagating at least one first timing event in a delay path, monitoring a position of the first timing event, selecting at least one injection point provided along the delay path based on the position the first timing event, applying a second timing event to the selected injection point without interfering with the first timing event, propagating the second timing event in the delay path, and generating at least one binary word in response to a stop signal, wherein the binary word is representative of the time interval being measured.
- FIG. 1 a shows a block diagram of a device operable to measure multiple time intervals.
- a device comprises a time-to-digital converter (TDC).
- the TDC comprises one or more input terminals 102 a - n configurable to receive timing signals.
- the number of input terminals can be 1, 2 or any other suitable number.
- a timing signal can be, for example, a “start” signal or a “stop” signal, or a combination of both, corresponding to the start or end of a time interval being measured.
- the TDC propagates a timing event along a delay path. It then provides, in response to the “stop” signal, a binary count of the time interval being measured at output terminals 105 a - m.
- the number of output terminals may be any number, depending on the desired degree of resolution.
- the device 100 may be configured to measure time intervals simultaneously. It may also be configured to continuously measure consecutive time intervals, with little or no “dead time” between measurements. At least one implementation of the device 100 includes a delay path and multiple injection points along the delay path for receiving timing events.
- a timing event as used herein, may be a pulse, an active transition in an input signal (e.g., start signal), edge, or other suitable timing event.
- FIG. 1 b shows one implementation of the device 100 .
- Device 100 comprises a delay path 110 and a plurality of injection points (Inj_ 1 and Inj_ 2 ) provided along the delay path 110 .
- injection points Inj_ 1 and Inj_ 2
- Delay path 110 is configurable to propagate at least one timing event.
- the injection points are configurable to receive the timing event and to deliver the timing event to the delay path.
- FIG. 1 c shows examples of time intervals that may be measured by TDC 100 . Although details of exemplary time intervals are shown, it should be understood that other types or combinations of time intervals may also be measured.
- TDC 100 is operable to measure multiple time intervals simultaneously. In addition, it may be operable to measure consecutive time intervals continuously.
- the measurements are made in response to multiple start signals (e.g., “start — 1” and “start — 2”) and a common stop signal (e.g., “stop — 1”).
- start signals e.g., “start — 1” and “start — 2”
- stop — 1 e.g., “stop — 1”
- the measurement of first time interval (t 3 -t 1 ) may be made in response to timing signals “start — 1” and “stop — 1,” corresponding to the start and end of the first time interval respectively.
- the TDC may be configurable to measure a second time interval (t 3 -t 2 ) in parallel to the first measurement. Measurement of the second time interval (t 3 -t 2 ) may be made in response to “start — 2” and “stop — 1,” corresponding to the start and end of the second time interval respectively.
- the TDC is configurable to measure a third time interval (t 2 -t 1 ) simultaneously with the first or the second time intervals.
- the measurement result for the time interval (t 2 -t 1 ) may be derived from the measurement results of the time intervals (t 3 -t 1 ) and (t 3 -t 2 )
- the TDC may be partially reset at time t 3 to allow for further measurements of time intervals (e.g., t 4 -t 3 ).
- the measurement of fourth time interval (t 4 -t 3 ) can be made immediately upon the termination of previous measurements, i.e. immediately upon stop_l. In particular the new measurement can be started during the partial reset.
- the measurement of the fourth time interval can be made in response to “start — 3” and “start — 4,” corresponding to the start and end of the fourth time interval.
- a fifth time interval (t 5 -t 3 ) may be measured simultaneously, in response to timing signals “start — 3” and “stop — 2”, corresponding to the start and end of the fifth time interval respectively, and so forth.
- measurements are made in response to a common start signal (e.g., “start — 1”) and multiple stop signals (e.g., “stop — 1” and “stop — 2”).
- start — 1 e.g., “start — 1”
- stop — 1 e.g., “stop — 1”
- stop — 2 e.g., “stop — 1”
- the measurement of the first time interval (t 2 -t 1 ) may be made in response to “start — 1” and “stop — 1.”
- Measurement of the second time interval (t 3 -t 1 ) may be made in response to “start — 1” and “stop — 2”
- measurement of the third time interval (t 3 -t 2 ) may be derived from the measurements of (t 2 -t 1 ) and (t 3 -t 1 ).
- the TDC may be partially reset at time t 3 to allow for further measurements.
- Measurement of the fourth time interval (t 4 -t 3 ) may be started immediately after the termination of previous measurements, upon receipt of a new start signal (e.g., “start — 2”) and end upon receipt of new stop signal (e.g., “stop — 3”). The measurement may be started during the partial reset phase. The purpose of the partial reset is to erase timing events associated with previous measurements.
- Measurement of fifth time interval (t 5 -t 3 ) may be made in response to “start — 2” and “stop — 4,” and so forth.
- Timing signals may be generated upon occurrence of various START and STOP events defined by the user. Other types of configurations are also useful.
- the TDC allows multiple time intervals to be measured simultaneously and/or continuously.
- the TDC is configurable to continuously measure time intervals without the insertion of “dead time” when it is being reset. Therefore, even when the TDC is being calibrated, it may advantageously be used continuously for data acquisition without interrupting its operation.
- FIG. 2 illustrates in more detail the TDC 100 shown in FIG. 1 .
- TDC 100 generally comprises a selection unit 201 , a delay path 110 , a sequencer 230 and a counter unit 204 .
- delay path 110 comprises a plurality of delay units 203 coupled in series to form a ring.
- a plurality of checkpoints e.g., Ckp_ 1 , Ckp_ 2 , Ckp_ 3 , and Ckp_ 4
- injection points e.g., Inj_ 1 and Inj_ 2
- FIG. 2 any other number of checkpoints (e.g., 1, 2, 3, 4, 5 and so forth) may also be provided.
- selection unit 201 is coupled to input terminals 102 a - n, checkpoints (Ckp_ 1 , Ckp_ 2 , Ckp_ 3 , Ckp_ 4 ), injection points (Inj_ 1 and Inj_ 2 ) and sequencer 230 .
- selection unit 201 directs a new timing event to one of the injection points (Inj_ 1 and Inj_ 2 ) via connectors 205 a or 205 b respectively.
- the new timing event is injected so as to avoid interfering with any previously injected timing events propagating within the delay path.
- the previously injected timing events may be any event already injected into, and propagating within, delay path 110 .
- the term “new timing events” refers to timing events that have not been injected into the delay path.
- Selection unit 201 selects an injection point to inject the new timing event based on current positions of previously injected timing events propagating along the delay path.
- Selection unit 201 may monitor current positions of the previously injected timing events via the checkpoints (Ckp_ 1 , Ckp_ 2 , Ckp_ 3 , Ckp_ 4 ).
- the selection unit 201 sends its decision via connector 220 to sequencer 230 .
- Sequencer 230 is coupled to counter unit 204 . Sequencer 230 may serve to enable the appropriate counter for counting respective time intervals.
- selection unit 201 may block an injection point to prevent it from being selected when a previously injected timing event is propagating within the injection point's vicinity or blocking region. Blocking can be carried out by, for example, asserting a blocking signal associated with the injection point.
- the blocking region is defined around the injection point, including a portion of the delay path before and after the injection point. If a previously injected timing event enters a blocking region associated with an injection point, the injection point may be blocked. After the previously injected timing event leaves the blocking region, the injection point may be unblocked by, for example, deactivating the blocking signal.
- the blocking region of injection point Inj_ 1 may include Ckp_ 4 and Ckp_ 1 . If a previously injected timing event enters the blocking region (e.g., by arriving at checkpoint Ckp_ 4 ), injection point Inj_ 1 is blocked by, for example, a block signal Blk_ 1 (not shown), to prevent any new timing event from being injected at that injection point Inj_ 1 . The new timing event may be injected at injection point Inj_ 2 if it is not blocked. After the previously injected timing event leaves the blocking region (e.g., by arriving at Ckp_ 1 ), injection point Inj_ 1 may be unblocked by, for example, block signal Blk_ 1 .
- the blocking signal may be generated by a set-reset flip-flop device or other suitable bistable multivibrator coupled to the selection unit 201 and the injection point, e.g., Inj_ 1 .
- a set signal coupled to the input of the flip-flop device is activated.
- a reset signal coupled to the input of the flip-flop device is activated.
- Other types of logic devices may also be used.
- Selection unit 201 may use various strategies for selecting an unblocked injection point to inject a new timing event.
- the injection points may be pre-assigned with different priorities.
- the selection unit 201 selects an unblocked injection point with the highest priority. For example, the selection unit 201 will try to select injection point with priority “1”. If that injection point is blocked, it selects injection point with priority “2” if it is unblocked.
- the selection unit selects the injection point that allows the new timing event to be injected after the last previously injected timing event and before the first previously injected timing event. This allows the timing events to be ordered according to the times they were injected. For example, the first timing event to be injected into the delay path will arrive at a checkpoint before the second timing event to be injected and so forth. Other selection strategies are also useful.
- FIGS. 3 a - b show various implementations of an injection point (e.g., Inj_ 1 ). These implementations are provided for illustrative purposes only, and other configurations are also useful.
- an injection point e.g., Inj_ 1
- an injection point comprises an OR logic device 301 .
- Other types of logic devices e.g., NOR logic device, multiplexer, and so forth
- the logic device includes first and second input terminals ( 302 a and 302 b ) and an output terminal 302 c.
- a first portion 110 a of the delay path and the selection unit 201 are coupled to the first and second input terminals of the logic device 301 , respectively.
- a second portion 110 b of the delay path is coupled to the output terminal 302 c.
- the logic device 301 delivers either a new timing event from the selection unit 201 via connector 205 a, or a previously injected timing event from first portion 110 a of the delay path 110 to second portion 110 b of the delay path 110 .
- Other types of configurations may also be used.
- FIG. 3 b shows an injection point, e.g., Inj_ 1 , that further includes a pulse generator 305 coupled to selection unit 201 and second input terminal 302 b of the OR logic device 301 .
- Pulse generator 305 generates a pulse in response to a new timing event received from the selection unit 201 .
- the OR logic device 301 then delivers the pulse from the pulse generator 305 to second portion 110 b of the delay path 110 .
- FIG. 3 c shows a schematic diagram of an exemplary implementation of a pulse generator 305 . It should be understood that other implementations of a pulse generator are also useful.
- the pulse generator 305 includes a NAND logic circuit 360 , a delay element 362 , and inverter devices ( 364 and 366 ).
- NAND logic circuit 360 comprises P-type transistors ( 368 and 370 ) and N-type transistors ( 372 and 374 ).
- Delay element 362 and inverter 364 cooperate to delay input signal received at connector 205 a by a predetermined time, to produce a delayed and inverted signal at node A.
- the NAND logic circuit 360 executes a NAND operation between the input signal received at connector 205 a and the delayed signal at node A, generating an output pulse at node B.
- the output pulse at node B starts at the moment of occurrence of a rising edge in the input signal at connector 205 a.
- the inverter 367 inverts the pulse at node B, generating the output pulse at terminal 302 b.
- FIG. 3 d shows yet another implementation of an injection point (e.g., Inj_ 1 ).
- Injection point e.g., Inj_ 1
- Injection point comprises a pulse generator 350 having first and second input terminals 302 a and 302 b, and an output terminal 302 c.
- First input terminal 302 a is coupled to a first portion 110 a of the delay path and second input terminal 302 b is coupled to the selection unit 201 .
- Output terminal 302 c is coupled to second portion 110 b of the delay path 110 .
- the pulse generator 350 is operable to produce an output pulse at output terminal 302 c in response to an active transition or edge occurring at either first or second input terminal ( 302 a or 302 b respectively).
- FIG. 3 e shows a schematic diagram of an exemplary implementation of pulse generator 350 .
- Pulse generator 350 comprises a multiplexer logic circuit 380 , inverter devices ( 382 a, 382 b and 382 c ) and delay elements ( 384 a and 384 b ).
- Multiplexer logic circuit 380 comprises P-type transistors ( 386 a, 386 b, 386 c and 386 d ) and N-type transistors ( 388 a, 388 b, 388 c, and 388 d ).
- Delay element 384 b and inverter device 382 b cooperate to delay input signal X received at first input terminal 302 a to produce a delayed and inverted signal X′.
- delay element 384 a and inverter device 382 a cooperate to delay input signal Y received at second input terminal 302 b produce a delayed and inverted signal Y′.
- the multiplexer logic circuit 380 generates an output pulse Z.
- the output pulse Z starts at the moment of occurrence of a rising edge in the input signals X or Y.
- the inverter 381 inverts the pulse Z, generating the output pulse at output terminal 302 c.
- FIGS. 4 a - b show exemplary implementations of delay path 110 ′ and delay unit 203 ′ respectively. These implementations are illustrative only, and other configurations are also useful. Referring to FIG. 4 a, a differential implementation of a delay path is shown. It should be understood that a non-differential implementation may also be used.
- an optional injection device 302 is coupled to the input terminal 301 to receive an input timing event.
- the injection device 302 comprises, for example, a splitter (not shown) operable to split the input timing event into differential first signal portion 304 a and second signal portion 304 b, and to direct the first and second signal portions 304 a and 304 b to first and second input ports of a delay unit 203 .
- the injection device comprises a pulse generator. The pulse generator generates a pulse (i.e., timing event) in response to a new timing signal, and delivers it to the delay path.
- Delay units 203 ′ may be coupled in series to form a ring. A non-ring configuration is also useful. Timing events propagate through delay units 203 ′ to arrive at counter unit 204 at the output leads 306 a and 306 b. Although the output leads as shown are twisted, untwisted output leads are also useful. Untwisted output leads are useful, for example, if the timing event comprises a pulse. Twisted output leads are useful if the timing event comprises an active transition or edge.
- a timing event loops through delay path 110 for each increment of a counter in counter unit 204 . Counter unit 204 provides the output count at output terminals 303 a - m. The transit time of the timing event through delay path 110 is equal to one period T 0 of the TDC.
- FIG. 4 b illustrates one implementation of a delay unit 203 ′, which comprises a differential delay element 302 .
- Other types of delay elements such as static delay elements, simple inverters, analog delay elements or logic gates, are also useful.
- the delay element 203 ′ may be an inverter device, such as a CMOS inverter, with high drive strength.
- the delay element provides multiplexing of input differential signals. This allows the delay element 110 to function as an injection point.
- the delay element may comprise multiplexers M 1 and M 2 , including first and second pairs of differential input terminals D 1 +/D 1 ⁇ and D 2 +/D 2 ⁇ respectively.
- a first pair of differential input terminals is coupled to a first portion of the delay line to receive previously injected timing events propagating within the delay path.
- Second pair of differential terminals is coupled to the selection unit 210 (not shown) to receive a new timing event that is to be injected into the delay path.
- a control signal SEL 1 is used to select either first or second pairs of differential input terminals.
- the control signal SEL 1 may be provided by the selection unit 201 .
- the inverted output of the selected differential signal pair is produced as Q+ and Q ⁇ .
- FIG. 5 a shows another exemplary implementation of a delay path 110 .
- a plurality of taps (Q 1 to Qn) may be provided along the delay path 110 . This allows the output at a delay unit 203 to be tapped in response to a “stop” signal.
- the resolution of the TDC may be increased through the use of the plurality of taps, providing a minimum resolvable time of T 0 /n.
- FIGS. 5 b and 5 c show various exemplary implementations of delay unit 203 , operable to provide at least one tap output (e.g., Qi).
- delay unit 203 comprises a delay element 302 and a comparator (or flip-flop) 315 .
- Delay element 302 comprises any type of delay device (e.g., inverter).
- Comparator 315 is clocked by a “stop” signal. It allows the input signal from the delay path 110 b to be tapped as output signal Qi, in response to the “stop” signal. The comparator holds the output signal Qi constant after the triggering edge of the stop signal.
- FIG. 5 c shows a differential implementation of a delay unit 203 operable to provide tap outputs Qi and Qi+1.
- differential delay element 302 receives first and second signal portions ( 304 a - b ) from the differential delay path.
- Comparators 315 are coupled to the R and F output terminals of the differential delay path, and clocked by the “stop” signal.
- FIG. 5 d shows a schematic diagram of an exemplary implementation of comparator 315 .
- comparator 315 comprises a sense amplifier circuit.
- the sense amplifier circuit may be hysteresis-free. It should be understood that other types of comparators are also useful.
- Sense amplifier circuit 315 shown in FIG. 5 d converts the input signals Ri and Fi to complementary pair of first and second output signals Qi and QNi.
- Sense amplifier circuit 315 includes P-type transistors ( 502 and 503 ) and N-type transistors ( 505 , 506 , 507 and 508 ).
- a “stop” signal is applied to the gate of a sense enable transistor 509 to trigger or enable operation of the sense amplifier circuit.
- first and second precharging devices are provided to precharge the first and second output signals to a logic high when the “stop” signal is at a logic low.
- the precharging devices may be P-type transistors, gated with the “stop” signal.
- First precharging transistor 501 is connected between the power supply voltage VDD and the node of the first output signal Qi.
- Second precharging transistor 504 is connected between the power supply voltage VDD and the node of the second output signal QNi.
- FIG. 6 shows an exemplary implementation of counter unit 204 .
- the counter is operable to measure multiple time intervals.
- Counter unit comprises switching unit 602 , and first and second counters ( 604 a and 604 b ).
- Switching unit 602 directs the input timing event received at input terminal 210 to the appropriate counter, depending on the state of a control signal SEL 2 .
- the control signal SEL 2 may be provided by sequencer 230 , shown in FIG. 2 , along path 235 to select the appropriate counter.
- sequencer 230 receives, from selection unit 201 via connector 220 , the selection decision of which injection point is selected. The selection decision allows the sequencer 230 to determine the order at which the timing events will arrive at the input 210 of the counter unit 204 , which in turn allows it to distinguish which timing event has arrived at the counter unit 204 . The sequencer 230 then selects, in response to the occurrence of a timing event at input connector 210 , the appropriate counter in counter unit 204 . For example, referring back to FIG.
- first counter 604 a measures a first time interval and second counter 604 b measures a second time interval. If a first timing event corresponding to the first time interval arrives at input connector 210 , first counter 604 a is selected. First counter 604 a is then incremented in response to the occurrence of the first timing event at connector 606 a. Similarly, if a second timing event corresponding to a second time interval arrives at input connector 210 , second counter 604 b is selected. The second counter 604 b is then incremented in response to the occurrence of the second timing event at connector 606 b.
- the counter 604 a (or 604 b ) measures the number of times a respective timing event loops around the delay path. For example, the counter 604 a (or 604 b ) may measure the number of iterations for the respective pulse, thus performing a coarse time measurement. A finer time measurement may be derived from pseudo thermometer code generated by the tapped delay elements 203 , such as those shown in FIG. 5 a. A sequencing unit, such as sequencing unit 230 , shown in FIG. 2 , may be used to assign a 1 ⁇ 0 and 0 ⁇ 1 transition to the respective pulse.
- the respective counter ( 604 a or 604 b ) forwards a composite binary word representing the respective count on the respective bus ( 408 a or 408 b ), and subsequently to output terminals 303 a to 303 m .
- the respective counter ( 604 a or 604 b ) forwards a composite binary word representing the respective count on the respective bus ( 408 a or 408 b ), and subsequently to output terminals 303 a to 303 m .
- any other number of counters e.g., 1, 3 and so forth
- the number of counters generally depends on the number of time intervals being measured simultaneously.
- Counters 604 a - b may comprise any type of suitable counters, such as asynchronous counters, synchronous counters, Johnson counters, ring counters, decade counters or up-down counters.
- the counter unit 204 may further comprise a plurality of memory units (e.g., registers) for storing multiple count values of a counter.
- the counter unit may comprise first, second and third memory units for storing first, second and third count values of a single counter.
- the current counter value C i is stored in a memory unit i whenever a timing event is injected into the delay path. The number of times a respective timing event is propagated around the delay path may be determined by using the stored count values. For example, when 3 timing events have been injected into the delay path, the number of times (X 1 , X 2 and X 3 ) the first, second and third timing events have propagated around the delay path can be computed by the following:
- the sequencer may further add a correction term to each value (X 1 , X 2 and X 3 ) depending on the status of the delay path on the arrival of the stop signal.
- FIG. 7 shows the timing diagram of TDC 100 when it is operated with first and second start signals (Start_ 1 and Start_ 2 respectively).
- Start_ 1 corresponds to the start of a first time interval to be measured
- Start_ 2 corresponds to the start of a second time interval to be measured.
- Blk_ 1 and Blk_ 2 control signals are used to block injection points Inj_ 1 and Inj_ 2 respectively, so as to prevent new input timing events from being directed to the respective injection points and interfering with preceding timing events propagating within the delay path. For example, a new pulse is prevented from being directed to injection point Inj_ 1 when Blk_ 1 is active (i.e. high).
- Blk_ 1 prevents a signal travelling from ckp_ 4 to ckp_ 1 from being interfered by a signal that would otherwise be injected at Inj_ 1 .
- a first start signal Start_ 1 starts measurement of a first time interval.
- An active transition (i.e. low to high) in timing signal Start_ 1 triggers generation of first timing event 701 .
- First timing event 701 then propagates around the delay path, arriving at Ckp_ 1 first, then Ckp_ 2 , Ckp_ 3 , Ckp_ 4 , Ckp_ 1 and so forth.
- Blk_ 1 is activated to prevent selection of Inj_ 1 .
- Blk_ 1 is deactivated to allow Inj_ 1 to be selected.
- Blk_ 2 is activated to prevent selection of Inj_ 2 .
- Blk_ 2 is deactivated to allow Inj_ 2 to be selected.
- a second start signal Start_ 2 can be used to start measurement of a second time interval.
- An active transition (i.e. low to high) in timing signal Start_ 2 triggers generation of a second timing event 702 (shown in bold lines). Since Blk_ 1 is blocked and Blk_ 2 was inactive when Start_ 2 occurred, Inj_ 2 is selected to insert second timing event.
- Second timing event 702 arrives at Ckp_ 3 first, followed by Ckp_ 4 , Ckp_ 1 , Ckp_ 2 and so forth.
- the respective control signals Blk_ 1 and Blk_ 2 are updated accordingly, while the timing events propagate the delay path.
- Second timing event 702 arrives at counter unit 204 before first timing event 701 .
- a Stop signal can be used to stop measurement of either first or second time intervals, or both.
- FIGS. 8 a - b illustrate how a delay path can be partially reset.
- delay path 110 comprises first reset zone 802 a (as shown in FIG. 8 a ) and second reset zone 802 b (as shown in FIG. 8 b ).
- timing events within first reset zone 802 a are removed in response to a first reset signal RZ_ 1 .
- Timing events within second reset zone 802 b are removed in response to a second reset signal RZ_ 2 .
- Timing events propagating outside of the reset zones such as within portions 804 a (shown in broken lines in FIG. 8 a ) and 804 b (shown in broken lines in FIG. 8 b ), are not removed.
- FIG. 9 shows a timing diagram of a partial reset operation.
- first reset signal RZ_ 1 When first reset signal RZ_ 1 is activated, first timing event 901 is propagating outside first reset zone (at Ckp_ 1 ) and is therefore not removed from the delay path.
- First pulse 901 continues to propagate around the delay path until second reset signal RZ_ 2 is activated.
- second timing event 902 At the time RZ_ 2 is activated, first timing event 901 is propagating within second reset zone and is therefore removed from the delay path.
- Second timing event 902 is injected via injection point Inj_ 2 and is propagating outside second reset path (at Ckp_ 3 ). Therefore, second timing event 902 is not affected by the partial reset and remains in the delay path to propagate to Ckp_ 4 , Ckp_ 1 , Ckp_ 2 and so forth.
- FIG. 10 shows an exemplary Vernier TDC 1000 with first and second delay paths ( 1002 a and 1002 b ).
- Vernier TDC 1000 is operable to measure multiple time intervals simultaneously utilizing counter unit 204 .
- First delay path 1002 a receives a start pulse at one of the injection points Inj_start_ 1 or Inj_start_ 2 .
- the injection point is selected so as not to interfere with the propagation of any preceding start pulses.
- the injection point is selected based on the current location of any preceding start pulses propagating within the first delay path.
- second delay path 1002 b receives a stop pulse from one of the injection points Inj_stop_ 1 or Inj'stop 2 .
- the stop pulse is directed to the appropriate injection point to avoid interfering with any preceding stop pulses.
- TDC principles examples include pulse shrinking TDCs, TDCs employing parallel scaled delay lines, delay-locked loops or local passive time interpolation (LPI).
- pulse shrinking TDCs examples include pulse shrinking TDCs, TDCs employing parallel scaled delay lines, delay-locked loops or local passive time interpolation (LPI).
- LPI local passive time interpolation
- FIG. 11 is a flow chart showing an exemplary method 1100 of measuring multiple time intervals.
- a first start signal (e.g., start_ 1 corresponding to the start of a first time interval) is monitored.
- start_ 1 corresponding to the start of a first time interval
- method 1100 proceeds to step 1104 .
- a first timing event is generated and injected into the delay path of the TDC at the appropriate injection point.
- the appropriate injection point may be selected based on the states of control signals Blk_ 1 and Blk_ 2 .
- a second start signal (e.g., start_ 2 corresponding to the start of a second time interval) is monitored.
- a second timing event is generated and injected at step 1108 .
- the second timing event is injected into the delay path of the TDC at the appropriate injection point, without interfering with any pulses already propagating within the delay path.
- the appropriate injection point may be selected based on the states of control signals Blk_ 1 and Blk_ 2 .
- a stop signal (e.g., stop_ 1 corresponding to end of first time interval and the second time interval) is monitored until an active transition is detected.
- a first binary word is generated.
- the first binary word is responsive to the first time interval being measured.
- a second binary word responsive to the second time interval being measured, is generated.
- 2 time intervals are measured in this illustration, it is apparent to those of ordinary skill in the art that the number of time intervals that can be measured is not to be restricted. It is also understood that the method can be modified for measuring other types of time intervals, such as illustrated by the examples shown in FIG. 1 c.
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Measurement Of Unknown Time Intervals (AREA)
- Manipulation Of Pulses (AREA)
Abstract
Description
- A time-to-digital converter (TDC) can be used for a variety of purposes. For example, a TDC can be used to measure the duration of time that has elapsed between a START and a STOP pulse or any other timing event. It can also be used to output the time of arrival for an incoming pulse. High resolution TDCs are increasingly popular in many applications, including time of flight measurements, phase detectors in phase-locked-loops (PLLs), data converters, high speed signal capturing, demodulators, and other measurement or instrumentation applications.
- Conventional TDC systems allow a single TDC to perform only single measurements at any one time. This means that simultaneous measurements of 2 or more time intervals cannot be performed by a single TDC. Multiple TDCs have to be provided to measure multiple time intervals simultaneously. This increases the area consumption of the TDC system. Further, the TDC cannot be started immediately after the termination of the previous measurement. Not only does this limit the type of measurements that can be performed, it also slows down the operating efficiency of the TDC system. Dead or inert time slots, during which no acquisition can be performed, have to be injected when the TDC is calibrated. Calibration is essential, especially for high-precision applications, because process variations and component deviations can cause undesirable offsets in time and gain errors in the TDC converter characteristics. In conventional systems, calibration is typically performed in fixed calibration intervals, which is undesirable because the TDC is unable to respond quickly to changes. Moreover, some systems do not allow interruptions in operation for calibration purposes.
- The detailed description is described with reference to the accompanying figures. The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items.
-
FIG. 1 a shows a block diagram of a TDC in accordance with one implementation. -
FIG. 1 b shows a schematic operational diagram of the TDC shown inFIG. 1 ; -
FIG. 1 c shows an exemplary waveform and exemplary time intervals measured for the waveform with the TDC shown inFIG. 1 . -
FIG. 2 shows a block diagram of exemplary components of the TDC shown inFIG. 1 . -
FIGS. 3 a-b show schematic diagrams of exemplary implementations of an injection point for a TDC. -
FIG. 3 c shows a schematic diagram of an exemplary implementation of a pulse generator. -
FIG. 3 d shows a schematic diagram of an alternative exemplary implementation of an injection point. -
FIG. 3 e shows a schematic circuit diagram of an alternative exemplary implementation of a pulse generator. -
FIGS. 4 a-b show schematic circuit diagrams of exemplary implementations of a delay path and delay unit respectively. -
FIGS. 5 a-b show exemplary implementations of a delay path and delay unit respectively. -
FIG. 5 c shows an alternative implementation of a delay unit. -
FIG. 5 d shows a schematic diagram of an exemplary implementation of comparator. -
FIG. 6 shows an exemplary implementation of a counter unit. -
FIG. 7 shows the timing diagram of a TDC when it is operated with first and second start signals. -
FIGS. 8 a-b illustrate the partial reset of a delay path. -
FIG. 9 shows a timing diagram of a partial reset operation. -
FIG. 10 shows an exemplary Vernier TDC. -
FIG. 11 shows a flow chart illustrating an exemplary method of measuring multiple time intervals. - At least one implementation described herein relates a device including at least one delay path for propagating at least one timing event. The device also includes a plurality of injection points provided along the delay path. The injection points are configurable to receive the timing event and to deliver the timing event to the delay path.
- Another implementation described herein relates to a method of measuring at least one time interval. The method may include propagating at least one first timing event in a delay path, monitoring a position of the first timing event, selecting at least one injection point provided along the delay path based on the position the first timing event, applying a second timing event to the selected injection point without interfering with the first timing event, propagating the second timing event in the delay path, and generating at least one binary word in response to a stop signal, wherein the binary word is representative of the time interval being measured.
- Exemplary Device
-
FIG. 1 a shows a block diagram of a device operable to measure multiple time intervals. In one implementation, such a device comprises a time-to-digital converter (TDC). The TDC comprises one or more input terminals 102 a-n configurable to receive timing signals. The number of input terminals can be 1, 2 or any other suitable number. A timing signal can be, for example, a “start” signal or a “stop” signal, or a combination of both, corresponding to the start or end of a time interval being measured. In response to the “start” signal, the TDC propagates a timing event along a delay path. It then provides, in response to the “stop” signal, a binary count of the time interval being measured at output terminals 105 a-m. The number of output terminals may be any number, depending on the desired degree of resolution. - The
device 100 may be configured to measure time intervals simultaneously. It may also be configured to continuously measure consecutive time intervals, with little or no “dead time” between measurements. At least one implementation of thedevice 100 includes a delay path and multiple injection points along the delay path for receiving timing events. A timing event, as used herein, may be a pulse, an active transition in an input signal (e.g., start signal), edge, or other suitable timing event. -
FIG. 1 b shows one implementation of thedevice 100.Device 100 comprises adelay path 110 and a plurality of injection points (Inj_1 and Inj_2) provided along thedelay path 110. Although only 2 injection points are shown inFIG. 1 b, any other number of injection points (e.g., 3, 4, and so forth) may also be provided.Delay path 110 is configurable to propagate at least one timing event. The injection points are configurable to receive the timing event and to deliver the timing event to the delay path. -
FIG. 1 c shows examples of time intervals that may be measured byTDC 100. Although details of exemplary time intervals are shown, it should be understood that other types or combinations of time intervals may also be measured. TDC 100 is operable to measure multiple time intervals simultaneously. In addition, it may be operable to measure consecutive time intervals continuously. - In one implementation, the measurements are made in response to multiple start signals (e.g., “start—1” and “start—2”) and a common stop signal (e.g., “stop—1”). For example, the measurement of first time interval (t3-t1) may be made in response to timing signals “start—1” and “stop—1,” corresponding to the start and end of the first time interval respectively. The TDC may be configurable to measure a second time interval (t3-t2) in parallel to the first measurement. Measurement of the second time interval (t3-t2) may be made in response to “start—2” and “stop—1,” corresponding to the start and end of the second time interval respectively. Further, the TDC is configurable to measure a third time interval (t2-t1) simultaneously with the first or the second time intervals. The measurement result for the time interval (t2-t1) may be derived from the measurement results of the time intervals (t3-t1) and (t3-t2)
- The TDC may be partially reset at time t3 to allow for further measurements of time intervals (e.g., t4-t3). The measurement of fourth time interval (t4-t3) can be made immediately upon the termination of previous measurements, i.e. immediately upon stop_l. In particular the new measurement can be started during the partial reset. The measurement of the fourth time interval can be made in response to “start—3” and “start—4,” corresponding to the start and end of the fourth time interval. A fifth time interval (t5-t3) may be measured simultaneously, in response to timing signals “start—3” and “stop—2”, corresponding to the start and end of the fifth time interval respectively, and so forth.
- In another implementation, measurements are made in response to a common start signal (e.g., “start—1”) and multiple stop signals (e.g., “stop—1” and “stop—2”). For example, the measurement of the first time interval (t2-t1) may be made in response to “start—1” and “stop—1.” Measurement of the second time interval (t3-t1) may be made in response to “start—1” and “stop—2,” and measurement of the third time interval (t3-t2) may be derived from the measurements of (t2-t1) and (t3-t1).
- Similarly, the TDC may be partially reset at time t3 to allow for further measurements. Measurement of the fourth time interval (t4-t3) may be started immediately after the termination of previous measurements, upon receipt of a new start signal (e.g., “start—2”) and end upon receipt of new stop signal (e.g., “stop—3”). The measurement may be started during the partial reset phase. The purpose of the partial reset is to erase timing events associated with previous measurements. Measurement of fifth time interval (t5-t3) may be made in response to “start—2” and “stop—4,” and so forth.
- Timing signals (e.g., “start—1”, “start—2”, “stop—1”, “stop—2”) may be generated upon occurrence of various START and STOP events defined by the user. Other types of configurations are also useful. By allowing multiple timing events to be injected into the delay path, the TDC allows multiple time intervals to be measured simultaneously and/or continuously. In addition, by allowing a partial reset, the TDC is configurable to continuously measure time intervals without the insertion of “dead time” when it is being reset. Therefore, even when the TDC is being calibrated, it may advantageously be used continuously for data acquisition without interrupting its operation.
-
FIG. 2 illustrates in more detail theTDC 100 shown inFIG. 1 .TDC 100 generally comprises aselection unit 201, adelay path 110, asequencer 230 and acounter unit 204. In one implementation,delay path 110 comprises a plurality ofdelay units 203 coupled in series to form a ring. A plurality of checkpoints (e.g., Ckp_1, Ckp_2, Ckp_3, and Ckp_4) and injection points (e.g., Inj_1 and Inj_2) are provided alongdelay path 110. Although four checkpoints are shown inFIG. 2 , any other number of checkpoints (e.g., 1, 2, 3, 4, 5 and so forth) may also be provided. - In one implementation,
selection unit 201 is coupled to input terminals 102 a-n, checkpoints (Ckp_1, Ckp_2, Ckp_3, Ckp_4), injection points (Inj_1 and Inj_2) andsequencer 230. When a new timing signal associated with a start event is received at one of the input terminals 102 a-n,selection unit 201 directs a new timing event to one of the injection points (Inj_1 and Inj_2) viaconnectors path 110. The term “new timing events” refers to timing events that have not been injected into the delay path. -
Selection unit 201 selects an injection point to inject the new timing event based on current positions of previously injected timing events propagating along the delay path.Selection unit 201 may monitor current positions of the previously injected timing events via the checkpoints (Ckp_1, Ckp_2, Ckp_3, Ckp_4). In one implementation, theselection unit 201 sends its decision viaconnector 220 tosequencer 230.Sequencer 230 is coupled to counterunit 204.Sequencer 230 may serve to enable the appropriate counter for counting respective time intervals. - To avoid interfering with any previously injected timing events propagating within the delay path,
selection unit 201 may block an injection point to prevent it from being selected when a previously injected timing event is propagating within the injection point's vicinity or blocking region. Blocking can be carried out by, for example, asserting a blocking signal associated with the injection point. In one implementation, the blocking region is defined around the injection point, including a portion of the delay path before and after the injection point. If a previously injected timing event enters a blocking region associated with an injection point, the injection point may be blocked. After the previously injected timing event leaves the blocking region, the injection point may be unblocked by, for example, deactivating the blocking signal. - For example, the blocking region of injection point Inj_1 may include Ckp_4 and Ckp_1. If a previously injected timing event enters the blocking region (e.g., by arriving at checkpoint Ckp_4), injection point Inj_1 is blocked by, for example, a block signal Blk_1 (not shown), to prevent any new timing event from being injected at that injection point Inj_1. The new timing event may be injected at injection point Inj_2 if it is not blocked. After the previously injected timing event leaves the blocking region (e.g., by arriving at Ckp_1), injection point Inj_1 may be unblocked by, for example, block signal Blk_1.
- The blocking signal may be generated by a set-reset flip-flop device or other suitable bistable multivibrator coupled to the
selection unit 201 and the injection point, e.g., Inj_1. To activate the blocking signal, a set signal coupled to the input of the flip-flop device is activated. Similarly, to deactivate the blocking signal, a reset signal coupled to the input of the flip-flop device is activated. Other types of logic devices may also be used. -
Selection unit 201 may use various strategies for selecting an unblocked injection point to inject a new timing event. In one implementation, the injection points may be pre-assigned with different priorities. Theselection unit 201 selects an unblocked injection point with the highest priority. For example, theselection unit 201 will try to select injection point with priority “1”. If that injection point is blocked, it selects injection point with priority “2” if it is unblocked. In another implementation, the selection unit selects the injection point that allows the new timing event to be injected after the last previously injected timing event and before the first previously injected timing event. This allows the timing events to be ordered according to the times they were injected. For example, the first timing event to be injected into the delay path will arrive at a checkpoint before the second timing event to be injected and so forth. Other selection strategies are also useful. -
FIGS. 3 a-b show various implementations of an injection point (e.g., Inj_1). These implementations are provided for illustrative purposes only, and other configurations are also useful. As shown inFIG. 3 a, an injection point, e.g., Inj_1, comprises an ORlogic device 301. Other types of logic devices (e.g., NOR logic device, multiplexer, and so forth) may also be used. The logic device includes first and second input terminals (302 a and 302 b) and anoutput terminal 302 c. Afirst portion 110 a of the delay path and theselection unit 201 are coupled to the first and second input terminals of thelogic device 301, respectively. Asecond portion 110 b of the delay path is coupled to theoutput terminal 302 c. Thelogic device 301 delivers either a new timing event from theselection unit 201 viaconnector 205 a, or a previously injected timing event fromfirst portion 110 a of thedelay path 110 tosecond portion 110 b of thedelay path 110. Other types of configurations may also be used. - For example,
FIG. 3 b shows an injection point, e.g., Inj_1, that further includes apulse generator 305 coupled toselection unit 201 andsecond input terminal 302 b of theOR logic device 301.Pulse generator 305 generates a pulse in response to a new timing event received from theselection unit 201. The ORlogic device 301 then delivers the pulse from thepulse generator 305 tosecond portion 110 b of thedelay path 110. -
FIG. 3 c shows a schematic diagram of an exemplary implementation of apulse generator 305. It should be understood that other implementations of a pulse generator are also useful. Thepulse generator 305 includes aNAND logic circuit 360, adelay element 362, and inverter devices (364 and 366).NAND logic circuit 360 comprises P-type transistors (368 and 370) and N-type transistors (372 and 374).Delay element 362 andinverter 364 cooperate to delay input signal received atconnector 205 a by a predetermined time, to produce a delayed and inverted signal at node A. TheNAND logic circuit 360 executes a NAND operation between the input signal received atconnector 205 a and the delayed signal at node A, generating an output pulse at node B. The output pulse at node B starts at the moment of occurrence of a rising edge in the input signal atconnector 205 a. The inverter 367 inverts the pulse at node B, generating the output pulse atterminal 302 b. -
FIG. 3 d shows yet another implementation of an injection point (e.g., Inj_1). Injection point, e.g., Inj_1, comprises apulse generator 350 having first andsecond input terminals output terminal 302 c.First input terminal 302 a is coupled to afirst portion 110 a of the delay path andsecond input terminal 302 b is coupled to theselection unit 201.Output terminal 302 c is coupled tosecond portion 110 b of thedelay path 110. Thepulse generator 350 is operable to produce an output pulse atoutput terminal 302 c in response to an active transition or edge occurring at either first or second input terminal (302 a or 302 b respectively). -
FIG. 3 e shows a schematic diagram of an exemplary implementation ofpulse generator 350.Pulse generator 350 comprises amultiplexer logic circuit 380, inverter devices (382 a, 382 b and 382 c) and delay elements (384 a and 384 b).Multiplexer logic circuit 380 comprises P-type transistors (386 a, 386 b, 386 c and 386 d) and N-type transistors (388 a, 388 b, 388 c, and 388 d).Delay element 384 b and inverter device 382 b cooperate to delay input signal X received atfirst input terminal 302 a to produce a delayed and inverted signal X′. Similarly,delay element 384 a andinverter device 382 a cooperate to delay input signal Y received atsecond input terminal 302 b produce a delayed and inverted signal Y′. Themultiplexer logic circuit 380 generates an output pulse Z. The output pulse Z starts at the moment of occurrence of a rising edge in the input signals X or Y. The inverter 381 inverts the pulse Z, generating the output pulse atoutput terminal 302 c. -
FIGS. 4 a-b show exemplary implementations ofdelay path 110′ anddelay unit 203′ respectively. These implementations are illustrative only, and other configurations are also useful. Referring toFIG. 4 a, a differential implementation of a delay path is shown. It should be understood that a non-differential implementation may also be used. In one implementation, anoptional injection device 302 is coupled to theinput terminal 301 to receive an input timing event. Theinjection device 302 comprises, for example, a splitter (not shown) operable to split the input timing event into differentialfirst signal portion 304 a andsecond signal portion 304 b, and to direct the first andsecond signal portions delay unit 203. In yet another implementation, the injection device comprises a pulse generator. The pulse generator generates a pulse (i.e., timing event) in response to a new timing signal, and delivers it to the delay path. - Delay
units 203′ may be coupled in series to form a ring. A non-ring configuration is also useful. Timing events propagate throughdelay units 203′ to arrive atcounter unit 204 at the output leads 306 a and 306 b. Although the output leads as shown are twisted, untwisted output leads are also useful. Untwisted output leads are useful, for example, if the timing event comprises a pulse. Twisted output leads are useful if the timing event comprises an active transition or edge. A timing event loops throughdelay path 110 for each increment of a counter incounter unit 204.Counter unit 204 provides the output count at output terminals 303 a-m. The transit time of the timing event throughdelay path 110 is equal to one period T0 of the TDC. -
FIG. 4 b illustrates one implementation of adelay unit 203′, which comprises adifferential delay element 302. Other types of delay elements, such as static delay elements, simple inverters, analog delay elements or logic gates, are also useful. For example, thedelay element 203′ may be an inverter device, such as a CMOS inverter, with high drive strength. In one implementation, the delay element provides multiplexing of input differential signals. This allows thedelay element 110 to function as an injection point. For example, the delay element may comprise multiplexers M1 and M2, including first and second pairs of differential input terminals D1+/D1− and D2+/D2− respectively. In one implementation, a first pair of differential input terminals is coupled to a first portion of the delay line to receive previously injected timing events propagating within the delay path. Second pair of differential terminals is coupled to the selection unit 210 (not shown) to receive a new timing event that is to be injected into the delay path. A control signal SEL1 is used to select either first or second pairs of differential input terminals. The control signal SEL1 may be provided by theselection unit 201. The inverted output of the selected differential signal pair is produced as Q+ and Q−. -
FIG. 5 a shows another exemplary implementation of adelay path 110. A plurality of taps (Q1 to Qn) may be provided along thedelay path 110. This allows the output at adelay unit 203 to be tapped in response to a “stop” signal. The resolution of the TDC may be increased through the use of the plurality of taps, providing a minimum resolvable time of T0/n.FIGS. 5 b and 5 c show various exemplary implementations ofdelay unit 203, operable to provide at least one tap output (e.g., Qi). - Referring to
FIG. 5 b,delay unit 203 comprises adelay element 302 and a comparator (or flip-flop) 315.Delay element 302, as described above, comprises any type of delay device (e.g., inverter).Comparator 315 is clocked by a “stop” signal. It allows the input signal from thedelay path 110 b to be tapped as output signal Qi, in response to the “stop” signal. The comparator holds the output signal Qi constant after the triggering edge of the stop signal. -
FIG. 5 c shows a differential implementation of adelay unit 203 operable to provide tap outputs Qi and Qi+1. As described in reference toFIG. 4 a-b,differential delay element 302 receives first and second signal portions (304 a-b) from the differential delay path.Comparators 315 are coupled to the R and F output terminals of the differential delay path, and clocked by the “stop” signal. -
FIG. 5 d shows a schematic diagram of an exemplary implementation ofcomparator 315. In one implementation,comparator 315 comprises a sense amplifier circuit. The sense amplifier circuit may be hysteresis-free. It should be understood that other types of comparators are also useful.Sense amplifier circuit 315 shown inFIG. 5 d converts the input signals Ri and Fi to complementary pair of first and second output signals Qi and QNi.Sense amplifier circuit 315 includes P-type transistors (502 and 503) and N-type transistors (505, 506, 507 and 508). A “stop” signal is applied to the gate of a sense enabletransistor 509 to trigger or enable operation of the sense amplifier circuit. - In one implementation, first and second precharging devices (501 and 504) are provided to precharge the first and second output signals to a logic high when the “stop” signal is at a logic low. The precharging devices may be P-type transistors, gated with the “stop” signal.
First precharging transistor 501 is connected between the power supply voltage VDD and the node of the first output signal Qi.Second precharging transistor 504 is connected between the power supply voltage VDD and the node of the second output signal QNi. -
FIG. 6 shows an exemplary implementation ofcounter unit 204. The counter is operable to measure multiple time intervals. Counter unit comprises switchingunit 602, and first and second counters (604 a and 604 b).Switching unit 602 directs the input timing event received atinput terminal 210 to the appropriate counter, depending on the state of a control signal SEL2. - The control signal SEL2 may be provided by
sequencer 230, shown inFIG. 2 , alongpath 235 to select the appropriate counter. With further reference toFIG. 2 ,sequencer 230 receives, fromselection unit 201 viaconnector 220, the selection decision of which injection point is selected. The selection decision allows thesequencer 230 to determine the order at which the timing events will arrive at theinput 210 of thecounter unit 204, which in turn allows it to distinguish which timing event has arrived at thecounter unit 204. Thesequencer 230 then selects, in response to the occurrence of a timing event atinput connector 210, the appropriate counter incounter unit 204. For example, referring back toFIG. 6 ,first counter 604 a measures a first time interval andsecond counter 604 b measures a second time interval. If a first timing event corresponding to the first time interval arrives atinput connector 210,first counter 604 a is selected. First counter 604 a is then incremented in response to the occurrence of the first timing event atconnector 606 a. Similarly, if a second timing event corresponding to a second time interval arrives atinput connector 210,second counter 604 b is selected. Thesecond counter 604 b is then incremented in response to the occurrence of the second timing event atconnector 606 b. - The
counter 604 a (or 604 b) measures the number of times a respective timing event loops around the delay path. For example, thecounter 604 a (or 604 b) may measure the number of iterations for the respective pulse, thus performing a coarse time measurement. A finer time measurement may be derived from pseudo thermometer code generated by the tappeddelay elements 203, such as those shown inFIG. 5 a. A sequencing unit, such assequencing unit 230, shown inFIG. 2 , may be used to assign a 1→0 and 0→1 transition to the respective pulse. - In response to a stop timing signal, the respective counter (604 a or 604 b) forwards a composite binary word representing the respective count on the respective bus (408 a or 408 b), and subsequently to
output terminals 303 a to 303 m. Although two counters are shown inFIG. 6 , any other number of counters (e.g., 1, 3 and so forth) may also be used. The number of counters generally depends on the number of time intervals being measured simultaneously. Counters 604 a-b may comprise any type of suitable counters, such as asynchronous counters, synchronous counters, Johnson counters, ring counters, decade counters or up-down counters. - Alternatively, the
counter unit 204 may further comprise a plurality of memory units (e.g., registers) for storing multiple count values of a counter. For example, the counter unit may comprise first, second and third memory units for storing first, second and third count values of a single counter. In one implementation, the current counter value Ci is stored in a memory unit i whenever a timing event is injected into the delay path. The number of times a respective timing event is propagated around the delay path may be determined by using the stored count values. For example, when 3 timing events have been injected into the delay path, the number of times (X1, X2 and X3) the first, second and third timing events have propagated around the delay path can be computed by the following: -
X 1 =C 1+(C 2 −C 1)/2+(C 3 −C 2)/3 -
X 2=(C 2 −C 1)/2+(C 3 −C 2)/3 -
X 3=(C 3 −C 2)/3 - The sequencer may further add a correction term to each value (X1, X2 and X3) depending on the status of the delay path on the arrival of the stop signal.
-
FIG. 7 shows the timing diagram ofTDC 100 when it is operated with first and second start signals (Start_1 and Start_2 respectively). Start_1 corresponds to the start of a first time interval to be measured, and Start_2 corresponds to the start of a second time interval to be measured. In one implementation, Blk_1 and Blk_2 control signals are used to block injection points Inj_1 and Inj_2 respectively, so as to prevent new input timing events from being directed to the respective injection points and interfering with preceding timing events propagating within the delay path. For example, a new pulse is prevented from being directed to injection point Inj_1 when Blk_1 is active (i.e. high). Similarly, a new pulse is prevented from being directed to injection point Inj_2 when Blk_2 is active (i.e. high). Thus, Blk_1 prevents a signal travelling from ckp_4 to ckp_1 from being interfered by a signal that would otherwise be injected at Inj_1. - As shown in
FIG. 7 , a first start signal Start_1 starts measurement of a first time interval. An active transition (i.e. low to high) in timing signal Start_1 triggers generation of first timing event 701. First timing event 701 then propagates around the delay path, arriving at Ckp_1 first, then Ckp_2, Ckp_3, Ckp_4, Ckp_1 and so forth. When first timing event arrives at Ckp_4, Blk_1 is activated to prevent selection of Inj_1. When it arrives at Ckp_1, Blk_1 is deactivated to allow Inj_1 to be selected. Similarly, when first timing event arrives at Ckp_2, Blk_2 is activated to prevent selection of Inj_2. When it arrives at Ckp_3, Blk_2 is deactivated to allow Inj_2 to be selected. - A second start signal Start_2 can be used to start measurement of a second time interval. An active transition (i.e. low to high) in timing signal Start_2 triggers generation of a second timing event 702 (shown in bold lines). Since Blk_1 is blocked and Blk_2 was inactive when Start_2 occurred, Inj_2 is selected to insert second timing event. Second timing event 702 arrives at Ckp_3 first, followed by Ckp_4, Ckp_1, Ckp_2 and so forth. The respective control signals Blk_1 and Blk_2 are updated accordingly, while the timing events propagate the delay path. Second timing event 702 arrives at
counter unit 204 before first timing event 701. A Stop signal can be used to stop measurement of either first or second time intervals, or both. - Partial Resetability
- After a measurement is completed, it may desirable to reset portions of the TDC to an inactive state so as to remove previously injected timing events of the completed measurement, while leaving timing events of non-completed measurements propagating within the delay path.
-
FIGS. 8 a-b illustrate how a delay path can be partially reset. In one implementation,delay path 110 comprisesfirst reset zone 802 a (as shown inFIG. 8 a) andsecond reset zone 802 b (as shown inFIG. 8 b). In one implementation, timing events withinfirst reset zone 802 a are removed in response to a first reset signal RZ_1. Timing events withinsecond reset zone 802 b are removed in response to a second reset signal RZ_2. Timing events propagating outside of the reset zones, such as withinportions 804 a (shown in broken lines inFIG. 8 a) and 804 b (shown in broken lines inFIG. 8 b), are not removed. -
FIG. 9 shows a timing diagram of a partial reset operation. When first reset signal RZ_1 is activated, first timing event 901 is propagating outside first reset zone (at Ckp_1) and is therefore not removed from the delay path. First pulse 901 continues to propagate around the delay path until second reset signal RZ_2 is activated. At the time RZ_2 is activated, first timing event 901 is propagating within second reset zone and is therefore removed from the delay path. Second timing event 902, on the other hand, is injected via injection point Inj_2 and is propagating outside second reset path (at Ckp_3). Therefore, second timing event 902 is not affected by the partial reset and remains in the delay path to propagate to Ckp_4, Ckp_1, Ckp_2 and so forth. - Other Exemplary Devices
- The present techniques can also be implemented using other types of TDC circuit principles. For example,
FIG. 10 shows anexemplary Vernier TDC 1000 with first and second delay paths (1002 a and 1002 b).Vernier TDC 1000 is operable to measure multiple time intervals simultaneously utilizingcounter unit 204.First delay path 1002 a receives a start pulse at one of the injection points Inj_start_1 or Inj_start_2. The injection point is selected so as not to interfere with the propagation of any preceding start pulses. In one implementation, the injection point is selected based on the current location of any preceding start pulses propagating within the first delay path. Similarly,second delay path 1002 b receives a stop pulse from one of the injection points Inj_stop_1 or Inj'stop2. The stop pulse is directed to the appropriate injection point to avoid interfering with any preceding stop pulses. - Examples of other types of TDC principles that can be used in different implementations include pulse shrinking TDCs, TDCs employing parallel scaled delay lines, delay-locked loops or local passive time interpolation (LPI).
- Exemplary Method
-
FIG. 11 is a flow chart showing anexemplary method 1100 of measuring multiple time intervals. - At 1102, a first start signal (e.g., start_1 corresponding to the start of a first time interval) is monitored. When an active transition is detected in first start signal,
method 1100 proceeds to step 1104. - At 1104, a first timing event is generated and injected into the delay path of the TDC at the appropriate injection point. The appropriate injection point may be selected based on the states of control signals Blk_1 and Blk_2.
- At 1106, a second start signal (e.g., start_2 corresponding to the start of a second time interval) is monitored. When an active transition is detected in second start signal, a second timing event is generated and injected at
step 1108. - At 1108, the second timing event is injected into the delay path of the TDC at the appropriate injection point, without interfering with any pulses already propagating within the delay path. The appropriate injection point may be selected based on the states of control signals Blk_1 and Blk_2.
- At 1110, a stop signal (e.g., stop_1 corresponding to end of first time interval and the second time interval) is monitored until an active transition is detected.
- At 1112, a first binary word is generated. The first binary word is responsive to the first time interval being measured.
- At 1114, a second binary word, responsive to the second time interval being measured, is generated. Although only 2 time intervals are measured in this illustration, it is apparent to those of ordinary skill in the art that the number of time intervals that can be measured is not to be restricted. It is also understood that the method can be modified for measuring other types of time intervals, such as illustrated by the examples shown in
FIG. 1 c. - At 1116 certain regions are reset in order to eliminate all timing events just propagating in these regions. All regions are reset in which the timing events/pulses are located which are associated with the measurements which have been already finished. If additional measurements are required or desired, the process returns to 1102.
- Although specific details of exemplary methods have been described above, it should be understood that certain acts need not be performed in the order described, and may be modified, and/or may be omitted entirely, depending on the circumstances. Moreover, the acts described may be implemented by a computer, processor or other computing device based on instructions stored on one or more computer-readable media. The computer-readable media can be any available media that can be accessed by a computing device to implement the instructions stored thereon.
- Conclusion
- For the purposes of this disclosure and the claims that follow, the terms “coupled” and “connected” may have been used to describe how various elements interface. Such described interfacing of various elements may be either direct or indirect. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claims.
Claims (23)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/101,814 US8228763B2 (en) | 2008-04-11 | 2008-04-11 | Method and device for measuring time intervals |
DE102009015787A DE102009015787B4 (en) | 2008-04-11 | 2009-03-31 | Method and device for measuring time intervals |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/101,814 US8228763B2 (en) | 2008-04-11 | 2008-04-11 | Method and device for measuring time intervals |
Publications (2)
Publication Number | Publication Date |
---|---|
US20090257319A1 true US20090257319A1 (en) | 2009-10-15 |
US8228763B2 US8228763B2 (en) | 2012-07-24 |
Family
ID=41060839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/101,814 Active 2029-11-30 US8228763B2 (en) | 2008-04-11 | 2008-04-11 | Method and device for measuring time intervals |
Country Status (2)
Country | Link |
---|---|
US (1) | US8228763B2 (en) |
DE (1) | DE102009015787B4 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130094373A1 (en) * | 2011-10-14 | 2013-04-18 | Infineon Technologies Ag | Self Synchronizing Data Communication Method and Device |
US8749285B1 (en) * | 2013-03-15 | 2014-06-10 | Pericom Semiconductor Corp. | Differential voltage-mode buffer with current injection |
US9007951B2 (en) | 2011-10-14 | 2015-04-14 | Infineon Technologies Ag | Self synchronizing data communication method and device |
EP3179225A1 (en) * | 2015-12-09 | 2017-06-14 | ID Quantique S.A. | Apparatus and method for low latency, reconfigurable and picosecond resolution time controller |
US11775495B2 (en) * | 2017-10-06 | 2023-10-03 | Chicago Mercantile Exchange Inc. | Database indexing in performance measurement systems |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8970420B2 (en) * | 2013-03-15 | 2015-03-03 | Intel Mobile Communications GmbH | Bipolar time-to-digital converter |
US9606228B1 (en) | 2014-02-20 | 2017-03-28 | Banner Engineering Corporation | High-precision digital time-of-flight measurement with coarse delay elements |
JP6299516B2 (en) * | 2014-08-05 | 2018-03-28 | 株式会社デンソー | Time measurement circuit |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4719608A (en) * | 1984-05-11 | 1988-01-12 | Establissement Public styled: Centre National de la Recherche Scientifique | Ultra high-speed time-to-digital converter |
US5818797A (en) * | 1996-08-09 | 1998-10-06 | Denso Corporation | Time measuring device |
US5838754A (en) * | 1996-02-16 | 1998-11-17 | Lecroy Corporation | Vernier delay line interpolator and coarse counter realignment |
US5982712A (en) * | 1997-05-13 | 1999-11-09 | Tektronix, Inc. | Method and apparatus for measuring time intervals between electrical signals |
US6060928A (en) * | 1998-04-25 | 2000-05-09 | Lg Semicon Co., Ltd. | Device for delaying clock signal |
US6501706B1 (en) * | 2000-08-22 | 2002-12-31 | Burnell G. West | Time-to-digital converter |
US20040217788A1 (en) * | 2003-05-03 | 2004-11-04 | Kim Kyung-Hoon | Digital delay locked loop and control method thereof |
US6868047B2 (en) * | 2001-12-12 | 2005-03-15 | Teradyne, Inc. | Compact ATE with time stamp system |
US20060066372A1 (en) * | 2004-09-27 | 2006-03-30 | Collins Hansel A | Multiple-input, single-exit delay line architecture |
US20060087323A1 (en) * | 2002-11-19 | 2006-04-27 | University Of Utah Research Foundation | Apparatus and method for testing a signal path from an injection point |
US7339853B2 (en) * | 2005-12-02 | 2008-03-04 | Agilent Technologies, Inc. | Time stamping events for fractions of a clock cycle |
US20080198700A1 (en) * | 2003-11-13 | 2008-08-21 | International Business Machines Corporation | Duty cycle measurment circuit for measuring and maintaining balanced clock duty cycle |
US7501973B2 (en) * | 2006-11-15 | 2009-03-10 | Samsung Electronics Co., Ltd. | High-resolution time-to-digital converter |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2868266B2 (en) * | 1990-01-25 | 1999-03-10 | 株式会社日本自動車部品総合研究所 | Signal phase difference detection circuit and signal phase difference detection method |
US6754613B2 (en) * | 2000-03-17 | 2004-06-22 | Vector 12 Corporation | High resolution time-to-digital converter |
DE10164483A1 (en) * | 2001-12-29 | 2003-07-17 | Bosch Gmbh Robert | Measurement of time difference between two intervals in e.g. vehicle radar system, employs electronic components with gate delay exceeding the difference |
-
2008
- 2008-04-11 US US12/101,814 patent/US8228763B2/en active Active
-
2009
- 2009-03-31 DE DE102009015787A patent/DE102009015787B4/en not_active Expired - Fee Related
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4719608A (en) * | 1984-05-11 | 1988-01-12 | Establissement Public styled: Centre National de la Recherche Scientifique | Ultra high-speed time-to-digital converter |
US5838754A (en) * | 1996-02-16 | 1998-11-17 | Lecroy Corporation | Vernier delay line interpolator and coarse counter realignment |
US5818797A (en) * | 1996-08-09 | 1998-10-06 | Denso Corporation | Time measuring device |
US5982712A (en) * | 1997-05-13 | 1999-11-09 | Tektronix, Inc. | Method and apparatus for measuring time intervals between electrical signals |
US6060928A (en) * | 1998-04-25 | 2000-05-09 | Lg Semicon Co., Ltd. | Device for delaying clock signal |
US6501706B1 (en) * | 2000-08-22 | 2002-12-31 | Burnell G. West | Time-to-digital converter |
US6868047B2 (en) * | 2001-12-12 | 2005-03-15 | Teradyne, Inc. | Compact ATE with time stamp system |
US20060087323A1 (en) * | 2002-11-19 | 2006-04-27 | University Of Utah Research Foundation | Apparatus and method for testing a signal path from an injection point |
US20040217788A1 (en) * | 2003-05-03 | 2004-11-04 | Kim Kyung-Hoon | Digital delay locked loop and control method thereof |
US20080198700A1 (en) * | 2003-11-13 | 2008-08-21 | International Business Machines Corporation | Duty cycle measurment circuit for measuring and maintaining balanced clock duty cycle |
US20060066372A1 (en) * | 2004-09-27 | 2006-03-30 | Collins Hansel A | Multiple-input, single-exit delay line architecture |
US7339853B2 (en) * | 2005-12-02 | 2008-03-04 | Agilent Technologies, Inc. | Time stamping events for fractions of a clock cycle |
US7501973B2 (en) * | 2006-11-15 | 2009-03-10 | Samsung Electronics Co., Ltd. | High-resolution time-to-digital converter |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130094373A1 (en) * | 2011-10-14 | 2013-04-18 | Infineon Technologies Ag | Self Synchronizing Data Communication Method and Device |
US8699371B2 (en) * | 2011-10-14 | 2014-04-15 | Infineon Technologies Ag | Self synchronizing data communication method and device |
US8971206B2 (en) | 2011-10-14 | 2015-03-03 | Infineon Technologies Ag | Self synchronizing data communication method and device |
US9007951B2 (en) | 2011-10-14 | 2015-04-14 | Infineon Technologies Ag | Self synchronizing data communication method and device |
US8749285B1 (en) * | 2013-03-15 | 2014-06-10 | Pericom Semiconductor Corp. | Differential voltage-mode buffer with current injection |
EP3179225A1 (en) * | 2015-12-09 | 2017-06-14 | ID Quantique S.A. | Apparatus and method for low latency, reconfigurable and picosecond resolution time controller |
US10056974B2 (en) | 2015-12-09 | 2018-08-21 | Id Quantique Sa | Apparatus and method for low latency, reconfigurable and picosecond resolution time controller |
US11775495B2 (en) * | 2017-10-06 | 2023-10-03 | Chicago Mercantile Exchange Inc. | Database indexing in performance measurement systems |
Also Published As
Publication number | Publication date |
---|---|
US8228763B2 (en) | 2012-07-24 |
DE102009015787A1 (en) | 2009-10-15 |
DE102009015787B4 (en) | 2012-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8228763B2 (en) | Method and device for measuring time intervals | |
US7804290B2 (en) | Event-driven time-interval measurement | |
EP1985019B1 (en) | Time-to-digital conversion with delay contribution determination of delay elements | |
US7791525B2 (en) | Time-to-digital conversion with calibration pulse injection | |
JP5355401B2 (en) | Pulse counter with clock edge recovery | |
CN109387776B (en) | Method of measuring clock jitter, clock jitter measuring circuit, and semiconductor device | |
KR102224031B1 (en) | A circuit delay monitoring apparatus and method | |
CN110573970A (en) | Wide-measuring-range high-sensitivity time-to-digital converter | |
US9207704B2 (en) | Glitchless clock switching that handles stopped clocks | |
US9939325B2 (en) | Ratio meter of a thermal sensor | |
US20080068099A1 (en) | Methods and apparatus for inline measurement of switching delay history effects in PD-SOI technology | |
US8786347B1 (en) | Delay circuits for simulating delays based on a single cycle of a clock signal | |
JPH0467811B2 (en) | ||
US8786474B1 (en) | Apparatus for programmable metastable ring oscillator period for multiple-hit delay-chain based time-to-digital circuits | |
TW201303315A (en) | Method and system for measuring frequency | |
US7668891B2 (en) | Adjustable time accumulator | |
US8447008B2 (en) | Shift frequency demultiplier with automatic reset function | |
KR101541175B1 (en) | Delay line time-to-digital converter | |
US10680588B2 (en) | Event activity trigger | |
US9891594B2 (en) | Heterogeneous sampling delay line-based time to digital converter | |
US6950375B2 (en) | Multi-phase clock time stamping | |
US8243555B2 (en) | Apparatus and system with a time delay path and method for propagating a timing event | |
US8498373B2 (en) | Generating a regularly synchronised count value | |
KR102002466B1 (en) | Digital counter | |
JP4122128B2 (en) | Edge detection circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INFINEON TECHNOLOGIES AG, GERMANY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HENZLER, STEPHAN;REEL/FRAME:020827/0792 Effective date: 20080409 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |