Results of GET4 Tests Known Bugs and Performance

Results of GET4 Tests
Known Bugs and Performance
Holger Flemming
February 11, 2013
Outline
Known Bugs
DLL Reset Phase
24 bit Serialiser Timing
Further Modifications
DLL lock indication
Sync flag
Bit error rate test
Internal Timing
Process speed
Encoder data latching
Performance
Test Setup
Finetime spectra with correlated Hits
Time resolution
Outlook
DLL Reset Phase (I)
◮
◮
◮
Left side: Phase detector operation. DLL output comes later
⇒ feedback control to faster DLL
But phase detector has to be initialised to resolve phase
ambiguity
⇒ Reset input of phase detector (rigth side)
Correct phase detector initialisation depends on phase of reset
release
◮
◮
Red marked reset: Correct initialisation
Green marked reset: Phase detector sees DLL output first ⇒
feedback control to slower DLL
Wrong initialisation!
DLL Reset Phase (II)
◮
◮
Internal generated DLL reset of GET4 V1.10 unfortunately
has wrong release phase
Solution for GET4 V1.20:
◮
◮
◮
Configurable phase shifter for DLL reset release
Auto DLL reset (can be disabled!)
If DLL is out of lock state:
1. Generate a 1 µs DLL reset
2. Wait for 10 µs
3. If DLL is still out of lock: increment phase shifter
configuration and go to first step
24 bit Serialiser Timing
◮
◮
Internal clock divider for reduced serialiser data rates ⇒
inserting clock delays
Unfortunately generated clocks are not constrained
Data sources of serialiser are driven by 160 MHz main clock
◮
◮
◮
◮
◮
Latch enable register
Data multiplexer switching from event data to epoch data
Serialiser is driven with internally generated delayed clock
⇒ Data corruption by timing violation of serialiser
Will be corrected in Version 1.20
Serialiser will work completely synchronously on 160 MHz
clock
Further Modifications
DLL lock indication
◮
Internal DLL lock monitor is only available in 32 bit readout
mode
◮
In Version 1.20 an additional error event for DLL lock loss will
be implemented in 24 and 32 bit readout mode
Sync flag
◮
Epoch events contain a sync flag to mark external
synchronisation
◮
In GET4 V 1.10 sync flag is always zero
◮
Problem is fully understood and will be fixed in version 1.20
Bit Error Rate Test on Serial Downlink
◮
◮
Till now no option to test
bit errors on serial down
link
New in V 1.20: Bit error
rate test
◮
◮
◮
◮
17 bit shift register with
xor feedback
operating as pseudo
random code generator
At receiver stage
another 17 bit shift
register is needed
Receiver output: bit
correct: 1, bit error: 0
Process Speed Observations
◮
Observation: DLL of most GET4 V1.10 ASICs do not lock
◮
Reason: The latest UMC run seems to be slower than
previous runs
◮
Run parameter provided by UMC are in specs
◮
Ring oscillator measurements are close to slow corner
simulations
◮
Corner simulations:
simulated corner
worst
slow
typical
best
transistor models
slow
slow
typical
fast
temperature
125◦ C
30◦ C
25◦ C
-40◦ C
voltage
1.62 V
1.80 V
1.80 V
1.98 V
Process Speed – Simulation and Mesurements
Ring Oscillator
9
Best Corner
Typical Corner
Worst Corner
Slow Corner
Measurements
8
7
Cycle Time [ns]
6
5
4
3
2
1
0
0
5
10
15
Number of Ring Oscillator Stages [1]
20
25
Process Speed
Symptoms of unlocked slow DLL
Fine time Ch2 (a.u.) 12:05:13
PulseWidth Ch2 [ns] 12:06:29
FineTimeLE2
Entries
115452
Mean
63.81
60.31
RMS
0
Underflow
0
Overflow
Integral
1.155e+05
0.000236
Skewness
60000
50000
PulsWidth2
Entries
Mean
RMS
Underflow
Overflow
Integral
Skewness
230903
1.655
1.436
1.154e+05
1
1.155e+05
-0.0007488
104
40000
103
30000
102
20000
10
10000
0
0
20
40
60
80
100
120
1
0.5
1
1.5
2
2.5
3
3.5
◮
DLL is to slow
◮
⇒ New clock edge enters delay chain befor previous edge has
passed the whole chain
◮
Hits close to clock edge are sampled by two clock edges
◮
⇒ Second pulse width peak with very short pulse width values
Process Speed
Reasons and work arounds
◮
Device speed depends on
1. Process variations
2. Temperature ( cold environment ⇒ faster device )
3. Core voltage ( higher voltage ⇒ faster device )
◮
In MPW runs no influence on process parameters
◮
Maybe in production run we can ask for faster process
parameters
◮
Current problem solved by increase of core voltage (from
1.8 V to 1.9 V)
◮
Reduced margin in case of warm environment in the
experiment
◮
Influence of radiation damage?
Timing DLL Data Latching
Clock and data path
◮
Common clock source
PadClk
◮
Start of timing path: Hit
register
Clock for start register
◮
◮
◮
◮
Clock split and transfer
line
DLL
Bin clock tree
◮
Combinatorics: Hit
position encoder
◮
End of timing path: Data
latch
◮
Clock for end register
Timing DLL Data Latching
Layout exception for simulation
◮
◮
Extraction of TDC core layout
Simulation model from parasitic extraction
Timing DLL Data Latching
Simulation results
◮
◮
◮
Corner effect on register input timing stronger than on
register clock
Simulated slack:
Corner Slack
Setup time tSetup
best
tSl = 1.78 ns − tSetup
≈ 220 ps
typical tSl = 1.088 ns − tSetup ≈ 276 ps
slow
tSl = 500 ps − tSetup
≈ 320 ps
worst
tSl = −356 ps − tSetup ≈ 390 ps
setup violation in worst corner
Timing DLL Data Latching
Measurement, method
◮
Reducing DLL speed by reducing core voltage
◮
◮
◮
Effects of slower DLL:
◮
◮
◮
DLL no longer locks
Two rising edges in delay chain
⇒ double peak in pulse width spectrum
6.4ns
Increasing of Bin size: τBin = 128−∆t
PW
Hit data of Bin 63 arrive later: δ63 = 64 · τBin − 3.2ns
⇒If slack gets negative a gap in finetime spectrum appears
Slack at normal conditions: tSL = δ63 − ∆tFT · τBin
Timing DLL Data Latching
Measurement, results
Fine time Ch0 (a.u.) 11:25:05
PulseWidth Ch0 [ns] 11:29:28
PulsWidth0
Entries
Mean
RMS
Underflow
Overflow
Integral
Skewness
104
253697
3.408
0.2196
1.637e+05
2.135e+04
4.031e+04
0.9494
FineTimeLE0
Entries
125794
Mean
62.1
35.3
RMS
0
Underflow
0
Overflow
Integral
1.258e+05
0.005367
Skewness
2500
2000
103
1500
102
1000
10
500
1
2.8
3
3.2
3.4
3.6
3.8
4
4.2
4.4
0
0
20
40
60
80
100
120
◮
∆tPW = 9.5 bins ⇒ τBin = 54 ps
◮
δ63 = 257 ps
◮
∆tFT = 4 bins ⇒ tSL = 41 ps
◮
Timing is at the edge and will be configurable shifted in GET4
V1.20
Test setup
Finetime spectra with correlated Hits
Fine time Ch0 (a.u.) 13:09:47
Fine time Ch0 (a.u.) 13:08:39
FineTimeLE0
Entries
104857
Mean
0.6106
0.9281
RMS
0
Underflow
0
Overflow
Integral
1.049e+05
Skewness
122
5
10
FineTimeLE0
Entries
104931
Mean
63.5
0
RMS
0
Underflow
0
Overflow
Integral
1.049e+05
nan
Skewness
5
10
104
104
103
103
102
10
102
0
20
40
60
80
100
120
0
20
Fine time Ch0 (a.u.) 13:10:30
60
80
100
120
Fine time Ch0 (a.u.) 13:11:42
FineTimeLE0
Entries
104729
Mean
64.5
0
RMS
0
Underflow
0
Overflow
Integral
1.047e+05
nan
Skewness
5
10
40
104
104
103
103
102
FineTimeLE0
Entries
104854
Mean
127.5
0
RMS
0
Underflow
0
Overflow
Integral
1.049e+05
nan
Skewness
5
10
102
0
20
40
60
80
100
120
0
20
40
60
80
100
120
Time resolution
PulseWidth Ch0 [ns] 13:14:32 2012-12-11 Analysis/Histograms/PulsWidth0
PulsWidth0
Entries
Mean
RMS
Underflow
Overflow
Integral
Skewness
255385
3.546
0.0378
1.109e+05
3.353e+04
1.109e+05
-5.098
104
3
10
102
10
1
0
2
4
6
8
10
12
Time Difference Ch0 - Ch3 [ns] 13:14:32 2012-12-11 Analysis/Histograms/TimeDiff2
TimeDiff2
Entries
Mean
RMS
Underflow
Overflow
Integral
Skewness
5
10
1015226
0.1286
0.02788
2.638e+05
1.92e+05
5.594e+05
0.2192
104
3
10
102
10
-4
◮
◮
◮
-2
0
2
4
Internal test pattern generator used to get uncorrelated hits
Pulse width: 37.8 ps RMS / 26.7 ps RMS Uncorrelated
Time Difference (Ch0 and Ch3): 27.9 ps RMS / 19.7 ps RMS
Uncorrelated
Outlook
◮
A second iteration of GET4 was designed: GET4 V1.20
◮
◮
◮
◮
All known bugs are corrected
Pin and functional compatible with GET4 V1.10
Same test pcbs and setup can be used for test
Submitted on Feb. 4th