Zeit-zu-Digital-Wandler (TDC) Hochpräzise Zeitmessung mit kostengünstigen FPGAs

Von Lukas Leuenberger, Gian-Luca Brazerol und Maximilian Werner* 11 min Lesedauer

Anbieter zum Thema

Für hochpräzise Zeitmessungen im Pikosekundenbereich sind keine aufwändigen ASIC-Chips oder Speziallösungen nötig. Neuartige Lösungswege ermöglichen die Implementierung in vergleichsweise kostengünstigen FPGA-Bausteinen.

Eine neuartige FPGA-Architektur ermöglicht die kostengünstige Umsetzung von besonders linearen und stromsparenden Zeit-zu-Digital-(TDC-)Wandlern.(Bild:  frei lizenziert /  Pixabay)
Eine neuartige FPGA-Architektur ermöglicht die kostengünstige Umsetzung von besonders linearen und stromsparenden Zeit-zu-Digital-(TDC-)Wandlern.
(Bild: frei lizenziert / Pixabay)

Hochpräzise Zeitmessungen in der Grössenordnung von Pikosekunden werden in verschiedenen industriellen und wissenschaftlichen Anwendungen benötigt. Die Anwendungen reichen dabei von Time-of-Flight (ToF) in LiDAR-Systemen, über Fluoreszenz-Lebensdauer-Mikroskopie (FLIM) bis hin zur Schaltzeitüberwachung in elektrischen Anlagen. Das wichtigste Element solcher Zeitmessungen ist dabei der Zeit-zu-Digital-Wandler (TDC). Dieser misst die Zeit zwischen einem Start- und einem Stopp-Signal und wandelt sie in einen digitalen Wert um.

Traditionelle Messmethoden erfordern hochfrequente Taktzähler, die für derart kleine Zeiteinheiten jedoch nicht praktikabel sind. Eine mögliche Lösung ist die Herstellung eines anwendungsspezifischen integrierten Schaltkreises (ASIC), doch die Kosten und die Entwicklungszeit für einen spezifischen Anwendungsfall sind enorm. Stattdessen kann die Hardware eines Field Programmable Gate Arrays (FPGA) genutzt werden, um Zeitauflösungen unterhalb dessen Taktfrequenz zu erreichen.

Ein FPGA ist ein hochflexibler, rekonfigurierbarer integrierter Schaltkreis (IC), welcher aus einer grossen Anzahl programmierbarer Logikblöcke und Verbindungsstrukturen besteht. Im Gegensatz zu fest verdrahteten ICs kann ein FPGA nach der Herstellung vom Anwender programmiert werden. Durch diese Programmierbarkeit können FPGAs in einem breiten Spektrum von Anwendungen eingesetzt werden, von der Videodatenverarbeitung über die Beschleunigung von Kryptografie Algorithmen bis hin zu schnellen Kommunikationssystemen und KI-Anwendungen. FPGAs enthalten zudem häufig noch verschiedene spezialisierte Hardwareelemente wie digitale Signal Verarbeitungsblöcke (DSPs), Anbindungen an Hochgeschwindigkeitsspeicher und Schnittstellen, welche hohe Datenraten erlauben. All diese Eigenschaften machen FPGAs besonders attraktiv für Aufgaben, welche viel Rechenleistung, hohe Geschwindigkeiten und kleine Latenzen erfordern.

FPGAs gibt es mittlerweile von verschiedenen Herstellern für verschiedene Anwendungszwecke. Das Institut für Mikroelektronik, Embedded Systems und Sensorik (IMES) der Ostschweizer Fachhochschule (OST) hat TDCs bereits auf diversen FPGAs umgesetzt und dabei festgestellt, dass sich FPGAs des Hersteller Efinix besonders eignen. Efinix setzt dabei erstmals seit Jahrzehnten nicht mehr auf die traditionelle FPGA-Architektur, sondern verfolgt einen neuartigen Ansatz.

Traditionelle Architekturen

Bild 1: Beispielhafte FPGA-Struktur mit getrennten Routingkanälen und Logik-Elementen.(Bild:  Efinix)
Bild 1: Beispielhafte FPGA-Struktur mit getrennten Routingkanälen und Logik-Elementen.
(Bild: Efinix)

In traditionellen FPGAs kommt eine Architektur mit festen Logikzellen und festem Routing zum Einsatz, bei der das komplette Silizium ein Zeilen-/Spaltenformat aufweist. Für die Variabilität des FPGAs sind diese Routingkanäle sehr wichtig, da damit die verschiedenen Ein- und Ausgänge der einzelnen Logikzellen miteinander verbunden werden können, um dadurch das entsprechende Verhalten der Schaltung zu erreichen. Bild 1 zeigt beispielhaft eine solche Architektur auf.

TDC-Designs benötigen oftmals eine hohe Clock Frequenz. Das bedeutet, die Verbindungen der Zellen sollten sehr direkt und mit so wenig Umwegen wie möglich implementiert werden. Um dieser Anforderung gerecht zu werden, müssen auf dem Silizium sehr viele Routing Ressourcen zur Verfügung gestellt werden, welche aber eventuell für das restliche Design gar nicht benötigt werden.

Bei den sogenannten High-End FPGAs werden hierzu sehr viele Routing Ressourcen verwendet, was zu einer großen Siliziumfläche und hoher Verlustleistung führt. Mid-Range oder Low-Range FPGAs haben meist die gleichen Logikzellen wie High-End FPGAs, unterscheiden sich aber in der Anzahl der zur Verfügung stehenden Routing Ressourcen.

Durch diese fixen Routing Ressourcen rechnet man damit, dass bis zu einer Auslastung von 75% der Baustein gut zu routen ist. Bei höherer Auslastung erweist sich das Verdrahten der Logikzellen als sehr schwierig. Das bedeutet, es können nicht mehr die direkten Verbindungen benutzt werden, sondern es müssen Umwege in Kauf genommen werden, was zu Geschwindigkeitsverlust, resp. zu einer Reduktion der möglichen Systemfrequenz führen kann.

Die bis heute übliche „Innovation“ hierzu ist die Reduzierung der Strukturgrösse bei den Halbleiterprozessen, um höhere Systemfrequenzen zu ermöglichen. Strukturgrössen im kleinen Nanometerbereich haben jedoch zwei Nachteile: Sie verursachen höhere Kosten und führen teilweise zu einer erhöhten statischen Verlustleistung. Kurz gesagt: Dieser Schritt löst leider nicht das eigentliche Problem, sondern schiebt es nur vor sich her.

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Neuartige Struktur

Bild 2: Quantum XLR Architektur.(Bild:  Efinix)
Bild 2: Quantum XLR Architektur.
(Bild: Efinix)

Efinix geht hier einen anderen Weg. Die FPGA-Architektur soll optimiert werden und damit das eigentliche Problem angehen. Mit der Efinix Quantum Architektur sind dabei nur sehr wenige Routing Resources über das Silizium verteilt. Um trotzdem über das gesamte FPGA routen zu können benutzt Efinix sogenannte XLR Zellen (eXchangeable Logic and Routing). Diese Zellen können Logik und Routing Ressourcen gleichermassen zur Verfügung stellen. Durch diesen Ansatz können Routing Ressourcen in den Bereichen zur Verfügung gestellt werden, in welchen sie effektiv benötigt werden. Dadurch wird eine deutlich höhere Logikdichte pro Siliziumfläche erreicht als bei den heutigen Marktführern. Die Struktur der XLR-Zellen ist in Bild 2 dargestellt.

Diese Innovation resultiert zudem in einem geringeren statischen- aber auch dynamischen Stromverbrauch. Der statische Stromverbrauch ist normalerweise eine Funktion der Fläche. Das bedeutet: Je größer die Fläche, desto grösser der Stromverbrauch. Der dynamische Stromverbrauch, der vor allem durch das Umladen parasitärer Kapazitäten bei einer Änderung des binären Werts entsteht, fällt ebenfalls deutlich geringer aus, da kürzere Verbindungsleitungen kleinere parasitäre Kapazitäten aufweisen.

Zwei weitere Vorteile sind zudem die hohe Auslastbarkeit der neuen Quantum-Architektur sowie der flexible Aufbau der Logikstruktur. So kann bei dieser Architektur eine Auslastung von über 90% erreicht werden, ohne dass dabei die Systemfrequenz reduziert werden muss.

Darüber hinaus werden bei klassischen FPGAs einzelne Logikblöcke meist zu grösseren Clustern (CLB/LAB/…) zusammengefasst. Innerhalb eines solchen Clusters ist die Linearität zwar gut, sie verschlechtert sich jedoch deutlich, sobald eine Verbindung zu benachbarten Clustern erforderlich ist, da hierfür zusätzliche Routing-Ressourcen benötigt werden. Die Quantum-Architektur verfolgt einen anderen Ansatz: Jede XLR-Zelle ist unabhängig und lässt sich direkt mit benachbarten Zellen verbinden. Dadurch bleibt die ganze Struktur sehr linear. Diese spezifische Eigenschaft ist sehr von Vorteil für die Implementation von TDCs.

Funktionsprinzip und Umsetzung eines TDCs

Bild 3: Struktur eines Tapped-Delay-Line TDCs.(Bild:  Efinix)
Bild 3: Struktur eines Tapped-Delay-Line TDCs.
(Bild: Efinix)

Eine einfache und weitverbreitete Architektur zur Implementierung von TDCs in FPGAs ist der Tapped-Delay-Line (TDL) TDC. Dabei wird das zu messende Signal durch eine Kette von identischen Verzögerungselementen geführt. Nach jedem Verzögerungselement ist die Kette mit dem Eingang eines Flipflops (FF) verbunden. In regelmässigen Abständen, erfasst das FF dann den aktuellen Zustand der Kette. Der erfasste Zustand wird anschließend von einem Encoder weiterverarbeitet. Bild 3 zeigt die Struktur dieser Architektur auf.

Anhand des aufgezeichneten Musters, auch Thermometer Code genannt, kann bestimmt werden bis zu welchem Punkt eine Flanke die Verzögerungskette durchlaufen konnte, bis der Zustand mit dem abtastenden Taktgeber gespeichert wurde. Durch die Auswertung dieses Musters lässt sich das Auftreten der Flanke mit einer Auflösung bestimmen, welche deutlich feiner ist als eine Periode des Taktgebers. Die zu erreichende Auflösung ist dabei proportional zur Verzögerung eines einzelnen Verzögerungselementes.

TDL-TDCs werden oftmals in FPGAs eingesetzt, da FPGAs Strukturen bieten, welche es erlauben, eine solche Verzögerungskette zu implementieren. Wie in Bild 2 ersichtlich, stellen FPGAs kleine Addierer in ihren Logik Elementen zur Verfügung. Um große und schnelle Addierer zu realisieren, können mehrere dieser kleinen Addierer über eine schnelle, dedizierte Leitung, die sogenannte Carry-Chain, miteinander verbunden werden. Da diese Carry-Chain sehr kurze Verzögerungszeiten aufweist, eignet sie sich, um einen TDL-TDC zu implementieren.

Bild 4: Adder Struktur im Logik Block von Efinix.(Bild:  Efinix)
Bild 4: Adder Struktur im Logik Block von Efinix.
(Bild: Efinix)

Im verwendeten Efinix FPGA der Titanium-Familie stellt ein Logikblock einen Addierer mit einem FF zur Verfügung. Diese fein granulare Struktur ist in Bild 4 dargestellt. Auch diese Addierer verfügen über dedizierte Carry-Routing-Pfade, welche eine direkte Verbindung ohne Umwege zum Addierer des nächsten Blocks herstellen.

Werden nun mehrere dieser Addierer über diese Carry-Pfade kaskadiert, erhält man eine TDL-Struktur, wie in Bild 3 dargestellt. Dabei fungieren die Addierer als Verzögerungselemente. Damit der TDC im FPGA aber wie gewünscht umgesetzt werden kann, müssen die einzelnen Addierer und FF sorgfältig platziert werden. Normalerweise wird die Platzierung automatisch von der Entwicklungssoftware (IDE) vorgenommen. Dabei kann aber nicht garantiert werden, dass eine homogene Struktur generiert wird. Aus diesem Grund muss der Anwender entsprechende Vorgaben machen und die Elemente explizit platzieren.

Bei Efinity, der hauseigenen IDE von Efinix, kann dies einfach über eine Konfigurationsdatei erfolgen. In dieser werden jedem Addierer und FF entsprechende X- und Y-Koordinaten zugewiesen. Efinity ist ein Python-basiertes Tool, mit welchem Python-Skripte vollautomatisiert über die Befehlszeile ausgeführt werden können. Die Efinity-IDE sowie alle integrierten IP-Cores können kostenlos verwendet werden.

Messresultate

Am IMES wurde ein TDL-TDC auf einem Titanium Ti180 FPGA implementiert und ausgemessen. Dabei wurden die nachfolgend beschriebenen Parameter ermittelt.

Mittlere Verzögerung eines Verzögerungselementes

Die mittlere Verzögerung in der Verzögerungskette hängt von der Temperatur sowie von Prozessparametern ab, welche bei der Herstellung von FPGAs schwanken. Beim vorliegenden Efinix-FPGA betrug die mittlere Verzögerung im Durchschnitt 20 Pikosekunden und wurde an mehreren Positionen im FPGA ermittelt. Die Position hatte dabei praktisch keine Auswirkung auf die mittlere Verzögerung.

Linearität

Idealerweise hat jedes Verzögerungselement exakt die gleiche Verzögerung. Dies ist in der Realität jedoch nicht der Fall. Um dies zu charakterisieren, werden Metriken wie die Differentiale Nichtlinearität (DNL) und die Integrale Nichtlinearität (INL) verwendet. Die DNL gibt die Abweichung jedes Messpunktes zur mittleren Verzögerung an. Die INL ist die Akkumulation der DNL und gibt somit die Abweichung gegenüber einem idealen TDC an.

Da Efinix eine sehr feingranulare Struktur mit einem Addierer pro Logik-Block aufweist, sind die Verzögerungen sehr homogen. Bei anderen FPGA-Herstellern ist dies nicht der Fall, da diese mehrere Addierer in grössere Cluster zusammenfassen. Somit entsteht bei den Clusterübergängen jeweils eine deutlich grössere Verzögerung, welche sich negativ auf die Linearität auswirkt.

Im ausgemessenen TDC war die INL in der Grössenordnung von ±1.6LSb (±32ps). Bei vergleichbaren Implementationen auf FPGAs von anderen Herstellern betrug die INL teilweise bis zu ±30LSb (±210ps). Aufgrund der gleichmässigen Struktur, konnten zudem in den Messungen keine Dead-Bins (Positionen in der Carry-Chain bei welchen nie eine Flanke detektiert wird) festgestellt werden.

Bubbles

Aufgrund des asynchronen Messsignales, kann bei den abtastenden FFs die Setup- and Hold Time verletzt werden. Dies führt dazu, dass diese in einen metastabilen Zustand fallen. Zusammen mit Clock-Skew, hervorgerufen durch ungleichmässige Clock-Pfade, können damit Unstetigkeiten bei den 0-1- und 1-0-Übergängen im Thermometercode entstehen.

Anstelle eines klaren Übergangs, beispielsweise 0000011111, entstehen sogenannte Bubbles, beispielsweise 0001010111 (hier mit einer Tiefe von 4). Dieser Effekt beeinflusst vor allem die Totzeit, in welcher keine Übergänge detektiert werden können. Das hat einen negativen Einfluss auf die Samplerate und erhöht die Komplexität des Encoders.

Auch hier konnten bei Messungen am IMES aufgrund der sehr regelmässigen Struktur von Efinix kaum solche Effekte beobachtet werden. In seltenen Fällen wurden Bubbles mit einer Tiefe von 1 festgestellt. Dies ist ein erheblicher Unterschied zu FPGAs anderer Hersteller, bei welchen weitaus tiefere Bubbles (es wurden Bubbles bis zu einer Tiefe von 48 gemessen) festgestellt wurden. Zudem traten diese bei anderen Herstellern auch viel häufiger auf.

Weitergehende Optimierungen

Einfache, TDL-basierte TDCs können in zahlreichen Anwendungen erfolgreich eingesetzt werden. Dabei sollten jedoch auch die systembedingten Einschränkungen berücksichtigt werden. In der Regel macht die eigentliche Implementierung eines solchen TDCs nur einen kleineren Teil der gesamten Entwicklungszeit aus.

Wer das volle Leistungspotenzial eines solchen TDCs ausschöpfen möchte, stößt schnell an dessen physikalische Grenzen – etwa durch die beschriebenen Linearitätsprobleme, Temperaturabhängigkeiten sowie weiteren Effekten. Um diese Effekte möglichst präzise charakterisieren zu können, werden spezialisierte Messgeräte sowie Infrastruktur benötigt, welche oft nicht zum Standardinventar gehören.

Das IMES verfügt über die notwendige Messtechnik und Expertise, um die genannten Effekte detailliert zu analysieren und gezielt zu kompensieren. Neben der Entwicklung und Implementierung von Korrekturalgorithmen wurden in mehreren Projekten auch weiterführende Ansätze erarbeitet, um die Performance von TDCs deutlich zu verbessern. Nachfolgend werden einige Überlegungen und praxiserprobte Lösungsansätze exemplarisch vorgestellt.

Platzierung

Um Nichtlinearitäten zu minimieren, ist eine sorgfältige Platzierung der Kette innerhalb des FPGAs entscheidend. Besonders hohe Unstetigkeiten können damit umgangen werden.

So sollte beispielsweise unabhängig vom Hersteller vermieden werden, dass mit der TDL Clock-Domänen überschritten werden, da diese einen besonders negativen Einfluss auf die Linearität haben. Trotz Optimierungen ist es somit nicht möglich, sämtliche Nichtlinearitäten zu vermeiden. Es führt kein Weg an einer Kalibration vorbei.

Kalibration der Nichtlineariät

Die Genauigkeit eines TDCs kann mithilfe der INL gezielt kalibriert werden. Da sich je nach Platzierung innerhalb eines FPGAs das Verhalten der Kette massgeblich ändern kann, muss für jede einzelne Kette eine individuelle Kalibrierung erfolgen. Diese wird idealerweise im FPGA selbst implementiert, sodass beim Aufstarten des Systems jeder TDC kalibriert werden kann.

Erschwerend kommt hinzu, dass es für eine Serienfertigung nicht ausreicht, ein einzelnes FPGA zu kalibrieren und dessen Korrektur auf sämtliche Geräte mit demselben FPGA zu übertragen. Bei am IMES durchgeführten Messungen wurden teilweise Unterschiede von bis zu 20% bei verschiedenen FPGAs des gleichen Typs gemessen. Daher ist auch hier eine individuelle Kalibrierung für jedes einzelne FPGA erforderlich – unter Berücksichtigung der jeweiligen Platzierung der TDL innerhalb des Chips.

Encoder

Da bei einer Messung Bubbles auftreten können, muss der Encoder so ausgelegt sein, dass er trotz dieser Störungen ein korrektes Ergebnis liefert. Die simpelste Methode ist dabei das Zählen der Anzahl logischen ‘1’ im Thermometercode. Jedoch wird das System dadurch in der Abtastrate beschränkt, da nur eine Flanke pro Periode detektiert werden kann.

Komplexere Encoder ermöglichen es, mehrere steigende und fallende Flanken trotz Bubbles innerhalb eines einzelnen Samples korrekt zu bestimmen. So kann die Abtastrate des Systems massgeblich erhöht werden. Auch bei diesen Encodern konnte das IMES in den letzten Jahren erfolgreich Projekte umsetzen und Abtastraten von über 1.5GSample/s erreichen.

Auflösung

Die zeitliche Auflösung dieser einfachen, TDL-basierten TDCs ist direkt durch die Verzögerung der verwendeten Elemente gegeben. Um Auflösungen unterhalb dieser Elementverzögerung zu erreichen, werden komplexere Architekturen benötigt.

Ein einfacher Ansatz besteht darin, das Eingangssignal aufzuteilen und es gleichzeitig mit mehreren TDLs zu messen. Da sich die einzelnen Ketten im FPGA leicht unterschiedlich verhalten, kann durch diese Parallelisierung eine höhere Auflösung erzielt werden. Andere Verfahren messen nicht direkt das eigentliche Eingangssignal, sondern ein vordefiniertes Muster, welches durch die Verzögerungskette propagiert wird. Dadurch lassen sich mehrere Flanken mitteln, was die zeitliche Genauigkeit weiter verbessert.

Die aktuellste Entwicklung am IMES kombiniert klassische TDL-Strukturen mit digitalen Signalprozessoren (DSPs), um die effektive Auflösung nochmals deutlich zu steigern - ein vielversprechender Ansatz für besonders anspruchsvolle Anwendungen.

 (sg)

* Lukas Leuenberger ist Senior Research Engineer am IMES Institut für Mikroelektronik, Embedded Systems und Sensorik der OST - Ostschweizer Fachhochschule.

* Bian-Luca Brazerol ist Elektroingenieur und Master-Student an der OST - Ostschweizer Fachhochschule.

* Maximilian Werner ist Field Application Engineer EMEA bei Efinix.

(ID:50551881)