Xilinx TDC
Xilinx TDC
Xilinx TDC
A 1.8 ps Time-to-Digital
Converter (TDC)
Implemented in a 20 nm
Field-Programmable Gate
Array (FPGA) Using a
Ones-Counter Encoding
Scheme with Embedded
Bin-Width Calibrations and
Temperature Correction
Sven Engström
Master of Science Thesis in Electrical Engineering
Sven Engström
LiTH-ISY-EX--20/5343--SE
iii
Acknowledgments
I would first like to thank my colleagues at Teledyne SP Devices who gave me the
opportunity to write this master thesis. A special thanks to Per Magnusson, both
for the helpful discussions during the project and comments on the report. His
feedback has been crucial for the quality of my report.
I would also like to thank my supervisor Oscar Gustafsson and my examiner Kent
Palmkvist for their help with this thesis and the great courses they have provided
during my studies.
v
Contents
Notation ix
1 Introduction 1
1.1 Aim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Research questions . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Delimitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Theory 3
2.1 TDC architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Tapped delay line . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2.1 Bubbles and non-linearity . . . . . . . . . . . . . . . . . . . 4
2.2.2 Rise and fall time differences . . . . . . . . . . . . . . . . . 4
2.2.3 Temperature dependency . . . . . . . . . . . . . . . . . . . 4
2.2.4 Voltage dependency . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.5 Individual differences . . . . . . . . . . . . . . . . . . . . . 5
2.3 Multi-measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3.1 Multiple instances . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3.2 Wave union . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 Design flexibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4.1 Ones-counter . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4.2 Histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4.3 Oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 Method 9
3.1 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.1 Tapped delay line . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.2 Bit counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.3 Edge detection . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1.4 Histogram engine . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.5 Signal handler . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.6 Temperature correction . . . . . . . . . . . . . . . . . . . . . 13
3.1.7 Frequency estimator . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Computations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
vii
viii Contents
3.2.1 Timestamp . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.2 Temperature correction . . . . . . . . . . . . . . . . . . . . . 15
3.3 Test platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3.1 Evaluation kit . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3.2 Digitizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4 Evaluation 19
4.1 Erratic behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2 Single edge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3 Pulsed edge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.4 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.4.1 Bin width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4.2 Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.5 Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.6 Resource usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5 Conclusions 25
5.1 Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2 Trade-offs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.3.1 Teledyne SP Devices Digitizer . . . . . . . . . . . . . . . . . 27
5.4 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
A Evaluation plots 31
Bibliography 49
Notation
Abbreviations
Abbreviation Meaning
cdc Clock domain crossing
clb Configurable logic block
fpga Field-programmable gate array
lut Lookup table
mcu Micro controller unit
mux Multiplexer
pvt Process, Voltage, Temperature
tdc Time-to-digital converter
tdl Tapped delay line
uart Universal asynchronous receiver-transmitter
ix
Introduction
1
Teledyne SP Devices has developed a range of digitizers used to collect analog sig-
nals digitally. One essential part part of data collection is to know when to start,
a.k.a. triggering. In this case, the trigger is a level trigger, i.e. a trigger that fires
when the input signal reaches a configurable level. A simple level trigger may be
built using an analog comparator and a micro controller unit (mcu) sampling the
signal repeatedly. This limits the trigger pulse width and resolution to the clock
period of the mcu which is not always fast enough.
1.1 Aim
The purpose of this master thesis project is to develop a high resolution time-
to-digital converter (tdc) using a tapped delay line (tdl) contained in a Xilinx
Kintex UltraScale Field-programmable gate array (fpga).
1
2 1 Introduction
1.3 Delimitations
There are some delimitations in place to make the project manageable.
• The time invested in the project is limited to 800 hours.
• The tdc will be constructed using a Xilinx Kintex UltraScale fpga.
2
Theory
3
4 2 Theory
Input
T T T T T T T T Delay elements
Flip flops
Thermometer code
Each configurable logic block (clb) in the chosen architecture has an 8-input (16-
bit) carry adder element, CARRY8, with fast interconnect between carry out and
carry in on the next clb [15], which makes them a prime candidate for a delay
chain. Each carry block has eight carry outputs and also supplies an inverted
version of each bit for a total of 16 taps. All outputs have an associated flip-flop
within the clb to store the output.
Using all 16 outputs is sometimes referred to as dual-sampling [5, 12].
CI (Signal) CO
CO0
CO1
CO2
CO3
CO4
CO5
CO6
CO7
C0
C1
C2
C3
C4
C5
C6
C7
Time
2.3 Multi-measurement
Averaging multiple measurements might reduce the effect of non-linearity, tem-
perature and voltage variations.
This approach is not investigated further because of the high logic utilization.
6 2 Theory
2.4.1 Ones-counter
One way to deal with bubbles in the thermometer code without remapping the
outputs is to count all high outputs from one end of the tdl to the first larger
2.4 Design flexibility 7
gap. The number of high outputs corresponds to the bin number of the last high
output if the outputs had been remapped to a perfect thermometer code. The
size of a large gap has to be selected such that it is larger than the largest possible
bubble and smaller than the shortest pulse expected to be measured.
This imposes constraints on the properties of the input signal that a remapping
does not. It does however work on both rising and falling edges (counting low
and high outputs respectively), requires no calibration and is insusceptible to
errors caused by individual variance.
2.4.2 Histogram
Bin sizes are generally determined by generating and collecting a large number
of edges. Given a source uncorrelated to the system clock, larger bins will receive
more hits and by creating a histogram from the resulting set of bin numbers it is
possible to determine the relative sizes of the bins.
Previous research and works have done this calibration off chip by streaming the
collected bin numbers to a PC but that is not a viable solution in the case of this
self-contained tdc.
2.4.3 Oscillator
An edge generator uncorrelated to the system clock is mandatory to get good
results from the histogram calibration. One way to create this source without
adding additional physical components is to create a ring-oscillator within the
fpga.
3
Method
3.1 Architecture
A system overview of the tdc architecture can be seen in figure 3.1. All parts run
at 625 MHz, except where otherwise specified.
9
10 3 Method
ring oscillator
signal handler
tdl
freq. estimator
bit counter
edge detect
histogram
engine
histogram
engine
reg
and once at the end. These are handled by the edge detection module described
in section 3.1.3.
Ring oscillator
One use of the tdl is to connect the last carry output to the input through an
inverter and thus creating a ring oscillator with temperature characteristics sim-
ilar to the tdl used for measurements. The use of this is further explained in
sections 3.1.5, 3.1.6 and 3.1.7.
36 36 36 36
POP36 POP36 POP36 POP36
6 6 6 6
[5][2] [5][2] [5][2] [5][2]
=0 & + =0 & =0 & + =0 &
7 7
72 72
≥1 ≥1 + ≥1 ≥1 +
7
7
≥1 ≥1 +
8 +
1 0
8 8
1 0
8
+
9 +
1 0 9
1 0
9 9
≥1 ≥1
+
10 +
1 0 10
1 0
≥1 ≥1 10 10
(a) Part of bit counter structure. Dashed lines mark pipeline stages.
36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36 POP36
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
[5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2] [5][2]
=0 & + =0 & =0 & + =0 & =0 & + =0 & =0 & + =0 & =0 & + =0 & =0 & + =0 & =0 & + =0 & =0 & + =0 & =0 & + =0 & =0 & + =0 & =0 & + =0 & =0 & + =0 & =0 & + =0 & =0 & + =0 & =0 & + =0 & =0 & + =0 &
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72
≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + +
7 7 7 7 7 7 7 7
7 7 7 7 7 7 7 7
≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 + ≥1 ≥1 +
8 + 8 + 8 + 8 + 8 + 8 + 8 + 8 +
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
8 8 8 8 8 8 8 8
+ + + +
9 + 9 + 9 + 9 +
1 0 9 1 0 9 1 0 9 1 0 9
1 0 1 0 1 0 1 0
9 9 9 9 9 9 9 9
≥1 ≥1 ≥1 ≥1
+ +
10 + 10 +
≥1 ≥1 ≥1 ≥1
1 0 10 1 0 10
1 0 1 0
≥1 ≥1 10 10 ≥1 ≥1 10 10
+
11 +
1 0 11
1 0
≥1 ≥1 11 11
6 6 6 6 6 6
C63 C63 C63 C63 C63 C63
3 3 3 3 3 3
An early exit is implemented by adding some control signals, also shown in fig-
ure 3.2. Using those it is possible to detected an edge and exclude the following
bits and thereby allow pulses shorter than the tdl to be detected correctly.
At the same level as the control signals are introduced the complete structure
is also forked into a rising and falling edge sum structure, counting ones and
zeros respectively. Both have their own set of control signals. This can be seen in
figure 3.2.
The edge detection module is also responsible for starting and stopping histogram
creation.
CARRY8
=1 &
LUT6
&
3
0 1 2 3 4
1
3.2 Computations
With the hardware architecture described in section 3.1 all data needed for pre-
cise measurements are available, but a few computational steps are needed to
transform the outputs to precise timestamps.
3.2.1 Timestamp
The collected histograms are used to calculate the width of each bin and the cor-
responding timestamp:
h[k]
w[k] = P Tclk (3.1)
n h[n]
k−1
X w[k]
t[k] = w[n] + . (3.2)
2
n=0
where h[k] is the value of bin k in the histogram and Tclk the clock period.
After calibration all t[k] can be computed and stored for use in a lookup table
for timestamps, either on the fpga or the computer, and requires therefore no
computation at run time.
3.3 Test platform 15
3.3.2 Digitizer
The digitizer contains hardware for analog-to-digital conversion and was used
to evaluate the performance of the tdc as a trigger for data collection. To allow
data collection, this design contained a lot of logic in addition to the tdc which
caused the synthesis time to be counted in hours instead of minutes.
The existing trigger was compared to the tdc by doing triggered data collection
using the existing trigger and running the tdc at the same time. The input sig-
nal was bandwidth-limited to have a rise time that allowed the digitizer to collect
16 3 Method
multiple samples on the edge which allowed the data to be linearly interpolated
around the trigger point. The time when the interpolated signal crossed the trig-
ger level was compared to the values given by the existing trigger and the tdc.
Noise
Any noise introduced by the ADC during sampling will be included in the calcu-
lated trigger precision. Hence it is important to get a feeling for the magnitude
of these errors. The digitizer has an RMS error of 0.4 mV when terminated.
X2
Yα
X1
α 1−α
n t n+1
Since the tdc error is calculated at a time t between two samples, the error has
to be modeled accordingly. If both samples closest to the time t are called X1 and
X2 the interpolated value, Yα , can be described by figure 3.5 and the following
equations:
Yα = (1 − α)X1 + αX2
X1 ∼ N (µ1 , σX )
. (3.4)
X2 ∼ N (µ2 , σX )
α ∼ U (0, 1)
0 0 (3.6)
h 2 i 1 2
= σX2 α − α 2 + α 3 = σX2 .
3 0 3
The noise introduced by the ADC at time t would therefore have an RMS value
3.3 Test platform 17
of
r
1 2
σADC = σ (3.7)
k 3 X
where k is the slope of the edge and σX is 0.4 mV.
4
Evaluation
This chapter contains general observations and results from measurements done
using the two evaluation platforms listed in section 3.3.
19
20 4 Evaluation
200000
150000
Count
100000
50000
0
0 100 200 300 400 500 600
Taps
samples hit both tdcs the same clock cycle and the others on two consecutive
cycles.
The error distribution varies depending on the position in the tdl that was hit
which is visible in figures A.9 and A.11. The error distribution of the complete
tdl can be seen in figures A.13 and A.15
Resulting bin widths from the calibration are shown in figures A.2 and A.4. Dis-
tribution of the same can be seen in figures A.6 and A.8.
Position dependent error variation is visible in figures A.10 and A.12. The total
error distribution is summarized in figures A.14 and A.16
4.4 Results
Statistics from the evaluation is summarized in table 4.1.
4.4 Results 21
4.4.2 Error
In single edge mode the resolution is 2.4 ps for rising edges and 2.2 ps for falling
edges in the best case. When using internal calibration the resolution drops to
2.5 ps for both rising and falling edges.
When running in the pulsed edge mode with external calibration the resolution is
1.8 ps. With internal calibration this drops to 2.8 and 3.0 ps for rising and falling
edges respectively.
22
0.4 0.4
Voltage [V]
Voltage [V]
0.3 0.3
0.2 0.2
0.1 0.1
0.0 0.0
−2 0 2 −2 0 2
Time [ns] Time [ns]
Figure 4.2: Data records aligned to cross the trigger level at time zero using
the existing trigger and the tdc
4.5 Trigger
Testing on the digitizer platform was performed according to the method de-
scribed in section 3.3.2 with the digitizer set to 2 GSample/s and a trigger level
of 0.15 V.
The tdc was calibrated using the internal oscillator and configured to collect
values in the single-edge mode.
Figure 4.2 shows 124 data records out of the 3949 collected. The error distribu-
tion can be seen in figure 4.3.
The standard deviation of the errors were 35.4 and 18.7 ps and the largest errors
were 104 and 69 ps for the existing trigger and the tdc respectively.
The mean slope at the trigger level was 163 mV/ns which means that the ADC
contributes with 2.1 ps RMS noise according
√ to equation 3.7. Without this noise
the standard deviation would have been 18.72 − 2.12 ps = 18.6 ps.
200
TDC
Existing trigger
150
Count
100
50
0
−100 −50 0 50 100
Error [ps]
5.1 Resolution
The best resolution of 1.8 ps was achieved using external calibration in combina-
tion with the pulsed edge mode. This result is better than previously published
fpga-based tdcs [6]. A small comparison to previous works can be seen in ta-
ble 5.1.
Using an external signal for calibration gave consistently better performance com-
pared to all variations of internal calibration. Among the internal calibration
methods, the 79 MHz ring oscillator gave the best results. The reasons for this
are hard to say without further investigation.
25
26 5 Conclusions
With the slower internal oscillator giving better calibration performance com-
pared to the faster one and the even slower, external calibration performing even
better, a connection between trigger frequency and calibration performance is
not far fetched.
Using internal calibration, the single-edge mode provides a lower standard devi-
ation compared to the pulsed mode. Maximum error and 99th percentile are sim-
ilar for both modes. Since the pulsed mode eliminates most ultra-wide bins this
indicates that the largest errors are not caused by non-uniform bin widths. Two
possible error sources are voltage variations and clock jitter, but others sources
may exist.
5.2 Trade-offs
The use of a bit counter has several advantages compared to tap realignment. It
works equally well for removing bubbles for both rising and falling edges. The
bit counter therefore enables the use of a wave union approach to be applied on
the UltraScale architecture which previously has been dismissed [5].
Having a tdl with a delay longer than one clock cycle allows for both larger
temperature variations and the addition of the pulsed mode. One disadvantage
is that some edges will be seen twice and the dead-time of this implementation
is therefore two clock cycles corresponding to 3.2 ns. This may be mitigated by
higher clock frequency or more clever logic which this project did not investigate.
The bit counter is suspected to have higher resource requirements compared to a
thermometer code decoder. This was not thoroughly investigated but previous re-
search with a thermometer code decoder and 7.8 ps resolution on the UltraScale
architecture required 706 luts compared to 1972 luts in this work [3]. The re-
source requirement of the tdc implemented in this work is 2.8 times higher but
also provides more than 4 times higher resolution.
Internal calibration gives larger errors but allows for calibration without any ex-
tra hardware which is a large advantage in some applications.
Since temperature variations also affects the length of the pulse when using the
pulsed mode, the tdc may be more sensitive to temperature changes when using
this mode.
5.3 Applications
The mode to use depends largely on the application. If external calibration is
possible and the highest resolution is needed, the pulsed mode is the best choice.
If used with internal calibration, the single edge mode delivers the same perfor-
mance as the pulsed mode. The single edge mode also works with a shorter tdl
and a smaller bin counter and therefore allows for the creation of a tdc with
lower resource requirements.
5.4 Future work 27
31
32 A Evaluation plots
15
Width [ps]
10
0
0 200 400 600
Bin
15
Width [ps]
10
0
0 200 400 600
Bin
15
Width [ps]
10
0
0 200 400 600
Bin
8
Width [ps]
0
200 400 600 800 1000 1200 1400
Bin
6
Width [ps]
0
200 400 600 800 1000 1200 1400
Bin
15
Width [ps]
10
0
0 200 400 600
Bin
15
Width [ps]
10
0
0 200 400 600
Bin
15
Width [ps]
10
0
0 200 400 600
Bin
6
Width [ps]
0
200 400 600 800 1000 1200 1400
Bin
10
8
Width [ps]
0
200 400 600 800 1000 1200 1400
Bin
Count 100
50
0
0 5 10 15
Bin width [ps]
100
Count
50
0
0 5 10 15
Bin width [ps]
100
75
Count
50
25
0
0 5 10 15
Bin width [ps]
500
400
300
Count
200
100
0
0 2 4 6 8 10
Bin width [ps]
500
400
300
Count
200
100
0
0 2 4 6 8
Bin width [ps]
Count 100
50
0
0 5 10 15
Bin width [ps]
100
Count
50
0
0 5 10 15
Bin width [ps]
100
Count
50
0
0 5 10 15
Bin width [ps]
500
400
300
Count
200
100
0
0 1 2 3 4 5 6 7 8
Bin width [ps]
500
400
300
Count
200
100
0
0 2 4 6 8 10
Bin width [ps]
20
Error [ps] 10
−10
−20
100 200 300 400 500 600
Bin
20
10
Error [ps]
−10
−20
100 200 300 400 500 600
Bin
20
10
Error [ps]
−10
−20
100 200 300 400 500 600
Bin
20
10
Error [ps]
−10
−20
200 400 600 800 1000 1200 1400
Bin
20
10
Error [ps]
−10
−20
200 400 600 800 1000 1200 1400
Bin
20
Error [ps] 10
−10
−20
100 200 300 400 500 600
Bin
20
10
Error [ps]
−10
−20
100 200 300 400 500 600
Bin
20
10
Error [ps]
−10
−20
100 200 300 400 500 600
Bin
20
10
Error [ps]
−10
−20
200 400 600 800 1000 1200 1400
Bin
20
10
Error [ps]
−10
−20
200 400 600 800 1000 1200 1400
Bin
40000
30000
Count
20000
10000
0
−20 −10 0 10 20
Error [ps]
40000
30000
Count
20000
10000
0
−20 −10 0 10 20
Error [ps]
30000
Count
20000
10000
0
−20 −10 0 10 20
Error [ps]
50000
40000
30000
Count
20000
10000
0
−20 −15 −10 −5 0 5 10 15 20
Error [ps]
30000
25000
20000
Count
15000
10000
5000
0
−20 −15 −10 −5 0 5 10 15 20
Error [ps]
40000
30000
Count
20000
10000
0
−20 −10 0 10 20
Error [ps]
30000
Count
20000
10000
0
−20 −10 0 10 20
Error [ps]
20000
Count
10000
0
−20 −10 0 10 20
Error [ps]
50000
40000
Count
30000
20000
10000
0
−20 −15 −10 −5 0 5 10 15 20
Error [ps]
30000
25000
20000
Count
15000
10000
5000
0
−20 −15 −10 −5 0 5 10 15 20
Error [ps]
49
50 Bibliography
[8] J. Qi, Z. Deng, H. Gong, and Y. Liu. A 20ps resolution wave union FPGA
TDC with on-chip real time correction. In IEEE Nuclear Science Symposuim
Medical Imaging Conference, pages 396–399, October 2010. doi: 10.1109/
NSSMIC.2010.5873788.
[9] X. Qin, L. Wang, D. Liu, Y. Zhao, X. Rong, and J. Du. A 1.15-ps bin size and
3.5-ps single-shot precision time-to-digital converter with on-board offset
correction in an FPGA. IEEE Transactions on Nuclear Science, 64(12):2951–
2957, December 2017. ISSN 1558-1578. doi: 10.1109/TNS.2017.2768082.
[10] Q. Shen, S. Liu, B. Qi, Q. An, S. Liao, P. Shang, C. Peng, and W. Liu. A
1.7 ps equivalent bin size and 4.2 ps RMS FPGA TDC based on multichain
measurements averaging method. IEEE Transactions on Nuclear Science, 62
(3):947–954, 2015. ISSN 1558-1578. doi: 10.1109/TNS.2015.2426214.
[11] R. Szplet, D. Sondej, and G. Grzeda. Subpicosecond-resolution time-to-
digital converter with multi-edge coding in independent coding lines. In
2014 IEEE International Instrumentation and Measurement Technology
Conference (I2MTC) Proceedings, pages 747–751, May 2014. doi: 10.1109/
I2MTC.2014.6860842.
[12] Y. Wang and C. Liu. A 3.9 ps time-interval RMS precision time-to-digital
converter using a dual-sampling method in an UltraScale FPGA. IEEE
Transactions on Nuclear Science, 63(5):2617–2621, October 2016. ISSN
1558-1578. doi: 10.1109/TNS.2016.2596305.
[13] Y. Wang, J. Kuang, C. Liu, and Q. Cao. A 3.9-ps RMS precision time-to-
digital converter using ones-counter encoding scheme in a Kintex-7 FPGA.
IEEE Transactions on Nuclear Science, 64(10):2713–2718, October 2017.
ISSN 1558-1578. doi: 10.1109/TNS.2017.2746626.
[14] J. Wu and Z. Shi. The 10-ps wave union TDC: Improving FPGA TDC res-
olution beyond its cell delay. In 2008 IEEE Nuclear Science Symposium
Conference Record, pages 3440–3446, 2008.
[15] UltraScale Architecture Configurable Logic Block - User Guide. Xilinx
Inc, https://www.xilinx.com/support/documentation/user_
guides/ug574-ultrascale-clb.pdf, v1.5 edition, February 2017.
[16] KCU105 Board - User Guide. Xilinx Inc, https://www.xilinx.
com/support/documentation/boards_and_kits/kcu105/
ug917-kcu105-eval-bd.pdf, v1.10 edition, 2019.