Charakterisierung einer Zeitmesseinheit für das Compass

Transcrição

Charakterisierung einer Zeitmesseinheit für das Compass
Albert-Ludwigs-Universität Freiburg
Fakultät für Mathematik und Physik
Physikalisches Institut
Prof. Dr. Horst Fischer
Charakterisierung einer Zeitmesseinheit
für das Compass-Experiment am Cern
Wissenschaftliche Arbeit
vorgelegt von
Michael Bickel
Matrikelnummer 3111833
Wackerstr. 17
79108 Freiburg
Freiburg, den 7. Dezember 2015
Inhaltsverzeichnis
1 Einleitung
1
2 Physikalischer Hintergrund
2
3 COMPASS-II Experiment
3.1 Teilchenstrahl . . . . . .
3.2 Wechselwirkungszone . .
3.3 Spektrometer . . . . . .
3.4 Trigger Control System .
3.5 Datennahmesystem . . .
2
2
3
3
3
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 RICH-Detektor
5
4.1 Thick-GEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2 Aragorn-Auslesekarte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.3 Time-to-Digital-Converter . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5 Field Programmable Gate Array
5.1 Der Xilinx Artix-7 . . . . . . . . . . .
5.2 Block RAM . . . . . . . . . . . . . . .
5.3 Taktsignale im FPGA . . . . . . . . .
5.4 Clock Management Tile . . . . . . . .
5.5 Timingbudget synchroner Schaltungen
6 VHDL Entwurf des Aragorn-TDC
6.1 Das TCS-Interface . . . . . . . .
6.2 Das Clock-Interface . . . . . . . .
6.3 Config Master . . . . . . . . . . .
6.4 Das TDC-Interface . . . . . . . .
6.4.1 Coarsetime Counter . . .
6.4.2 Trigger Catching . . . . .
6.4.3 TDC-Module . . . . . . .
6.4.4 Merger . . . . . . . . . . .
6.5 Serializer . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
14
16
17
18
18
20
.
.
.
.
.
.
.
.
.
21
22
22
23
23
23
24
24
26
27
7 Implementierung des Aragorn TDC-Designs im Artix-7 FPGA
29
7.1 Das TDC Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.2 Taktsignale des Aragorn-TDC . . . . . . . . . . . . . . . . . . . . . . . . . 36
8 Messung und Auswertung
39
8.1 Differentielle und integrale Nichtlinearität . . . . . . . . . . . . . . . . . . 40
8.2 Zeitauflösung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
9 Zusammenfassung
48
10 Anhang
50
Literaturverzeichnis
53
1
Einleitung
Das COMPASS-II-Experiment am CERN bei Genf ist ein Teilchenphysik-Experiment bei
dem die Spinstruktur von Nukleonen untersucht wird. Dazu wird ein hochenergetischer
Myonen-Strahl an einem ruhenden Target aus Protonen oder Neutronen gestreut. Mit
einen zweistufigen Spektrometer, welches sich aus mehreren Einzeldetektoren zusammensetzt, werden die Eigenschaften der gestreuten Teilchen untersucht. Ein ringabbildender
Cherenkov-Detektor (RICH) ist Teil des Spektrometers und dient der Identifikation von
Hadronen. Im Zuge einer Überarbeitung des RICH-Detektors werden neue Photonendetektoren, sogenannte Thick-GEM, eingesetzt. Dabei wird auch die Ausleseelektronik des
Detektors erneuert. Die Aragorn-Karte ist zentraler Bestandteil der neuen Ausleseelektronik.
Die Aragorn-Karte wird direkt am Detektor-Frontend montiert und misst den Zeitpunkt zu dem die Signale im Detektor registriert werden. Die Zeitmessung wird durch
Time-to-Digital-Converter (TDC) realisiert. Dazu sind auf der Aragorn-Karte vier sogenannte Artix-7 TDC-FPGA der Firma Xilinx verbaut. Ziel dieser Arbeit ist die Implementierung eines 96 Kanal Time-to-Digital-Converters mit einer angestrebten Zeitauflösung
von 400 ps in einem Artix-7 FPGA. Um diese Anforderung zu erfüllen, wurde der TDC
nach der „Shifted-Clock-Sampling“-Methode mit acht phasenverschobenen Taktsignalen
und einer Taktrate von 311,04 MHz aufgebaut. Bei der Implementierung im FPGA galt
es, möglichst geringe Laufzeitdifferenzen des Datensignals, sowie der acht Taktsignale
sicherzustellen. Zudem muss das entwickelte FPGA-Layout fixiert werden, um die Reproduzierbarkeit des Entwurfs zu gewährleisten.
Das Kapitel 2 erläutert den physikalischen Hintergrund des COMPASS-Experiments.
Kapitel 3 beschreibt den experimentellen Aufbau des COMPASS-Experiments und die
einzelnen Komponenten. In Kapitel 4 wird näher auf den RICH-Detektor und dessen
Überarbeitung, sowie auf die neuen Thick-GEM Photonendetektoren, eingegangen. Kapitel 5 widmet sich dem Aufbau von FPGA, speziell dem in dieser Arbeit eingesetzten
Artix-7 FPGA. In Kapitel 6 wird der gesamte VHDL-Entwurf des TDC-FPGA vorgestellt
und in Kapitel 7 die physische Implementierung auf der Aragorn-Karte. Die Verifikation
und Charakterisierung der Kenndaten des in dieser Arbeit entwickelten Aragorn-TDC
erfolgt in Kapitel 8.
1
2
Physikalischer Hintergrund
Der Spin eines Teilches ist eine fundamentale Quantenzahl. Trotz der Analogie zum Drehimpuls, wird der Spin nicht von der Bewegung einer Masse hervorgerufen. Der Spin von
Nukleonen beträgt 21 . Da Nukleonen aus Quarks (Spin 12 ) und Gluonen (Spin 1) aufgebaut sind und sich der Spin von Nukleonen aus den Spins der Konstituenten und deren
Drehimpulsen zusammensetzt, gilt:
1
1
~q + L
~g
= J~q + J~g = ∆Σ + ∆G + L
2
2
(1)
Die Spinbeiträge der Quarks und der Gluonen sind ∆Σ und ∆G. Ihre Größe ist aus früheren Experimenten bekannt und beträgt ∆Σ ≈ 0, 3 und |∆G| ≈ 0, 2 [1].
Unbekannt sind jedoch weiterhin die Größen der Bahndrehimpulse L~q und L~g der Quarks
und Gluonen. Über tief-virtuelle-Compton-Streuung (DVCS) erhält man Zugang zu den
generalisierten Partonverteilungsfunktionen (GPDs), welche mit den Gesamtdrehimpulsen
J~q und J~g der Quarks und Gluonen verknüpft sind [2].
3
COMPASS-II Experiment
COMPASS ist ein Hochenergiephysik-Experiment am Cern bei Genf und untersucht
die Spinstruktur von Nukleonen. Seit 2002 werden am COMPASS erfolgreich Messungen
durchgeführt. Seit 2012 wird das Experiement zum COMPASS-II erweitert, um Prozesse
wie die tief-virtuelle-Compton-Streuung genauer zu untersuchen [3]. Das Experiment verwendet den Protonstrahl des SPS1 mit einer Energie von bis zu 450 GeV und streut ihn
an ruhenden Protonen oder Neutronen.
3.1
Teilchenstrahl
Abbildung 3.1 zeigt die sogenannte M2 Beamline des SPS, welche den Teilchenstrahl für
COMPASS-II liefert. Der Protonenstrahl des SPS wird am Splitter 1 auf das BerylliumTarget T6 geleitet. Bei der Kollision entstehen Pionen, welche auf einer 650 m langen
Strecke zu Myonen zerfallen. Ein Absorber entfernt verbliebene Hadronen. Durch zwei
weitere Magnete kann eine zusätzliche Impulsselektion durchgeführt werden, bevor der
Myonenstrahl die COMPASS-II Halle erreicht. Der Teilchenstrahl steht nicht kontinuierlich zur Verfügung, sondern wird in sogenannten „Spills“ vom SPS ausgekoppelt. 2012
betrug die Länge eines Spills etwa 9,6 s in Intervallen von etwa 48 s.
1
Super Proton Synchrotron
2
3.2 Wechselwirkungszone
Abbildung 3.1: Strahlführung der M2 Beamline für einen positiven Myonenstrahl. Der
Protonenstrahl des SPS wird auf das Target M6 geleitet. Entstehende Pionen zerfallen
auf einer Strecke von 650 m zu Myonen und werden anschließend zum COMPASS-II
geleitet [4]
3.2
Wechselwirkungszone
Der Myonenstrahl wird im COMPASS-II Experiment an einem ca. 2,5 m langen Target
aus flüssigem Wasserstoff gestreut. Das Target befindet sich im Zentrum des CAMERADetektors. Der CAMERA-Detektor wurde 2012 in Betrieb genommen und detektiert bei
der Kollision im Target rückgestoßene Protonen.
3.3
Spektrometer
Gestreute Teilchen werden von einem Spektrometer mit einer Gesamtlänge von 50 m
detektiert. Aufgrund der breiten Impulsverteilung der auslaufenden Teilchen und der geforderten Winkelakzeptanz ist das Spektrometer in zwei Stufen aufgebaut: Im „Large
Angle Spectrometer“ (LAS), werden Teilchen mit einem relativ großen Streuwinkel (bis
180 mrad) nachgewiesen. Zum Nachweis von Teilchen in einem Winkelbereich bis 30 mrad
dient das „Small Angle Spectrometer“ (SAS). Abbildung 3.2 zeigt eine massstabsgetreue
Darstellung des Spektrometers. Die Magnete SM1 und SM2 lenken Teilchen auf eine
Kreisbahn. Nachfolgende Spurdetektoren messen die Flugbahn der Teilchen. Aus den gewonnen Daten wird der Impuls der Teilchen bestimmt. Zur Identifikation von Hadronen
in der LAS-Stufe, wird ein ringabbildender Cherenkov-Detektor (RICH) verwendet. Eine
Beschreibung des RICH findet sich in Kapitel 4. Zur Messung der Teilchenenergie befinden sich in beiden Spektrometerstufen elektromagnetische Kalorimeter (ECAL1, ECAL2)
und hadronische Kalorimeter (HCAL1, HCAL2).
3.4
Trigger Control System
Das Trigger Control System (TCS) steht am Anfang der Auslesekette. Da die anfallende
Datenmenge während eines Spills die Kapazität des Datennahmesystems übersteigt, werden die Daten von der Triggereinheit vorsortiert. Die Triggereinheit prüft den Datenstrom
bestimmter Detektoren auf spezielle Kriterien und gibt ein Triggersignal aus, wenn ein
interessantes Ereignis detektiert wurde. Das Triggersignal steuert die Auslese der Daten
3
3.4 Trigger Control System
Abbildung 3.2: Das COMPASS-II-Spektrometer besteht aus einem „Small Angle Spectrometer“ (SAS) und einem „Large Angle Spectrometer“ (LAS). Massstabsgetreue Ansicht,
generiert mit TGEANT, Stand 2015.
in den Auslesemodulen (siehe Kapitel 3.5). Da das Triggersignal jedoch nicht beliebig
schnell generiert werden kann, erhalten die Auslesemodule den Trigger erst nachdem das
physikalische Ereignis im Detektor passiert ist. Deshalb werden die Detektordaten kontinuierlich in einem Buffer zwischengespeichert und beim Empfangen eines Triggers an
die Ausleseeinheiten gesendet. Zu jedem Trigger-Event werden zusätzliche Informationen
wie Spillnummer, Eventnummer und Eventtyp übermittelt. Dadurch können die Daten
eindeutig einem Event zugeordnet werden. Zudem markieren sie Signale „Begin Of Spill“
(BOS) und „End Of Spill“ (EOS) die zeitlichen Grenzen eines Spills.
Neben der Generierung der Triggerinformation stellt das TCS-System ein Referenztaktsignal zur Verfügung, welches von allen Modulen im Experiment zur Synchronisation verwendet wird. Der Referenztakt des TCS-Systems hat eine Frequenz von 38,88 MHz und
wird über Glasfaserleitungen an alle Module verteilt. Die Codierung des Referenztaktes
und der zusätzlichen Triggerinformation erfolgt mit 155,52 Mb/s. Da alle Module ihren
Systemtakt aus dem TCS-Datenstrom decodieren, beträgt die TCS-Referenzfrequenz in
allen Modulen 155,52 MHz [5].
4
3.5 Datennahmesystem
3.5
Datennahmesystem
Die Erfassung und Weiterverarbeitung der Detektorinformation erfolgt durch ein modulares Datennahmesystem (DAQ2 ). Abbildung 3.3 zeigt den Aufbau des DAQ am COMPASSII. Die direkte Erfassung der analogen Detektorsignale erfolgt in sogenannten Frontend
Modulen. Die Digitalisierung der Signale erfolgt entweder direkt auf dem Frontend Modul
oder in den Auslesemodulen. Das TCS-Signal wird zentral an alle Auslesemodule übermittelt und steuert dort die Datenselektion. Die Digitalisierung der Signale erfolgt entweder
über Analog-Digital-Wandler (ADC) oder über Schwellwertdiskriminatoren. Letztere werden zusammen mit Scalern zur Ratenmessung verwendet. Die Zeitmessung erfolgt durch
Time-to-Digital-Converter (TDC). Anschließend werden die Daten von den Auslesemodulen gebündelt und im S-Link Format über optische Fasern an Computer und schlussendlich
zur zentralen Datennahme (CDR) weitergeleitet.
Die Zeitmessung der diskriminierten Signale des RICH-Detektors (siehe Kapitel 4)
wurde bisher, wie in Abbildung 3.3 dargestellt, mit dem M1-TDC im GANDALF3 -Modul
durchgeführt [6]. Im Zuge einer Modernisierung werden am RICH neue Photonendetektoren installiert. Eine Beschreibung des RICH und der neuen Photonendetektoren befindet
sich in Kapitel 4. Die Zeitmessung der diskriminierten Signale des RICH-Detektors erfolgt in Zukunft durch den in dieser Arbeit entwickelten Time-to-Digital-Converter auf
dem sogenannten „Aragorn-Modul“(siehe Kapitel 4.2), welches direkt auf die neuen Photonendetektoren montiert wird. Das GANDALF-Modul wird dann als Auslesemodul für
die Aragorn-Karten verwendet. Detaillierte Informationen zu GANDALF-Modul finden
sich in [7].
4
RICH-Detektor
Der Ring Imaging CHerenkov-Detektor (RICH) ist ein ringabbildender Cherenkov Detektor, der in der LAS-Stufe des Spektrometers zur Identifikation von Hadronen dient.
Abbildung 4.1 (links) zeigt einen schematischen Querschnitt des RICH. Die Messung der
Teilchen beruht auf dem Cherenkov-Effekt. Der Innenraum des Detektors ist mit einem
Radiatorgas (C4 F10 ), mit einem Brechungsindex von 1,005 gefüllt. Beim Durchflug geladener Teilchen werden die Atome längs zur Flugrichtung der Teilchen kurzzeitig polarisiert
und emittieren elektromagnetische Strahlung. Ist die Geschwindigkeit der Teilchen klein,
wird durch destruktive Interferenz makroskopisch keine Strahlung emittiert. Ist die Teilchengeschwindigkeit größer als die Phasengeschwindigkeit des Lichts im dielektrischen
Medium, kann keine vollständige Auslöschung mehr stattfinden, sodass unter einem bestimmten Winkel φch zur Teilchenbahn ein Lichtkegel emittiert wird.
cosφch =
2
3
1
1
p
nβ 1 + m2 /p2
Data Aquisition system
Generic Advanced Numerical Device for Analytic and Logic Functions
5
(2)
Abbildung 3.3: Das Datennahmesystem am COMPASS-Experiment. Stand 2012 [5].
Dabei ist β = v/c die Geschwindigkeit, m die Masse und p der Impuls des Teilchens.
Die Lichtkegel werden im RICH von sphärischen UV-Spiegeln mit einer Gesamtfläche
von etwa 21m2 auf Photonendetektoren fokussiert. Die Photonendetektoren sind in zwei
Gruppen zu je 8 Kacheln aufgeteilt und befinden sich außerhalb der Strahlebene. Die
Lichtkegel werden als Ringe auf die Photonendetektoren abgebildet (Siehe Abbildung 4.1,
rechts). Aus dem Durchmesser der Ringe kann der Winkel φch bestimmt werden. Zusammen mit dem Impuls p, welcher aus Messungen anderer Detektoren bekannt ist, kann nach
Gleichung (2) die Masse m eines Teilchens bestimmt werden. Der RICH-Detektor kann
Pionen, Kaonen und Protonen in einem Energiebereich zwischen 5GeV /c und 43GeV /c
unterschieden werden [8].
Abbildung 4.2 (links) zeigt eine Gesamtansicht des RICH. Im inneren Bereich der
Detektorebene, wo die meisten Daten anfallen, werden Photonen von Mehrkanal-Photomultipliern (MAPMT4 ) registriert. Im äußeren Bereich sind derzeit MWPC5 mit CsI beschichteten Photokathoden eingesetzt. Diese werden im Zuge eines Detektor-Upgrades zukünftig durch sogenannte THGEM-Detektoren ersetzt (siehe Kapitel 4.1). Dafür wird auch
eine neue Ausleseelektronik benötigt, welche unter anderem die Aragorn-Auslesekarte (siehe Kapitel 4.2) beinhaltet. Abbildung 4.2 (rechts) zeigt den Aufbau der Auslese-Elektronik
für eine THGEM-Anode: Jeweils 96 Detektorsignale werden von 24 Analog-Karten ent4
5
Multi-Anode PhotoMultiplier Tubes
Multi-Wire Proportional Chambers
6
4.1 Thick-GEM
Abbildung 4.1: Links: RICH-Detektor im Querschnitt. Beim Durchflug von geladenen
Teilchen wird Cherenkov-Strahlung emittiert und über sphärische UV-Spiegel ringförmig
auf die Photonendetektoren außerhalb der Stahlebene fokussiert. Rechts: Exemplarische
Messergebnisse der Photonendetektoren. Aus dem Durchmesser der Ringe, kann der Emissionswinkel der Photonen berechnet werden [9].
gegengenommen. Die Analog-Karten verstärken und diskriminieren die Signale und sich
mit der Aragorn-Karte verbunden. Jede Aragorn-Karten verarbeitet die Signale von vier
Analog-Karten. Jeweils 5 Aragorn-Slave-Karten sind wiederum mit einer Aragorn-MasterKarte verbunden, welche die zentrale Kommunikation mit dem Datennahmesystem steuert.
4.1
Thick-GEM
Thick-GEM6 sind Elektronen-Multiplier die sich von GEMs im Wesentlichen durch die
deutlich größere Bauform unterscheiden. Anstatt dünner Folien werden kupferbeschichtete Leiterplatten (PCB7 ) mit einer Dicke 0.2 - 1 mm verwendet. In die Leiterplatten
werden in einem Raster Löcher mit einem Durchmesser von 0.4 mm und einem Pitch von
0.8 mm gebohrt (siehe Abbildung 4.3, rechts). Ein Vorteil von THGEMs gegenüber GEMs
ist eine höhere mechanischen Stabilität, die es erlaubt große Detektorflächen zu bauen.
Außerdem können THGEMs in standardisierten Herstellungsverfahren gefertigt werden
und sind damit auch in kleinen Stückzahlen kosteneffizient.
Abbildung 4.3 (links) zeigt den Aufbau THGEM basierter Photonendetektoren, wie sie
im RICH eingesetzt werden sollen: Insgesamt drei THGEM Ebenen sind in geringem Abstand über einer Detektoranode gestapelt. Die oberste THGEM ist mit einer CsI-Schicht
als Photokathode beschichtet. Zwischen Ober- und Unterseite jeder THGEM wird eine
6
7
Thick Gas Electron Multiplier
Printed Circuit Board
7
4.2 Aragorn-Auslesekarte
Abbildung 4.2: Links: Gesamtansicht des RICH-Detektors mit den Photonendetektoren.
Die MWPC sollen zukünftig durch Thick-GEM (THGEM) ersetzt werden. Rechts: Die
analogen Signale der THGEM-Anode werden und auf Analogkarten diskriminiert von
Aragorn-Modulen ausgelesen [9].
Beschleunigungsspannung angelegt. Photonen können durch ein Fenster in den Detektor
gelangen und in der Photokathode Elektronen herauslösen. Diese werden beim Durchgang
der Löcher beschleunigt und ionisieren weitere Elektronen. Driftspannungen zwischen den
THGEMs leiten die Elektronen jeweils zur nächsten Ebene. An der Detektor-Anode wird
schließlich das analoge Signal ausgelesen.
4.2
Aragorn-Auslesekarte
Die Aragorn-Karte-Karte ist Teil der neuen Ausleseelektronik, welche im Zuge eines Upgrades des RICH-Detektors entwickelt wird. Die vorliegende Arbeit fand im Rahmen der
Entwicklung der Aragorn-Karte statt.
Wie in Kapitel 4 beschrieben, werden die Signale der THGEM-Detektoren von AnalogKarten verstärkt und diskriminiert. Anschließend werden die diskriminierten Signale an
Aragorn-Auslesekarten weitergeleitet. Auf der Aragorn-Karte findet für jedes Signal eine Messung des Detektierungszeitpunktes statt. Die gemessenen Zeitmarken werden anschließend im S-Link Format an das Datennahmesystem (siehe Kapitel 3.5) weitergeleitet.
Abbildung 4.4 zeigt den Aufbau der Aragorn-Auslesekarte. Auf der Platine befinden sich insgesamt fünf Xilinx Artix-7 FPGA. In jedem der vier TDC-FPGA soll zur
Zeitmessung der Detektorsignale ein Time-to-Digital-Converter mit 96 Kanälen und einer Zeitauflösung von 400ps implementiert werden, im Folgenden Aragorn-TDC genannt.
8
4.2 Aragorn-Auslesekarte
Abbildung 4.3: Links: Querschnitt durch einen THGEM-Detektor. Rechts: Detailansicht
und Maße der Bohrungen einer THGEM [10].
Gegenstand der vorliegenden Arbeit ist die Entwicklung des VHDL-Designs des AragornTDC, sowie die Implementierung im Artix-7 FPGA. Abschließend erfolgen Verifikation
und Charakterisierung der Kenngrößen des Aragorn-TDC.
Der fünfte FPFA ist der sogenannte Data-Merger-FPGA. Dieser nimmt die gemessenen Zeitmarken der TDC-FPGAs entgegen, formatiert sie im S-Link Format und schickt
sie an das Datennahmesystem, bzw. die Master-Karte weiter. Außerdem Empfängt er
das Triggersignal vom TCS-System (siehe Kapitel 3.4) und decodiert daraus den Referenztakt TCS-Clock. Um das Referenzsignal von Phasenrauschen zu bereinigen wird ein
LMK04906 Jitter-Cleaner-Chip verwendet [5]. Sowohl Triggersignal als auch TCS-Clock
werden vom Data-Merger-FPGA über differentielle LVDS-Buffer an die vier TDC-FPGAs
verteilt. Die Master-Karte schickt zusätzlich das empfangene TCS-Signal über einen optischen CXP-Transceiver an die Slave-Karten weiter.
Auf der Maser-Karte erfolgt die Kommunikation zu den Slave-Karten wie bereits erwähnt über einen CXP-Transceiver, der über 12 optische Doppelfasern (RX,TX) verfügt
und mit einer Datenrate von 3,1104Gb/s betrieben wird. Auf den Slave-Karten wird der
CXP-Transceiver nicht benötigt, weshalb die Verbindungsbuchse nicht bestückt wird. Bei
Bedarf kann sie aber einfach nachbestückt werden, um eine Slave-Karte in eine MasterKarte umzukonfigurieren. Zur Kommunikation mit dem Datennahmesystem bzw. mit der
Master-Karte wird ein SFP+-Transceiver mit zwei optischen Fasern (RX,TX) und einer Datenrate von ebenfalls 3,1104Gb/s verwendet. Eine detaillierte Beschreibung der
optischen Transceiver und deren Konfigurierung findet sich in [5]. Eine Übersicht, über
den Aufbau und die wichtigsten Signalwege auf der Aragorn-Karte, ist in Abbildung 4.4
gegeben.
9
4.2 Aragorn-Auslesekarte
Abbildung 4.4: Das TCS-Signal (blau) wird auf der Aragorn-Masterkarte vom DataMerger-FPGA über den SFP+-Transceiver empfangen und über LVDS-Buffer (nicht
eingezeichnet) an die vier TDC-FPGAs verteilt. Außerdem leitet die Master-Karte das
TCS-Signal über den CXP-Transceiver an die fünf Slave-Karten weiter. Das Datensignal
(gelb) der TDCs wird vom Data-Merger-FPGA entgegengenommen und über den SFP+Transceiver ans Datennahmesystem bzw. die Master-Karte weitergeleitet.
10
4.3 Time-to-Digital-Converter
4.3
Time-to-Digital-Converter
Ein Time-to-Digital-Converter (TDC) wandelt kontinuierliche Zeitintervalle, oder einzelne
Ereignisse (Hit) auf einem Signal in digitale Werte um. Die einfachste Implementierung
eines TDC ist ein digitaler Zähler, der die Perioden eines Referenztaktsignals der Frequenz Fref mitzählt. Die Quantisierungseinheit LSB 8 eines solchen TDC, ist gleich der
Taktperiode des Referenzsignals.
LSB = T0 = 1/Fref
(3)
Abbildung 4.5 (links) zeigt die Quantisierungscharakteristik eines idealen TDC. Auf der
x-Achse ist die Zeitskala in Einheiten von LSB aufgetragen, auf der y-Achse der binäre
Ausgabewert des TDC. Es ist offensichtlich, dass durch die Quantisierung die Information
über den wahren Zeitpunkt THit eines Hits verloren geht. Der Quantisierungsfehler ist
definiert als
= [T ] − THit
(4)
und beschreibt die Abweichung des gemessen Wertes [T ] von der wahren Dauer THit [11].
Da Beginn und Ende eines Zeitintervalls in der Regel unabhängig von der Referenzfrequenz sind, liegt der Quantisierungsfehler jeweils gleichverteilt im Intervall −LSB/2 bis
+LSB/2. Die Standardabweichung eines einzelnen Hits ist gegeben als [12].
LSB
≈ 0, 289LSB
σ= √
12
(5)
Da Zeitintervalle durch ein Start- und ein Stoppsignal begrenzt sind, ergibt sich die
Standardabweichung für ein gemessenes Zeitintervall aus quadratischer Fehleraddition.
LSB
(6)
σ = √ ≈ 0, 408LSB
6
Dies gilt aber nur für Intervalle zufälliger Länge. Werden konstante Zeitintervalle gemessen, so hängt der Quantisierungsfehler von der Länge des Zeitintervalls ab. Jedes
Zeitintervall lässt sich in ein ganzzahliges Vielfaches von LSB und den Bruchteil f (fractional part) zerlegen. Die Zeitauflösung in Abhängigkeit des Bruchteils f ist für einen
idealen TDC gegeben durch [13].
σ(f ) = LSB
p
f (1 − f )
(7)
Wie in Abbildung 4.5 (rechts) zu erkennen ist, hat die Standardabweichung für f = 0, 5
ein Maximum von σmax = 0, 5LSB. Nähert sich der Bruchteil f einem ganzzahligen
Vielfachen von LSB, geht der Quantisierungsfehler gegen null. Durch Integration der
Standardabweichung über f in den Grenzen 0 < f < 1, erhält man die mittlere Standardabweichung σideal eines idealen TDC [13].
8
Least Significant Bit
11
4.3 Time-to-Digital-Converter
σideal =
π
· LSB ≈ 0.39LSB
8
(8)
Abbildung 4.5: Links: Quantisierungscharakteristik eines idealen TDC. Der Zeitpunkt eines Hits THit wird einem binären Ausgabewert Bout zugeordnet. Der Quantisierungsfehler
beschreibt die Differenz zwischen Messwert und wahrem Zeitpunkt THit .
Rechts: Auf LSB normierte Standardabweichung σ einer Messung in Abhängigkeit des
Bruchteils f (ebenfalls auf LSB normiert). Die mittlere Standardabweichung beträgt
σ = 0, 39LSB. [13].
Gleichung (7) beschreibt die Standardabweichung eines idealen TDC, dessen Zeitauflösung nur vom Quantisierungsfehler beeinflusst wird. In der Realität wirkt sich Jitter9 sowohl auf dem Daten, als auch auf dem Taktsignal negativ auf die erreichbare Zeitauflösung
aus. Außerdem verhindert die Nichtlinearität der Konvertierungscharakteristik, dass die
ideale Zeitauflösung erreicht werden kann. Unter dem Begriff Nichtlinearität versteht man
jede Abweichung der Konvertierungscharakteristik von ihrer idealen Form. Die differentielle Nichtlinearität (DNL) ist definiert als die Abweichung jedes Quantisierungsschritts
(TDC-Bin) vom idealen Wert LSB. Die integrale Nichtlinearität ist die Abweichung des
i-ten Quantisierungszeitpunktes Ti vom nominellen Wert i · LSB [11]. Die Minimierung
der Nichtlinearität spielt bei der Implementierung des Aragorn-TDCs eine entscheidende
Rolle und wird ausführlich in Kapitel 7 besprochen.
Für Anwendungen, in denen eine Zeitauflösung <1 ns benötigt wird, sind zählerbasierte TDC aufgrund der benötigten Taktrate von >1 GHz ungeeignet. Um die beim AragornTDC angestrebten Zeitauflösung von 400ps zu erreichen, wäre nach der Zählermethode
eine Taktfrequenz von 2,5 GHz notwendig. Im Artix-7 liegt die maximale Taktrate jedoch
nur bei 600 MHz [14]. Um die angestrebte Zeitauflösung trotzdem realisieren zu können,
kommt im Aragorn-TDC die sogenannte „Shifted Clock Sampling“-Methode (SCS) zum
9
Phasenrauschen
12
4.3 Time-to-Digital-Converter
Einsatz (siehe Abbildung 4.6). Dabei wird das Datensignal, auf dem die Zeitmessung
stattfinden soll, mit den Dateneingängen von insgesamt k D-Flipflops verbunden. Die
Flipflops bilden zusammen das sog. TDC-Register. Jedes Flipflop wird mit einem eigenen Taktsignal CLKk betrieben. Jedes der k Taktsignale ist um eine konstante Phase ∆φ
phasenverschoben, sodass die Daten an den Flipflop mit einem konstanten Zeitversatz eingelesen werden. Die effektive Abtastrate beträgt also k-mal die Frequenz des Taktsignals.
Die Summe aller Phasenverschiebungen beträgt 2π, sodass gilt: ∆φ = 2π/k. Die Zeitdifferenz, mit der die Daten quantisiert werden beträgt in diesem Fall LSB = TCLK /k.
Zur Umsetzung der SCS-Methode im Aragorn-TDC, wird ein TDC-Register aus 8 DFlipflops aufgebaut. Mit einem Clock-Manger werden 8 Taktsignale mit einer konstanten
Phasenverschiebung von je 2π/8 = 45◦ erzeugt. Mit diesem Aufbau kann mit einer Taktfrequenz von 311,04MHz eine theoretische Zeitauflösung von LSB = 401, 9ps realisiert
werden.
Abbildung 4.6: Aufbau eines TDC-Register nach der Shifted Clock Sampling-Methode. [6]
13
5
Field Programmable Gate Array
Field Programmable Gate Array (FPGA) sind integrierte Schaltkreise (IC) aus der Familie der programmierbaren Logik. Darunter werden alle digitalen Schaltkreise gezählt,
deren Logikfunktion vom Anwender programmiert werden kann. Neben FPGA stellen
CPLD (Complex Programmable Logic Device) die zweite große Gruppe innerhalb der
programmierbaren Logik dar. Beide unterscheiden sich damit grundlegend von ASICs
(Application Specific ICs), deren Aufbau auf die Erfüllung anwendungsspezifischer Funktionen optimiert ist. ASICs sind der programmierbaren Logik in Geschwindigkeit, Flächennutzung und Energieeffizienz deutlich überlegen [15], haben aber den Nachteil, auf
eine Anwendung limitiert zu sein. Weiterhin rechnet sich der Einsatz von ASICs aufgrund
der höheren Entwicklungskosten im Schnitt erst ab einer Fertigungsmenge von einigen
tausend Stück [16].
Abbildung 5.1: Schematischer Aufbau eine FPGA. [17]
Abbildung 5.1 zeigt schematisch den Aufbau eines FPGA. Die Logikelemente in so
genannten „Configurable Logic Blocks“ (CLB) gruppiert. Die Logikblöcke sind regelmäßig angeordnet, daher die Bezeichnung „Array“. Zwischen ihnen verläuft horizontal und
vertikal, ein komplexes Netz aus Verbindungsleitungen (Interconnect Wires). Über programmierbare Schaltmatritzen (Switch-Box) werden die CLB bzw. Interconnect Wires
miteinander verbunden. I/O-Blöcke enthalten verschiedene Signaltreiber (Buffer) und
schaffen die Verbindung zwischen der internen Logik und den physischen Anschlusspins
des IC. Moderne FPGA beinhalten weitere, anwendungsspezifische Funktionseinheiten,
z.B. Block-RAM, Digitale Signalprozessoren (DSP) oder Clock Manager zur Synthese
von Taktsignalen.
14
Heutzutage sind die meisten FPGA SRAM10 basiert [16]. Das bedeutet, die gewünschte Konfiguration der internen Logik wird bei der Progammierung des FPGA in SRAMSpeicherzellen hinterlegt. Jede Speicherzelle ist mit Multiplexern oder Schalttransistoren
(„Pass-Transistoren“ [18])verbunden. Die Pass-Transistoren stellen im Verbindungsnetzwerk letztendlich die elektrischen Verbindungen zwischen einzelnen Komponenten her
(siehe Abbildung 5.2). Es handelt sich dabei um statische Verbindungen, also permanent
leitend oder nichtleitend, welche nur durch Neuprogrammierung umkonfiguriert werden
können. Ein Nachteil der Bauart mit flüchtigen Speichern ist, dass die Konfiguration nach
jeder Unterbrechung der Versorungsspannung erneut geladen werden muss. FPGA sind
deshalb nach einem Neustart erst nach einer kurzen Konfigurationszeit einsatzbereit.
Abbildung 5.2: Schematische Darstellung der Verbindungsressourcen im FPGA. Schalttransistoren (rot) werden von SRAM-Zellen angesteuert und schaffen leitende Verbindungen zwischen einzelnen Leitungen des Verbindungsnetzwerks. [17]
Im Gegensatz zu einem Prozessor findet im FPGA keine sequentielle Abarbeitung
von Programmbefehlen statt. Vielmehr beschreibt der Programmcode die statische Verschaltung der Komponenten im FPGA. Die Funktion der Schaltung wird i.d.R. in einer
Hardwarebeschreibungsprache (HDL) formuliert. In dieser Arbeit wurde dazu VHDL11
verwendet. Der VHDL-Code wird von einer Synthesesoftware in eine Netzliste übersetzt.
Diese enthält, ähnlich wie ein Schaltplan, alle verwendeten Bauteile und deren Verschaltung. Das synthetisierte Design kann mithilfe einer Simulationssoftware auf Funktion geprüft werden. Danach erfolgt die FPGA-spezifische Implementierung des Designs in die
gewünschte Hardware. Dabei wird die Netzliste in real vorhandene Logikkomponenten
des FPGA übersetzt (Translate, Map). Anschließend werden im Place & Route-Schritt
alle Komponenten im FPGA platziert und verdrahtet. Zuletzt wird eine Bitstream-Datei
10
11
Static Random Acces Memory
Very High Speed Integrated Circuit Hardware Description Language
15
5.1 Der Xilinx Artix-7
Tabelle 5.1: Auszug aus der Spezifikation des Artix-7 XC7A200T [19]
Slices Logic Cells
33.650
215.360
DSP Slices
740
Block RAM [36Kb] CMT
365
10
User I/O
500
erzeugt, welche in den FPGA geladen werden kann.
5.1
Der Xilinx Artix-7
Auf der Aragorn-Karte werden insgesamt 5 Artix-7 FPGA des Herstellers Xilinx verwendet. Der Artix-7 ist Teil der aktuellen12 „7-Series“ FPGA-Familie von Xilinx. Weitere
(leistungsstärkere) Modelle sind der Kintex-7 und der Virtex-7. Die 7-Series FPGAs werden in 28nm Prozesstechnologie hergestellt und enthalten bis zu 300.000 Slice mit knapp
2 Mio. Logikzellen im Fall des Virtex-7 [19]. Tabelle 5.1 enthält die Spezifikation des im
Aragorn-TDC Projekt verwendeten Artix-7 XC7A200T.
Eine Herausforderung dieser Arbeit stellte die Optimierung der Signalverdrahtung des
TDC-Designs dar (siehe Kapitel 7). Vorraussetzung dafür ist die Kenntnis der Logik-,
und Verbindungsressourcen des Artix-7 FPGA, die im folgenden Abschnitt kurz vorgestellt werden.
Die kleinste Einheit programmierbarer Logic bilden sogenannte „Slice“-Elemente. Beim
Artix-7 enthält jedes Slice vier Lookup-Table (LUT), acht Speicherelemente in Form von
flankengesteuerten D-Flipflops, diverse Multiplexer und die sogenannte Carry-Logic. Diese besteht aus je vier Multiplexern und XOR13 -Gattern und wird für die Implementierung
schneller Addition/Subtraktion benötigt.
Die Lookup-Table benutzt man zur Generierung von Logik-Funkionen. Jeder LUT hat
sechs unabhängige Eingänge und zwei unabhängige Ausgänge. Dies ermöglicht die Implementierung einer Booleschen Funktion mit sechs Variablen und einem Ausgangssignal.
Alternativ können auch zwei Boolesche Funktionen mit je fünf Variablen realisiert werden. In diesem Fall müssen aber von beiden Funktionen die gleichen Eingänge verwendet
werden. Multiplexer können mehrere Funktionsgeneratoren kombinieren und erzeugen so
Funktionen mit bis zu acht Eingängen. Die Signalverzögerung (Propagation Delay) durch
einen LUT ist unabhängig von der implementierten logischen Funktion. Die Signallaufzeit durch das gesamte Slice-Element ist von der Verschaltung der internen Komponenten
abhängig. Im Artix-7 gibt es zwei verschiedene Slice-Typen: SliceL und SliceM. SliceM
bieten, neben den beschriebenen Funktionen, die Option die Funktionsgeneratoren als
synchrones RAM (Distributed-RAM14 ), oder als 32-Bit Schieberegister zu konfigurieren.
Zum Aufbau sequentieller Schaltungen müssen Signalzustände in der Zeit zwischen zwei
12
Stand: Dezember 2015
Logisches Exklusiv-Oder
14
Random Access Memory
13
16
5.2 Block RAM
Taktflanken zwischengespeichert werden. Als Speicherelemente stehen dazu in jedem Slice
acht taktflankengesteuerte D-Flipflop zur Verfügung. Jeweils vier davon können optional
als Latch konfiguriert werden. Abbildung 5.3 (rechts) zeigt schematisch den Aufbau eines
SliceL. Zur besseren Übersicht sind die Funktionsgruppen farblich markiert.
Jeweils 2 Slice bilden zusammen einen „Configurable Logic Block“ (CLB). Die CLB
sind über eine programmierbare Switch Matrix mit dem Verbindungsnetzwerk (Routing
Matrix) des FPGA verbunden. Innerhalb eines CLB besteht außer der Carry-Chain keine
direkte Verbindung zwischen den Slice. Die Carry-Chain verbindet benachbarte Slice vertikal miteinander, um schnelle arithmetische Operationen zu realisieren. Abbildung 5.3
(links) zeigt schematisch den Aufbau eines CLB. Im FPGA sind die CLBs spaltenweisen
angeordnet und deren Position (sowie die Position der Slice) ist durch ein Koordinatensystem eindeutig definiert.
Abbildung 5.3: Links: Ein CLB besteht aus zwei Slice-Elementen, welche jeweils mit einer
Switch-Matrix verbunden sind. Die Anschlüsse der Carry-Chain (CIN , COU T ) verbinden
CLBs direkt miteinander. Rechts: Schematischer Aufbau und Struktur eines SliceL der
Xilinx 7-Series. [20]
5.2
Block RAM
Um größere Datenmengen zu speichern besteht die Möglichkeit, SliceM-Elemente als
Distrubuted-RAM zu konfigurieren. Die Implementierung von Speicher in Slice-Elementen
ist aber unwirtschaftlich, da bereits für geringe Speichertiefen enorme Logikressourcen benötigt werden. Deshalb verfügt der Aritx-7 über Block RAM-Elemente mit einer Kapazität
von jeweils 36Kb. Neben der Nutzung als Single- oder Dual-Port-RAM, kann der Block
17
5.3 Taktsignale im FPGA
RAM auch als FIFO15 konfiguriert werden.
5.3
Taktsignale im FPGA
Synchrone digitale Schaltungen bestehen in der Regel aus verschiedenen funktionalen
Gruppen, welche nicht selten mit unterschiedlichen Taktsignalen betrieben werden. Der
optimalen Verteilung von Taktsignalen im FPGA kommt deshalb eine besondere Rolle
zu. Generell ist, wie bei allen Verbindungsressourcen im FPGA, eine möglichst kurze Signallaufzeit erstrebenswert. Bei Taktnetzen kommen außerdem folgende Anforderungen
hinzu: Zum einen soll der Taktversatz („Clock Skew“), also die Laufzeitdifferenz des Taktsignals zu verschiedenen Logikblöcken möglichst gering sein. Dies wirkt sich vor allem auf
die mögliche Maximalfrequenz aus, mit der man die Schaltung betreiben kann (siehe Abschnitt 5.5). Zum anderen müssen Leitungskapazitäten bei jeder Taktflanke umgeladen
werden. Da dies maßgeblich zur Verlustleistung einer Schaltung beiträgt, soll der Leistungsbedarf des Taktnetzwerkes möglichst gering sein [18].
Deshalb erfolgt die Taktverteilung in 7-Series FPGA über dedizierte Taktnetzwerke.
Der Artix-7 ist dazu in zehn sogenannte „Clock Regions“ gegliedert. Diese sind nebeneinander in zwei, etwa gleich breiten Spalten angeordnet und haben eine Höhe von jeweils
50 CLB. Zwischen beiden Spalten verläuft die vertikale Hauptachse des Taktnetzwerks
(„Clock Backbone“). Hierüber können insgesamt 32 unterschiedliche Taktsignale im gesamten FPGA zur Verfügung gestellt werden. Von der Hauptachse zweigen in jede Clock
Region horizontal verlaufende Taktleitungen („HROW“) ab. Jede HROW besteht aus 12
Leitungen. Innerhalb einer Clock Region können also maximal 12 verschiedene Taktsignale
verwendet werden. Getrieben werden Taktsignale von speziellen Buffern (BUFG, BUFH,
BUFR). Durch die H-Baum ähnliche Struktur des Taktnetzes wird ein minimaler Clock
Skew gewährleistet [21]. Weiterhin werden ungenutzte Abschnitte des Taktnetzwerks automatisch deaktiviert, um die Verlustleistung zu minimieren [14].
5.4
Clock Management Tile
Im Aragorn-TDC werden zur Realisierung des SCS-Algorithmus (siehe Abschnitt 4.3)
acht Taktsignale gleicher Frequenz und jeweils 45° Phasenverschiebung benötigt. Zur Genese bzw. Modifikation von Taktsignalen enthält der Artix-7 in jeder Clock Region eine
sogenannte „Clock Management Tile“(CMT). Jede CMT beinhaltet eine PLL16 und einen
„Mixed Mode Clock Manager“ (MMCM), welcher ebenfalls PLL-basiert arbeitet. MMCM/PLL werden zur Frequenzsynthese, als Jitter-Filter oder zur Beseitigung von Taktversätzen („Deskew“) genutzt.
Abbildung 5.4 zeigt schematisch den Aufbau eines MMCM. Im Wesentlichen handelt
es sich dabei um eine PLL, also eine Phasenregelschleife, bestehend aus einem spannungs15
16
First In First Out
Phase-Locked-Loop
18
5.4 Clock Management Tile
Abbildung 5.4: Schematischer Aufbau eines Mixed Mode Clock Manager. [14]
gesteuerten Oszillator (VCO17 ) und einem Phasenkomparator (PFD18 ). Über spezielle
Multiplexer wird das Eingangssignal („Inputclock“) ausgewählt und an den PFD angelegt.
Am zweiten Eingang des PFD liegt das rückgekoppelte Ausgangssignal des VCO an. Der
PFD erzeugt ein Steuersignal, welches proportional zur Phasen- und Frequenzdifferenz
der beiden Eingangssignale ist. Dieses Steuersignal wird durch eine Charge-Pump (CP)
verstärkt, von einen Loopfilter (LP) geglättet und dient danach als Referenzspannung für
den VCO. Das Lock-Signal zeigt eine feste Phasenbeziehung und damit die korrekte Funktion des MMCM an. Über programmierbare Teiler D, On und M kann man die Frequenz
der acht Ausgangssignale individuell anpassen [14]:
fout,n = finput
M
D · On
(9)
Die Phasenlage der Ausganssignale kann ebenfalls für jeden Kanal individuell definiert
werden. Außerdem kann eine globale Phasenverschiebung aller Ausgänge durch die Phase
des Feedbacksignals CLKFBOUT programmiert werden. Im Besonderen wirkt sich jede Verzögerung des CLKFBOUT Signals auf die Phasenlage aller Ausgangssignale aus.
Diese Funktion erlaubt es z.B. das Delay von Takttreibern zu kompensieren. Bei der
Implementierung der beiden MMCMs im Aragorn-TDC verursachten leitungsbedingte
Laufzeitunterschiede des Feedbacksignals einen Taktversatz zwischen den MMCMs (siehe
Kapitel 7.2).
17
18
Voltage Controlled Oscillator
Phase-Frequency Detector
19
5.5 Timingbudget synchroner Schaltungen
5.5
Timingbudget synchroner Schaltungen
In der Realität kommt es beim Betrieb digitaler Schaltungen unweigerlich zu Signalverzögerungen in Logikkomponenten und auf den Verbindungsleitungen. Abbildung 5.5
veranschaulicht beispielhaft das Timing einer synchronen Registerstufe. Zwei D-Flipflop
werden mit demselben Taktsignal betrieben, welches aber aufgrund der Signallaufzeit mit
dem Zeitversatz (skew) tSkew am zweiten Flipflop ankommt. Das Ausgangssignal Q wird
am ersten Flipflop nach der Verzögerungszeit (Propagation Delay) tpd(F F ) relativ zum
Taktsignal bereitgestellt und benötigt zum Passieren der kombinatorischen Logik die Zeit
tKomb . Damit das Signal D anschließend am zweiten Flipflop korrekt eingelesen wird, muss
es bereits um die Setupzeit tSetup vor der nächsten Taktflanke am Eingang anliegen.
Abbildung 5.5: Timingbudget einer synchronen Digitalschaltung. Nähert sich die Taktrate
CLK der Maximalfrequenz, geht die eingezeichnete Taktreserve gegen null. Verändert
nach [21].
Aus Abbildung 5.5 b) geht hervor, dass die Schaltung sich maximal mit der Frequenz:
fmax = (tpd(F F ) + tKomb + tSetup − tSkew )−1
(10)
betreiben lässt. Der Taktversatz ist per Definition negativ und verringert im konkreten
Fall die Maximalfrequenz [21]. Um die korrekte Funktion von FPGA Entwürfen sicherzustellen, muss bei der Platzierung und Verdrahtung die Einhaltung des Timingbudgets
überprüft werden. Dazu werden in der statischen Timinganalyse die Laufzeiten aller Signalpfade berechnet. Analog zu Gleichung 10 kann damit überprüft werden, ob sich die
Schaltung mit der vorgesehenen Taktrate betreiben lässt.
20
6
VHDL Entwurf des Aragorn-TDC
Ziel dieser Arbeit war die Implementierung eines 96 Kanal Time-to-Digital-Converters
(TDC), mit einer Zeitauflösung von 400ps, in einen Artix-7 FPGA der Firma Xilinx. Die
Arbeit fand im Rahmen der Entwicklung der Aragorn-Auslesekarte statt. Neben Entwicklung und Verifikation von Teilen des VHDL Quellcodes, lag der Schwerpunkt dieser Arbeit
auf der Implementierung des fertigen Designs (Kapitel 7) im FPGA, sowie der Verifikation
der Kenngrößen des TDC (Kapitel 8).
Dieses Kapitel widmet sich dem VHDL Design des Aragorn-TDC. Dabei werden alle Module, sowie deren funktionaler Zusammenhang im TDC, bzw. auf der AragornKarte vorgestellt. Abbildung 6.1 zeigt die Top-Level Ansicht des Aragorn-TDC, sowie
die wichtigsten Signalverbindungen. Zu Beginn der Arbeit an diesem Projekt war bereits
ein Großteil der eingezeichneten Module vorhanden oder befanden sich in der Entwicklung. Die eigenständige Arbeit am VHDL-Projekt beschränkt sich hauptsächlich auf die
Entwicklung der „Serializer“-Komponente. Dies umfasst neben der Programmierung des
Quellcodes auch die Entwicklung einer geeigneten Testbench, sowie die Simulation des
Moduls. Außerdem muss der Serializer in den Gesamtentwurf eingebettet werden. Als
Programmierumgebung wird Vivado (v2015.1) von Xilinx verwendet, zur Simulation
Modelsim SE-64 (v10.0b) der Firma Mentor Graphics Corporation.
Abbildung 6.1: Top-Level Schema des Aragorn-TDC.
21
6.1 Das TCS-Interface
6.1
Das TCS-Interface
Der Data-Merger-FPGA empfängt über den SFP+ Transceiver das codierte Triggersignal
des TCS-Systems (siehe Abschnitt 3.4). Im Data-Merger wird daraus der 155,52 Mhz
TCS-Referenztakt decodiert. Zusätzlich im TCS-Signal enthaltene Triggerinformationen
werden als serieller Datenstrom zu den TDC-FPGAs weitergeleitet. Im TDC-FPGA decodiert das TCS-Interface aus dem Datenstrom das Trigger- und Begin-of-Spill-Signal für
den Trigger-Catching Prozess im TDC-Interface. Außerdem werden die Spillnummer, die
Eventnummer und der Event-Typ decodiert. Diese Daten werden separat in einem FIFO zwischengespeichert und von der Serializer-Komponente beim Schreiben der S-Link
Header ausgelesen.
6.2
Das Clock-Interface
Das Clock Interface generiert alle im TDC-FPGA verwendeten Taktsignale. Dazu wird
das vom Data-Merger-FPGA kommende TCS-Taktsignal von 155,52 MHz auf die Eingänge von zwei „Mixed Mode Clock Manager“(MMCM, siehe Kapitel 5.4) gegeben. Die
MMCM sind als IP19 -Core implementiert und können jeweils maximal 7 Ausgangssignale
generieren. Frequenz und Phasenlage im Bezug zum Eingangssignal können im Vivado
„Clocking-Wizard“ für jeden Kanal separat eingestellt werden. Abbildung 6.2 zeigt exemplarisch die Einstellungen des ersten MMCM im Clocking-Wizard. Dieser generiert vier
311,04 MHz Taktsignale, mit einer Phase von 0°, 45°, 90° und 135°, sowie den 155,52 MHz
Systemtakt der ebenfalls eine Phase von 0° hat. MMCM_2 generiert vier 311,04 MHz
Taktsignale mit einer Phase von 180°, 225°, 270° und 315°.
Abbildung 6.2: Vivado Clocking Wizard: MMCM_1 generiert vier der acht benötigten
Taktsignale, mit einer Frequenz von 311.04 MHz und je 0°, 45°, 90° und 135° Phasenverschiebung relativ zum Eingangssignal, sowie den Sytemtakt sys_clk mit einer Frequenz
von 155,52MHz.
19
„Interlectual Property“
22
6.3 Config Master
6.3
Config Master
Über den Config-Bus können Module konfiguriert oder Statusinformationen ausgelesen
werden. Der Bus ist nach dem Master-Slave-Prinzip aufgebaut. Der Bus-Master kann jeden Slave über eine individuelle 16-bit Adresse ansprechen und über Kontrollleitungen
Lese-, bzw. Schreibbefehle senden. Slave-Module lesen/schreiben von getrennten 16-Bit
Datenleitungen und bestätigen mit einem „Acknowledge-Flag“. Abbildung 6.3 zeigt den
Aufbau des gesamten Bus-Systems auf der Aragorn-Karte: Daten vom/zum SFP+ Transceiver werden im Config-FIFO zwischengespreichert. Der Config-Master im Data-MergerFPGA kontrolliert verschiedene Config-Slave-Module. Darunter sind vier TDC Slave-LinkModule, welche jeweils mit einem Config-Master in den TDC-FPGAs verbunden sind. Im
TDC-FPGA kontrolliert der Config-Master seinerseits mehrere Slave-Module.
Abbildung 6.3: Aufbau und Datenfluss des Config-Bus auf dem ARAGORN-Board.
6.4
Das TDC-Interface
Das TDC-Interface ist die zentrale Komponente im Aragorn-TDC (siehe Abbildung 6.1).
Neben dem Trigger-Catching und einem 14Bit Coarsetime-Counter enthält es 96 TDCModule, in denen jeweils die Zeitmessung für ein Detektorsignal erfolgt. Das MergerModul fasst die Ausgangsdaten der TDC-Module zu einem Datenpaket zusammen.
6.4.1
Coarsetime Counter
Der Coarsetime-Counter ist ein synchroner 14Bit-Zähler, welcher mit dem um 0° phasenverschobenen Taktsignal hochgezählt und mit dem Begin-of-Spill-Signal zurückgesetzt
wird. Der Zählerstand entspricht also der Dauer des laufenden Spills in Einheiten der
ganzen Taktperiode (Zeitauflösung 3,215ns). Diese Zeitinformation wird zur Berechnung
der Grenzen des Suchfensters im Trigger-Catching (Abschnitt 6.4.2) und zur Zeitmessung
in den TDC-Modulen benötigt (Anschnitt 6.4.3).
23
6.4 Das TDC-Interface
trigger (1)
window_low (14) window_hi (14) event_no (6)
Abbildung 6.4: Aufbau des 35-Bit Datenworts für das Trigger-Buffer-FIFO.
6.4.2
Trigger Catching
Die Trigger-Catching-Komponente empfängt das Trigger-Signal vom TCS-Interface und
codiert alle zur Bearbeitung des Triggers notwendigen Informationen in einem 35-Bit
Datenwort (Abbildung 6.4). Dieses Datenwort wird an alle TDC-Module geschickt und
dort im Trigger-Buffer-FIFO abgelegt. Auf diese Weise können schnell aufeinanderfolgende Trigger zwischengespeichert und sequentiell abgearbeitet werden. Abbildung 6.4 zeigt
den Aufbau eines Datenworts: Trigger gibt an, ob es sich um einen „echten“ oder einen
„Fake-Trigger“ handelt (1=real, 0=fake). Fake-Trigger werden nach einer einstellbaren
Maximalzeit automatisch generiert und dienen dazu, nicht mehr benötigte Hits aus dem
RAM zu entfernen. Die Zeitmarken window_low und window_hi und haben eine Breite
von jeweils 14 Bit. Sie markieren die Grenzen des Suchfenster für den Trigger-MatchingProzess (siehe Abschnitt 6.4.3) und berechnen sich wie folgt:
window_low = coarsetime − latency
window_hi = coarsetime − latency + window
(11)
(12)
Dabei ist coarsetime der aktuelle Wert des Coarsetime-Counters und gibt den Zeitpunkt
des Triggers an. Die Parameter window und latency werden über den Config-Bus programmiert. Außerdem werden alle Trigger mitgezählt und so die event_no im laufenden
Spill bestimmt.
6.4.3
TDC-Module
Abbildung 6.5 zeigt Aufbau eines TDC-Kanals. Der Zustand des Datensignals wird im
TDC-Register eingelesen und synchronisiert. Im Decode-Schritt wird aus dem Bitmuster des synchronisierten TDC-Register, zusammen mit dem Zählerstand des CoarsetimeCounters, die Zeitinformation decodiert und in einem Dual-Port-RAM zwischengespeichert. Wird ein Triggersignal empfangen, durchsucht der Triggermatching-Prozess den
RAM nach passenden Einträgen und schreibt die gefundenen Daten in ein AusgangsFIFO, wo sie anschließend vom Merger ausgelesen werden.
Das TDC-Register arbeitet nach der Shifted-Clock-Sampling Methode (siehe Kapitel
4.3) und besteht aus acht taktflankengesteuerten D-Flipflops. Das Eingangssignal ist mit
dem Dateneingang aller Flipflops verbunden. Bei steigenden Taktflanken wird der Zustand
des Eingangssignals auf den Ausgang übernommen und bis zur nächsten Taktflanke gespeichert. Jedes Flipflop wird mit einem der acht phasenverschobenen Taktsignale betrieben.
Das Datensignal wird also jeweils im Abstand von 81 Taktperiode eingelesen. Solange das
Datensignal sich nicht ändert, hat das TDC-Register konstant den Wert ’00000000’ oder
’11111111’ (je nach Pegel des Eingangssignals). Ändert sich der Pegel des Eingangssignals
(„Hit“ im Detektor), wird der neue Zustand bei der nächsten Taktflanke an der entsprechenden Position ins TDC-Register übernommen (siehe Abbildung 6.6). Aus der Position
24
6.4 Das TDC-Interface
Abbildung 6.5: Aufbau eines TDC-Moduls
des Bitwechsels („bitswap position“) im TDC-Register, kann der genaue Zeitpunkt des
Hits innerhalb einer Taktperiode bestimmt werden.
Da jedes TDC-Flipflop mit einem anderen Taktsignal betrieben wird, läuft das TDCRegister nicht synchron zum Systemtakt. Bei hohen Taktraten kann nicht ohne weiteres
davon ausgegangen werden, dass alle Ausgangssignale das Timingbudget einhalten und
von nachfolgenden Bauteilen korrekt eingelesen werden (siehe Abschnitt 5.5). Bei der
geplanten Taktfrequenz von 311,04 MHz steht einem Signal im ungünstigsten Fall ein
Timingbudget von ≤ 18 Taktperiode, also maximal 0,4ns zur Verfügung. Bevor die Zeitinformation aus dem TDC-Register decodiert werden kann, müssen die Ausgangssignale
der Flipflops schrittweise zum Systemtakt synchronisiert werden. Dies geschieht in einem
2-stufigen SynchronisationsregisterJede Stufe besteht, wie das TDC-Register, aus acht
D-Flipflops. Alle Signale werden mit einer Phasenverschiebung von maximal 180° zur
vorherigen Stufe eingetaktet. Auf diese Weise wird ein Timingbudget von mindestens 12
Taktperiode, also etwa 1,6ns sichergestellt.
Wie im vorherigen Absatz besprochen, enthält das synchronisierte TDC-Register die
Information über den Zeitpunkt des Hits auf dem Datensignal. Allerdings kann damit
nur der relative Zeitpunkt innerhalb einer Taktperiode bestimmt werden. Um den absoluten Zeitpunkt (relativ zum Begin-of-Spill) zu bestimmen, muss im Decoding Prozess
zusätzlich noch der Zählerstand des Coarsetime-Counters ausgewertet werden. Die absolute Zeitmarke eines Hits THit berechnet sich durch Addition von Zählerstand (in Einheiten
von LSB) und der Position des Bitwechsels im TDC-Register:
THit = coarse_time · 8 + bitswap_position
(13)
Der Wert coarse_time ist eine 14Bit Binärzahl. Die binäre Multiplikation mit 8 wird im
VHDL-Code durch dreimaliges logisches Linksschieben, die Addition der bitswap_position
mit dem „&“-Operator realisiert. Um das Ergebnis zu speichern wird also ein 17-Bit breites
25
6.4 Das TDC-Interface
Abbildung 6.6: Decodierung des TDC-Registers
Datenwort benötigt, welches anschließend in einem 17-Bit breiten und 2k-Wörter tiefen
Dual-Port-RAM zwischengespeichert wird (siehe Abbildung 6.5).
Wie in Kapitel 3.4 beschrieben, werden relevante Ereignisse vom TCS-System durch
ein Triggersignal gekennzeichnet. Das Triggersignal wird etwa 500ns nach dem physikalischen Ereignis empfangen [6]. Der RAM muss also groß genug sein, um die Zeitmarken
aller anfallenden Hits bis zum Eintreffen des Triggers zu speichern. Erst dann entscheidet sich, welche Hits aus dem RAM an das Datennahmesystem weitergeleitet werden.
Dazu durchsucht die Trigger-Matching Komponente den RAM nach Zeitmarken, welche
innerhalb eines definierten Zeitfensters liegen und schreibt sie in ein Ausgangs-FIFO. Die
Grenzen des Zeitfensters werden durch die fixen Parameter trigger-window und latecy
definiert und bereits in der Trigger-Catching Komponente berechnet. Abbildung 6.7 zeigt
den zeitlichen Zusammenhang zwischen physikalischem Event und Trigger.
6.4.4
Merger
Der Merger ist ein Multiplexer, der für jedes Trigger-Event die Ausgangs-FIFOs aller
96 TDC-Kanäle ausliest, zusammenfasst und in einem eigenen Ausgangs-FIFO speichert.
Dies geschieht in einem dreistufigen Prozess. Die erste Stufe besteht aus 12 parallelen
8:1 Multiplexern, die zweite Stufe aus 3 parallelen 4:1 Multiplexern. Die letzte Stufe
besteht aus einem 3:1 Multiplexer, welcher die Daten anschließend im Ausgangs-FIFO
26
6.5 Serializer
Abbildung 6.7: Beim Trigger-Matching werden nur Hits innerhalb des Suchfensters („trigger window“) aus dem RAM gelesen. Ältere Einträge werden gelöscht, neuere werden evtl.
für zukünftige Trigger benötigt. [6]
speichert. Die Daten bleiben entsprechend den Kanalnummern geordnet und werden im
Anschluss von der Serializer-Komponente im S-Link Format an den Data-Merger-FPGA
weitergegeben.
6.5
Serializer
Die Arbeit an der Serializer Komponente machte einen großen Teil der Mitarbeit am Projekt aus. Die VHDL Programmierung einer geeigneten Testbench nahm dabei etwa gleich
viel Zeit in Anspruch wie die Programmierung des Serializer selbst. Der Serializer empfängt die TDC-Daten vom Merger, generiert ein Datenpaket im S-Link Format [22] und
wandelt es in einen seriellen Datenstrom um, welcher zum Data-Merger-FPGA gesendet
wird.
Sobald im Ausgangs-FIFO des Merger Daten vorhanden sind, werden diese vom Serializer eingelesen und in einem Datenbuffer zwischengespeichert. Die Anzahl empfangener
Datenwörter wird mitgezählt und die Größe des Events zu bestimmen. Immer, wenn
ein vollständiges Datenpaket (header + n · data + trailer) empfangen wurde, wird die
Größe des Pakets in einem FIFO abgelegt. Ein weiterer Prozess liest die Paketgröße, sowie die TCS-Informationen (event_size, event_no, event_type) vom Ausgangs-FIFO des
TCS-Interface. Daraus werden die S-Link Header generiert und im S-Link-FIFO abgelegt.
Danach werden die anfangs im Datenbuffer abgelegten Daten ebenfalls ins S-Link-FIFO
übertragen.
27
6.5 Serializer
Der eigentliche Serialisierungs-Prozess liest vom S-Link-FIFO und platziert den Inhalt
wortweise in einem 32-Bit Schieberegister, dessen höchstwertiges Bit direkt mit einem
Ausgangs-Buffer verbunden ist. Mit jeder steigenden Taktflanke wird der Inhalt des Schieberegisters um eine Stelle nach links geschoben, wodurch nach 32 Taktzyklen der gesamte
Inhalt des Schieberegisters serialisiert ist.
Die serielle Schnittstelle zum Data-Merger-FPGA besteht aus drei differentiellen Signalen: Daten, Clock und Frame (Abbildung 6.1: sck, sdo, sfr). Das Signal Frame ist
während der Übertragung eines Datenworts ’high’ und zeigt dem Empfänger an, dass
gerade Daten gesendet werden. Die Datenübertragung erfolgt über DDR20 -Buffer. Das
bedeutet, es werden sowohl auf der steigenden, als auch auf der fallenden Taktflanke
Daten übertragen. Im aktuellen Design werden die Daten bisher mit SDR21 und einer
Taktrate von 155,52 MHz übertragen (19,44 MB/s). Im Bedarfsfall kann die Datenrate durch Verdopplung der Taktfrequenz und DDR-Übertragung um den Faktor 4 erhöht
werden.
20
21
Dual-Data-Rate
Single-Data-Rate
28
7
Implementierung des Aragorn TDC-Designs im Artix7 FPGA
Nachdem die einzelnen Module des Aragorn-TDC fertig programmiert und getestet waren,
konnte der gesamte Entwurf erfolgreich synthetisiert werden. Dabei wird der VHDL-Code
in eine (hardwarespezifische) Netzliste der Schaltung übersetzt. In weiteren Simulation
wurde die korrekte Funktion der gesamten Schaltung geprüft. In der Simulation können
jedoch keine Schalt- und Signallaufzeiten berücksichtigt werden. Das reale Timing einer
Schaltung kann deshalb erst nach der Implementierung verifiziert werden.
Der nächste Schritt ist die Implementierung des Aragorn-TDC Designs im Artix-7
FPGA. Dabei werden im Place & Route-Schritt alle Komponenten im FPGA platziert
und verdrahtet. War dies erfolgreich, kann man mit einer Static-Timing-Analysis überprüfen, ob alle Signalpfade das ihnen zur Verfügung stehende Timingbudget einhalten
(siehe Abschnitt 5.5). Wenn das der Fall ist, wird eine Bitstream-Datei generiert und in
den FPGA geladen. Durch abschließende Hardwaretests wird die Funktion des Designs
verifiziert (Kapitel 8).
Die Herausforderung bei der Implementierung des Aragorn-TDCs besteht darin, die
größtmögliche Linearität aller TDC-Kanäle sicherzustellen. Dazu müssen alle Einflüsse,
welche zu einer Abweichung der Bin-Breite vom Idealwert LSB führen, berücksichtigt werden. Bei der Verwendung der Shifted-Clock-Sampling-Methode (SCS) beeinflussen folgende Faktoren die Linearität des TDC:
• Unterschiedliche Laufzeiten des Datensignals zu den einzelnen Eingängen der Flipflops des TDC-Registers.
• Unterschiedliche Laufzeiten der Taktsignale (Clock Skew) zu den Takteingängen der
Flipflops.
• Phasenfehler bei der Generierung der Taktsignale durch die MMCM.
Der Phasenfehler der MMCMs können im Rahmen der Implementierung nicht beeinflusst werden und sind deshalb nicht Gegenstand dieses Kapitels. Daneben ist die Optimierung der Signalführung, im Bezug auf minimalen Skew, maßgeblich für die erreichbare
Qualität des TDC verantwortlich. Dies machte große Teile dieser Arbeit aus. Abschnitt
7.1 widmet sich der optimalen Platzierung und Verdrahtung der acht TDC-Flipflop, sowie der Fixierung des optimalen Layouts. Abschnitt 7.2 behandelt die Optimierung der
Takterzeugung und Verteilung im FPGA.
7.1
Das TDC Register
Bevor der gesamte Entwurf des Aragorn-TDC mit allen 96 Kanälen implementiert werden kann, muss ein geeignetes Routing für die zeitkritischen Schaltungsteile des TDCRegisters gefunden werden. Deshalb wird zuerst nur ein TDC-Kanal zusammen mit den
29
7.1 Das TDC Register
restlichen Modulen des Designs (Siehe Abschnitt 6) implementiert und optimiert. War
dies erfolgreich, werden die Place & Route-Informationen gespeichert und anschließend
auf die anderen TDC-Kanäle übertragen. Erst dann kann der gesamte Entwurf implementiert, analysiert und ggf. weiter optimiert werden.
Da für einem TDC-Kanal nur vergleichsweise wenig Logikressourcen benötigt werden,
traten bei der Implementierung ohne zusätzliche Vorgaben an die Bauteilverdrahtung
keine Probleme im Bezug auf die Einhaltung des Timingbudgets auf. Die Static-TimingAnalysis ergab jedoch einen Skew des Datensignals in der Größenordnung von einigen
100ps. Dieser Wert wäre für ein “normales“ Signal völlig ausreichend. Die angestrebte
Zeitauflösung von LSB=400ps könnte damit jedoch nicht erreicht werden.
Um das Routing von FPGA Entwürfen zu optimieren, bietet Vivado die Möglichkeit
sowohl Logikkomponenten manuell im FPGA zu platzieren, als auch Signalverbindungen
von Hand zu verdrahten. Dazu können nach der Synthese des Designs beliebige Komponenten (z.B. LUT, Flipflop oder Block-RAM) per Drag-and-Drop, direkt aus der Netzliste
in die gewünschten Ressourcen im FPGA platziert werden. Signalverbindungen zwischen
den Komponenten werden entsprechend des Schaltplans zunächst als „unrouted“ angezeigt. Im nächsten Schritt können im „Assign-Routing-Mode“ einzelne Signale ausgewählt
und manuell verdrahtet werden. War dies erfolgreich, erscheinen die Signale in der Netzliste als „routed“. In Form von Physical-Constraints können Routing-Informationen gespeichert und wiederverwendet werden [23].
Der erste Ansatz zur Optimierung des Routings bestand darin, eine Anordnung der
acht Flipflops zu finden, welche es erlaubt, das Datensignal manuell und möglichst symmetrisch zu den Eingängen der Flipflops zu führen. Dieser Ansatz wurde jedoch nach
kurzer Zeit aufgegeben, da das Netz aus Verbindungsleitungen zwischen den Logikblöcken zu komplex ist, um das Datensignal über seine gesamte Länge manuell zu routen. In
den Switch-Matrix stehen dem Nutzer zudem nicht beliebige Verbindungsmöglichkeiten
zur Verfügung. Eine Dokumentation der Routing-Ressourcen des Artix-7 existiert leider
nicht. Zwar werden im „Assign-Routing-Mode“ mögliche Verdrahtungsoptionen visuell
hervorgehoben, trotzdem muss hauptsächlich nach der Trial-and-Error-Methode gearbeitet werden. Mit diesem Ansatz gelang es deshalb nicht das Datensignal entsprechend den
Anforderungen zu den Flipflops zu führen.
Im weiteren Vorgehen wurden in das Datensignalnetz zusätzliche Lookup-Table (LUT)
eingefügt und so konfiguriert, dass das Signal unbeeinflusst weitergeleitet wird. So entstehen an definierten Punkten Verzweigungen im Signalverlauf. Abbildung 7.1 zeigt den
modifizierten Schaltplan eines TDC-Registers. Ein ähnliches Vorgehen wurde bereits bei
der Implementierung des M1-TDC erfolgreich eingesetzt [6]. Da die eingefügten LUT den
Funktionsumfang der Schaltung nicht erweitern, werden sie von der Implementierungssoftware im Optimierungsschritt üblicherweise wieder entfernt, um Logikressourcen zu
sparen. Um das zu verhindern, wurden die LUT mit dem so genannten „DONT_TOUCH“30
7.1 Das TDC Register
Attribute versehen. Dieses kann beliebigen Objekten aus der Netzliste zugewiesen werden
und verhindert die Entfernung während der Optimierung. Folgendes Syntaxbeispiel zeigt
die Verwendung des Constraints im VHDL-Code:
attribute dont_touch : string;
attribute dont_touch of <LUT-name> : entity is “true“;
Abbildung 7.1: Vereinfachter Schaltplan des TDC-Registers. In den Pfad des Datensignals
werden LUT eingefügt, um Verzweigungspunkte zu schaffen. Die Schaltung wird dadurch
in zwei identische 4-Bin TDC-Register geteilt (grün & orange markiert).
Durch die erzwungene Verästelung des Datensignals ergeben sich mehrere Vorteile:
Zum einen lassen sich neben den Flipflops nun auch die Verzweigungspunkte manuell
in beliebigen Slice-Elementen positionieren. Zum anderen wird die freie Signallänge reduziert, was die manuelle Verdrahtung deutlich vereinfacht. Weiterhin wird das Signalnetz in
zwei symmetrische Pfade aufgeteilt (siehe Abbilung 7.1). Es genügt deshalb, ein Routing
für ein TDC-Register, bestehend aus vier Flipflops, zu entwickeln. Dieses 4-Bin Register
kann anschließend kopiert werden. Im letzten Schritt müssen beide 4-Bin Register ebenfalls möglichst symmetrisch mit dem ersten Verzweigungspunkt zum fertigen 8-Bin TDC
Register verdrahtet werden.
Es wurden Studien zu verschiedenen Anordnungen der Komponenten angefertigt. Dabei zeigte sich, dass neben der Anordnung der Slice-Elemente, auch die Positionierung der
Komponenten innerhalb der Slice (BEL-Position) darüber entscheidet, welche Abschnitte
31
7.1 Das TDC Register
der Routing-Matrix zugänglich sind. Die Signallaufzeiten zu unterschiedlichen Flipflops
desselben Slice unterscheiden sich dadurch um bis zu 50ps.
Die besten Ergebnisse wurden erzielt, indem vier Flipflops in zwei benachbarten CLB
derselben Spalte platziert wurden. Der zugehörige LUT wurde im gegenüberliegenden
CLB platziert. Die Aufspaltung des Signals erfolgt schrittweise in den Switch-Matrix.
Abbildung 7.2 zeigt das fertige Layout eines TDC-Register bestehend aus vier Flipflops.
Durch die optimale Platzierung der Komponenten innerhalb der Slice-Elemente konnte der maximale Skew des Datensignals in dieser Konfiguration auf 16ps reduziert werden. Die exakten Signallaufzeiten, sowie die BEL-Positionen im SLICE sind in Tabelle
7.1 zusammengefasst. Die Werte sind keine Messwerte, sondern entstammen der VivadoLaufzeitanalyse.
Abbildung 7.2: Platzierung und Verdrahtung der Komponenten eines 4-Bin TDCRegisters. Der maximale Skew des Datensignals beträgt auf diesem Abschnitt 16ps.
Um das gesamte TDC-Register mit allen acht Flipflops zu implementieren, wurde der
vorhandene Entwurf des 4-Bin TDC-Registers innerhalb derselben CLB-Spalte kopiert.
Der noch fehlende Verzweigungspunkt LUT_0 wurde so platziert, dass sich ebenfalls ein
symmetrischer Signalverlauf zu den weiteren Verzweigungspunkten ergab. Die Signallaufzeiten auf diesem Abschnitt sind Tabelle 7.2 zu entnehmen. Der zusätzliche Skew des
Datensignals beträgt 3ps. Der maximale Gesamtskew des Datensignals erhöht sich damit
auf insgesamt 19ps. Dies entspricht etwa 5% LSB. Abbildung 7.3 zeigt das fertige Layout
des 8-Bin TDC-Registers wie es im Aragorn-TDC implementiert ist.
32
7.1 Das TDC Register
Tabelle 7.1: Laufzeiten des Datensignals ausgehend vom LUT_a zu den jeweiligen Flipflops eines 4-Din TDC-Registers. Der maximale Skew beträgt 16ps.
logic cell
lut_a
dff_a[0]
dff_a[1]
dff_a[2]
dff_a[3]
BEL
routingdelay [ps]
C6LUT
0
DFF
607
DFF
623
C5FF
607
C5FF
622
Tabelle 7.2: Laufzeiten des Datensignals ausgehend vom LUT_0 zu den beiden Verzweigungen LUT_a und LUT_b. Der Skew beträgt 3ps.
logic cell
LUT_0
LUT_a
LUT_b
BEL
routingdelay [ps]
A6LUT
0
C6LUT
620
C6LUT
623
Um die optimale Implementation aller 96 TDC-Kanäle sicherzustellen, müssen die
Routinginformationen des bereits implementierten Kanals gesichert werden. Dies geschieht
über sogenannte „Placement-Constrains“, welche während der Implementierung Vorgaben
an die Platzierung und Verdrahtung der Komponenten machen und in einer .xdc22 -Datei
gespeichert werden. Anschließend können die gespeicherten Constraints auch bei der Implementation aller anderen TDC-Kanäle angewendet werden. Im Folgenden werden kurz
alle Constraints vorgestellt, die zur Fixierung des TDC-Registers notwendig sind.
• Das FIXED_ROUTE-Constraint wird auf das Signalnetz net_name angewendet
und spezifiziert alle Teilstrecken der Routing-Matrix, welche zur Verbindung der
Komponenten verwendet wurden. Die Teilstrecken sind in einem „routing string“codiert.
set_property FIXED_ROUTE {routing string} [get_nets {net_name}]
Um Netze vollständig zu fixieren, müssen alle am Netz beteiligten Logikkomponenten ebenfalls fixiert werden [24]. Konkret also alle LUT und TDC-Flipflops. Dazu
werden die im Folgenden beschriebenen LOC- und BEL-Constraints benutzt.
• Das LOC-Constraint wird auf Logikkomponenten angewendet und legt deren absolute Slice-Koordinate im Koordinatensystem des FPGA fest.
set_property LOC SLICE_X160Y190 [get_cells {cell_name}]
22
Xilinx Design Constraints
33
7.1 Das TDC Register
Abbildung 7.3: Platzierung und Verdrahtung aller Komponenten des fertigen 8-Bin TDCRegisters. Der gesamte Skew des Datensignals beträgt maximal 19ps.
34
7.1 Das TDC Register
• Mit dem BEL-Constraint wird die Position von Logikkomponenten innerhalb eines
Slice festgelegt. Ohne Ergänzung durch ein entsprechendes LOC-Constraint bleibt
die Auswahl des Slice aber nach wie vor der Implementierungssoftware überlassen.
set_property BEL A6LUT [get_cells {cell_name}]
• Bei einigen Tests kam es vor, dass einige LUT entsprechend den Placement-Constraints
korrekt platziert wurden, das Datensignal aber trotzdem nicht erfolgreich geroutet
werden konnte. Als Ursache stellte sich heraus, dass die physikalischen Eingänge
(I0 , I1 , ...) einer LUT-Komponente nicht fest mit den logischen Eingängen (A0 , A1 ,
...) der internen Logikfunktion verbunden sind. Diese Verbindung wird erst während
der Implementation generiert. Deshalb wird mit dem LOCK_PINS-Constraint das
Datensignal fest mit einen spezifischen (logischen) Eingang des LUT verknüpft.
set_property LOCK_PINS {I0:A3} [get_cells {LUT_name}]
• Mit dem PROHIBIT-Constraint schließt man gezielt mögliche Platzierungsoptionen
von der Implementation aus. Dies war notwendig, weil die Nutzung eines bestimmten
Flipflop durch andere Module mit dem optimalen Routing eines LUT in Konflikt
stand. Die Adressierung erfolgt durch kombinierte Angabe von Slice-Koordinate und
BEL-Bezeichnung.
set_property PROHIBIT true [get_bells SLICE_XY/BEL]
Durch die Anwendung der aufgezählten Constraints konnte das Routing der Signale
jedes TDC-Registers vollständig und reproduzierbar definiert werden. Die Nutzung des
LOC-Constraints beinhaltet aber Nachteile. Zum einen müssen die Koordinaten für jede
Komponente aller TDC-Register explizit berechnet werden. Dies ist zwar kein besonderer
Aufwand, macht das Design aber unflexibel im Bezug auf evtl. notwendige Änderungen.
Zum anderen stellt die explizite Fixierung von Logik eine Einschränkung der Place &
Route-Algorithmen dar. Dies erhöht die Gefahr von sogenanntem „over-constraining“ [24].
Als mögliche Alternative boten sich sog. „Relative-Placement-Macros“ (RPM) an. In einem RPM können Logikkomponenten ähnlich dem LOC-Constraint fest in einem Slice
platziert werden. Nur erfolgt die Koordinatenangabe der Slice nicht absolut, sondern
relativ zueinander. Die Entscheidung wo das RPM optimalerweise im FPGA platziert
wird, bleibt schließlich der Implementierungssoftware vorbehalten. Trotz vielversprechender Ansätze, zeigte sich nach umfangreichen Versuchen, dass ein RPM in Kombination
mit FIXED_ROUTE das LOC-Constraint nicht ersetzten kann.
Die Fixierung der Place & Route-Information erfolgt deshalb mithilfe der vorgestellten Constraints. Zur Koordinatenberechnung für das LOC-Constraint wurde ein Skript
geschrieben. Dieses kann in der Bash-Shell ausgeführt werden und generiert eine fertige
.xdc-Datei für je 24 TDC-Kanäle. Im Anhang findet sich ein vollständiges Constraint-Set
zur Implementierung eines TDC-Kanals. Die endgültige Platzierung der 96 TDC-Register
ist in Abbildung 7.5 zu sehen. Je 24 Kanäle werden in einer CLB-Spalte gleichmäßig über
35
7.2 Taktsignale des Aragorn-TDC
die gesamte Höhe des Artix-7 verteilt. Jede Clock Region enthält damit 10, bzw. 8 TDC
Kanäle. Jeweils zwei CLB-Spalten schließen direkt an die entsprechenden I/O-Blöcke der
Eingangssignale an, um das Routing der Eingangssignale möglichst kurz zu halten.
7.2
Taktsignale des Aragorn-TDC
Zum Einlesen des Datensignals im TDC-Register werden acht Taktsignale mit je 0°, 45°,
90°, 135°, 180°, 225°, 270° und 315° Phasenverschiebung zueinander benötigt. Wie in Abschnitt 6.2 beschrieben, werden zur Taktgenerierung im Clock Interface zwei MMCMs
verwendet. Die Verteilung der Taktsignale zu den CLB erfolgt über globale Clock Buffer (BUFG). Abbildung 7.4 zeigt den gesamten Weg der Taktsignale vom differentiellen
Eingangsbuffer bis zu den den Takteingängen der TDC-Register. Auf den einzelnen Abschnitten entsteht jeweils ein Clock Skew ∆t zwischen den Taktsignalen.
Abbildung 7.4: Schaltplan der Taktverteilung zu den Flipflop eines TDC-Registers.
Die Platzierung beider MMCMs erfolgt möglichst nahe am Input-Buffer, welcher das
TCS-Taktsignal empfängt. Da pro Clock Region nur eine CMT zur Verfügung steht, wurden die beiden MMCM in horizontal benachbarte Clock Regions implementiert. Das Taktsignal wurde manuell gerouted und spaltet sich zwischen dem BUFG und den MMCMs
auf. Durch die unterschiedliche Leitungslänge entsteht auf diesem Abschnitt ein Skew von
∆t1 = −14ps (siehe Abb. 7.4). Analog zur Implementierung des TDC-Registers, werden
Position und Verdrahtung der Komponenten mit entsprechenden Placement Constraints
fixiert. Die zugehörige .xdc-Datei findet sich im Anhang.
Jeder MMCM hat neben 7 Taktausgängen auch ein Feedbacksignal (CLKFBOUT ),
mit dem die Phase aller Ausgangssignale in Schritten von (FV CO ·56)−1 feinjustiert werden
kann. Durch unterschiedliche Laufzeiten von CLKFBOUT entsteht zwischen den MMCMs
ein Skew von ∆tF B = +17ps. Das Routing des Feedbacksignals wurde ebenfalls fixiert.
Ausgehend von den MMCMs laufen alle Taktsignale zu BUFGs. Aufgrund der Optimierung des Taktnetzwerks ist die Signallaufzeit auf diesem Abschnitt für alle Taktsignale
36
7.2 Taktsignale des Aragorn-TDC
identisch, es entsteht kein clock skew (∆t2 = 0ps).
Von den BUFG-Elementen werden die Taktsignale auf die Flipflops aller TDC-Module
verteilt. Die Verdrahtung wird der Implementierungssoftware überlassen, d.h. es erfolgen
keine manuellen Einschränkungen durch Constraints. Zunächst wurde angenommen, dass
Signallaufzeit und Skew ∆t3 einzig vom Ort der Flipflops im FPGA abhängen, und daher für jeden CLB variieren. Bei der Analyse des implementierten Designs zeigte sich
aber folgendes: Innerhalb eines CLB existiert ein näherungsweise konstanter Taktversatz von ∆tclock ≈ 35ps zwischen dem oberen und dem unteren Slice. Zwischen gleichen
Slice-Elementen benachbarter CLB gibt es fast keinen Taktversatz. Dieser Zusammenhang
wurde in mehreren Stichproben überprüft und gilt zumindest innerhalb einer CLB-Spalte
der selben Clock Region.
Ein Vergleich mit dem Skew des Datensignals aus Tabelle 7.1 zeigt eine analoge Verteilung: Der konstante Datenskew zwischen oberen und dem unteren Slice-Elementen beträgt
∆tdata ≈ 16ps. Aus Daten- und Clock Skew kann der effektive Taktversatz ∆t3,ef f zwischen oberen und unteren Slice-Elementen berechnet werden.
∆t3,ef f = ∆tclock − ∆tdata ≈ +19ps
(14)
Die Flipflops in den unteren Slice-Elementen erhalten das Taktsignal also effektiv um etwa
19ps zu spät.
Dieser Wert ist ausdrücklich nicht als Messwert zu interpretieren. Es handelt sich bei
allen angegebenen Signallaufzeiten lediglich um Ergebnisse der Vivado Laufzeitanalyse.
Dennoch erlauben die Werte zumindest eine Abschätzung der durch das Routing verursachten Nichtlinearität des TDCs. Bei einem effektiven Gesamtskew von ∆tges ≈ +22ps
und einer Zeitauflösung von LSB = 400ps liegt die vom Routing verursachte Nichtlinearität bei ≈ 5%LSB.
Abbildung 7.5 zeigt eine schematische Darstellung des endgültigen Designs des 96Kanal Aragorn-TDC wie es im Xilinx Artix-7 FPGA implementiert wurde. Abbildung
7.6 zeigt den Ressourcenverbrauch des gesamten Entwurfs.
37
7.2 Taktsignale des Aragorn-TDC
Abbildung 7.5: Schematische Darstellung des 96-Kanal Aragorn-TDC wie es im Xilinx
Artix-7 FPGA implementiert wurde. Vom TDC genutzte Ressourcen sind rot markiert. Im
den beiden grün umrandeten Bereichen sind jeweils 48 TDC-Kanäle nahe den I/O-Blocks
implementiert.
Abbildung 7.6: Ressourcenverbrauch des 96-Kanal Aragorn-TDC im Xilinx Artix-7 (Model: XC7A200T).
38
8
Messung und Auswertung
Der folgende Absatz gibt eine Übersicht über das im Testaufbau verwendete GANDALFModul und die Aufsteckkarten (siehe Abbildung 8.1). Eine detaillierte Beschreibung des
GANDALF-Moduls findet sich in [7].
Das GANDALF-Modul ist die Basisplatine eines modularen Messsystems und wurde an
der Universität Freiburg entwickelt. Im Wesentlichen stehen zwei Virtex-5-FPGAs zur
Implementierung benutzerdefinierter Anwendungen (z.B. M1-TDC [6]) zur Verfügung. Je
nach Anwendung können die Mezzanine-Card Slots mit unterschiedlichen Aufsteckkarten
bestückt werden. Neben der in diesem Projekt nicht verwendeten analogen MezzanineCard (AMC), existieren sowohl eine optische Mezzanine-Card (OMC, auch Arwen-Karte
genannt) und die digitale Mezzanine-Card (DMC). Beide werden im Testaufbau verwendet und sind in Abbildung in Abbildung 8.1 abgebildet.
Die OMC verfügt über vier optische SFP+-Transceiver, welche eine bidirektionale Datenübertragung mit bis zu 3,1104 GBit/s erlauben. Sind beide OMCs bestückt können acht
optischen Verbindungen mit einem GANDALF-Modul realisiert werden. Die DMC ermöglicht den Anschluss von 64 digitalen Signalen im LVDS oder LVPECL44-Signalstandard.
Zur Datenübertrag stehen zwei NIM-Eingänge, ein NIM-Ausgang (LEMO-Steckverbinder)
und zwei VHDCI-Steckverbinder mit je 32 differentiellen Kanälen zur Verfügung [25].
Abbildung 8.1: Das GANDALF (rechts) kann mit verschiedenen Mezzanine-Cards (links)
bestückt werden. Im Testaufbau werden sowohl die optische Mezzanine-Card (OMC) als
auch die digitale Mezzanine-Card (DMC) verwendet [9].
39
8.1 Differentielle und integrale Nichtlinearität
Abbildung 8.2: Schematischer Messaufbau zur Bestimmung der Nichtlinearität und der
Zeitauflösung des Aragorn-TDC. Alle GANDALF-Module sowie das Tiger-Modul befinden sich im selben Rack und sind über die VXS-Backplane miteinander verbunden.
8.1
Differentielle und integrale Nichtlinearität
Die differentielle Nichtlinearität (DNL) ist definiert, als die Abweichung jedes Quantisierungsschritts (TDC-Bin) vom idealen Wert „Least Significant Bit“ (LSB) und wird
üblicherweise auf LSB normiert. Die DNL des Aragorn-TDC wurde mit einem „statistical
code density test“ bestimmt [6] [26]. Dazu werden die Zeitmarken von statisch verteilten
Testpulsen gemessen.
Um die DNL aller 96 Kanäle des Aragorn-TDC zu bestimmen, wurde folgender Testaufbau verwendet (siehe Abbildung 8.2): Das Testsignal wird von einem Funktionsgenerator (nicht eingezeichnet) mit einer Frequenz von 1 MHz erzeugt, anschließend diskriminiert
und auf den NIM-Eingang eines mit DMC-Karten bestückten GANDALF-Moduls geleitet. Von dort aus wird das Signal über den 68-poligen VHDCI23 -Connector mit einem
VHDCI-to-8xRJ45 Kabel auf zwei LVDS-Fanout Boards verteilt. Auf den LVDS-Boards
wird das Eingangssignal über einen Crosspoint-Switch und mehrere LVDS-Buffer auf 98
Ausgangspins verteilt. Diese sind mit dem Aragorn-Modul verbunden und bedienen die
Dateneingänge eines TDC-FPGA mit dem Testsignal. Es werden zwei LVDS-Boards benötigt, da sich auf der Platine des Aragorn die 96 Datensignale eines Steckverbinders, auf
23
Very High Density Cable Interconnect
40
8.1 Differentielle und integrale Nichtlinearität
jeweils zwei TDC-FPGA verteilen.
Das Triggersignal wird mit einer Frequenz von 100 Hz ebenfalls von einem Funktionsgenerator (nicht eingezeichnet) erzeugt und an den TCS-Eingang eines mit Arwen-Karten bestücktes GANDALF-Moduls angelegt. Das GANDALF-Modul gibt das Triggersignal über
eine optische Faser an den zentralen VXS-Switch (TIGER-Modul) weiter. Das TIGERModul verteilt das Triggersignal über die VXS-Backplane an alle Module im Rack. Ein weiteres, ebenfalls mit Arwen-Karten bestücktes GANDALF-Modul schickt das Triggersignal
schlussendlich über eine optische Faser an den SFP+ Transceiver auf dem Aragorn-Board.
Im Testaufbau wird der Aragorn-TDC mit einem TCS-Referenztakt von 155,52 MHz
betrieben. Da die Eingangsfrequenz in den TDC-FPGA nochmals verdoppelt wird, beträgt die Taktrate der TDC-Module 311,04 MHz. Daraus ergibt sich eine theoretische
Größe von LSB ≈ 400ps. Die Parameter window und latency werden so eingestellt, dass
pro Trigger genau 1 Hit gemessen wird.
Insgesamt werden N=10k Einzelmessungen auf allen 96 TDC-Kanälen parallel durchgeführt. Aus den 16-Bit Datenwort des Aragorn-TDC (tdc_data) lässt sich die BinNummer Bini berechnen, bei der das Signal im TDC quantisiert wurde.
Bini = tdc_data (mod 8)
(15)
In der Auswertung wurde für alle Messwert Bini berechnet und in einem Histogramm
aufgetragen. Da die Hits auf dem Testsignal unkorreliert zur Taktfrequenz des TDC auftreten, würden bei einem idealen TDC alle 8 Bins gleich oft getroffen werden. Die Anzahl
der Histogrammeinträge für jedes Bin wäre gleichverteilt, mit n = Nk (k=8, Anzahl der
TDC-Bins). Aus der Differenz von n und der tatsächlichen Anzahl der Einträge ni im
Histogramm, kann die DNL für jedes Bini in Einheiten von LSB berechnet werden.
DN Li =
n − ni
ni
=
− 1,
n
n
i = 0, 1, ..., 7
(16)
Die integrale Nichtlinearität (INL) des TDC, beschreibt die Abweichung von der idealen Transferfunktion (siehe Kapitel 4.3) am i-ten Bin und berechnet sich durch Summation
der differentiellen Nichtlinearität DN Li
IN Li =
i
X
DN Lj ,
i = 0, 1, ..., 7
(17)
j=0
Abbildungen 8.4 und 8.5 zeigen die TDC-Kanäle mit der besten bzw. schlechtesten
differentiellen Nichtlinearität. Die Beurteilung erfolgt nach der kleinsten bzw. größten maximalen DN Li eines Kanals. Die DNL des Aragorn-TDC liegt für alle Kanäle zwischen
14% LSB und 32% LSB.
Abbildungen 8.6 und 8.7 zeigen die TDC-Kanäle mit der besten bzw. schlechtesten
integralen Nichtlinearität. Die INL wird nach Gleichung (17) durch Aufsummieren der
41
8.1 Differentielle und integrale Nichtlinearität
DNL und liegt beim Aragorn-TDC für alle Kanäle zwischen 15% LSB und 32% LSB.
Da bei der Implementierung der TDC-Register, sowie der Takterzeugung und Verteilung (siehe Kapitel 7) großer Wert auf die Optimierung von Signallaufzeiten gelegt wurde,
gelang es die maximale Laufzeitdifferenz auf eine Größenordnung von ≈ 22ps zu minimieren. Beim Betrieb des Aragorn-TDC mit einer Taktfrequenz von 311,04 MHz, beträgt
die Größe von LSB ≈ 400ps. Man würde also eine differentielle Nichtlinearität in der
Größenordnung von etwa 5%LSB erwarten. Die gemessene DNL liegt im Mittel für alle
TDC-Kanäle über dem erwarteten Wert.
Da alle TDC-Kanäle mit den selben Placement-Constraints implementiert sind und
die selben Taktsignale erhalten, sollten sich eventuell vorhandene Asymmetrien im Routing der TDC-Register in einer systematischen Über, bzw. Unterrepräsentation von Bins
im Histogramm zeigen. Dazu wurde über alle Kanäle der Mittelwert der DNL gebildet.
Wie in Abbildung 8.3 zu sehen, zeigt sich eine signifikante Überrepräsentation von Bin 7
und eine Unterrepräsentation von Bin 0. Das bedeutet, dass die Daten am 8. Flipflop des
TDC-Registers effektiv zu spät eingetaktet werden. Die Ursache hierfür könnte ein systematischer Phasenfehler bei der Generierung der Taktsignale im MMCM sein. Unabhängig
von der beschriebenen systematischen Abweichung, schwanken die DNLs aller TDC-Bins
in einer Größenordnung von ca. 5-10% LSB. Da das Routing des Datensignals vollständig
fixiert ist, liegt die Ursache wahrscheinlich in der Verteilung der Taktsignale im FPGA.
Abbildung 8.3: Mittelwert der DNL für alle TDC-Bins im Aragorn-TDC.
42
8.1 Differentielle und integrale Nichtlinearität
Abbildung 8.4: TDC-Kanal mit der besten differentiellen Nichtlinearität.
Abbildung 8.5: TDC-Kanal mit der schlechtesten differentiellen Nichtlinearität.
43
8.1 Differentielle und integrale Nichtlinearität
Abbildung 8.6: TDC-Kanal mit der besten integralen Nichtlinearität.
Abbildung 8.7: TDC-Kanal mit der schlechtesten integralen Nichtlinearität.
44
8.2 Zeitauflösung
8.2
Zeitauflösung
Die Zeitauflösung eines TDC ergibt sich aus der Standardabweichung der Verteilung der
Messwerte, für ein konstantes Zeitintervall. Da alle TDC-Kanäle dieselben Testpulse messen, die Signallaufzeiten zum TDC-Rgister für jeden Kanal individuell unterschiedlich
sind (Leiterbahnlänge, etc.), ergibt sich aus der Differenz der Zeitmarken zweier Kanäle
ein konstantes Zeitintervall.
Es wurden für 10k Einzelmessungen die Differenzen zwischen gemessener Zeitmarke
und der Zeitmarke von Kanal 0 berechnet und für jeden Kanal der Mittelwert darüber
gebildet. Abbildung 8.8 zeigt die Verteilung der Mittelwerte Channel Mean für alle TDCKanäle in Einheiten von LSB. Die gemessenen Zeitintervalle liegen im Bereich -5,6 LSB
bis 8,7 LSB. Der konstante Versatz ab Kanal 48 ist darauf zurückzuführen, dass die Testpulse über zwei LVDS-Fanout-Boards, mit je 48 Kanälen, eingespeist werden.
Channel Mean [LSB]
Channelwise average
10
8
6
4
2
0
−2
−4
−6
0
20
40
60
80
100
TDC-Channel
Abbildung 8.8: Mittelwerte der gemessen Zeitintervalle in Einheiten von LSB für jeden
Kanal. Die Zeitintervalle ergeben sich aus der Differenz von zwei Zeitmarken auf unterschiedlichen Kanälen.
Die Zeitauflösung der TDC-Kanäle (siehe Abbildung 8.9) ergibt sich direkt aus der
Standardabweichung der Einzelmessungen um den Mittelwert Channel Mean aus Abbildung 8.8. Wie erwartet liegen die Zeitauflösungen im Bereich zwischen 0 und 0,5 LSB.
Wie in Kapitel 4.3 gezeigt, hängt die Zeitauflösung eines TDCs von der Länge des
45
8.2 Zeitauflösung
Abbildung 8.9: Die Zeitauflösung der TDC-Kanäle ist die Standardabweichung der Zeitmarken um die Mittelwerte aus Abbildung 8.9.
gemessenen Zeitintervalls ab. Genauer gesagt, lässt sich jedes gemessene Zeitintervall in
ein ganzzahliges Vielfaches von LSB und den Bruchteil f (fractional part) zerlegen. Die
Zeitauflösung in Abhängigkeit des Bruchteils f ist für einen idealen TDC gegeben durch:
p
(18)
σ(f ) = LSB f (1 − f )
Die mittlere Standardabweichung σideal eines idealen TDCs erhält man durch Integration
von Gleichung (18) über f in den Grenzen 0 < f < 1.
π
σideal = · LSB ≈ 0.39LSB
(19)
8
Um den Zusammenhang (18) für alle Kanäle des Aragorn-TDC zu überprüfen, müsste
die Zeitauflösung von jedem Kanal als Funktion des Bruchteils f über die Länge mindestens einer Taktperiode (also 8 LSB) gemessen werden. Da eine derartige Analyse recht
aufwendig und zeitintensiv ist, wurde im Rahmen dieser Arbeit darauf verzichtet.
Um dennoch eine Abschätzung für das zeitliche Auflösungsvermögen des AragornTDCs zu erhalten, kann die mittlere Zeitauflösung über alle 96 Kanäle berechnet werden.
Diese beträgt σ = 0, 404 LSB, und weicht damit 0,014 LSB (≈ 5, 6ps) vom Idealwert 0,39
LSB ab.
Um die Abhängigkeit der Zeitauflösung vom Bruchteil f qualitativ zu untersuchen,
wurde aus den Mittelwerten der Zeitintervalle ChannelM ean, der Bruchteil f in Einheiten von LSB berechnet. Abbildung 8.10 zeigt die Zeitauflösung aller Kanäle in Abhängigkeit von f . Zum Vergleich ist der Verlauf der Zeitauflösung eines idealen TDC nach
46
8.2 Zeitauflösung
Gleichung (18) als rot gestrichelte Linie eingezeichnet.
Im Intervall 0, 2 < f < 0, 8 ist die Zeitauflösung durch den Quantisierungsfehler des
TDC dominiert und stimmt deshalb mit dem idealen TDC überein. In den Randbereichen
der Verteilung, in denen sich f einem ganzzahligen Vielfachen von LSB nähert und der
Quantisierungsfehler abnimmt, erkennt man deutlich die Abweichung von der idealen
Zeitauflösung. Neben dem Jitter des Clock- und Datensignals, limitiert hier vor allem die
integrale Nichtlinearität die mögliche Zeitauflösung. Der Einfluss der INL auf die erwartete
mittlere Zeitauflösung eines TDC Kanals kann folgendermaßen abgeschätzt werden [27]:
q
2
2
2
+ σIN
(20)
σerw,i = σideal
L,0 + σIN L,i
Dabei ist i die Kanalnummer und σIN L,0 , σIN L,i sind die Standardabweichungen der INL
eines einzelnen Kanals. Bildet man Mittelwert σ erw und Standardabweichung der erwarteten mittleren Zeitauflösung über alle TDC-Kanäle, so erhält man:
σ erw = (0, 403 ± 0, 002)LSB
(21)
Dieser Wert stimmt im Rahmen der Unsicherheit mit dem gemessenen Mittelwert σ =
0, 404 LSB überein. Die Zeitauflösung des TDC wird also wie erwartet von der Nichtlinearität der TDC-Bins bergrenzt.
Abbildung 8.10: Zeitauflösung der TDC-Kanäle in Abhängigkeit des Bruchteils f. Bei einem idealen TDC (rot) ist die Zeitauflösung nur durch den Quantisierungsfehler bestimmt.
47
9
Zusammenfassung
Ziel dieser Arbeit war die Implementierung eines 96 Kanal Time-to-Digital-Converters
(TDC) mit einer Zeitauflösung von 400 ps in einem Artix-7 FPGA. Die Arbeit fand im
Rahmen der Entwicklung der Aragorn-Auslesekarte für die neuen Thick-GEM Photonendetektoren des RICH-Detektors am COMPASS-II Experiment statt. Um 96 TDC-Kanäle
mit den Logikressourcen eines Artix-7 FPGA zu realisieren wurde die „Shifted-ClockSampling“-Methode gewählt. Dazu wurde ein TDC-Register bestehend aus acht Flipflops
mit konstant phasenverschobenen Taktsignalen aufgebaut.
Durch die manuelle Platzierung und Verdrahtung der Logikkomponenten eines TDCRegisters, konnte die maximale Laufzeitdifferenz des Datensignals zu den Dateneingängen der acht Flipflops auf ca. 19 ps begrenzt werden. Durch die Nutzung von sogenannten „Placement-Constraints“, konnte die Platzierung und Verdrahtung für alle 96 TDCRegister übernommen werden. Weiterhin gelang es, die Position aller zeitkritischen Schaltungsteile im FPGA zu fixieren. Alle notwendigen Platzierungsinformationen stehen in
einer .xdc-Datei zur Verfügung, sodass die vollständige Reproduzierbarkeit gewährleistet
ist. Des weiteren sind die Komponenten der Takterzeugung für die TDC-Register ebenfalls
auf minimale Laufzeitdifferenz der Taktsignale optimiert und in ihrer Position fixiert. Der
effektive Taktversatz zwischen den acht Taktsignalen eines TDC-Registers konnte auf ca.
22 ps minimiert werden.
Durch Testmessungen konnte die korrekte Funktion auf der Aragorn-Karte verifiziert,
sowie die Kenngrößen des Aragorn-TDC bestimmt werden. Dazu wurde der TDC mit
einer Taktfrequenz von 311,04 MHz betrieben. Die theoretische Größe eines TDC-Bins
beträgt dabei ca. 400ps. Die Nichtlinearität des TDC konnte mit einem „Code-Density
Test“ bestimmt werden und beträgt:
∧
• Maximale differentielle Nichtlinearität: 32% LSB (= 128ps)
∧
Minimale differentielle Nichtlinearität: 14% LSB (=56ps)
∧
• Maximale integrale Nichtlinearität: 32% LSB (= 128ps)
∧
Minimale integrale Nichtlinearität: 15% LSB (= 60ps)
Die Zeitauflösung wurde für jeden Kanal durch die Messung eines Zeitintervalls fester
Größe bestimmt. Die mittlere Zeitauflösung des Aragon-TDC beträgt:
σ = 162ps.
Zur Prüfung der Plausibilität wurde aus der Standardabweichung der integralen Nichtlinearität die zu erwartende mittlere Zeitauflösung des TDC bestimmt. Diese beträgt
σ erw = (161 ± 1) ps und stimmt im Rahmen der Standardabweichung mit dem gemessenen Wert überein. Die Zeitauflösung wird also in erster Linie von der Nichtlinearität der
TDC-Bins begrenzt.
48
Ich erkläre, dass ich die Arbeit selbstständig angefertigt und nur die angegebenen Hilfsmittel benutzt habe. Alle Stellen, die dem Wortlaut oder dem Sinne nach anderen Werken,
gegebenenfalls auch elektronischen Medien, entnommen sind, sind von mir durch Angabe
der Quelle und des Zugriffsdatums sowie dem Ausdruck der ersten Seite belegt; sie liegen
zudem für den Zeitraum von 2 Jahren entweder auf einem elektronischen Speichermedium
im PDF-Format oder in gedruckter Form vor.
Freiburg, den 07.12.2015
49
10
Anhang
Placement Constraints for one TDC-Register
set_property BEL DFF [get_cells {tdc_interface/tdcs[0].tdc_channel/tdc_dffs_a[0].dff_tdc_a}]
set_property LOC SLICE_X3Y8 [get_cells {tdc_interface/tdcs[0].tdc_channel/tdc_dffs_a[0].dff_tdc_a}]
set_property BEL DFF [get_cells {tdc_interface/tdcs[0].tdc_channel/tdc_dffs_a[1].dff_tdc_a}]
set_property LOC SLICE_X2Y8 [get_cells {tdc_interface/tdcs[0].tdc_channel/tdc_dffs_a[1].dff_tdc_a}]
set_property BEL C5FF [get_cells {tdc_interface/tdcs[0].tdc_channel/tdc_dffs_a[2].dff_tdc_a}]
set_property LOC SLICE_X3Y7 [get_cells {tdc_interface/tdcs[0].tdc_channel/tdc_dffs_a[2].dff_tdc_a}]
set_property BEL C5FF [get_cells {tdc_interface/tdcs[0].tdc_channel/tdc_dffs_a[3].dff_tdc_a}] set_property
LOC SLICE_X2Y7 [get_cells {tdc_interface/tdcs[0].tdc_channel/tdc_dffs_a[3].dff_tdc_a}] set_property
BEL DFF [get_cells {tdc_interface/tdcs[0].tdc_channel/tdc_dffs_b[0].dff_tdc_b}] set_property LOC
SLICE_X3Y6 [get_cells {tdc_interface/tdcs[0].tdc_channel/tdc_dffs_b[0].dff_tdc_b}] set_property
BEL DFF [get_cells {tdc_interface/tdcs[0].tdc_channel/tdc_dffs_b[1].dff_tdc_b}] set_property LOC
SLICE_X2Y6 [get_cells {tdc_interface/tdcs[0].tdc_channel/tdc_dffs_b[1].dff_tdc_b}] set_property BEL C5FF
[get_cells {tdc_interface/tdcs[0].tdc_channel/tdc_dffs_b[2].dff_tdc_b}] set_property LOC SLICE_X3Y5
[get_cells {tdc_interface/tdcs[0].tdc_channel/tdc_dffs_b[2].dff_tdc_b}] set_property BEL C5FF [get_cells
{tdc_interface/tdcs[0].tdc_channel/tdc_dffs_b[3].dff_tdc_b}] set_property LOC SLICE_X2Y5 [get_cells
{tdc_interface/tdcs[0].tdc_channel/tdc_dffs_b[3].dff_tdc_b}] set_property BEL A6LUT [get_cells {tdc_interface/tdcs[0].tdc_channel/LUT2_A}]
set_property LOC SLICE_X0Y8 [get_cells {tdc_interface/tdcs[0].tdc_channel/LUT2_A}] set_property BEL A6LUT [get_cells
{tdc_interface/tdcs[0].tdc_channel/LUT2_B}] set_property LOC SLICE_X0Y6 [get_cells {tdc_interface/tdcs[0].tdc_channel/LUT2_B}]
set_property BEL A6LUT [get_cells {tdc_interface/tdcs[0].tdc_channel/LUT2_inst}] set_property LOC SLICE_X1Y7 [get_cells
{tdc_interface/tdcs[0].tdc_channel/LUT2_inst}] set_property LOCK_PINS I0:A3 [get_cells {tdc_interface/tdcs[0].tdc_channel/LUT2_A}]
set_property LOCK_PINS I0:A3 [get_cells {tdc_interface/tdcs[0].tdc_channel/LUT2_B}] set_property LOCK_PINS I0:A5 [get_cells
{tdc_interface/tdcs[0].tdc_channel/LUT2_inst}] set_property PROHIBIT true [get_bels SLICE_X0Y8/A5FF]
set_property PROHIBIT true [get_bels SLICE_X0Y6/A5FF]
set_property FIXED_ROUTE { { CLBLL_L_A CLBLL_LOGIC_OUTS8 { SL1BEG0 IMUX_L1
CLBLL_LL_A3 } NR1BEG0 IMUX_L1 CLBLL_LL_A3 } } [get_nets {tdc_interface/tdcs[0]
.tdc_channel/qms_data_lut}]
set_property FIXED_ROUTE { { CLBLL_LL_A CLBLL_LL_AMUX CLBLL_LOGIC_OUTS20 { SE2BEG2 { BYP_ALT2 BYP2 CLBLM_L_CX } BYP_ALT3 BYP3 CLBLM_M_CX }
ER1BEG3 { BYP_ALT7 BYP7 CLBLM_L_DX } BYP_ALT6 BYP6 CLBLM_M_DX } } [get_nets {tdc_interface/tdcs[0].tdc_channel/D}]
set_property FIXED_ROUTE { { CLBLL_LL_A CLBLL_LL_AMUX CLBLL_LOGIC_OUTS20 { SE2BEG2 { BYP_ALT2 BYP2 CLBLM_L_CX } BYP_ALT3 BYP3 CLBLM_M_CX }
ER1BEG3 { BYP_ALT7 BYP7 CLBLM_L_DX } BYP_ALT6 BYP6 CLBLM_M_DX } }[get_nets {tdc_interface/tdcs[0].tdc_channel/LUT2_B_n_0}]end
50
Placement Constraints for MMCMs and Co.
lock positions of both MMCMs
set_property BEL MMCME2_ADV [get_cells {clock_interface/first_mmcm/U0/mmcm_adv_inst}]
set_property LOC MMCME2_ADV_X0Y2 [get_cells {clock_interface/first_mmcm/U0/mmcm_adv_inst}]
set_property BEL MMCME2_ADV [get_cells {clock_interface/second_mmcm/U0/mmcm_adv_inst}]
set_property LOC MMCME2_ADV_X0Y3 [get_cells {clock_interface/second_mmcm/U0/mmcm_adv_inst}]
LOC global clock buffer pre_mmcm
set_property LOC BUFGCTRL_X0Y15 [get_cells {tcs_clk_bufg}]
clock buffer for feedback_clk
set_property LOC BUFGCTRL_X0Y3 [get_cells {clock_interface/first_mmcm/U0/clkf_buf}]
set_property LOC BUFGCTRL_X0Y20 [get_cells {clock_interface/second_mmcm/U0/clkf_buf}]
feedback clk
set_property
FIXED_ROUTE
{
{
CMT_LR_LOWER_B_MMCM_CLKFBOUT
CMT_R_LOWER_B_CLK_MMCM11
HCLK_CMT_MUX_CLK_4
CLK_HROW_TOP_R_CK_BUFG_CASCO8
CLK_BUFG_BUFGCTRL4_I0
}
}
[get_nets
{clock_interface/second_mmcm/U0/clkfbout_mmcm2}]
set_property
FIXED_ROUTE
{
{
CLK_BUFG_BUFGCTRL4_O
CLK_BUFG_CK_GCLK20
CLK_BUFG_REBUF_R_CK_GCLK20_TOP
CLK_HROW_CK_MUX_OUT_L1
CLK_HROW_CK_HCLK_OUT_L1
CLK_HROW_CK_BUFHCLK_L1 HCLK_CMT_MUX_MMCM_CLKFBIN CMT_LR_LOWER_B_MMCM_CLKFBIN } } [get_nets
{clock_interface/second_mmcm/U0/clkfbout_buf_mmcm2}]
bufg first_mmcm AND second_mmcm routing
set_property
FIXED_ROUTE
{
{
CLK_BUFG_BUFGCTRL15_O
CLK_BUFG_CK_GCLK15
{
CLK_BUFG_REBUF_R_CK_GCLK15_BOT
CLK_HROW_CK_MUX_OUT_L0
CLK_HROW_CK_HCLK_OUT_L0
CLK_HROW_CK_BUFHCLK_L0
HCLK_CMT_MUX_MMCM_CLKIN1
CMT_LR_LOWER_B_MMCM_CLKIN1
}
CLK_BUFG_REBUF_R_CK_GCLK15_TOP
CLK_HROW_CK_MUX_OUT_L0
CLK_HROW_CK_HCLK_OUT_L0
CLK_HROW_CK_BUFHCLK_L0 HCLK_CMT_MUX_MMCM_CLKIN1 CMT_LR_LOWER_B_MMCM_CLKIN1 } } [get_nets
{tcs_clk_bufg_out}]
51
LITERATUR
Literatur
[1] M. Gorzellik, Entwicklung eines digitalen Triggersystems für RückstoßprotonDetektoren. Diplomarbeit, Universität Freiburg, 2013.
[2] T. Baumann, Entwicklung einer Schnittstelle zur Übertragung von Pulsinformationen
eines Rückstoßdetektors an ein digitales Triggersystem. Diplomarbeit, Universität
Freiburg, 2013.
[3] F. Gautheron, COMPASS-II Proposal. Tech. Rep. CERN-SPSC-2010-014. SPSC-P340, CERN, Geneva, May 2010.
[4] M. Leberig and L. Gatignon, The M2 Beam Line Villar Meeting CERN. July 2004.
[5] M. Becker, Serielle Takt- und Datenübertragung am COMPASS-Experiment. Staatsexamensarbeit, Universität Freiburg, 2014.
[6] M. Büchele, Entwicklung eines FPGA-basierten 128-Kanal Time-to-Digital Converter fur Teilchenphysik-Experimente. Diplomarbeit, Universität Freiburg, 2012.
[7] F. Herrmann, Development and Verification of a High Performance Electronic Readout Framework for High Energy Physics. Dissertation, Universität Freiburg, August,
2011.
[8] S. Schopferer, An FPGA-based Trigger Processor for a Measurement of Deeply Virtual Compton Scattering at the COMPASS-II Experiment. Dissertation, Universität
Freiburg, 2013.
[9] M. Büchele, THick Gas ElectronMultiplier (THGEM) detector readout based on TDCFPGAs. DPG Frühjahrstagung Frankfurt, 2014.
[10] S. Dalla Torre, “Ion backflow in thick gem-based detectors of single photons,” IOP
Publishing for SISSA Medialab, vol. doi:10.1088/1748-0221/8/01/P01021, Jan. 2013.
[11] S. Henzler, Time-to-Digital Converters. Springer Series in Advanced Microelectronics
29, 2010.
[12] L. Zaworski, Quantuzation error in time-to-digital converters, vol. XIX. Metrol. Meas.
Syst., No. 1, pp. 115–122, 2012.
[13] J. Kalisz, “Review of methods for time interval measurements with picosecond resolution,” Military University of Technology, DOI: 10.1088/0026-1394/41/1/004, 2003.
[14] Xilinx Inc., 7 Series FPGAs Clocking Resources User Guide. UG472, v1.11.2, June,
2015.
www.xilinx.com.
52
LITERATUR
[15] I. Kuon und J. Rose, “Measuring the Gap Between FPGAs and ASICs,” IEEE Transactions on computer-aided design of integrated circuits and systems, vol. 26, pp. 203–
215, FEBRUARY 2007.
[16] R. Woitowitz, K. Urbanski und W. Gehrke, Digitaltechnik: Ein Lehr- und Übungsbuch. Springer Berlin Heidelberg, 6. übearb. Aufl., 2012.
[17] S. Zhang, Delay Characterization in FPGA-based Reconfigurable Systems. Diplomarbeit, Universität Stuttgart, 2013.
[18] V. Matrose, “Optimierung der Verdrahtbarkeit unter Berücksichtigung heterogener
Verdrahtungsressourcen hierarchischer FPGA-Architekturen,” Dissertation, Technische Universität Berlin, 2009.
[19] Xilinx Inc., 7 Series FPGAs Overview. DS180, v1.17, May, 2015.
www.xilinx.com.
[20] Xilinx Inc., 7 Series FPGAs Configurable Logic Block. ug474, v1.7, Nov., 2014.
www.xilinx.com.
[21] J. Reichhardt, Lehrbuch Digitaltechnik: eine Einführung mit VHDL. Oldenbourger
Wissenschaftsverlag, 3. überarb. und erw. Aufl., 2013.
[22] H. Fischer et. al., “The COMPASS Online Data Format,” 2000.
[23] Xilinx Inc., Vivado Design Suite User Guide: Implementation. UG904, v2012.4, Dez.,
2012.
www.xilinx.com.
[24] Xilinx Inc., Vivado Design Suite User Guide: Using Constraints. UG903, v2012.2,
Sept., 2012.
www.xilinx.com.
[25] T. Grussenmeyer, Entwicklung eines modularen und verteilten Datenaufnahmesystems für Testexperimente. Diplomarbeit, Universität Freiburg, 2013.
[26] I. Baronti et. al., “On the differential nonlinearity of time-to-digital converters based on delay-locked-loop delay lines,” IEEE transactions on nuclear science, vol. 48,
pp. 2424–2432, December 2001.
[27] A. Mäntyniemi, An integrated CMOS high precision time-to-digital converter based
on stabilized three-stage delay line interpolation. Dissertation, University of Oulu,
2004.
53

Documentos relacionados