Tdc for enhancing time resolution, and FPGA including same

WO2024219683A3PCT designated stage expired Publication Date: 2025-06-26SDT INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2024/003677
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-04-21
Filing Date
2024-03-25
Publication Date
2025-06-26

AI Technical Summary

Technical Problem

FPGAs face limitations in resources, leading to reduced resolution and accuracy in Time-to-Digital Converters (TDCs) due to limited logic cells, routing congestion, and errors caused by jitter and nonlinear behavior at high clock frequencies, as well as signal processing delays.

Method used

The implementation of a TDC system within an FPGA that includes a first and second delay line part, a code conversion part to reorder thermometer code elements based on data path delay, and a calculation part to determine time differences, along with a clock pulse count and input signal generation to enhance resolution and correct jitter-induced errors.

Benefits of technology

This configuration improves the temporal resolution of TDCs, corrects errors due to jitter, and optimizes signal processing delays, enabling higher accuracy in timing measurements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2024003677_26062025_PF_FP_ABST
    Figure KR2024003677_26062025_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed is an FPGA comprising: a first delay line part into which an input pulse having, as a width, a generation time difference between a start signal and an end signal is input; a code conversion part that converts the order of elements of thermometer code output by the first delay line part and outputs same; and an operation part that determines the generation time difference by using conversion code output by the code conversion part, wherein the conversion code is obtained by aligning the order of elements of the thermometer code according to a predetermined standard, and the predetermined standard is a data path delay from an output node of the input pulse to output nodes of each of a plurality of flipflops included in the first delay line part.
Need to check novelty before this filing date? Find Prior Art

Description

TDC capable of increasing temporal resolution and FPGA including the same

[0001] The present invention relates to a technology related to TDC of an FPGA, and more particularly to a TDC technology capable of increasing time resolution.

[0002] A time-to-digital converter (TDC) is a device or circuit that converts the time interval between two events into a digital output. TDCs play a crucial role in many scientific and industrial applications that require precise timing measurements. They are widely used in applications requiring high-precision timing measurements, such as time-of-flight (TOF) measurements in particle physics, medical imaging, radar systems, and laser ranging. A TDC operates by measuring the time difference between two events, such as the arrival of a signal at two points in a circuit, or the transmission and reflection of a signal. Typically, a counter is used to count the number of clock cycles between the two events. The count is then converted into a digital output representing the time interval. There are various types of TDCs, such as leading-edge TDCs, trailing-edge TDCs, and interpolating TDCs. A leading-edge TDC measures the time between the leading edge of a start signal and the leading edge of a stop signal, while a trailing-edge TDC measures the time between the trailing edge of a start signal and the trailing edge of a stop signal. Interpolation TDC increases the resolution of TDC by using interpolation techniques to estimate the time interval between two clock cycles.

[0003] TDCs include Application-Specific Integrated Circuits (ASICs), Microcontrollers (MCUs), Programmable System-on-Chip (PSoC), Digital Signal Processors (DSPs), Field Programmable Analog Arrays (FPAAs), Time-to-Amplitude Converters (TACs), Time-to-Frequency Converters (TFCs), and FPGAs (Field Programmable Analog Arrays). It can be implemented using a Programmable Gate Array, etc.

[0004] Implementing TDCs using FPGAs can present the following challenges. First, the resources provided in FPGAs, including logic cells, lookup tables (LUTs), and routing channels, are limited, which can limit the resolution and accuracy of TDCs implemented in FPGAs. Second, at high clock frequencies, jitter can introduce errors into TDC measurements. Jitter refers to variations in the timing of clock signals caused by factors such as noise and temperature. Third, factors such as voltage drops, temperature variations, and manufacturing process differences can cause TDCs to exhibit nonlinear behavior, resulting in errors in TDC measurements at high resolutions. Fourth, FPGAs incur delays through signal processing and routing, which can introduce errors into TDC measurements for small time intervals.

[0005] In FPGAs, routing refers to the process of connecting programmable logic elements (such as lookup tables, flip-flops, and multiplexers) on the chip to form the desired logic circuit. Routing determines how signals propagate through the chip and can significantly impact the overall performance of the design. One major factor that can cause delays in FPGA routing is the capacitance of the interconnect wires connecting the logic elements. As the number of logic elements and the distance between them increase, the capacitance of the interconnect wires also increases. This capacitance delays signal propagation along the wires, increasing the overall design delay. Another factor that can cause delays in FPGA routing is routing congestion. Routing congestion occurs when an FPGA's routing resources are limited and the number of logic elements to be connected is large. Routing congestion increases the distance between logic elements, which increases the capacitance of the interconnect wires, which can lead to delays.

[0006] A tempered delay line is a digital signal processing technique used to implement thermometer codes. In thermometer code, each bit of a binary number is represented by a separate signal line, with the line corresponding to the "on" bit indicating the value of the binary number. To implement a thermometer code using a tempered delay line, a series of delay elements are used to represent each bit. The input binary number is converted into a series of pulses, each representing one bit of the binary number. These pulses are delayed by a different amount depending on the position of each bit before being fed to the tempered delay line. At the output of the tempered delay line, each output signal line represents a bit of the binary number, with the "on" line indicating the value of the binary number. This technique is commonly used in digital-to-analog converters (DACs) to convert digital signals to analog signals.

[0007] In FPGAs, a carry chain block is a hardware block used to perform fast arithmetic operations, particularly additions and subtractions. In digital circuits, adding and subtracting multi-bit numbers requires calculating the carry bit, which can become a bottleneck in high-speed operations. The carry chain block efficiently handles this carry bit calculation, enabling faster and more efficient arithmetic operations. A carry chain block typically consists of a series of full adder circuits interconnected in a specific manner to form a carry chain. Each full adder circuit computes one bit of its output and the carry bit, which is then passed to the next stage in the chain. By chaining these full adder circuits, the carry bit propagates through the chain in one clock cycle, enabling fast additions and subtractions of multi-bit numbers. In addition to providing fast arithmetic operations, the carry chain block can also be used to implement counters and other sequential circuits that require carry bit calculation.

[0008] The timing report tool is a software tool used to analyze the timing performance of designs implemented in FPGAs. It generates a report providing information about the design's timing characteristics. This report includes information about the design's timing characteristics, including data path delay, critical path, setup and hold times, clock skew, and maximum operating frequency. Data path delay is the time it takes for a data signal to propagate through the FPGA's logic elements.

[0009] A multiplexer, or "MUX," is an electronic circuit that selects one of several input signals and routes the selected input to an output line. The input-output structure of a multiplexer typically consists of several input lines, a select line, and one or more output lines. The number of input lines corresponds to the number of input signals the multiplexer can select, and the select line determines the selected input signal. For example, a 4-to-1 multiplexer has four input lines, one output line, and a select line that determines which of the four input signals is sent to the output. The select line can be controlled by a binary code representing the selected input line. Multiplexers are often used in digital systems to reduce the number of wires required to transmit data and control signals. They can be used to implement functions such as data selectors, memory address decoders, and bus allocation circuits.

[0010] The present invention aims to provide a TDC capable of compensating for errors caused by jitter and increasing time resolution, and an FPGA including the TDC.

[0011] According to one aspect of the present invention, an FPGA (1) provided is programmed to include a first delay line part (20) into which an input pulse having a width of a time difference between a start signal and an end signal is input; a code conversion part (30) that converts and outputs the order of elements of a thermometer code output by the first delay line part; and an operation part (60) that determines the time difference using the conversion code output by the code conversion part; wherein the conversion code arranges the order of elements of the thermometer code according to a predetermined standard, and the predetermined standard may be a data path delay from an output node of the input pulse to output nodes of each of a plurality of flip-flops (FF) included in the first delay line part.

[0012] At this time, the FPGA (1) is programmed to further include a second delay line part into which the input pulse is input, and the code conversion part is configured to generate the conversion code by aligning and merging elements of the thermometer code output by the first delay line part and elements of the thermometer code output by the second delay line part according to a predetermined second criterion, and the predetermined second criterion may be a data path delay from an output node of the input pulse to output nodes of each of a plurality of flip-flops included in the first delay line part and the second delay line part.

[0013] At this time, the FPGA (1) may be programmed to further include an input signal generation part (10) that generates the input pulse having a time difference between the rising edge of the start signal and the rising edge of the end signal as a width; a clock pulse count part (40) that counts the number of clock pulses generated during the maintenance period of the input pulse; and the operation part that determines the value of the generation time difference using the first thermometer code (TC1) output by the code conversion part at the time of the rising edge of the first clock pulse among the generated clock pulses, the second thermometer code (TC2) output by the code conversion part at the time of the rising edge of the clock pulse generated immediately after the last clock pulse among the generated clock pulses, and the number of the counted clock pulses.

[0014] According to another aspect of the present invention, an FPGA is provided, which is programmed to include: a plurality of delay line parts to which an input pulse having a width of a time difference between a start signal and an end signal is input; a code conversion part that merges a plurality of thermometer codes output by the plurality of delay line parts and outputs a single conversion code; and an operation part that determines the time difference using the conversion code; wherein the conversion code is obtained by arranging the order of elements of the plurality of thermometer codes according to a predetermined standard, and the predetermined standard may be a data path delay from an output node of the input pulse to output nodes of each of a plurality of flip-flops in the plurality of delay line parts.

[0015] At this time, the FPGA may be programmed to further include an input signal generating part that generates the input pulse having a time difference between the rising edge of the start signal and the rising edge of the end signal as a width; a clock pulse counting part that counts the number of clock pulses generated during the maintenance period of the input pulse; and an operation part that determines a value of the generation time difference using the first thermometer code (TC1) output by the code conversion part at the time of the rising edge of the first clock pulse among the generated clock pulses, the second thermometer code (TC2) output by the code conversion part at the time of the rising edge of the clock pulse generated immediately after the last clock pulse among the generated clock pulses, and the number of the counted clock pulses.

[0016] According to one aspect of the present invention, a non-volatile recording medium readable by an electronic device may be provided, wherein a binary file including configuration data that is configured to program the FPGA to implement a digital circuit including a first delay line part (20) for inputting an input pulse having a width of a time difference between a start signal and an end signal using an FPGA; a code conversion part (30) for converting and outputting the order of elements of a thermometer code output by the first delay line part; and an operation part (60) for determining the time difference using the conversion code output by the code conversion part may be recorded. At this time, the conversion code is obtained by arranging the order of elements of the thermometer code according to a predetermined standard, and the predetermined standard may be a data path delay from an output node of the input pulse to output nodes of each of a plurality of flip-flops (FF) included in the first delay line part.

[0017] At this time, the digital circuit further includes a second delay line part into which the input pulse is input; and the code conversion part is configured to generate the conversion code by arranging and merging elements of the thermometer code output by the first delay line part and elements of the thermometer code output by the second delay line part according to a predetermined second criterion, and the predetermined second criterion may be a data path delay from an output node of the input pulse to output nodes of each of a plurality of flip-flops included in the first delay line part and the second delay line part.

[0018] At this time, the digital part may further include an input signal generation part (10) that generates the input pulse having a time difference between the rising edge of the start signal and the rising edge of the end signal as a width; a clock pulse count part (40) that counts the number of clock pulses generated during the maintenance period of the input pulse; and the operation part that determines the value of the generation time difference using the first thermometer code (TC1) output by the code conversion part at the time of the rising edge of the first clock pulse among the generated clock pulses, the second thermometer code (TC2) output by the code conversion part at the time of the rising edge of the clock pulse generated immediately after the last clock pulse among the generated clock pulses, and the number of the counted clock pulses.

[0019] According to another aspect of the present invention, a non-volatile recording medium readable by an electronic device may be provided, wherein a binary file including configuration data that is configured to program the FPGA to implement a digital circuit including a plurality of delay line parts to which an input pulse having a width of a time difference between a start signal and an end signal is input; a code conversion part that merges a plurality of thermometer codes output by the plurality of delay line parts and outputs them as a single conversion code; and an operation part that determines the time difference using the conversion code may be recorded. In this case, the conversion code may be obtained by arranging the order of elements of the plurality of thermometer codes according to a predetermined standard, and the predetermined standard may be a data path delay from an output node of the input pulse to output nodes of each of a plurality of flip-flops of the plurality of delay line parts.

[0020] A TDC system provided according to one aspect of the present invention may include a PCB board (100) including the FPGA (1) described above; and a computing device (200) that obtains the occurrence time difference from the PCB board.

[0021] According to the present invention, a TDC capable of compensating for errors due to jitter and increasing time resolution, and an FPGA including the TDC can be provided.

[0022] Figure 1 illustrates a configuration diagram of an FPGA according to one embodiment of the present invention.

[0023] FIG. 2 is a drawing for explaining an input pulse input to a first delay line part according to one embodiment of the present invention.

[0024] Figure 3 illustrates the configuration of a first delay line part according to one embodiment of the present invention.

[0025] Figure 4 is a drawing for explaining the indexes of the buffers of Figure 3.

[0026] FIG. 5 is a table illustrating data path delay according to one embodiment of the present invention.

[0027] FIG. 6a and FIG. 6b illustrate a parallel configuration of multiple delay line parts according to one embodiment of the present invention.

[0028] FIG. 7a illustrates the configuration of the first delay line part and the second delay line part of FIG. 6b, and FIG. 7b is for explaining the operation of the code conversion part when two delay line parts are used according to one embodiment of the present invention.

[0029] Figure 8 is a graph showing delay depending on whether a code conversion part is applied according to one embodiment of the present invention.

[0030] FIG. 9 is a drawing for explaining the arrangement criteria of flip-flop output values ​​and the increase value of the number of taps in FIG. 8 depending on whether a code conversion part is applied according to one embodiment of the present invention.

[0031] FIG. 10 is a block diagram of a TDC system provided according to one embodiment of the present invention.

[0032] Hereinafter, embodiments of the present invention will be described with reference to the attached drawings. However, the present invention is not limited to the embodiments described herein and may be implemented in various other forms. The terminology used herein is intended to aid understanding of the embodiments and is not intended to limit the scope of the present invention. Furthermore, the singular forms used below also include the plural forms, unless the context clearly indicates otherwise.

[0033] Figure 1 illustrates a configuration diagram of an FPGA according to one embodiment of the present invention.

[0034] FIG. 2 is a drawing for explaining an input pulse input to a first delay line part according to one embodiment of the present invention.

[0035] Hereinafter, the description will be made with reference to FIG. 1 and FIG. 2 together.

[0036] FPGA (1) may include an input signal generation part (10), a first delay line part (20), a code conversion part (30), a clock pulse counter part (40), a priority encoder part (50), and an operation part (60).

[0037] Specifically, the configurations of the FPGA (1) described above may be configurations of a TDC (Time to Digital converter).

[0038] As shown in Fig. 2, the input signal generation part (10) can generate an input pulse (P1) having a width equal to the time difference (T) between the rising edge (E1) of a given start signal (S1) and the rising edge (E2) of a given end signal (S2). The input signal generation part (10) can be composed of logic gates necessary for the above generation.

[0039] The first delay line part (20) can receive an input pulse (P1) having a width equal to the time difference (T) between the occurrence of a start signal (S1) and an end signal (S2). In addition, the first delay line part (20) can output a thermometer code (O1). At this time, the thermometer code is a value of, for example, 8 bits, composed of output values ​​of flip-flops included in the first delay line part (20), and the output value of each flip-flop can be referred to as an element of the thermometer code.

[0040] Figure 3 illustrates the configuration of a first delay line part according to one embodiment of the present invention.

[0041] Figure 4 is a drawing for explaining the indexes of the buffers of Figure 3.

[0042] The first delay line part (20) may include a delay line (D_L) including a plurality of buffers (delay elements, delay components) (B) and D-flip-flops (FF) tapped to the output terminals of each buffer (B) of the delay line.

[0043] Multiple buffers can be connected in a cascade delay manner. That is, multiple buffers can be arranged in the order in which the input pulses (P1) flow.

[0044] The waveform (Signal) of the input pulse (P1) of Fig. 3 can be output with a predetermined delay from the output terminal of each buffer (B). That is, the output value of the first buffer (B1) is output with a predetermined delay from the output terminal of the first buffer (B1), and the output terminal of the first buffer (B1) is connected to the input terminal of the second buffer (B2). The output value (e.g., '1') of the first buffer (B1) can also be input to the first flip-flop (FF1).

[0045] At this time, a data path delay may occur between each buffer (B) and through the flip-flop (FF). For example, a delay of d1 may occur until the input value ('1') of the first buffer (B1) is transmitted to the second buffer (B2), and a delay of d11 may occur until the output value ('1') of the first buffer (B1) is transmitted to the first flip-flop (FF1). Similarly, a delay may occur whenever data is transmitted from the previous buffer to the next buffer, and a delay may occur whenever data is transmitted from any buffer to a flip-flop connected to any buffer.

[0046] FIG. 4 is a diagram for explaining an index of a buffer according to one embodiment of the present invention.

[0047] Each field in the table in Figure 4 represents the buffer name, index, and output value of the buffer.

[0048] Each buffer may be assigned an index that defines the order of each buffer. For example, the first buffer (B1) may be assigned an index of '1', the second buffer (B2) may be assigned an index of '2', and similarly, the eighth buffer (B8) may be assigned an index of '8'. In this way, when each buffer (B) is arranged according to the order in which the input pulse (P1) flows and the indexes are arranged according to that order, for example, 1000 buffers may each be assigned an index of 1 to 1000.

[0049] FIG. 5 is a table illustrating data path delay according to one embodiment of the present invention.

[0050] Referring to FIGS. 1 and 5, the code conversion part (30) can convert and output the order of elements (e.g., 1, 2, 3, 4, 5, 6, 7, 8) of the thermometer code (O1) (e.g., 11100000) output from the first delay line part (20). At this time, the code (e.g., 11010000) (the order of the indexes of the corresponding buffer is 1, 2, 4, 5, 3, 6, 7, 8) output by the code conversion part (30) can be referred to as a 'conversion code (CO1)'.

[0051] The conversion code (CO1) output by the code conversion part (30) may be a sequence of elements of the thermometer code (O1) arranged according to a predetermined standard. In this case, the predetermined standard may be the data path delay from the output node (N1) of the input pulse (P1) to the output nodes (N2) of each of the plurality of flip-flops (FF) included in the first delay line part (20). This will be described in detail with reference to Fig. 5.

[0052] Each field in the table presented in Fig. 5 may represent a buffer index number, a first delay value, a second delay value, and a sum (rank). The rank may represent a ranking of all sums. The buffer with the smallest sum may have the first rank, while the buffer with the highest sum may have the last rank. Alternatively, the reverse may be true in other embodiments.

[0053] As described above in Fig. 3, the above sum value may mean the time taken for data to be transmitted from the node (N1) where the input pulse (P1) is output to an arbitrary flip-flop (e.g., FF4).

[0054] A first delay, which is the time it takes for an input value of an arbitrary buffer to be transmitted to another buffer connected to the arbitrary buffer, and a second delay, which is the time it takes for an output value of the arbitrary buffer to be transmitted to an input of a flip-flop connected to the arbitrary buffer, may occur.

[0055] At this time, the value obtained by adding the value of the first delay and the value of the second delay for each buffer can be referred to as the data path delay.

[0056] Referring to FIGS. 3 and 5 together, when the indexes of each buffer are listed in order, the order of the sum of the values ​​of the first delay and the second delay may be different from the order of the index numbers of each buffer. For example, in the case of the third buffer, since the buffer array order is 3rd, the index number may be '3', but the order of the sum may be '5'. Looking at it in detail, in order for data to be transmitted to the third flip-flop (FF3), it passes through the first buffer (B1), the second buffer, and the third buffer. At this time, a predetermined delay (d1, d2, d3) occurs each time it passes through the first buffer (B1), the second buffer (B2), and the third buffer (B3), and a delay (d13) may also occur until the data output from the third buffer (B3) is output as the output value of the third flip-flop (FF3). That is, the delay until data is transmitted from the output node (N1) of the input pulse (P1) to the output node (N2, N23) of the third flip-flop (FF3) may be the sum of d1, d2, d3, and d13.

[0057] In this way, the delay (i.e., the sum value) until data is transmitted to the output node of each flip-flop (FF3) can be calculated.

[0058] For example, in this embodiment, the buffer index for the third flip-flop (FF3) is 3, and the buffer index for the fourth flip-flop (FF4) is 4. That is, the fourth flip-flop (FF3) must pass through one more buffer than the third flip-flop (FF4), but despite this, the sum of the delays to the output node of the third flip-flop, which has a buffer index of 3, may be greater.

[0059] The code conversion part (30) can convert the order of elements of the thermometer code (O1) based on the calculated delay (sum value) (e.g., from the smallest sum value).

[0060] The conversion code (CO1) output by the code conversion part (30) can be provided to the priority encoder part (50).

[0061] The priority encoder part (50) can digitize a long thermometer code. For example, the priority encoder part (50) can convert a 5200-bit thermometer code into a 13-bit thermometer code. For example, if the number of buffers (delay elements) (B) described above in FIG. 3 and the number of flip-flops (FFs) connected to the buffers are 5200, 5200 consecutive binary number sequences are output, which can be expressed as 13-bit binary numbers.

[0062] That is, the priority encoder part (50) can express the first thermometer code (TC1) of 5200 bits and the second thermometer code (TC2) as a 13-bit binary number as the time-dependent output value (CO1) of the code conversion part (30).

[0063] Referring to FIG. 2, the first thermometer code (TC1) may be a code output by the code conversion part (30) in relation to the rising edge of the input pulse (P1) at the time of the rising edge (E4) of the clock pulse (CK2) that first occurs after the rising edge (E1) of the input pulse (P1) among the generated clock pulses (CK). The first thermometer code (TC1) expressed in 13 bits may be provided as an input to the operation part (60).

[0064] And the second thermometer code (TC2) may be a code output by the code conversion part (30) in relation to the falling edge (E2) of the input pulse (P1) at the time of the rising edge (E6) of the clock pulse (CK4) that first occurs after the falling edge (E2) of the input pulse (P1) among the generated clock pulses (CK). The second thermometer code (TC2) expressed in 13 bits may be provided as an input to the operation part (60).

[0065] At this time, the time period of the first thermometer code (TC1) and the time period of the second thermometer code (TC2) may be smaller than the period of the clock pulse (CK).

[0066] Referring again to FIGS. 1 and 2, the clock pulse counter part (40) can receive an input pulse (P1) from the input signal generation part (10).

[0067] The clock pulse counter part (40) can count the number of clock pulses (CK) generated during the maintenance period (T) of the input pulse (P1). For example, in Fig. 2, since there are two rising edges of the clock pulses generated during the period when the input pulse (P1) is in the ON state, such as edges (E4, E5), the counted value can be two.

[0068] The output value (Coarse count) of the clock pulse counter part (40), i.e. the counted value, can be provided to the operation part (60).

[0069] Referring to FIGS. 1 and 2, the operation part (60) can determine the value of the occurrence time difference using the first thermometer code (TC1), the second thermometer code (TC2), and the number of counted clock pulses. For example, the occurrence time difference can be 2*Period+TC1-TC2.

[0070] FIG. 6a and FIG. 6b illustrate a parallel configuration of multiple delay line parts according to one embodiment of the present invention.

[0071] As shown in Fig. 6a, two or more delay line parts (20) may be connected in parallel. At this time, the input pulse (P1) output from the input signal generation part (10) may be input to the first delay line part (21), the second delay line part (22), the third delay line part (23), and the fourth delay line part (24), respectively. In addition, the first thermometer code (O1), the second thermometer code (O2), the third thermometer code (O3), and the fourth thermometer code (O4) output from the first delay line part (21), the second delay line part (22), the third delay line part (23), and the fourth delay line part (24) may be input to the code conversion part (30).

[0072] In another embodiment, as shown in Fig. 6b, it can be assumed that two delay line parts (20) are connected in parallel.

[0073] For example, an input pulse (P1) output from an input signal generating part (10) can be provided along a first path (path1) in which the output terminal of the input signal generating part (10) and the input terminal of the first delay line part (21) are connected to each other, and a second path (path2) in which the output terminal of the input signal generating part (10) and the input terminal of the second delay line part (22) are connected to each other.

[0074] At this time, the time at which the input pulse (P1) output from the input signal generation part (10) reaches the input terminal of the first delay line part (21) and the input terminal of the second delay line part (22) may be different. This is because there is an input delay due to the difference in length between the first path (path1) and the second path (path). In the embodiment of Fig. 6b, since the length of the first path (path1) is shorter than the length of the second path (path2), it can be seen that the input time interval of the input pulse (path1) through the first path (path1) is shorter than the input time interval of the input pulse (path2) through the second path (path2).

[0075] FIG. 7a illustrates the configuration of the first delay line part and the second delay line part of FIG. 6b, and FIG. 7b is for explaining the operation of the code conversion part when two delay line parts are used according to one embodiment of the present invention.

[0076] For convenience of explanation in Fig. 7a, each delay line part is illustrated as containing four buffers and four flip-flops.

[0077] In Fig. 7b, each field of the table may represent a delay line part number, a buffer index number, a first delay value, a second delay value, a first sum value (first priority), and a first sum value (overall ranking). At this time, the first priority may represent a rank for each sum value for the buffer index of the buffers in each delay line part. And the overall ranking may represent a rank for each sum value for the buffer index of all buffers in the first delay line part and the second delay line part. At this time, in the first priority and the overall ranking, the buffer with the smallest sum value may have the first rank and the buffer with the highest sum value may have the last rank. Or, in another embodiment, the opposite is also possible. The method for obtaining the sum value may be the same as described in Fig. 5.

[0078] The code conversion part (30) may be configured to generate one conversion code by merging the elements of the first set (e.g., {(D1, 1), (D2, 2), (D3, 3), (D4, 4)}) in which the sum of the elements of the thermometer code output by the first delay line part (21) and the buffer index pairs are listed in descending order of sum values, and the elements of the second set (e.g., {(D5, 5), (D6, 6), (D7, 7), (D8, 8)}) in which the sum of the elements of the thermometer code output by the second delay line part (22) and the index pairs are listed in descending order of sum values.

[0079] That is, each element of the first set and each element of the second set can be sorted in order of lowest sum value.

[0080] For example, in the first delay line part (21), the output value based on the buffer index may be {1, 2, 3, 4}, and in the second delay line part (22), the output value based on the buffer index may be {5, 6, 7, 8}. In addition, in the embodiments of FIGS. 6b and 7a, the delay (d1) may be smaller than the delay (d5). Therefore, the sorted order may be (D1, 1), (D2, 2), (D5, 5), (D3, 3), (D6, 6), (D4, 4), (D7, 7), (D8, 8). The output values ​​of the flip-flops for each buffer index may be sorted in the sorted order. For example, the sorted values ​​(buffer indexes) may be 0(1), 0(2), 1(4), 1(6), 1(3), 1(5), 0(7), 0(8).

[0081] As described above, when multiple delay line parts (20) are used, slightly different input delays may be achieved depending on the arrangement. Fig. 8, described below, shows the delays according to the arrangement when multiple delay line parts are used.

[0082] Figure 8 is a graph showing delay depending on whether a code conversion part is applied according to one embodiment of the present invention.

[0083] FIG. 9 is a drawing for explaining the arrangement criteria of flip-flop output values ​​and the increase value of the number of taps in FIG. 8 depending on whether a code conversion part is applied according to one embodiment of the present invention.

[0084] Figure 8 (a) shows a delay graph according to the number of taps in a state where the code conversion part (30) is not applied, and Figure 8 (b) shows a delay graph according to the number of taps in a state where the code conversion part (30) is applied.

[0085] The fields in the table of Fig. 9 include the arrangement order of the flip-flop output values ​​before and after sorting, and the arrangement order of the total delay sum value.

[0086] Hereinafter, the description will be made with reference to FIGS. 8 and 9.

[0087] The horizontal axis of graphs (g1, g2) represents the number of taps. Referring to Fig. 7b, one tap may mean a pair of buffers (delay elements) (e.g., B1) and flip-flops (FF1) connected thereto. For example, if the total number of buffers and pairs of flip-flops connected thereto is 1000, the total number of taps may be 1000.

[0088] The vertical axis of graphs (g1, g2) represents the delay time (ns). The delay time may refer to the sum of the delays required for data to be transmitted to the output nodes of the flip-flops tapped in each buffer described above in Fig. 5.

[0089] Referring to FIGS. 7a to 9 together, an increase in the number of taps in the graph (g1) may mean, for example, an increase in the buffer index. For example, if the number of taps on the horizontal axis of the graph (g1) is 4, it may mean a buffer index of 4. At this time, the delay value on the vertical axis of the graph (g1) may be D4 (= d1 + d2 + d3 + d4 + d14) as in FIG. 7b. For example, if the number of taps is 5, it may mean a buffer index of 5. At this time, the delay value on the vertical axis of the graph (g1) may be D5 (= d5 + d15) as in FIG. 7b. At this time, referring to FIG. 9, D4 > D5. Here, it can be seen that the delay observed in the flip-flop of each tap does not increase as the index of the tap (e.g., index 4 -> index 5) increases, but sometimes locally decreases even when the index of the tap increases.

[0090] On the other hand, an increase in the number of taps in the graph (g2) may not mean an increase in the buffer index, but may mean an increase in the position according to the sorting order in which the output values ​​of each flip-flop are sorted by the code conversion part (30). For example, if the number of taps on the horizontal axis of the graph (g2) is 4, the position order of the sorted buffer index may be 1, 2, 5, 3, which may mean buffer index 3. In this case, the delay value on the vertical axis of the graph (g2) may be D3 (= d1 + d2 + d3 + d13). For example, if the number of taps is 5, the position order of the sorted buffer index may be 1, 2, 5, 3, 6, which may mean buffer index 6. In this case, the delay value may be D6 (= d5 + d6 + d16). At this time, referring to FIG. 9, D3 <D6 일 수 있다.

[0091] That is, as shown in (a) of Fig. 8, when the code conversion part (30) of the present invention is not applied, it can be seen that the graph (g1) for the delay according to the increase in the number of taps does not have a monotonically increasing property. On the other hand, as shown in (b) of Fig. 8, when the code conversion part (30) of the present invention is applied, it can be seen that the graph (g2) for the delay according to the increase in the number of taps shows an increasing phenomenon without decreasing.

[0092] For example, unlike ASICs, which are application-specific integrated circuits (ASICs), FPGAs can be directly designed through programming, allowing the chip's functionality to be changed based on programming. Therefore, unlike ASICs, the functionality of each component within an FPGA can vary (or depend on the configuration). Therefore, as the number of taps increases, delay may not always increase but instead decrease, preventing a phenomenon of constant increase without decreasing.

[0093] However, as explained, it can be confirmed through the graph (g2) that the code conversion part (30) can correct the output of the first delay line part (20).

[0094] As described above, when multiple delay line parts (20) are used, delay alignment can be provided through the code conversion part. As a result, errors due to jitter can be compensated for and a TDC with high temporal resolution can be provided. For example, when four delay line parts are configured in parallel to have a total of 9,600 taps, a TDC with a resolution of 0.8 ps per tap can be provided.

[0095] FIG. 10 is a block diagram of a TDC system provided according to one embodiment of the present invention.

[0096] The TDC system (1000) may include a PCB board (600) and a computing device (700).

[0097] The PCB board (600) is a device capable of digital signal processing and may include the above-described FPGA (1), data interface (601), signal interface (602), clock generation unit (603), and power supply unit (604).

[0098] The data interface (601) is a device that enables data exchange between the PCB mode (600) and the computing device (700), and may be formed of, but is not limited to, USB, Ethernet, or UART.

[0099] The signal interface (602) has the function of receiving signals for measuring time differences from the outside using the FPAG (1) and transmitting them to the FPGA (1).

[0100] The clock generation unit (603) can provide a train of clock pulses counted by the FPGA (1).

[0101] The time difference value of the two selected signals calculated by the FPGA (1) can be output from the FPGA (1) and provided to the data interface (601). The data interface (601) can provide the time difference value of the two signals to the computing device (700).

[0102] The power supply unit (104) supplies power used in the PCB board (600).

[0103] The computing device (700) may include a data interface (701), a CPU (702), and a memory (703).

[0104] The computing device (700) may be configured to execute a predetermined, pre-planned algorithm using the time difference value of two selected signals received from the PCB board (600). The time difference value of the two received signals may be processed by a process executed in the CPU (702). A program composed of instructions for executing the process may be stored in the memory (703). The program may be loaded from the memory (703) to the CPU (702) and executed. The memory (703) may be a non-volatile memory.

[0105] By utilizing the embodiments of the present invention described above, those skilled in the art will be able to easily implement various changes and modifications without departing from the essential characteristics of the present invention. The content of each claim may be combined with other claims that are not in a citation relationship within the scope of this specification, as long as it is understood.

[0106] [Explanation of symbols]

[0107] 1: FPGA

[0108] 10: Input signal generation part

[0109] 20: 1st Delay Line Part

[0110] 30: Code Conversion Part

[0111] 40: Clock pulse counter

[0112] 50: Priority encoder part

[0113] 60: Operation part

[0114] 600: PCB board

[0115] 700: Computing Device

[0116] 1000: TDC system

Claims

1. A first delay line part (20) into which an input pulse having a width equal to the time difference between the occurrence of a start signal and an end signal is input; A code conversion part (30) that converts and outputs the order of elements of the thermometer code output by the first delay line part; and An operation part (60) that determines the occurrence time difference using the conversion code output by the code conversion part; is programmed to include, The above conversion code arranges the order of elements of the above thermometer code according to a predetermined standard, The above-mentioned predetermined standard is a data path delay from the output node of the input pulse to the output nodes of each of the plurality of flip-flops (FF) included in the first delay line part. FPGA(1).

2. In paragraph 1, It is programmed to further include a second delay line part into which the above input pulse is input; The above code conversion part is configured to generate the conversion code by merging elements of the thermometer code output by the first delay line part and elements of the thermometer code output by the second delay line part by aligning them according to a predetermined second criterion. The above-described second criterion is a data path delay from the output node of the input pulse to the output nodes of each of the plurality of flip-flops included in the first delay line part and the second delay line part. FPGA.

3. In paragraph 1 or 2, An input signal generation part (10) that generates the input pulse having a time difference between the rising edge of the start signal and the rising edge of the end signal as a width; A clock pulse counter part (40) that counts the number of clock pulses generated during the maintenance period of the above input pulse; and The operation part that determines the value of the occurrence time difference using the first thermometer code (TC1) output by the code conversion part at the time of the rising edge of the first clock pulse among the generated clock pulses, the second thermometer code (TC2) output by the code conversion part at the time of the rising edge of the clock pulse that occurs immediately after the last clock pulse among the generated clock pulses, and the number of the counted clock pulses; Programmed to include more, FPGA.

4. In paragraph 1, The above FPGA is programmed to include a plurality of delay line parts into which the input pulse is input; The above plurality of delay line parts include the first delay line part, The conversion code output by the above code conversion part is generated by merging multiple thermometer codes output by the multiple delay line parts, The above conversion code arranges the order of elements of the plurality of thermometer codes according to a predetermined second standard, The above-mentioned second criterion is the data path delay from the output node of the input pulse to the output nodes of each of the plurality of flip-flops in the plurality of delay line parts. FPGA.

5. Using FPGA, A first delay line part (20) into which an input pulse having a width of the time difference between the start signal and the end signal is input; A code conversion part (30) that converts and outputs the order of elements of the thermometer code output by the first delay line part; and An operation part (60) that determines the occurrence time difference using the conversion code output by the code conversion part; A binary file containing configuration data that is configured to program the FPGA to implement a digital circuit including The above conversion code arranges the order of elements of the above thermometer code according to a predetermined standard, The above-mentioned predetermined standard is a data path delay from the output node of the input pulse to the output nodes of each of the plurality of flip-flops (FF) included in the first delay line part. A nonvolatile recording medium that can be read by an electronic device.

6. In paragraph 5, The above digital circuit further includes a second delay line part into which the input pulse is input; The above code conversion part is configured to generate the conversion code by merging elements of the thermometer code output by the first delay line part and elements of the thermometer code output by the second delay line part by aligning them according to a predetermined second criterion. The above-described second criterion is a data path delay from the output node of the input pulse to the output nodes of each of the plurality of flip-flops included in the first delay line part and the second delay line part. A nonvolatile recording medium that can be read by an electronic device.

7. In paragraph 5 or 6, The above digital part, An input signal generation part (10) that generates the input pulse having a time difference between the rising edge of the start signal and the rising edge of the end signal as a width; A clock pulse counter part (40) that counts the number of clock pulses generated during the maintenance period of the above input pulse; and The operation part that determines the value of the occurrence time difference using the first thermometer code (TC1) output by the code conversion part at the time of the rising edge of the first clock pulse among the generated clock pulses, the second thermometer code (TC2) output by the code conversion part at the time of the rising edge of the clock pulse that occurs immediately after the last clock pulse among the generated clock pulses, and the number of the counted clock pulses; including more, A nonvolatile recording medium that can be read by an electronic device.

8. In paragraph 5, The above digital circuit includes a plurality of delay line parts into which the input pulse is input, The above plurality of delay line parts include the first delay line part, The conversion code output by the above code conversion part is generated by merging multiple thermometer codes output by the multiple delay line parts, The above conversion code arranges the order of elements of the plurality of thermometer codes according to a predetermined second standard, The above-mentioned second criterion is the data path delay from the output node of the input pulse to the output nodes of each of the plurality of flip-flops in the plurality of delay line parts. A nonvolatile recording medium that can be read by an electronic device.

9. A PCB board (100) including an FPGA (1) of any one of claims 1 to 4; and A computing device (200) that obtains the occurrence time difference from the PCB board; including, TDC system.

Citation Information

Patent Citations

  • Time to digital converter and converting method

    KR1020120113546A

  • High resolution time-to-digital convertor

    KR1020160123968A

  • Method for Manufacturing the Rotor Housing

    KR1020210009141A

  • 3D image sensor and related 3D image sensing module and hand-held device

    US20210080588A1