Rafał SZYMANOWSKI, Józef KALISZ WAT, Instytut Telekomunikacji SCALONY LICZNIK CZASU Z DWUSTOPNIOWĄ INTERPOLACJĄ Opisany jest precyzyjny licznik czasu z dwustopniową interpolacją wykonany w programowalnym układzie scalonym CMOS FPGA. Uzyskano rozdzielczość pomiaru równą 200 ps w zakresie pomiarowym od 0 do 167 ms. Maksymalny błąd liniowości sumacyjnej w użytych dwu konwerterach czasowo-cyfrowych wynosi 312 ps. W celu zmniejszenia błędu liniowości zastosowano programową korekcję charakterystyk nieliniowości sumacyjnych konwerterów i uzyskano standardową niepewność pomiarową licznika poniżej 140 ps. Do stabilizacji opóźnień czasowych układu FPGA wprowadzono pętlę DLL. INTEGRATED TIME COUNTER WITH TWO-STAGE INTERPOLATION The precision time counter with two-stage interpolation, integrated on a single CMOS FPGA device is presented. The resolution about 200 ps has been achieved in the measurement range 0-167 ms. The maximum differential nonlinearity (DNL) is 312 ps. The correction of the linearity error is implemented and the standard measurement uncertainty below 140 ps is achieved. Delay-locked loop (DLL) is used for stabilization of the propagation time of delay elements. 1. WSTĘP W scalonych licznikach czasu, wykonywanych w technologii CMOS FPGA stosuje się cyfrowe konwertery czasowo-cyfrowe, które zawierają linie opóźniające, decydujące o dokładności pomiaru [1-3]. Aby uzyskać rozdzielczość konwertera równą 200 ps w zakresie pomiarowym 10 ns, linie opóźniające muszą zawierać co najmniej 50 komórek [2, 3]. W tak długich liniach uzyskanie jednakowych czasów propagacji wszystkich komórek jest praktycznie niemożliwe. Wpływa to niekorzystnie na nieliniowość konwersji i tym samym na dokładność pomiarów. Ponadto długie linie opóźniające są stosunkowo wrażliwe na zmiany temperatury otoczenia i napięcia zasilającego. Istotne skrócenie linii można uzyskać w konwerterach o architekturze dwustopniowej zaprojektowanych po raz pierwszy w technologii CMOS ASIC [4, 5]. Jednak projektowanie i realizacja liczników czasu w technologii ASIC są długotrwałe i bardzo kosztowne. Możliwości projektowania i budowy precyzyjnych liczników czasu z użyciem cyfrowych układów programowalnych (CPLD, FPGA) pozostają zatem aktualne. Opisany poniżej scalony licznik czasu wykorzystuje dwustopniową interpolację czasu w układzie CMOS FPGA. Pomiar odcinka czasu T przez
licznik opiera się na metodzie Nutta [6], w której dwie skrajne części T A i T B są określane przez dwa odrębne interpolatory (rys. 1). Rys. 1. Zasada pomiaru odcinka czasu metodą Nutta Fig. 1. The Nutt principle of time interval measurement 2. INTERPOLATOR DWUSTOPNIOWY Schemat logiczny zaprojektowanego interpolatora dwustopniowego przedstawia rys. 2. Jest on synchronizowany przez sygnał zegarowy o częstotliwości f o = 100 MHz, czyli o okresie T o = 10 ns. Linia opóźniająca dzieli zakres pomiarowy interpolatora (T o ) na pięć podzakresów. Po wystąpieniu zmiany L/H sygnału ST, przerzutnik (Q5a..Q1a), który pierwszy zmieni poziom na swoim wyjściu z L na H, blokuje poprzez bramkę AND poprzedzający go przerzutnik przed zmianą L/H. Wynik pomiaru w tym stopniu jest określany na podstawie sygnałów R5..R1. W ten sposób otrzymuje się na wyjściu dane w kodzie 1 z 5. Sygnał ST SYNC wyznacza koniec odcinka czasu mierzonego w drugim stopniu interpolacji. W celu zmniejszenia wpływu efektu metastabilności na sygnał ST SYNC zastosowano podwójne synchronizatory w każdym podzakresie pierwszego stopnia interpolacji [7, 8]. Drugi stopień interpolacji zawiera różnicową linię opóźniającą, pokazaną na rys. 3 [2]. Jest to łańcuch komórek opóźniających, z których każda zawiera przerzutnik zatrzaskowy DL o opóźnianiu τ DL i bufor B o opóźnieniu τ B, przy czym τ DL > τ B. Rozdzielczość pomiaru wynosi q = τ DL τ B, a zakres pomiarowy odpowiada podzakresom pierwszego stopnia. Mierzony odcinek czasu jest wyznaczany przez numer zatrzasku, na którego wyjściu ustalony zostanie poziom H. Bufor o opóźnieniu τ ST T o (rys. 2) umożliwia ograniczenie zakresu pomiarowego linii do wartości T o / 5 = 2 ns. Ponieważ szerokość podzakresu pomiarowego (przedział kwantowania) w pierwszym stopniu interpolacji określa liczbę aktywnych komórek różnicowej linii opóźniającej w drugim stopniu interpolacji, to charakterystyka przetwarzania interpolatora jest tworzona
przez złożenie pięciu tych samych charakterystyk czasowo-cyfrowych drugiego stopnia interpolacji. Wynik pomiaru odcinka czasu T I w interpolatorze jest zatem równy T r 2 = k= 1 = ( n n1 + 1+ M k 1 ) q, 0 TI < To, M 0 I (1) 0, gdzie: r numer podzakresu pierwszego stopnia interpolacji, w którym pojawiło się zbocze narastające sygnału ST (r = 1..5), n 1 numer pierwszej aktywnej komórki w różnicowej linii opóźniającej dla podzakresu k = r pierwszego stopnia interpolacji, n 2 numer komórki linii różnicowej, na której wyjściu ustalił się poziom H, M k liczba aktywnych komórek różnicowej linii opóźniającej dla podzakresu k pierwszego stopnia interpolacji, 5 q = T o / M k rozdzielczość interpolatora. k = 1 Rys. 2. Schemat interpolatora dwustopniowego Fig. 2. Block diagram of the two-stage interpolator
Rys. 3. Schemat cyfrowej różnicowej linii opóźniającej Fig. 3. Logic diagram of the differential delay line 3. SCALONY LICZNIK CZASU CMOS FPGA Schemat blokowy zaprojektowanego licznika czasu przedstawia rys. 4. Licznik zawiera: detektor wejściowy, pętlę DLL, interpolatory torów START i STOP, konwertery kodów, 24-bitowy licznik główny oraz multiplekser grupowy MUX. W przypadku użycia jednej (wspólnej) linii opóźniającej dla pierwszego stopnia interpolacji i pętli DLL, wzmacniacz zasilający wymuszał napięcie powyżej dopuszczalnej wartości 6,5 V [9]. Było to spowodowane dużym obciążeniem wyjść poszczególnych buforów opóźniających, czyli dużym opóźnieniem linii. Dlatego zastosowano dwie osobne linie opóźniające. Użyte cyfrowe linie różnicowe umożliwiają konwersję czasowo-cyfrową z rozdzielczością 200 ps. Dla uzyskania zakresu pomiarowego T o / 5 = 2 ns należy użyć dziesięciu komórek opóźniających. Biorąc pod uwagę rozrzut technologiczny, dodano po pięć komórek na początku i na końcu linii. Zatem każda linia zawiera łącznie dwadzieścia komórek, czyli trzykrotnie mniej niż w interpolatorze jednostopniowym [2]. W celu zapewnienia stabilizacji parametrów czasowych zaprojektowanych linii opóźniających i pozostałych elementów licznika wprowadzono pętlę DLL. Istota metody stabilizacji opóźnienia polega na wprowadzeniu ograniczonych zmian napięcia zasilania licznika U CC z układu zewnętrznego, który tworzą filtr dolnoprzepustowy i wzmacniacz zasilający [10]. Napięcie zasilające układ scalony jest regulowane automatycznie w zakresie od 4,5 V do 6,5 V.
Rys. 4. Schemat blokowy licznika czasu z dwustopniową interpolacją, wykonanego w układzie CMOS FPGA Fig. 4. Block diagram of the time counter with two-stage interpolation integrated on a single CMOS FPGA device 4. BADANIA W celu wyznaczenia metodą statystyczną charakterystyk przetwarzania interpolatorów, wykonano serię 500 000 pomiarów odcinków czasu o rozkładzie równomiernym w obrębie okresu T o [11]. W torze START uzyskano 53 kanały pomiarowe (przedziały kwantowania), czyli rozdzielczość pomiaru jest równa LSB Start = T o / 53 = 189 ps. Natomiast w torze STOP rozdzielczość wynosi LSB Stop = 196 ps (51 kanałów pomiarowych). Maksymalne wartości nieliniowości sumacyjnej są równe INL max = 1,65 LSB Start w torze START, czyli 312 ps oraz INL max 1,1 LSB Stop (216 ps) w torze STOP (rys. 5 i rys. 6). Wartości te są trzy razy mniejsze w porównaniu do nieliniowości sumacyjnej licznika czasu z pojedynczą interpolacją, wykonanym w tej samej technologii pasic1 [3, 9]. W celu zmniejszenia błędu liniowości zastosowano programową korekcję, której wynik przedstawiają rys. 7 i rys. 8. Maksymalna wartość nieliniowości sumacyjnej nie przekracza 0,1 LSB w obu torach pomiarowych START i STOP. Jak wykazano w [12] standardowa niepewność pomiaru (błąd losowy) licznika czasu jest okresowa (z okresem równym T o ). Zatem w celu wyznaczenia jej wartości wykonano pomiary odcinków czasu w obrębie okresu T o zegara referencyjnego. Do pomiarów użyto zestawu 11 kabli koncentrycznych, których opóźnienia różnią się o 1 ns. Dla każdego odcinka czasu wykonano 100 000 pomiarów. Wartości odchyleń standardowych jako estymatorów standardowej niepewności pomiaru, z korekcją i bez korekcji nieliniowości interpolatorów
przedstawia rys. 9. Przedstawione wykresy potwierdzają skuteczność dwustopniowej interpolacji, ponieważ standardowa niepewność pomiaru bez korekcji nie przekracza rozdzielczości interpolatorów. Z korekcją jej wartość średnia jest równa 121 ps. Dla zaprojektowanej linii opóźniającej zawartej w pętli DLL uzyskano napięcie zasilające U CC równe 5,48 V. Rys. 5. Nieliniowość sumacyjna interpolatora w torze START Fig. 5. Integral nonlinearity in START channel Rys. 6. Nieliniowość sumacyjna interpolatora w torze STOP Fig. 6. Integral nonlinearity in STOP channel Rys. 7. Nieliniowość sumacyjna interpolatora w torze START po korekcji programowej Fig. 7. Corrected integral nonlinearity in START channel
Rys. 8. Nieliniowość sumacyjna interpolatora w torze STOP po korekcji programowej Fig. 8. Corrected integral nonlinearity in STOP channel Rys. 9. Odchylenie standardowe pomiaru odcinka czasu T w obrębie okresu T o = 10 ns bez korekcji oraz z korekcją nieliniowości interpolatorów Fig. 9. Standard deviation of the time interval measurement with uncorrected and corrected linearity error 5. WNIOSKI Jak wykazano, możliwe jest wykonanie licznika czasu z dwustopniową interpolacją w układzie CMOS FPGA. Zasoby logiczne zastosowanego układu scalonego QL12X16 zostały wykorzystane w 80 %, czyli użyto 152 makrokomórki z dostępnych 192 [9]. Zastosowanie metody dwustopniowej interpolacji ponad dwukrotnie zmniejszyło złożoność licznika czasu w strukturze FPGA w porównaniu z pojedynczą interpolacją [3]. LITERATURA 1. Kalisz J., Review of methods for time interval measurements with picosecond resolution, Metrologia (41), 2004, pp 17-32 2. Kalisz J., Szplet R., Pasierbiński J., Poniecki A., Field-Programmable-Gate-Array-based time-to-digital converter with 200-ps resolution, IEEE Trans. Instrum. Meas., Vol. 46, No. 1, February 1997, pp 51-55
3. Kalisz J., Szplet R., Pełka R., Poniecki A., Single-chip interpolating time counter with 200-ps resolution and 43-s range, IEEE Trans. Instrum. Meas., Vol. 46, No. 4, August 1997, pp 851-856 4. Mäntyniemi A., Rahkonen T., Kostamovaara J., A high resolution digital CMOS time-todigital converter based on nested delay locked loops, IEEE Intern. Symp. on Circuits and Systems (ISCAS 99), Orlando, FL, USA, 1999, Vol. II, pp II.537-II.540 5. Mäntyniemi A., Rahkonen T., Kostamovaara J., An integrated digital CMOS time-todigital converter with 92 ps LSB, Midwest Symp. on Circuits and Systems, Notre Dame, Indiana, USA, 9-12 August 1998, pp 180-183 6. Nutt R., Digital time intervalometer, Rev. Sci. Instrum., Vol. 39, No. 9, September 1968, pp 1342-1345 7. Kalisz J., Podstawy elektroniki cyfrowej, wyd. 4, WKŁ, Warszawa 2002 8. Szymanowski R., Metastability effects in a two-stage time interpolator, Metrology and Measurement Systems, Vol. X, No. 3, 2003, pp 319-329 9. QuickLogic Corporation, QuickLogic data book, 1995 10. Kalisz J., Orżanowski T., Szplet R., Delay-locked loop technique for stabilization of internal delay of CMOS FPGA devices, Electronics Letters, Vol. 36, No. 14, 6th July 2000, pp 1184-1185 11. Pełka R., Kalisz J., Szplet R., Nonlinearity correction of the integrated time-to-digital converter with direct coding, IEEE Trans. Instrum. Meas., Vol. 46, No. 2, April 1997, pp 449-452 12. Kalisz J., Pawłowski M., Pełka R., Error analysis and design of the Nutt time-interval digitiser with picosecond resolution, J. Phys. E: Sci. Instr., Vol. 20, 1987, pp 1330-1341 ABSTRACT The integrated time counter on a single CMOS FPGA device has been designed. The time interval measurement is based on a 24-bit counter and a parallel two-stage interpolation used separately in START and STOP channels. The first coarse interpolator consists of a 5-element delay line. This provides 5 different phases of reference clock for synchronizing the input signals (START, STOP). The first synchronizing signal is found by 5-input OR gate, the output of which is fed as a strobe signal to the fine interpolator. The phase difference between synchronized signal and input pulse (START or STOP) is measured by the fine interpolator. In the fine interpolator two tapped delay lines working in differential mode are used. The resolution about 200 ps has been achieved in the measurement range 0-167 ms. The maximum differential nonlinearity (DNL) in both interpolators is 312 ps. As a result of the correction of the linearity error the standard measurement uncertainty below 140 ps (rms) was achieved. Delay-locked loop (DLL) was used for stabilization of the propagation time of delay elements.