10.07.2015 Aufrufe

Entwicklung eines FPGA-basierten 128-Kanal Time-to-Digital ...

Entwicklung eines FPGA-basierten 128-Kanal Time-to-Digital ...

Entwicklung eines FPGA-basierten 128-Kanal Time-to-Digital ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Entwicklung</strong> <strong>eines</strong> <strong>FPGA</strong>-<strong>basierten</strong><strong>128</strong>-<strong>Kanal</strong> <strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converterfür Teilchenphysik-ExperimenteMaximilian BücheleFakultät für Mathematik und PhysikAlbert-Ludwigs-Universität Freiburg


<strong>Entwicklung</strong> <strong>eines</strong><strong>FPGA</strong>-<strong>basierten</strong> <strong>128</strong>-<strong>Kanal</strong><strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converter fürTeilchenphysik-ExperimenteDiplomarbeitvorgelegtvonMaximilian BüchelePhysikalisches InstitutAlbert-Ludwigs-UniversitätFreiburgJanuar 2012


1. EinleitungNach dem Standardmodell der Teilchenphysik ist die uns umgebende Materie ausLep<strong>to</strong>nen und Hadronen aufgebaut. Die Lep<strong>to</strong>nen wie beispielsweise das Elektronsind Elementarteilchen, wohingegen die Hadronen wie das Nukleon eine Substrukturaufweisen. Messungen des anomalen magnetischen Moments des Nukleons [1] ließendie Annahme zu, dass sich das Nukleon aus weiteren Elementarteilchen zusammensetzt.Weitere Hinweise wurden durch die Entdeckung einer Vielzahl von Baryonenund Mesonen, in die man die Hadronen unterteilt, in der Höhenstrahlung und anTeilchenbeschleunigern geliefert.In Streuexperimenten konnte Ende der sechziger Jahre bestätigt werden, dass Hadronenaus punktförmigen Teilchen aufgebaut sind. Das theoretische Modell zurBeschreibung der Substruktur von Hadronen ist als Quark-Par<strong>to</strong>n-Modell bekannt.Heute werden die Par<strong>to</strong>nen mit den Quarks und den Gluonen identifiziert. DasNukleon besteht demnach aus drei Valenzquarks, die von den Sea-Quarks (Quark-Antiquark-Paare) und den Gluonen, den Austauschteilchen der starken Wechselwirkung,umgeben sind. In vielen Hochenergiephysik-Experimenten wurde in denletzten Jahrzehnten die Impulsverteilung der Konstituenten des Nukleons gemessen,die durch die Par<strong>to</strong>n-Verteilungsfunktionen parametrisiert werden.Eine Fragestellung, die bis heute nicht vollständig verstanden ist, beschäftigt sichmit der Spinstruktur des Nukleons. Ein naives Modell, nach dem sich der Spin desNukleons aus den Spinbeiträgen der drei Valenzquarks zusammensetzt, wurde durchMessungen des EMC 1 -Experiments am CERN 2 Ende der achtziger Jahre widerlegt[2]. In den letzten Jahren wurde die Gluon-Polarisation am COMPASS 3 -Experimentam CERN gemessen, mit dem Ergebnis, dass sich entgegen der Erwartung der Spindes Nukleons nicht nur mit den Spinbeiträgen der Quarks und Gluonen erklärenlässt, da der Beitrag der Gluonen dafür zu gering ist.Ein vielversprechendes theoretisches Konzept für die Beschreibung des Aufbausdes Nukleons liefern die generalisierten Par<strong>to</strong>nverteilungen, durch die es erstmals1 European Muon Collaboration2 Conseil Européen de la Recherche Nucleaire3 Common Muon and Pro<strong>to</strong>n Apparatus for Structure and Spectroscopy


2 1. Einleitungmöglich sein könnte, die <strong>to</strong>talen Drehimpulse der Quarks und Gluonen direkt zubestimmen. Die generalisierten Par<strong>to</strong>nverteilungen sollen am COMPASS-II-Experimentin exklusiven Prozessen wie der tief-virtuellen Comp<strong>to</strong>n-Streuung gemessenwerden. Die physikalischen Grundlagen zur Beschreibung des inneren Aufbaus desNukleons sowie der Zusammenhang der generalisierten Par<strong>to</strong>nverteilungen mit dertief-virtuellen Comp<strong>to</strong>n-Streuung werden in Kapitel 2 erläutert. Für die Durchführungdieser Messungen findet momentan ein Upgrade der Spektrometerkomponentensowie die Integration weiterer Nachweissysteme in das bestehende COMPASS-Experiment statt [3].Das COMPASS-II-Experiment, dessen Aufbau in Kapitel 3 beschrieben wird, istein ”Fixed-Target“-Experiment, bei dem ein hochenergetischer Teilchenstrahl anruhenden Pro<strong>to</strong>nen oder Neutronen gestreut wird. Der Nachweis der gestreutenTeilchen erfolgt in einem zweistufigen Spektrometer in Vorwärtsrichtung. Für diepräzise Rekonstruktion der Teilchentrajek<strong>to</strong>rien werden die Zeitmarken der in denSpurdetek<strong>to</strong>ren registrierten physikalischen Ereignisse von ”<strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converter“(TDC) gemessen und in digitaler Form aufgezeichnet.Ziel dieser Arbeit ist die <strong>Entwicklung</strong> <strong>eines</strong> <strong>FPGA</strong> 4 -<strong>basierten</strong> <strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converter,im folgenden M1-TDC genannt, für den Einsatz am COMPASS-II-Experiment.Die digitalen Detek<strong>to</strong>rsignale werden vom sogenannten GANDALF 5 -Modulentgegengenommen, das an der Universität Freiburg entwickelt wurde. Das GAN-DALF Framework stellt ein elektronisches Auslesesystem zur <strong>Digital</strong>isierung undEchtzeitanalyse von Detek<strong>to</strong>rsignalen dar und wird in Kapitel 4 beschrieben. DieVerarbeitung der Detek<strong>to</strong>rsignale erfolgt in einem Xilinx Virtex-5 <strong>FPGA</strong>, in demdie TDC-Firmware implementiert wird.Ein GANDALF-Modul kann als TDC-Einheit insgesamt <strong>128</strong> differentielle Eingangssignaleentgegennehmen. Daraus leitet sich die Spezifikation des M1-TDC ab,<strong>128</strong> TDC-Kanäle verarbeiten zu können. Für die Durchführung präziser Flugzeitmessungenmuss die Messgenauigkeit besser als die Zeitauflösung der Spurdetek<strong>to</strong>rensein, so dass eine TDC-Zeitauflösung besser als 100 ps angestrebt wird. DasHerzstück des M1-TDC ist eine ”Trigger Matching Einheit“. Anhand <strong>eines</strong> externerzeugten Triggersignals, das im COMPASS-II-Experiment die interessanten Ereignissedefiniert, werden die gespeicherten TDC-Messwerte ausgewählt und zum Datennahmesystemgesendet.Aufgrund der begrenzten Logikresourcen des <strong>FPGA</strong> wird für die Zeitmessung einShifted Clock Sampling“ Algorithmus verwendet. Dabei wird das TDC-Register”von 16 äquidistant phasenverschobenen Taktsignalen getaktet. Diese werden mitzwei PLL 6 im <strong>FPGA</strong> generiert. Bei dieser Methode muss eine minimale Laufzeitdifferenzdes Datensignals zu den 16 Flipflop des TDC-Registers gewährleistet sein.Das Signalrouting kann bei der Implementierung des <strong>FPGA</strong>-Entwurfs nur indirektbeeinflusst werden. Eine große Herausforderung des Projektes liegt daher im homogenenPlacement und Routing der Komponenten des TDC-Registers für alle <strong>128</strong>Eingangssignale.4 Field Programmable Gate Array5 Generic Advanced Numerical Device for Analytic and Logic Functions6 Phase Locked Loop


In Kapitel 5 werden neben der Funktionsweise und den Kenngrößen <strong>eines</strong> TDCverschiedene TDC-Konzepte vorgestellt. Die Beschreibung der wichtigsten Komponentendes verwendeten <strong>FPGA</strong> erfolgt in Kapitel 6. Das Thema von Kapitel 7 ist die<strong>FPGA</strong>-Implementierung des M1-TDC. Kapitel 8 zeigt die Messung der differentiellenund integralen Nichtlinearität sowie der Zeitauflösung des M1-TDC. Zusätzlichwurde die Funktion des M1-TDC mit einem unabhängigen Messgerät verifiziert,indem am COMPASS-II-Experiment parallel zum momentan eingesetzten F1-TDC<strong>128</strong> Kanäle <strong>eines</strong> szintillierenden Faserhodoskops ausgelesen wurden.3


4 1. Einleitung


2. Physikalische GrundlagenIn diesem Kapitel werden die physikalischen Grundlagen zur Untersuchung der Spinstrukturdes Nukleons behandelt. Die tief-inelastische Lep<strong>to</strong>n-Nukleon-Streuung bildetden Ausgangspunkt für die Untersuchung des inneren Aufbaus des Nukleons,anhand der das Konzept der Par<strong>to</strong>n-Verteilungsfunktionen eingeführt wird.Auf universelle Weise wird das Nukleon durch generalisierte Par<strong>to</strong>nverteilungenbeschrieben, die ebenfalls Gegenstand dieses Kapitels sind. Mit den generalisiertenPar<strong>to</strong>nverteilungen ist es erstmals möglich, die Drehimpulsbeiträge der Quarks undGluonen zum Spin des Nukleons direkt zu bestimmen. Abschließend wird der Mechanismusder tief-virtuellen Comp<strong>to</strong>n-Streuung vorgestellt, über die im COMPASS-II-Experiment generalisierte Par<strong>to</strong>nverteilungen gemessen werden sollen.


6 2. Physikalische Grundlagen2.1 Der Spin des NukleonsDer Spin wird in Einheiten der Planck-Konstante ¯h angegeben und beträgt für1 1Nukleonen 2¯h. Das Nukleon ist aus Quarks, die den Spin 2¯h tragen, sowie Gluonenmit Spin 1¯h aufgebaut.Der Spin des Nukleons kann als Summe der <strong>to</strong>talen Drehimpulse J q und J g seinerKonstituenten geschrieben werden 1 [4]J¯h = 1 2 = J q + J g , (2.1)so dass sich der Gesamtspin aus den Beiträgen der Quarks und Antiquarks ∆Σ undder Gluonen ∆G sowie aus deren Drehimpulsbeiträgen L q und L g zusammensetzt:S¯h = 1 2 = 1 2 ∆Σ + ∆G + L q + L g . (2.2)Die Helizitätsbeiträge ∆Σ ≈ 0, 3 und |∆G| ≈ 0, 2−0, 3 [5] sind in vorangegangenenExperimenten bestimmt worden, wohingegen die Größen der Drehimpulsbeiträge L qund L g unbekannt sind.Einen Zugang zu den <strong>to</strong>talen Drehimpulsen J q und J g ermöglichen die generalisiertenPar<strong>to</strong>nverteilungen (GPD 2 ), auf die in Abschnitt 2.4 eingegangen wird. DerZusammenhang zwischen den GPD H f und E f und den <strong>to</strong>talen Drehimpulsen derQuarks bzw. Gluonen ist durch die Summenregel von X. Ji gegeben [6]:J f = 1 ∫ 12 lim dx x [ H f (x, ξ, t) + E f (x, ξ, t) ] . (2.3)t→0−1Die Variablen in Gleichung 2.3 sind in Abschnitt 2.4 definiert. Im COMPASS-II-Experiment sollen die generalisierten Par<strong>to</strong>nverteilungen gemessen werden. Einenexperimentellen Zugang bietet unter anderem die tief-virtuelle Comp<strong>to</strong>n-Streuung,auf die in Abschnitt 2.5 eingegangen wird.2.2 Tief-inelastische Lep<strong>to</strong>n-Nukleon-StreuungDie tief-inelastische Lep<strong>to</strong>n-Nukleon-Streuung (DIS 3 ) gibt Aufschluss über deninneren Aufbau des Nukleons. Dabei streut ein Lep<strong>to</strong>n l an einem Quark des NukleonN, wobei im für COMPASS-II relevanten Energiebereich ein virtuelles Pho<strong>to</strong>n γ ∗ausgetauscht wird. Das Nukleon wird in einen angeregten Zustand versetzt oder das1 Die Q 2 -Abhängigkeit der betrachteten Größen wird im Folgenden vernachlässigt.2 Generalized Par<strong>to</strong>n Distributions3 Deep Inelastic Scattering


2.3. Par<strong>to</strong>n-Verteilungsfunktionen 7gestreute Quark kann das Nukleon verlassen und fragmentiert in ein oder mehrereHadronen X:l + N → l ′ + X. (2.4)Wenn nur das gestreute Lep<strong>to</strong>n l ′ nachgewiesen wird, spricht man von ”inklusiver“Streuung. Bei der ”semi-inklusiven“ Streuung wird zusätzlich mindestens ein Hadronnachgewiesen. Werden alle Teilchen des hadronischen Endzustands gemessen,so spricht man von ”exklusiver“ Streuung. Die wichtigsten kinematischen Größensind in Tabelle 2.1 angegeben. Eine schematische Darstellung der tief-inelastischenLep<strong>to</strong>n-Nukleon-Streuung zeigt Abbildung 2.1.Tabelle 2.1: Kinematische Variablen der DIS.p = (E, ⃗p) lab= (E, 0, 0, |⃗p|) Viererimpuls des einlaufenden Lep<strong>to</strong>nsp ′ = (E ′ , ⃗p ′ ) Viererimpuls des auslaufenden Lep<strong>to</strong>nsP = (E p , P ⃗ ) lab= (M, 0, 0, 0) Viererimpuls des Pro<strong>to</strong>nsq = p − p ′ Viererimpuls des virtuellen Pho<strong>to</strong>nslabν = P ·qMy = P ·qP ·p= E − E ′ Energieverlust des gestreuten Lep<strong>to</strong>nslabQ 2 = −q 2 lab≈ 4EE ′ · sin 2 ϑ 2= ν Relativer Energieverlust des gestreuten Lep<strong>to</strong>nsEnegatives Quadrat des Viererimpulses desvirtuellen Pho<strong>to</strong>nsx Bj = Q2 lab2.3. Par<strong>to</strong>n = Q2Bjorken-Skalenvariable2P qDistribution 2Mν Functions 7p ’ µµpγ *qNPuudhhππ +Abbildung 2.1: Die semi-inklusive tief-inelastische Lep<strong>to</strong>n-Nukleon-Streuung [7].Figure 2.1: Simplified schematic diagram of semi-inclusive deep inelastic scattering [9].2.3 Par<strong>to</strong>n-VerteilungsfunktionenWhile the former tensor can be calculated in QED the second expression for the “soft”hadronic part can be parametrized with par<strong>to</strong>n distribution functions (PDFs). The crosssection in (2.6) can be expressed by using the structure functions F 1 and F 2 for DIS onunpolarized nucleons [13]:Bei inelastischen Streuprozessen gibt es zwei freie Parameter, für die üblicherweisedie Virtualität des Pho<strong>to</strong>ns Q 2 und die Bjorken-Skalenvariable x Bj gewählt werden.[() ]d 2 σdx Bj dy = 4πα2x Bj yQ 2 y 2 x Bj F 1 (x Bj ) + 1 − y − x2 Bj y2 M 2Q 2 F 2 (x Bj ) . (2.7)


8 2. Physikalische Grundlagenx Bj ist ein Maß für die Inelastizität der Streuung, wobei für elastische Prozessex Bj = 1 und bei inelastischen Prozessen 0 < x Bj < 1 gilt.Der inelastische Streuprozess kann in einen harten“ lep<strong>to</strong>nischen Teil und einen”weichen“ hadronischen Teil separiert werden, sodass der differentielle Wirkungsquerschnittder DIS in Abhängigkeit von Q 2 und x Bj als Produkt <strong>eines</strong> lep<strong>to</strong>nischen”Tensors L µν und <strong>eines</strong> hadronischen Tensors W µν geschrieben werden kann [8, 9]:d 2 σdΩdE ′ = α2 emQ 4 E ′E L µνW µν . (2.5)Der lep<strong>to</strong>nische Tensor wird in perturbativer Quanten-Elektro-Dynamik (QED)berechnet und beschreibt die Streuung des virtuellen Pho<strong>to</strong>ns an einem Quark. Dagegenkann der hadronische Tensor nur durch experimentell bestimmte Par<strong>to</strong>n-Verteilungsfunktionen(siehe Abschnitt 2.3) parametrisiert werden. Der Wirkungsquerschnittwird durch die vier dimensionslosen Strukturfunktionen F 1 , F 2 , g 1 und g 2ausgedrückt, wobei F 1 (x Bj ) und F 2 (x Bj ) die Streuung an einem unpolarisierten Nukleon,die Strukturfunktionen g 1 (x Bj ) und g 2 (x Bj ) die Streuung an einem transversalpolarisierten Target beschreiben [10].Die Struktur des Nukleons wird im Quark-Par<strong>to</strong>n-Modell durch punktförmige Teilchen,die ”Par<strong>to</strong>nen“, beschrieben, wobei die geladenen Par<strong>to</strong>nen mit den Quarks, dieungeladenen Par<strong>to</strong>nen mit den Gluonen, den Austauschteilchen der starken Wechselwirkung,identifiziert werden. Dazu betrachtet man das Nukleon in einem Bezugssystem,dem sogenannten ”Infinite Momentum Frame“, in dem die transversalenImpulse und die Ruhemassen der Konstituenten des Pro<strong>to</strong>ns vernachlässigtwerden können [11]. Auf der Zeitskala der Wechselwirkungszeit des virtuellen Pho<strong>to</strong>nsmit dem Nukleon können die Par<strong>to</strong>nen als freie Teilchen aufgefasst werden, andenen das virtuelle Pho<strong>to</strong>n elastisch gestreut wird. Für Q 2 ≫ M 2 kann die Bjorken-Skalenvariable im Infinite Momentum Frame als Bruchteil des Viererimpulses desNukleons aufgefasst werden, der von einem Par<strong>to</strong>n getragen wird.2.3.1 Unpolarisierte Par<strong>to</strong>n-VerteilungsfunktionenEs sei die Verteilungsfunktion q f (x Bj ) der Quark-Impulse gegeben, so dassq f (x Bj )dx Bj die Wahrscheinlichkeit angibt, ein Par<strong>to</strong>n vom Typ f mit einem Impulsbruchteilim Intervall [x Bj , x Bj + dx Bj ] zu finden.Die Strukturfunktionen F 1 und F 2 aus Abschnitt 2.1 lassen sich durch die unpolarisiertenPar<strong>to</strong>n-Verteilungen (PDF 4 ) parametrisierenF 1 (x Bj ) = 1 ∑e 22fq f (x Bj ), (2.6)f∑F 2 (x Bj ) = x Bj e 2 fq f (x Bj ), (2.7)wobei die Quark-Ladungen mit e f bezeichnet werden und über alle Quark-Flavourf summiert wird.4 Par<strong>to</strong>n Distribution Functionsf


2.4. Generalisierte Par<strong>to</strong>nverteilungen 92.3.2 Polarisierte Par<strong>to</strong>n-VerteilungsfunktionenDie Helizitätsverteilung der Quarks wird durch die polarisierten Par<strong>to</strong>n-Verteilungsfunktionenbeschrieben. Die Helizitätsverteilung kann in inelastischen Streuprozessenuntersucht werden, indem longitudinal polarisierte Lep<strong>to</strong>nen an paralleloder entgegengesetzt zur Bewegungsrichtung der Lep<strong>to</strong>nen polarisierten Nukleonengestreut werden. Aufgrund der Helizitätserhaltung kann das virtuelle Pho<strong>to</strong>n nurvon einem Quark entgegengesetzter Helizität absorbiert werden.Die Verteilungsfunktion q → ⇒f (x Bj ) gibt die Wahrscheinlichkeit an, ein Quark mitImpulsbruchteil x Bj und gleicher Helizität wie das polarisierte Nukleon zu finden,sowie q → ⇐f (x Bj ) die Wahrscheinlichkeit für Quarks mit entgegengesetzter Helizität.Damit ist die Quark-Helizitätsverteilung gegeben durch∆q f (x Bj ) = q → ⇒f (x Bj ) − q → ⇐f (x Bj ). (2.8)Die unpolarisierten PDF aus Abschnitt 2.3.1 lassen sich ebenfalls durch die polarisiertenPDF ausdrücken:q f (x Bj ) = q → ⇒f (x Bj ) + q → ⇐f (x Bj ). (2.9)Die Strukturfunktion g 1 (x Bj ) aus Abschnitt 2.1 beschreibt den Wirkungsquerschnittder DIS für die Streuung an polarisierten Nukleonen und kann daher durchdie polarisierten PDF parametrisiert werdeng 1 (x Bj ) = 1 ∑e 22f∆q f (x Bj ), (2.10)fwobei über alle Quark-Flavour f summiert wird. Die Strukturfunktion g 2 hat imQuark-Par<strong>to</strong>n-Modell keine anschauliche Bedeutung.Den Spinbeitrag der Quarks zum Spin des Nukleons (2.2) erhält man durch Integrationder polarisierten PDF über x Bj und Summation über alle Quark-Flavour:∆Σ = ∑ f∫ 10∆q f (x Bj ) dx Bj . (2.11)2.4 Generalisierte Par<strong>to</strong>nverteilungenDie generalisierten Par<strong>to</strong>nverteilungen (GPD) stellen ein theoretisches Konzeptzur Beschreibung des Nukleons dar und enthalten im Grenzfall sowohl die PDFaus Abschnitt 2.3 als auch die elastischen Formfak<strong>to</strong>ren des Nukleons [12, 13]. Für


10 2. Physikalische Grundlagenviele exklusive Prozesse wie zum Beispiel bei der tief-virtuellen Comp<strong>to</strong>n-Streuung(DVCS 5 ) (siehe Abschnitt 2.5) kann die Fak<strong>to</strong>risierung des Streuprozesses in einenweichen und einen harten Anteil, wie bei der Beschreibung der DIS aus Abschnitt2.2 gezeigt wurde, beibehalten werden.Die Einführung der GPD zur Beschreibung des weichen Teils der Streuung liefertein universelles Bild des Nukleons, da GPD Informationen über die Verteilung derlongitudinalen Impulse als auch der transversalen Positionen der Par<strong>to</strong>nen im Nukleonvereinen. Die Messung der GPD stellt die einzige bekannte Möglichkeit zurBestimmung des <strong>to</strong>talen Drehimpulsbeitrags der Quarks zum Spin des Nukleons dar.2.4.1 Kinematische VariablenNeben den inklusiven kinematischen Variablen, die in Tabelle 2.1 erläutert wurden,kommen zur Beschreibung der GPD zwei weitere Variablen hinzuundt = (p − p ′ ) 2 = (q − q ′ ) 2 = −∆ 2 (2.12)ξ ≈x Bj2 − x Bj. (2.13)Die Mandelstam-Variable t gibt den Viererimpuls-Übertrag auf das Nukleon an,wobei q ′ den Viererimpuls des auslaufenden Pho<strong>to</strong>ns bezeichnet. Dagegen kann dieSkewness-Variable ξ als der longitudinale Impulsübertrag auf das gestreute Quarkwährend des DVCS-Prozesses interpretiert werden. Das Quark mit dem longitudinalenImpulsbruchteil x + ξ im Anfangszustand weist nach der Emission des reellenPho<strong>to</strong>ns den Impulsbruchteil x − ξ auf (siehe Abbildung 2.2). Dabei gilt x ≠ x Bj .Der gesamte Impulsübertrag beträgt 2ξ.Im Folgenden werden die vier Spin- 1 /2-GPD H, ˜H, E und Ẽ verwendet, derenEigenschaften in Tabelle 2.2 zusammengefasst sind.Tabelle 2.2: Die vier Spin- 1 /2-GPD: H und ˜H sind Nukleon-Helizität erhaltende, Eund Ẽ Nukleon-Helizität umkehrende GPD. Die polarisierten Funktionen sind durch(˜) gekennzeichnet.Nukleon-HelizitäterhaltendNukleon-HelizitätumkehrendQuark-Helizitäts unabhängig H q,g E q,gQuark-Helizitäts abhängig ˜Hq,g Ẽ q,g5 Deeply Virtual Comp<strong>to</strong>n Scattering


virtualities. The interaction between the virtual pho<strong>to</strong>n and a quark from the nucleoncan be separated from remaining nucleon structure in the “soft part” of the process usingthe GPD as a universal description [15]. In Fig. 2.4 a handbag diagram for the DeeplyVirtual Comp<strong>to</strong>n Scattering (DVCS) process in the Bjorken limit (Q 2 → ∞, fixed x Bj2.4. Generalisierte Par<strong>to</strong>nverteilungen 11and small |t| /Q 2 ) is given.→ ∞ | |γ*q q’γhardsoftx + ξx − ξGPDsp p’t = −∆ 2Abbildung 2.2: Handbag-Diagramm der tief-virtuellen Comp<strong>to</strong>n-Streuung [3]. DerFigure weiche 2.4: Teil Handbag wird durch diagram GPDforbeschrieben.the DVCS process [5]. The soft part is described by GeneralizedPar<strong>to</strong>n Distribution functions. The kinematic variables are explained in section 2.4.1.2.4.2 Grenzfälle der GPDIm Grenzfall2.4.1 Kinematic VariablesIn the following an additional set t = of0kinematic und ξ = variables 0 describing the GPD will beintroduced. They depend on the pho<strong>to</strong>n virtuality Q 2 = −q 2 (see Tab 2.1) and thetransferred sind der <strong>to</strong>tal Viererimpuls four-momentum und die Helizität des Nukleons in Anfangs- und Endzustandidentisch und die GPD können mit den aus Abschnitt 2.3 bekannten PDF inZusammenhang gesetzt werdent = (p − p ′ ) 2 = (q − q ′ ) 2 = −∆ 2 (2.17)between the für initial x > and 0 : final H f (x, state 0, 0) of= the q f (x), nucleon. ˜Hf (x, Additional 0, 0) = ∆qvariables f (x), are(2.14)x and ξwhich give thefür average x < 0 as : Hwell f (x, as 0, 0) half = −¯q the f (−x), difference ˜Hf (x, between 0, 0) = the ∆¯q f (−x). initial and(2.15)the finallongitudinal momentum fractions of the nucleon which is carried by the par<strong>to</strong>n in the“hard Die part” GPD of Htheund process. ˜H beschreiben In the in DVCS diesemprocess Fall diethe unpolarisierten x variable is undintegrated polarisierten over aPDF für Quarks (x>0) und Antiquarks (x


12 2. Physikalische Grundlagenwobei die Funktionen F f 1 (t), F f 2 (t), h f A (t) und gf A(t) die Beiträge der Quark-Flavourf zu den Dirac-, Pauli-, Axial- und Pseudoskalar-Formfak<strong>to</strong>ren darstellen.2.4.3 Phänomenologische Interpretation der GPDDie GPD können im Grenzall ξ = 0 als Wahrscheinlichkeitsdichte für die Ortsverteilungder Par<strong>to</strong>nen interpretiert werden. In diesem Fall ist der Viererimpulsübertragauf das Nukleon rein transversal, das heißt t = −∆ 2 = −∆ 2 L − ∆2 ⊥ = −∆2 ⊥ .Die räumliche Verteilung der Par<strong>to</strong>nen mit Impulsbruchteil x bei einem transversalenAbstand ⃗ b ⊥ vom Impulsschwerpunkt des Nukleons ist durch die Fouriertransformiertevon H(x, 0, −∆ 2 ⊥ ) gegeben [14]:q f (x, ⃗ b ⊥ ) =∫ d 2 ∆ 2 ⊥(2π) 2 e−i∆ ⊥·⃗b ⊥H f (x, 0, −∆ 2 ⊥). (2.20)2.4. Wie Generalized Abbildung Par<strong>to</strong>n 2.3 zeigt, Distributions kann mit der Funktion q f (x, ⃗ b ⊥ ) eine Tomografie“ des”15Nukleons erstellt werden, da sie für festes x die Ortsverteilung der Quarks in dertransversalen Ebene abbildet 6 .pioncloudvalencequarksxPblongitudinaltransverse(a)(b)x < 0.1 x ~ 0.3 x ~ 0.8Abbildung 2.3: Tomografie des Nukleons [15]: (a) Gleichung (2.20) gibt die Ortsverteilungder Quarks mit longitudinalem Impuls P x im Abstand b vom Impulsschwerpunktan. (b) Tomografische Bilder für verschiedene Impulsbruchteile x. Bei x < 0, 1Figure 2.6: Nucleon Tomography: (a) The distribution of the transverse distance b from thecenter of momentum of the nucleon of par<strong>to</strong>ns which are carrying the fraction x of the longitudinalwird die Verteilung dominiert von den Sea-Quarks, während für x ∼ 0, 3 die ValenzmomentumQuarks in of den the nucleon. Vordergrund (b) Tomographic treten. Für große viewsx of wird thedie nucleon Verteilung at three durch values dasofaktivex. x < 0.1:In the Quark low im x range Impulsschwerpunkt the distributiondes Nukleons dominatedbestimmt.by sea quarks and gluons. x ≈ 0.3: In this xregion a core built from the valence quarks is prominent. x ≈ 0.8: For large values of x the sizeof the nucleon is mainly described from the active par<strong>to</strong>n which is the center of momentum ofthe nucleon [19].2.5 Tief-virtuelle Comp<strong>to</strong>n-StreuungDie tief-virtuelle Comp<strong>to</strong>n-Streuung (DVCS) ermöglicht einen experimentellen Zugangzur Messung der GPD. DVCS bezeichnet die Streuung <strong>eines</strong> Lep<strong>to</strong>ns an einemMeasurements Nukleon, wobeiof ein the reelles t-slope Pho<strong>to</strong>n parameter emittiert can, wird: therefore, help <strong>to</strong> understand the dependencyon the transverse size of the nucleon on the momentum fraction carried by the6 Für bestimmte x gilt b = ⃗ b ⊥ .scattered par<strong>to</strong>n. The characteristic t-slope can be determined with the ansatzdσdt ∝ (exp(−B(x Bj) · |t|), (2.30)


B (GeV -2 )862.5. Tief-virtuelle Comp<strong>to</strong>n-Streuung 13α' = 0.12542ZEUSH1-HERA IH1-HERA II< Q 2 > = 3.2 GeV 2< Q 2 > = 4 GeV 2< Q 2 > = 8 GeV 2α' = 0.26l + N → l ′ + N ′ + γ. (2.21)COMPASS< Q 2 >= 2 GeV 2Das Nukleon0bleibt dabei intakt. Der DVCS-Prozess interferiert mit dem Bethe-280 days at 160 GeVHeidler-Prozess (BH), unter dem man eine Lep<strong>to</strong>n-Nukleon-Streuung versteht, beider durch Bremsstrahlung ein reelles Pho<strong>to</strong>n vom ein- oder auslaufenden Lep<strong>to</strong>nemittiert -2 wird. Die Anfangs- und Endzustände beider Streuprozesse sind ununterscheidbar.Zum Vergleich zeigt Abbildung 2.4 die Feynman-Diagramme von DVCSund BH.10 -4 10 -3 10 -2 10 -1Der differentielle Wirkungsquerschnitt für die Lep<strong>to</strong>-Produktion reeller Pho<strong>to</strong>nensetzt sich aus den Streuamplituden τ DV CS und τ BH von DVCS und BH sowie einemInterferenzterm I zusammen [7]:Figure 2.8: Projections for the x Bj dependence of the t-slope parameter B(x Bj ). The calculationsare done for the region 1 < Q 2 < 8 GeV 2 [22, 23, 24]. The dashed lines representthe correspondingdσ(lN →x Bjl ′ rangeN ′ γ)of the experiment. For the predictions two different values of α ′ =0.125 GeV −2 and αdxdQ 2 ′ = 0.260 GeVd |t| dφ∝ |τ−2 BH| were 2 + chosen. |τ DV CS | The 2 + τ DV CS τBH ∗ + τDV ∗ }expected values{{for CSτ B BH are. (2.22)}given for simulationswith and without ECAL0. For each of the red data point, theIleft vertical bar represents thestatistical error only and the right one also includes the added quadratic systematic uncertainty.Der Winkel φ bezeichnet den Winkel zwischen der Lep<strong>to</strong>nebene, die vom ein- undauslaufenden Lep<strong>to</strong>n aufgespannt wird, und der Ebene, die durch das reelle Pho<strong>to</strong>nsowie dem rückgestreuten Nukleon definiert wird.lγ*lγlγγ*llγ*γlx+ξ x -ξN(a)NN N N N(b)(c)Abbildung 2.4: Produktion reeller Pho<strong>to</strong>nen in der Lep<strong>to</strong>n-Nukleon-Streuung:Figure DVCS 2.9: (a) Leading und Bethe-Heidler-Prozess order processes for lep<strong>to</strong> (b), production (c) [7]. of real pho<strong>to</strong>ns. (a) DVCS, (b) and(c) Bethe-Heidler process [25].Da die Produktion reeller Pho<strong>to</strong>nen im Bethe-Heidler-Prozess rein elektromagnetischerNatur ist, müssen DVCS und BH zur Untersuchung der GPD separiert werden.Während für kleine Werte von x Bj der DVCS-Wirkungsquerschnitt sehr klein istund BH-Prozesse dominieren, überwiegt DVCS für x Bj > 0, 03 über BH, so dass indiesem Bereich hauptsächlich die DVCS-Amplitude zum Wirkungsquerschnitt (2.22)beiträgt (siehe Abbildung 2.5).Eine weitere Möglichkeit den DVCS-Prozess zu untersuchen, ist durch die Messungdes Wirkungsquerschnitts (2.22) mit unterschiedlich geladenen Lep<strong>to</strong>nen gegeben.Da die BH-Amplitude dabei unbeeinflusst bleibt, die DVCS-Amplitude jedoch ihr


14 2. Physikalische Grundlagen< 0.010.005 < x Bj< 0.030.01 < x Bj> 0.03 x Bjexpected nb of events8060|BH+DVCS| 22|BH||DVCS| 2Interferenceexpected nb of events2520|BH+DVCS| 22|BH||DVCS| 2Interferenceexpected nb of events654|BH+DVCS| 22|BH||DVCS| 2Interference153401022051000-150 -100 -50 0 50 100 150φ (deg)-150 -100 -50 0 50 100 150φ (deg)-150 -100 -50 0 50 100 150φ (deg)Figure Abbildung 5: Monte 2.5: Monte-Carlo-Simulation simulation of the exclusive des exklusiven process µ Streuprozesses + p → µ ′+ pγ forµp Q 2 → > 1µpγ GeVin2 ,showing Abhängigkeit the φ angle des Winkels distribution φ. Die for Abbildung three bins zeigt in x B : den 0.005 DVCS- < x B und < 0.01 BH-Beitrag (left), 0.01 für


2.5. Tief-virtuelle Comp<strong>to</strong>n-Streuung 15S = σ l−↑ + σ l+↓ ∝ Im(F 1 H) sin(φ) (2.25)D = σ l−↑ − σ l+↓ ∝ Re(F 1 H) cos(φ). (2.26)Aus der Summe S folgt der Imaginärteil des Comp<strong>to</strong>n-Formfak<strong>to</strong>rs H, der eineFaltung von H mit einer, die harte Comp<strong>to</strong>n-Streuung beschreibende Funktion darstellt.Die Differenz D enthält den Realteil des Comp<strong>to</strong>n-Formfak<strong>to</strong>rs H. Aus derKenntnis der GPD H lässt sich, wie in Abschnitt 2.4.3 erläutert, eine Tomografiedes Nukleons ableiten.


16 2. Physikalische Grundlagen


3. Das COMPASS-II-ExperimentDas COMPASS-II-Experiment am CERN ist ein ”Fixed-Target“-Experiment, beidem ein hochenergetischer Teilchenstrahl an ruhenden Pro<strong>to</strong>nen oder Neutronen gestreutwird. Seit dem Jahr 2002 werden erfolgreich Messungen zur Untersuchung derSpinstruktur des Nukleons sowie zur Hadronenspektroskopie durchgeführt. Für dieDurchführung zukünftiger Messungen wie beispielsweise der tief-virtuellen Comp<strong>to</strong>n-Streuung (DVCS) (siehe Abschnitt 2.5) findet aktuell ein Upgrade der Spektrometerkomponentenstatt [3].In diesem Kapitel wird der Aufbau des Experiments, der sich aus der Teilchenstrahlführung,dem Target sowie dem Spektrometer zusammensetzt, beschrieben.Im Hinblick auf die in Kapitel 2 behandelten physikalischen Grundlagen wird imFolgenden auf den Aufbau bei Verwendung <strong>eines</strong> Myonenstrahls eingegangen. Eineausführliche Beschreibung des Experiments findet sich in [16].


18 3. Das COMPASS-II-Experiment3.1 Der TeilchenstrahlFür das COMPASS-II-Experiment steht wahlweise ein hochenergetischer MyonenoderHadronenstrahl zur Verfügung, der vom Super Pro<strong>to</strong>n Synchrotron (SPS) amCERN geliefert wird. Der SPS-Beschleuniger produziert einen hochenergetischenPro<strong>to</strong>nenstrahl mit bis zu 400 GeV, der in mehrere sogenannte Beamlines ausgekoppeltwerden kann. In der M2-Beamline, an dessen Ende sich das COMPASS-II-Experiment befindet, trifft der Pro<strong>to</strong>nenstrahl auf ein Beryllium-Target (T6). Dabeientstehen hauptsächlich Pionen und Kaonen, von denen ein Großteil nach einer Impulsselektionauf dem Weg durch einen 600 m langen Tunnel über die ReaktionenK + → µ + + ν µ und π + → µ + + ν µ in Myonen zerfällt. Aufgrund der Paritätsverletzungdes Zerfalls sind die Myonen natürlicherweise polarisiert. Der Polarisationsgradhängt vom Verhältnis zwischen Mesonen- und Myonenimpuls ab.Zur Erzeugung des Myonenstrahls wird ein Absorber in den Strahl geschobenen,der den hadronischen Anteil im Teilchenstrahl aussortiert. Anschließend findet eineweitere Fokussierung und Impulsselektion der Myonen statt, wobei der Teilchenstrahlvon mehreren Dipolmagneten in Richtung Erdoberfläche gelenkt wird. Füreinen möglichst großen Myonenfluss wird eine Abweichung der Teilchenimpulse vonbis zu 5 % vom Sollwert akzeptiert. Aufgrund dessen muss der Impuls jedes Myonsgemessen werden. Vor dem Eintreffen in der Experimenthalle wird der Strahl vonDipolmagneten (B6) wieder in die Horizontale fokussiert. Dabei kann der Teilchenimpulsaus dem Krümmungsradius bestimmt werden. Die Teilchenspur wird dazuvon der Beam Momentum Station (BMS) gemessen, die aus sechs, den Dipolmagnetenumgebenden Hodoskopen (BM01 - BM06) aufgebaut ist (siehe Abbildung3.1).BM03BM04BM01BM02Q29Q30B6Q31Q32BM06MIB3beamBM05Abbildung 3.1: Aufbau der BMS zur Impulsmesssung der Strahlteilchen [16].−137.2 −131.0 −123.8−73.7 −70.8 −61.3Der Teilchenstromzyklus, auch Distance Spillfrom genannt, target ist (m) abhängig vom SPS-Cycle, dessenDauer von der Anzahl der angegliederten Experimente bestimmt wird. Im JahrFigure 5. Layout of the Beam Momentum Station for the COMPASS muon beam.2011 betrug die Extraktionszeit 9,6 s. Während dieser Zeit werden die Teilchen vomTable 4Beschleuniger Parameters and performance auf dasofT6 the 190 Target GeV/c negative gelenkt. hadronPro beam. Spill treffen bis zu 2 · 10 8 Myonen inBeam parametersMeasuredder Wechselwirkungszone ein. Der Teilchenimpuls kann zwischen 80 und 200 GeV/cBeam momentum190 GeV/cgewählt werden.Hadron flux at COMPASS per SPS cycle ≤ 10 8Das Proportion nominelle of negativeBeamprofil pions ist von einem Halo aus Myonen umgeben, die nicht 95% ausreichendProportion fokussiert of negative kaons werden konnten. Diese Myonen werden nicht am Target 4.5% gestreutOther components (mainly antipro<strong>to</strong>ns) 0.5%und müssen daher von der Datennahme ausgeschlossen werden. Ein Ve<strong>to</strong>system ausTypical spot size COMPASS target (σ x × σ y) 3 × 3 mmSzintillationszählern vor dem Target schließt diese Myonen bei der Triggergenerierungaus (siehe Abschnitt 23.4).positive beams the proportions of the various particleschange: at 190 GeV/c the positive beam consistsof 71.5% pro<strong>to</strong>ns, 25.5% pions and 3.0% kaons. Themaximum allowed hadron flux is 10 8 particles perSPS cycle, limited by radiation safety rules assumingless than 20% interaction length material alongthe beam path.electron beam is used for an absolute calibration ofthe electromagnetic calorimeters.


3.2. Das Target 193.2 Das TargetFür die DVCS-Messungen am COMPASS-II-Experiment wird eine Luminositätvon 10 32 cm −2 s −1 für den µ + -Strahl angestrebt. Da die Luminosität vom Teilchenflussund der Länge des Targets abhängt, ist der Einsatz <strong>eines</strong> 2,5 m langen Targetsaus flüssigem Wassers<strong>to</strong>ff geplant. Die in der exklusiven Reaktion µp → µpγrückgestreuten Pro<strong>to</strong>nen müssen dabei in einem Rücks<strong>to</strong>ß-Pro<strong>to</strong>n-Detek<strong>to</strong>r (RPD)nachgewiesen werden, der das Target umgibt.Der RPD ist aus Szintilla<strong>to</strong>rstreifen aufgebaut, die an beiden Enden von Pho<strong>to</strong>multipliern(PMT) ausgelesen werden. Die Szintilla<strong>to</strong>rstreifen bilden zwei konzentrischeKreise um das Target. Die Dimensionen des Detek<strong>to</strong>rs sind so gewählt, dass dervolle Winkelbereich, unter dem die Rücks<strong>to</strong>ßpro<strong>to</strong>nen zur Strahlrichtung erwartetwerden, abgedeckt wird. Aus der Flugzeitmessung der Pro<strong>to</strong>nen beim Durchgangdurch die Detek<strong>to</strong>rringe kann der Impuls ermittelt werden. Eine Zeitauflösung desDetek<strong>to</strong>rs von 200 ps ist notwendig, um die Pro<strong>to</strong>nen vom Untergrund zu trennen.3.3 Das SpektrometerDie gestreuten Teilchen werden in einem Spektrometer nachgewiesen, das sichin Strahlrichtung hinter dem Target befindet und eine Länge von 50 m aufweist.Aufgrund der breiten Impulsverteilung der auslaufenden Strahlteilchen sowie dergeforderten Winkelakzeptanz ist das Spektrometer zweistufig aufgebaut. Die ersteSpektrometerstufe (LAS) ist für Streuwinkel bis 180 mrad ausgelegt, wohingegenTeilchen bis zu einem Winkel von 30 mrad in der zweiten Stufe (SAS) nachgewiesenwerden.Beide Spektrometerstufen verfügen über einen Dipolmagneten (SM1 und SM2),welche die Teilchen in der horizontalen Ebene ablenken, um aus dem Krümmungsradiusder Teilchenspur den Impuls zu bestimmen. Für die Spurrekonstruktion werdenverschiedene Detek<strong>to</strong>ren verwendet, an die entsprechend ihrer Position im Spektrometerunterschiedliche Anforderungen gestellt werden. Darüber hinaus verfügt dasSpektrometer über Detek<strong>to</strong>ren zur Teilchenidentifikation sowie über elektromagnetischeund hadronische Kalorimeter zur Energiemessung. Abbildung 3.2 zeigt eineisometrische Ansicht des COMPASS-II-Experiments. Die Anordnung der Detek<strong>to</strong>renim Spektrometer ist in Abbildung 3.3 angegeben.3.3.1 Spurdetek<strong>to</strong>renFür eine präzise Rekonstruktion der Teilchentrajek<strong>to</strong>rien werden im COMPASS-II-Experiment verschiedene Spurdetek<strong>to</strong>ren eingesetzt. Je näher sich diese am Targe<strong>to</strong>der an der Strahlachse befinden, des<strong>to</strong> höher sind die Anforderungen an die ZeitundOrtauflösung sowie die Ratenakzeptanz. Weiter entfernt von der Strahlachsemüssen die Detek<strong>to</strong>ren dagegen eine größere aktive Fläche abdecken.Direkt auf der Strahlachse befinden sich über das Spektrometer verteilt acht szintillierendeFaserdetek<strong>to</strong>ren (SiFi) sowie drei Siliziumstreifendetek<strong>to</strong>ren vor dem Target.Die Zeitauflösung der SiFis liegt bei 400 ps, um auch bei Raten von mehrerenMHz pro Detek<strong>to</strong>rkanal die Teilchentrajek<strong>to</strong>rien auflösen zu können. Abhängig von


28 3. The COMPASS-II Experiment20 3. Das COMPASS-II-ExperimentMuon-FilterHCAL2ECAL2SM1RICH-1ECAL1HCAL1SM2Muon-Filter2SciFiMuon-Filter1µ ± ◗RPDYX ◗◗❦✻✟ ✟ ✟✯ZFigure Abbildung 3.3: Artistic 3.2: view Isometrische of the 60 m Ansicht long COMPASS des COMPASS-II two-stage spectrometer Experiments [33]. This [17]. sketchshows the setup used in 2009 with a RPD for DVCS test measurements. In future the smallrecoil pro<strong>to</strong>n detec<strong>to</strong>r (RPD) used in 2009 will be replaced by the CAMERA detec<strong>to</strong>r described inder section Entfernung 3.3.2. The different vom Target tracking weisen detec<strong>to</strong>rs die installed Detek<strong>to</strong>ren alongSeitenlängen the 50 m two von stage vier spectrometer bis zwölfZentimeter are also identified. auf.Der Bereich bis zu 40 cm Entfernung von der Strahlachse wird von den Micromegas1 und GEM 2 -Detek<strong>to</strong>ren abgedeckt. Die Micromegas befinden sich zwischen demTarget und dem ersten Umlenkmagneten SM1, wohingegen die GEMs im Bereichnach the particles SM1 bis can zum be identified Ende deswith Spektrometers the trackingverteilt detec<strong>to</strong>rs. installiert The detec<strong>to</strong>rs sind. spatial and timeresolution and its capable rate are optimized depending on the distance from the targetforImexcellent äußerenmomentum Bereich desresolution Spektrometers in the befinden range fromsich1 GeV/c schließlich up <strong>to</strong> verschiedene 200 GeV/c. Gasdetek<strong>to</strong>renspectrometer wie is MWPCs separated 3 , in<strong>to</strong> Straw-Detek<strong>to</strong>ren two stages withund twoDCs dipole 4 mitmagnets einer aktiven covering Fläche detec<strong>to</strong>rs vonThebis withzudedicated 5,0 x 2,5characteristics: m 2 .the large angle spectrometer (LAS) and the small anglespectrometer (SAS). The tracking stations are composed of detec<strong>to</strong>rs like MicroMegas 2 ,drift chambers, GEM 3 , MWPC 4 , DC 5 and straw detec<strong>to</strong>rs (see Fig. 3.3).3.3.2 TeilchenidentifikationGestreute Myonen werden im Spektrometer durch sogenannte Myon Walls“ von”anderen 2 Micro Teilchen MEsh Gaseous unterschieden. Structure Sie sind aus einem Absorber, von dem eintreffendeHadronen 3 Gas Electron ges<strong>to</strong>ppt Multiplier werden, sowie Spurdetek<strong>to</strong>ren, die sich vor und hinter dem Absorberbefinden, aufgebaut. Kann eine Teilchenspur rekonstruiert werden, die durch5 Drift Chambers4 Multi Wire Proportional Chambersbeide Detek<strong>to</strong>ren verläuft, so muss es sich um ein Myon gehandelt haben.1 Micromesh Gaseous Structure2 Gas Electron Multiplier3 Multiwire Propotional Chamber4 Drift Chambers


3.3. Das Spektrometer 21µ +BeamCOMPASS Spectrometer 2010<strong>to</strong>p viewVe<strong>to</strong> SiliconsTriggerTargetStrawSM1H1TriggerHCAL1H2ECAL1 TriggerSM2MuonFilter1OuterTriggerStrawMuon−HCAL2 Filter2ECAL2InnerTriggerMiddle−TriggerLadderTriggerInnerTriggerGEMLadderTriggerxSciFizSciFiMicroMeGasDCScifiGEMDCRICH−1 DrifttubesMW1SciFiGEMMWPCSciFiGEMMWPCSciFiGEMMWPCLarge area DCMWPCMW2OuterTriggerMiddleTrigger0 10 20 30 4050 mAbbildung Figure3.3: 46: Ansicht Top viewvon of oben the 2010 auf Compass die Anordnung spectrometer der Detek<strong>to</strong>ren setup. [3].TheDie 2010 erstelay-out Myon Wall of the (MW1) Compass ist direkt apparatus vor dem Umlenkmagneten SM2 installiertund verwendet Except otherwise einen 60noted, cm dicken all hardware Eisenabsorber. upgrades Für described die Trajek<strong>to</strong>riemessung in this document wird refer<strong>to</strong>der theAbsorber set-up used vonin Driftröhren 2010 with the flankiert. muon Die beamzweite and the Myon polarised Wall (MW2) NH 3 target. befindet Thesich2010spectrometer am Ende der isSAS-Spektrometerstufe. shown in Fig. 46 and a detailed Hier kommt discussion eine of 2,4most m dicke of the Be<strong>to</strong>nwand components zumcanbeEinsatz. found inDie Ref. SAS-Spurdetek<strong>to</strong>ren [133].zeichnen die Trajek<strong>to</strong>rie vor der MW2 vor. Hinterdem Absorber werden die Teilchenspuren von Driftröhren und MWPCs gemessen.5 Muon triggerZurForIdentifikationboth DVCSvonandHadronenDY measurementsin der LAS-Spektrometerstufethe trigger relies on the detectionwird ein ringabbildenderfast scintilla<strong>to</strong>r Cherenkov-Detek<strong>to</strong>r hodoscopes. (RICH) In case of verwendet. the DVCSBewegen measurement, sich geladene the detection Teilchen of theof muonswithscattered durch einmuon dielektrisches in a very Medium, large kinematic so werden range dieof A<strong>to</strong>me Q 2 and kurzzeitig x B is manda<strong>to</strong>ry, polarisiertwhereas und sendenDrell–Yandabei elektromagnetische programme triggering Strahlung of pairs aus. of Ist oppositely die Teilchengeschwindigkeit charged muons is needed. schnel-fortheler alsMuons die Phasengeschwindigkeit are detected behind thick von Licht concrete im or Medium, iron absorbers interferieren for muon die Wellenfrontenkonstruktiv by measuring und their es bildet scattering sich angle ein Lichtkegel in a planemit perpendicular dem Winkel<strong>to</strong>φ ch thezur dipole Fortbewe-bendingidentificationeitherplane gungsrichtung (target pointing des Teilchens. trigger) or Die byGröße measuring des Winkels the energy φ ch loss , unter using dem thedie deflection Cherenkov- in thedipole Strahlung fields ausgesendet (energy loss wird, trigger). ist abhängig Target pointing vom Teilchenimpuls needs horizontal undscintilla<strong>to</strong>r dem Brechungsindexa width des Mediums: given by the distance <strong>to</strong> the target; the energy loss trigger has vertical stripselementswithwith a width determined by the distance <strong>to</strong> the dipole magnets.5.1 Trigger hodoscopescos φThe measurements will make ch = 1use nβ of = 1 √1the n · . (3.1)existing 1 + m2 hodoscope system selecting inclusiveevents which is operated since 2002 at the Compass 2 experiment [170] and whichpwasImcontinuouslyRICH-Detek<strong>to</strong>rimprovedwirdduringdas Radia<strong>to</strong>rgasthe recent years.CA further upgrade is prepared for the4 F 10 mit einem Brechungsindex vontransverse data taking in 2010.n = 1, 0015 verwendet. Die Cherenkov-Ringe werden von sphärischen Spiegeln inDue <strong>to</strong> the large variation of counting rates, different trigger systems are beingder Fokalebene abgebildet (siehe Abbildung 3.4). Im inneren Bereich werden dieused for different kinematic regions. These parts are:Cherenkov-Pho<strong>to</strong>nen von Mehrkanal-Pho<strong>to</strong>multiplier– the Ladder trigger covering low Q 2 gemessen. Im äußeren Bereichand high y,stehen dazu mit CsI-Pho<strong>to</strong>kathoden ausgestattete– the Middle trigger covering low Q 2 MWPCs zur Verfügung. In Verbindungmit einer Impulsmessung kann der COMPASS-II-RICHand all y,– the Outer trigger covering intermediate Q 2 die Masse von Teilchenbestimmen und damit Pionen, Pro<strong>to</strong>nenand all y,– the LAS trigger covering large Q 2 und Kaonen mit Impulsen zwischenand high x B .2,4 GeV/c und 50 GeV/c unterscheiden.84


22 3. Das COMPASS-II-ExperimentFigure 34. COMPASS RICH-1: principle and artistic view.Abbildung 3.4: Aufbau des RICH-Detek<strong>to</strong>rs in der LAS-Spektrometerstufe [16].the gas in a closed loop circuit through a Cu catalystat ≈ 40 ◦ 1C <strong>to</strong> remove oxygen and through a 5A3.3.3 molecular sieve Energiemessungat ≈ 15 ◦ C <strong>to</strong> trap the water vapourtraces. As a result, water vapour traces below 1 ppmMeasured TransmissionandInO beiden 2 below 3Spektrometerstufen ppm are routinely obtained.befinden sich elektromagnetische All (ECAL1, ECAL2)The VUV light transmission is measured online 0.5O - 5.6 ppmsowie using two hadronische complementary Kalorimeter systems. A dedicated (HCAL1, HCAL2). Die elektronischen 2KalorimeterH 2O - 1.5 ppmsind setup performs aus Bleiglas an integral aufgebaut, measurement mit over denen the sich hochenergetische Pho<strong>to</strong>nen Rayleigh Scattering ab einerrange from 160 nm <strong>to</strong> 210 nm using a UV lamp and aEnergie von 100 MeV nachweisen lassen. Die Pho<strong>to</strong>nen erzeugen durch Paarbildungsolar-blind pho<strong>to</strong>multiplier. A system based on theelektromagnetische use of an UV lamp and a monochroma<strong>to</strong>r Schauer im measures Kalorimeter. Die 0 Schauerelektronen160 180 200bzw. Positronenthe transmission emittierenaswiederum a function ofCherenkov-Licht, the light wave-das von Pho<strong>to</strong>multipliern Wavelength nachgewiesen (nm)220length in the VUV range of interest. Good transparencyof the gas radia<strong>to</strong>r, stable over months, Figure 35. Typical UV light transmission through 1.87 mwird. Aus der Intensität der Cherenkov-Strahlung kann die Energie des einfallendenPho<strong>to</strong>ns was achieved bestimmt from 2003. werden. Figure 35 shows Das Bleiglas a typical besitzt of C 4F 10, eine as measured Dicke von online16 during Strahlungslängen,data taking (crosses).transmission curve in the VUV domain, with the The solid curve is a fit <strong>to</strong> the data. The main contributionssodass die Energiedeposition im Kalorimeter über 99 % beträgt.main contributions <strong>to</strong> the VUV light absorption: <strong>to</strong> the UV light absorption are also shown.Rayleigh ECAL1 scattering, und ECAL2 O 2 and H 2 befinden O. sich jeweils116 vorsphericalden beidenmirror units:hadronischen68 of them areKalorimetern.Im Hinblick auf die DVCS-Messung am hexagons COMPASS-II-Experiment with a side length of 261 mm, the is<strong>to</strong>ther die 48 In-regularstallation 6.1.2. RICH-1 <strong>eines</strong> mirror weiteren system elektromagnetischen are pentagons Kalorimeters with six(ECAL0) different sizes. zwischen The clearance TargetThe RICH-1 optical system [61] consists of two left between adjacent mirrors results in a 4% lossVUVund reflectingSM1sphericalgeplant,surfacesumofeinen <strong>to</strong>tal areagrößerenlargerWinkelbereichof reflecting surface.abzudecken.This optical arrangement, coupled<strong>to</strong> the 3 m long radia<strong>to</strong>r, results in a geometri-than 21 m 2 and a radius of curvature of 6600 mm. Itwas Bei designed den hadronischen <strong>to</strong> focus the images Kalorimetern outside the spectrometeracceptance Samplingkalorimeter, on the pho<strong>to</strong>n detec<strong>to</strong>rs. die ausTheabwechselnden particles incident Schichten at anglesvon of a Eisen few mrad, und andPlas-in-HCAL1 cal aberration und HCAL2 of 0.32handelt mrad for images es sich produced um sogenanntebytikszintilla<strong>to</strong>rmaterialsurface of the plane pho<strong>to</strong>n detec<strong>to</strong>rsaufgebautis a roughsind.ap-Diproximation of the spherical focal surface. The two The mirror substrate is a borosilicate glass, 7 mmEnergiemessungcreasing for particles incidentder einfallendenat larger angles.Hadronenmirrorerfolgt surfacesdurch are a mosaic den Nachweis type composition der hadronischen of thick, corresponding Schauer in <strong>to</strong> den aboutSzintilla<strong>to</strong>ren, 5.5% of a radiation die37Transmissionin den davorliegenden Eisenschichten erzeugt wurden.3.4 Das TriggersystemIn Teilchenphysik-Experimenten müssen enorme Datenraten verarbeitet werden.Zur Unterdrückung des Untergrunds werden die interessanten Ereignisse im COM-PASS-II-Experiment durch ein sogenanntes Triggersignal gekennzeichnet. Der Triggersteuert die Datenauslese aller Module im Experiment und dient als Referenzzeitpunktfür die in den Detek<strong>to</strong>ren gemessenen Zeitmarken. Für die Generierung


3.4. Das Triggersystem 23des Triggersignals stehen wegen der begrenzten Speichertiefe der Ausleseelektronikweniger als 500 ns zur Verfügung [18].Im Folgenden wird der Myontrigger beschrieben, der die gestreuten Myonen vondenen des Halos trennt. Die Anordnung der verwendeten Triggerhodoskope im Spektrometerzeigt Abbildung 3.5. Die Triggerentscheidung wird anhand der Ve<strong>to</strong>- undTriggerhodoskopinformationen sowie einer Energiedeposition in den Kalorimeterngefällt.BeamVe<strong>to</strong>sTargetSM1H1−KECAL1SM2H2π+H3OH4IECAL20000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 11110000 1111H4LH4MH4O01010101010101010101010101010101010101010101010101010101010101H5LH5Mµ +H5IBeamµ− Filterµ− FilterFigure Abbildung 47: Location 3.5: of Anordung the components der Triggerhodoskope relevant for the trigger im Spektrometer (schematically), [3]. see alsoTable 15. The inner trigger system (H4I and H5I) will not be used for DVCS and DYDer dataMyonennachweis taking. muss in einem großen kinematischen Bereich sichergestelltwerden, weshalb vier verschiedene Triggersysteme, bestehend aus jeweils zwei Hodoskopen,In order im <strong>to</strong> guarantee Spektrometer triggering installiert on muons wurden. only, at Davon least befindet one of thesich twoje hodoscopes ein Hodoskop isdirekt located hinter behind einer an Myon absorber Wall. (muon Für filter). Q 2 > In0, each 5 (GeV/c) case, the 2 kann hodoscopes der Streuwinkel are put as close in einerasEbenepossible senkrecht <strong>to</strong> the absorber zur Ablenkebene <strong>to</strong> minimise effects der Dipolmagneten due <strong>to</strong> multiplebestimmt Coulomb scattering werden. Aus in thederExtrapolation absorber. Details des on Streuwinkels the hodoscopes wird areeine givenKorrelation in Table 15 and mita der sketch Targetposition of their positions festgestellt.is shown Die in Triggerhodoskope Fig. 47.sind dazu aus horizontalen Szintilla<strong>to</strong>rstreifen aufgebaut.Für kleinere Q 2 werden die Myonen über den Energieverlust, der aus derAblenkung Ladder trigger in den (H4L, Dipolmagneten H5L): The ladder bestimmt trigger selects wird, muons identifiziert. with small Inscattering diesem Fall angles sinddiebut Szintilla<strong>to</strong>rstreifen high energy losses. vertikal To achieve angeordnet. this selection, both hodoscopes are located behind thespectrometer magnets bending particles in the horizontal plane. Both hodoscopes consistUnter sehr kleinen Winkeln gestreute Myonen werden vom Inner Trigger“ (H4I,of short vertical strips read out on both sides by PMTs. Using ” a coincidence of twoH5I) registriert. Der Ladder Trigger“ (H4L, H5L) detektiert hingegen Myonen,hodoscope strips in H4L ” and H5L, muons with a large deflection in the magnets but verydiesmall unter scattering kleinen angle Winkeln are selected gestreut yielding werden, events aber with eine a large große energy Ablenkung loss, butinsmall denQ Umlenkmagnetenaufweisen. Mit den Hodoskopen des Middle Triggers“ (H4M, H5M)”2 .wird der relative Energietransferbereich im Bereich von 0,1 bis 0,7 unter kleinenStreuwinkeln Middle trigger abgedeckt. (H4M, H5M): Die Hodoskope The middlesind trigger dabei combines aus horizontalen the features und of anvertikalenenergySzintilla<strong>to</strong>rstreifenloss trigger using verticalzur Anwendungelements withbeidera targe<strong>to</strong>benpointingbeschriebenertrigger usingDetektionsmethodena second layer ofhorizontal strips for each of the two hodoscopes. The vertical strips are readout on oneaufgebaut. Für große Qside by PMTs while the 2 bis 10 (GeV/c)horizontal ones are 2 kommt der Outer Trigger“ (H3O, H4O)read on both sides. ” The middle system coverszuma relative Einsatz. energy transfer y from 0.1 <strong>to</strong> 0.7 at small scattering angles.Seit dem Jahr 2010 befinden sich die Hodoskope des LAS Triggers“ (H1, H2)”direkt vor dem RICH (H1) beziehungsweise nach der ersten Myon Wall (H2). DieOuter trigger (H3O, H4O): The outer system consists of a horizontal hodoscope planehorizontalen at the exit of Szintilla<strong>to</strong>rstreifen the second spectrometer werden magnet auf (H3O) beidenand Seiten a second von one Pho<strong>to</strong>multipliern behind the hadron ausgelesen.absorber Aus inder the SAS Meantime (H4O) <strong>to</strong> der obtain Signale vertical wirdtarget anhand pointing. von geometrischen It divided in<strong>to</strong>Kriterien two halvesder<strong>to</strong> avoid very long strips. The size of the second hodoscope is matched <strong>to</strong> the size of themuon wall MW2 chambers used <strong>to</strong> reconstruct muon tracks. All strips are read out bytwo PMTs. The outer system covers all y and large Q 2 up <strong>to</strong> 10 (GeV/c) 2 .85


24 3. Das COMPASS-II-ExperimentLAS Trigger generiert. Der LAS Trigger stellt eine Erweiterung des Triggersystemsauf sehr große Q 2 und x B dar.Ein Ve<strong>to</strong>system vor dem Target schließt die Erzeugung von Triggersignalen fürTeilchentrajek<strong>to</strong>rien, welche die Triggerbedingungen erfüllen jedoch nicht durch dasTarget verlaufen, aus.3.5 Das DatennahmesystemDas Datennahmesystem des COMPASS-II-Experiments hat die Aufgabe, die Datenvon über 250000 Detek<strong>to</strong>rkanälen entgegenzunehmen. Bei Hitraten von teilweiseeinigen MHz pro <strong>Kanal</strong> und Triggerraten bis 100 kHz muss das Datennahmesystemin der Lage sein, Datenraten von mehreren Gigabyte pro Sekunde zu verarbeiten.Den Aufbau des Datennahmesystems zeigt Abbildung 3.6.Die Detek<strong>to</strong>rsignale werden so nahe wie möglich am Detek<strong>to</strong>r digitalisiert. Dazubefinden sich TDC 5 oder ADC 6 direkt auf der Frontend-Elektronik oder in den Auslesemodulenwie dem GANDALF oder CATCH 7 -Modul. Aufgrund der Modularitätder Auslesemodule dienen die genannten Systeme zusammen mit dem GeSiCA 8 -Modul auch dazu, die Daten der Frontendkarten entgegenzunehmen. Hierbei werdenweitere Informationen beispielsweise vom TCS-System (siehe Abschnittt 4.3.2) zuden Datenpaketen hinzugefügt, um sie später bei der Analyse einem bestimmtenDetek<strong>to</strong>r- und Triggerereignis zuordnen zu können. Das TCS-Signal gelangt überdie Auslesemodule zur Frontend-Elektronik und steuert dort die Datenselektion zurUnterdrückung des Untergrunds.Über optische Fasern werden die Daten via S-LINK (siehe Abschnitt 7.7.1) mitbis zu 160 Mbyte/s zu den ROB 9 PCs gesendet. Die Daten auf den ROBs werdenanschließend von sogenannten Eventbuilder-PCs nach Triggerereignissen geordnetzusammengefasst. Eventbuilder und ROBs sind über einen Gigabit-Ethernet-Switchverbunden. Dieser Vorgang erfolgt sowohl in der Onspill- wie in der Offspillzeit.Liegen die Daten <strong>eines</strong> Events auf den Eventbuildern bereit, werden sie zur zentralenDatenaufnahme (CDR) auf dem CERN-Hauptgelände gesendet und erneutzwischengespeichert, bevor sie letztendlich auf Magnetband geschrieben werden.5 <strong>Time</strong> <strong>to</strong> <strong>Digital</strong> Converter6 Analog <strong>to</strong> <strong>Digital</strong> Converter7 COMPASS Accumulate, Transfer and Control Hardware8 GEM and Silicon Control and Acquisition9 Readout Buffer


3.5. Das Datennahmesystem 25000011110000111100001111000011110000111100001111000000001111111100000000111111110000000011111111000000001111111100001111000011110000111100001111000011110000000011111111MUX0000000011111111000000001111111100000000111111110000111100001111000011110000111100001111000011110000000011111111000000001111111100000000111111110000000011111111000011110000111100001111MUXMUXMUX00000000111111110000111100001111000011110000000011111111000011110000111100000000111111110000000011111111000011110000000011111111000011110000111100000000111111110000111100001111000000001111111100001111000011110000000011111111Frontends140 ReadoutModules64 OpticalS−links64 Readout bufferEventbuilding& Recording16 PCs32 port Gigabit switchCATCHF1−TDC, FIADC, RICH5 km70 MB/sTCSMicromegas, DC,Straws, MWPC, MWs,RICH, Calorimeter1 400 Detec<strong>to</strong>rchannels100 MB/s/link10 mGigabitEthernetNetworkand FilterEventbuilderRecordingCentral DataTCS GANDALF ARWENDiscrimina<strong>to</strong>r4 x 512 MByte Spillbuffer/PCCATCH TDCDiscrimina<strong>to</strong>rHodoscopes,Scint. fibres,BMSTCSScint. fibres,TCSGeSiCAHotGESICAAPV25SADC20 m40 MB/s/link150 m100−160 MB/s/linkSilicon,GEMsCalorimeterTCSTCSGANDALFAnalog, Discrimina<strong>to</strong>rBMSRecoil Detec<strong>to</strong>rRICH THGEMDC,AMCDMC250 000Abbildung 3.6: Schematischer Aufbau des COMPASS-II-Datennahmesystems.


26 3. Das COMPASS-II-Experiment


4. Das GANDALF FrameworkDas GANDALF Framework ist ein VXS/VME64x-Modul zur <strong>Digital</strong>isierung undEchtzeitanalyse von Detek<strong>to</strong>rsignalen. Da die Eingangssignale von dedizierten Aufsteckkarten(Mezzanine Cards) entgegengenommen werden, kann das GANDALF-Modul in vielfältigen Anwendungsbereichen eingesetzt werden. Die Hauptplatinedient zur digitalen Signalverarbeitung und verfügt über großzügige Speicherkapazitäten.Verschiedene Schnittstellen ermöglichen die Datenauslese und die Konfigurationdes Moduls.Ursprünglich wurde das GANDALF Framework als Transientenrekorder zur Auslese<strong>eines</strong> Rücks<strong>to</strong>ß-Pro<strong>to</strong>n-Detek<strong>to</strong>rs (RPD) am COMPASS-II-Experiment entwickelt[19–21]. Aufgrund der Modularität des Sytems konnten weitere Anwendungen wiebeispielsweise ein 64-<strong>Kanal</strong>-Meantimer [22] und der in diesem Projekt entwickelteM1-TDC realisiert werden (siehe Kapitel 5-7).


28 4. Das GANDALF Framework4.1 Die HauptplatineDie Hauptplatine ist ein 6U-VXS/VME64x-Modul. Die Signaleingänge sind aufMezzanine Cards angeordnet (siehe Abschnitt 4.2), für die auf der Hauptplatinezwei Steckplätze vorgesehen sind. Über die Aufsteckkarten gelangen die Daten zueinem Xilinx Virtex-5 <strong>FPGA</strong>, dem sogenannten DSP 1 -<strong>FPGA</strong>. Einen Überblick überdas GANDALF-Modul gibt Abbildung 4.1.Im DSP-<strong>FPGA</strong> werden die von den Aufsteckkarten empfangenen Daten verarbeitetund analysiert. Um auch komplexe Algorithmen implementieren zu können, wurdedas Modell XC5VSX95T [23] der Virtex-5-Baureihe verwendet, der über großzügigeLogikresourcen (u.a. 58880 Flipflop) und eine Vielzahl von DSP-Slice-Elementenverfügt, mit denen verschiedene arithmetische Operationen realisiert werden können(siehe Abschnitt 6.1). Ein sogenannter MEM-<strong>FPGA</strong> (XC5VLX30T [23]) ermöglichtden Zugriff auf den 4-Gbit DDR2 2 und den 144-Mbit QDRII+ 3 Speicher der Hauptplatine.Beide <strong>FPGA</strong> verfügen über ”Rocket IO GTP Transceiver“-Elemente [24] zurseriellen Chip-<strong>to</strong>-Chip-Datenübertragung mit bis zu 3,125 Gbit/s pro Signalleitung.DSP- und MEM-<strong>FPGA</strong> sind in beiden Richtungen über acht differentielle Signalleitungenverbunden, sodass eine maximale Datenrate von 25 Gbit/s erreicht werdenkann. Der Datentransfer zwischen den <strong>FPGA</strong> wird über das Aurora Pro<strong>to</strong>koll [25]gesteuert.Der DDR2-RAM 4 erweitert die internen Speicherkapazitäten der <strong>FPGA</strong> und istaus zwei ”HYB18T2Gx02B“-Speicherelementen [26] aufgebaut. Dadurch können Datenlänger zwischengespeichert werden, bevor sie über das S-LINK-Pro<strong>to</strong>koll [27],die USB2.0-Schnittstelle oder den VME-Bus zum Datennahmesystem gesendet werden(siehe Abschnitt 4.1.1). Der Lese- und Schreibzugriff erfolgt über einen 8-bit-Datenbus mit bis zu 500 Mbyte/s. Auf den QDRII+ Speicher kann hingegen aufunabhängigen Ein- und Ausgängen zugegriffen werden. Dies erlaubt simultane LeseundSchreibvorgänge auf den beiden ”CY7C1515V18“ [28] Speicherelementen. DerDatentransfer wird über einen 72 Bit breiten Datenbus bei einer maximalen Datenratevon 4,5 GByte/s realisiert, weshalb sich der QDRII+ zum Beispiel als Cache-Speicher eignet.Die Firmware <strong>eines</strong> <strong>FPGA</strong> muss nach jedem Einschalten neu geladen werden,indem eine sogenannte ”Bitstream“-Datei im <strong>FPGA</strong> implementiert wird. Die Konfigurationkann im GANDALF Framework zum Beispiel über das ”SystemACE“-Tool[29] erfolgen, das die Firmware von einer CompactFlash-Karte auf der Hauptplatineliest. Für den Einsatz in Teilchenphysik-Experimenten ist es wünschenswert, dasGANDALF-Modul über einen Remotezugriff konfigurieren zu können. Dazu wird dieFirmware über den VME-Bus implementiert. Mit einem ”Broadcast Load“-Befehl istes möglich, gleichzeitig mehrere GANDALF-Module im selben Crate mit der gleichenBitstream-Datei zu laden.1 <strong>Digital</strong> Signal Processing2 Double Data Rate: Daten werden auf steigender und fallender Taktflanke übertragen.3 Quad Data Rate: DDR in Kombination mit Dual Port Speicher (unabhängiger Lese-und Schreibzugriff).4 Random Access Memory


4.1. Die Hauptplatine 29Die Kommunikation mit der VME64x-Schnittstelle übernimmt ein Xilinx Cool-Runner CPLD 5 , der sich ebenfalls auf der Hauptplatine befindet und mit dem DSPundMEM-<strong>FPGA</strong> verbunden ist. Ein CPLD hat den Vorteil, dass er nur einmaliginitialisiert werden muss und anschließend sofort nach dem Einschalten aktiv ist.Auch die Steuerung der USB2.0-Schnittstelle erfolgt über den CPLD und bieteteine weitere Konfigurationsmöglichkeit, die beispielsweise bei ”GANDALF Portable“zum Einsatz kommt. Hierbei handelt es sich um ein autarkes GANDALF-Modulmit eigenständiger Stromversorgung, das zusammen mit einem PC zur Datennahmeeingesetzt werden kann [19].Abbildung 4.1: Überblick über das GANDALF-Modul bestückt mit digitalen Aufsteckkarten.In der Mitte des Boards ist die GIMLI-Aufsteckkarte zur Takt- und Triggersignalübertragungzu sehen. Die Logikresourcen von DSP- und MEM-<strong>FPGA</strong> sowiedie Speicherkapazitäten der Hauptplatine sind ebenfalls in der Abbildung angegeben.Die Pfeile deuten die wichtigsten Schnittstellen des GANDALF Frameworks an.4.1.1 Schnittstellen• VME64x-SchnittstelleDas GANDALF Framework erfüllt die VME64x-Spezifikation [30], um in einemCrate mit mehreren Modulen gleichzeitig betrieben werden zu können.Die Anbindung an den VME-Bus erfolgt über die Crate-Backplane mit zwei160-poligen Steckerverbindern (P1, P2). Der VME-Bus setzt sich aus einem64 Bit breiten Daten- und Adressbus zusammen und erlaubt eine Datenübertragungsratevon bis zu 80 MByte/s. Als Bus-Master dient eine Linux CPU,die sich auf dem ersten Steckplatz (Slot) des VME-Crates befindet.5 Complex Programmable Logic Device


30 4. Das GANDALF FrameworkDie VME64x-Schnittstelle bietet eine leistungsfähige Möglichkeit zur Konfigurationund zum Überwachen des GANDALF-Moduls. Unter anderem kannmit einem sogenannten ”vme write“-Befehl über den CPLD auf einen internenAdressspeicher des DSP-<strong>FPGA</strong> geschrieben oder von selbigem gelesen werden.Mit einem weiteren VME-Befehl wird die Anzahl und die Position der Modulein einem Crate ermittelt. Die Ausgabe des Befehls enthält zudem die GAN-DALF Seriennummer. Letztendlich kann auch die Datenauslese mit maximal40 MByte/s über die VME-Schnittstelle erfolgen. Die Firmware zur Steuerungder Kommunikation zwischen CPLD und <strong>FPGA</strong>, das sogenannte CPLD Interface,ist in Abschnitt 4.3.1 beschrieben.• VXS-SchnittstelleVXS [31] ist eine Erweiterung des VME64x-Standards, der die Kommunikationaller Crate-Steckplätze mit einem zentralen VXS-Switch auf der Backplaneermöglicht. Der VXS-Steckverbinder zur Anbindung der VXS-Module befindetsich zwischen den P1- und P2-VME64x Steckern. Der Datentransfer zu jedemVXS-Switch erfolgt über acht differentielle Hochgeschwindigkeitsleitungen (sieheAbbildung 4.2).Die VXS-Schnittstelle wird unter anderem dazu verwendet, mit einem VXS-Switch-Modul aus den Zeit- und Amplitudeninformationen der digitalisiertenRPD-Detek<strong>to</strong>rsignale einen Pro<strong>to</strong>n-Trigger zu generieren.• USB2.0-SchnittstelleMit der USB2.0-Schnittstelle [32] kann alternativ zum VME-Bus eine Verbindungzum CPLD hergestellt werden. Dazu befindet sich ein MiniUSB-Anschluss auf der Vorderseite des GANDALF-Moduls, sodass die Konfigurationdes Moduls auch über die USB-Verbindung erfolgen kann. Zudem ist eswie oben erwähnt möglich, das GANDALF-Modul in Verbindung mit einemDesk<strong>to</strong>p PC über USB auszulesen.• Transition-Card-SchnittstelleAuf der Rückseite der Crate-Backplane befinden sich spezielle Steckplätze,über die eine Interface-Karte an das GANDALF-Modul angeschlossen werdenkann. Die Verbindung wird über benutzerdefinierbare Pins des P2-VME64x-Steckers hergestellt. Um das GANDALF Framework im COMPASS-II-Experimenteinsetzen zu können, ist das Transition-Card Interface zur Verwendungeiner S-LINK-Schnittstelle [27] vorbereitet.Der Datentransfer via S-LINK erfolgt von der ”S-LINK Source Card“ (LSC)über optische Fasern zu einer ”S-LINK Destination Card“ (LDC), die mitdem Datennahmesystem verbunden ist. Das S-LINK-Pro<strong>to</strong>koll ermöglicht eineDatenübertragungsrate von bis zu 160 MByte/s. Kommt ein sogenannter S-LINK Multiplexer zum Einsatz, können bis zu vier Module mit einer einzigenLSC ausgelesen werden, allerdings reduziert sich dadurch die Datenrate proBoard. Um den S-LINK Multiplexer verwenden zu können, muss ein speziellesS-LINK Resetsignal synchron von allen Modulen zur LSC gesendet werden.Alternativ kann das GANDALF-Modul auch über eine dedizierte Interface-Karte mit Gigabit-Ethernet ausgelesen werden.


4.1. Die Hauptplatine 31• Takt- und Trigger-SchnittstelleZur Übertragung von Takt- und Triggersignalen von der GIMLI-Aufsteckkarte4.1. (siehe Hardware Abschnitt 4.2) auf die Hauptplatine können zwei differentielle Signalleitungspaareentgegengenommen werden. Zur Spannungsversorgung der GIMLI-49Aufsteckkarteidentically likebefindenusing thesichVMEzudeminterfaceein(see 3,3section V sowie4.2.2).einA5 V-AnschlussGUI called ”USBauf derSchnittstelle.Toolbox” was created for these processes and is described in section 4.2.4 [60].1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21VME64x slot9 Payload slots4x serial linksSwitch ASwitch B9 Payload slots4x serial linksAbbildungFigure 4.2:SchematicDie VXS-Backplane:overview of the bus structureIn derofMittea VXSdercrate.BackplaneAny GANDALFbefindenmodulesichplaced in slots 2 <strong>to</strong> 10 and 13 <strong>to</strong> 21 has eight high speed lanes <strong>to</strong> each TIGER module placed inzwei Steckplätze für Switch-Module, welche über die VXS-Steckerverbinder der 18slots 11 or 12. Slot 1 is reserved for the VME CPU [25].Payload-Slots für die VME-Module verbunden sind. In diesem Projekt werden dievier bidirektionalen serielle Datenleitungen für den Datentransfer zum VXS-Switchverwendet, 4.1.2 sodass Mezzanine insgesamt Sockets acht unidirektionale Hochgeschwindigkeitsleitungen zurVerfügung stehen. Der erste Slot von links ist für die VME-CPU reserviert [19].The main reason for the modularity of the GANDALF module is the possibility <strong>to</strong>mount different mezzanine cards on<strong>to</strong> the module <strong>to</strong> change its functionality. EachGANDALF module can host two separate mezzanine cards on two mezzanine card sockets4.1.2 Takt- und Triggersignale(MCS) up and down and one clock and trigger mezzanine on the GIMLI mezzanine cardsocket (see Fig. 4.1).Werden mehrerer GANDALF-Module parallel eingesetzt, müssen diese synchronisiertwerden.Presently two types of mezzanine cards, dubbed AMC 9 and DMC 10 exist [25]. A thirdmezzanineImcard, COMPASS-II-Experimentthe OMC 11 has reached productionwirdstatusdies vomduringsogenanntenthe publishingTCS-Systemdate of[33] bewerkstelligt, this thesis. Two von different demtypes ein of 155,52 GIMLI MHz 12 cards Taktsignal exist [25]. sowie These das cardsTriggersignal are used for a überoptische synchronous Fasern input synchron of clockzu andallen trigger Auslesemodulen signals. An overview übertragen of the different wird. mezzanines Das TriggerControl willSystem be given ist in the ausführlich next section. in Abschnitt 4.3.2 beschrieben.9 Analog Mezzanine Card, FPF33410 <strong>Digital</strong> Mezzanine Card, FPF33511 Optical Mezzanine Card, FPF33812 FPF332 (fiber), FPF333 (copper)Die Umwandlung des optischen in ein elektrisches Signal erfolgt in der GIMLI-Aufsteckkarte (siehe Abschnitt 4.2). Über die oben beschriebene Takt- und Trigger-Schnittstelle gelangen die beiden Signale zum DSP-<strong>FPGA</strong>. Das Taktsignal ist darüberhinaus mit den beiden Aufsteckkarten und einem Clock Multiplier Chip (Si5326[34]) verbunden, mit dem sich verschiedene Taktfrequenzen im Verhältnis zur Eingangsfrequenzgenerieren lassen. Der Si5326 gibt zwei jitterarme Taktsignale aus,die im DSP- und MEM-<strong>FPGA</strong> zur Verfügung stehen.


32 4. Das GANDALF FrameworkZusätzlich befindet sich auf der Hauptplatine ein CDCE949 Taktgeberchip [35], derdas Taktsignal für die USB-Schnittstelle und das SystemACE-Tool zur Verfügungstellt. Um die Konfiguration des GANDALF-Moduls über die VME-Schnittstelleauch unabhängig von der Verfügbarkeit <strong>eines</strong> externen Taktsignals gewährleisten zukönnen, verfügt die Hauptplatine über einen mit dem CPLD verbundenen 40 MHzSchwingquarz.4.2 Modularität4.2.1 Die digitale AufsteckkarteDie digitale Aufsteckkarte (DMC) (siehe Abbildung 4.3) wurde entwickelt, umdie <strong>FPGA</strong>-Architektur der Hauptplatine für vielfältige digitale Anwendungen zuerschließen. Dazu werden je 64 Eingangssignale im LVDS 6 - oder LVPECL 7 -Signalstandardpro DMC über differentielle Buffer mit den benutzerdefinierbaren I/Osdes DSP-<strong>FPGA</strong> verbunden. Die Schnittstelle für die 64 Eingangssignale ist aus zweidifferentiellen 32-<strong>Kanal</strong>-VHDCI-Steckverbindern [36] aufgebaut. Der RMS Jitter 8der LVDS-Signalleitungen von der Schnittstelle zu den Eingängen des <strong>FPGA</strong> liegtunter 20 ps. Darüber hinaus ermöglichen LEMO-Steckverbinder auf der MezzanineCard die Verwendung <strong>eines</strong> NIM-Eingangs und zweier NIM-Ausgänge.Durch Umdrehen der Signal-Buffer bei der Bestückung kann mit derselben PCBeine Aufsteckkarte mit 64 LVDS-Ausgängen produziert werden. Mit zwei DMC proGANDAL-Modul stehen insgesamt <strong>128</strong> digitale Signalein- oder ausgänge zur Verfügung.<strong>Digital</strong>e Aufsteckkarten ermöglichen in diesem Projekt die Implementierungdes M1-TDC in den DSP-<strong>FPGA</strong> auf der GANDALF-Hauptplatine.4.2.2 Die analoge AufsteckkarteDie analoge Aufsteckkarte (AMC) wird zur <strong>Digital</strong>isierung von analogen Detek<strong>to</strong>rsignalenverwendet. Auf der Mezzanine Card befinden sich dazu Analog-<strong>to</strong>-<strong>Digital</strong>Converter (ADC) Chips, wobei die PCB mit zwei verschiedenen ADC-Chip-Variantenbestückt werden kann. Entweder 12-bit-ADCs mit einer Abtastrate von 500 MS/soder 14-bit-ADCs mit 400 MS/s.Je 8 analoge Eingänge pro AMC erlauben im ”Normal Mode“ die Verarbeitungvon 16 Eingangssignalen auf einem GANDALF-Modul. Im sogenannten ”InterleavedMode“ können zwei AMC-Kanäle zur Verdoppelung der Abtastrate auf 1000 MS/sbzw. 800 MS/s kombiniert werden. Das GANDALF-Modul bestückt mit analogenAufsteckkarten wird als Transientenrekorder zur Auslese des RPD-Detek<strong>to</strong>rs amCOMPASS-II-Experiment eingesetzt.6 Low Voltage Differential Signaling7 Low Voltage Positive Emitter Coupled Logic8 Jitter ist die kurzfristige Abweichung der signifikanten Zeitpunkte <strong>eines</strong> digitalen Signals von ihrenidealen Positionen [37].


4.2. Modularität 33Abbildung 4.3: Die digitale Aufsteckkarte (DMC): Die Schnittstelle für die 64 EinoderAusgangssignale besteht aus zwei VHDCI-Steckverbindern. In der Abbildung istzudem der NIM-Eingang und die beiden NIM-Ausgänge zu sehen.4.2.3 Die GIMLI-AufsteckkartenDie GIMLI-Aufsteckkarte befindet sich auf einem Steckplatz zwischen den beidenanderen Mezzanine Cards (siehe Abbildung 4.1). Für unterschiedliche Anwendungszweckewurden zwei verschiedene GIMLI-Varianten entwickelt. Die ”Fibre“ GIMLIempfängt im COMPASS-II-Experiment das optisches TCS-Signal, welches nebendem Referenztaktsignal das Triggersignal sowie spezielle, für die Datennahme relevanteInformationen synchron auf die Auslesemodule überträgt (siehe Abschnitt4.3.2).Die Fibre GIMLI-Aufsteckkarte wird dazu verwendet, das optische Eingangssignalin ein elektrisches Signal umzuwandeln und aus dem Datenstrom das Taktsignalzu extrahieren und vom Triggersignal zu separieren. Diese Aufgabe übernimmt einCLC016 Taktrückgewinnungschip von National Semiconduc<strong>to</strong>r [38]. Die getrenntenSignale gelangen über die Takt- und Trigger-Schnittstelle zu ihren Bestimmungsortenauf der GANDALF-Hauptplatine (siehe Abschnitt 4.1.1).Falls kein TCS-System zur Verfügung steht, kommt die sogenannte ”Copper“ GIM-LI-Aufsteckkarte zum Einsatz. Diese nimmt ein separates Takt- und Triggersignalüber zwei LEMO-Steckverbindungen entgegen. Beide Signale sind direkt mit derentsprechenden Schnittstelle auf der Hauptplatine verbunden. Das externe Taktsignalkann zudem durch den 20 MHz Takt <strong>eines</strong> ”Oven Controlled Crystal Oscilla<strong>to</strong>r“(OCXO), der sich ebenfalls auf der Aufsteckkarte befindet, ersetzt werden.


34 4. Das GANDALF Framework4.3 Software4.3.1 Das CPLD InterfaceSowohl die VME64x- als auch die USB2.0-Schnittstelle können zur Konfiguration,Datenauslese und zum Moni<strong>to</strong>ring des GANDALF-Moduls verwendet werden.Die Steuerung auf dem GANDALF-Modul erfolgt wie in Abschnitt 4.1 beschriebenüber den CPLD. Die Kommunikation des CPLD mit dem DSP-<strong>FPGA</strong> übernimmtdas sogenannte CPLD Interface, eine generische VHDL Komponente, die Teil jederFirmware ist, die auf dem DSP-<strong>FPGA</strong> zum Einsatz kommt. Das CPLD Interfaceermöglicht den Zugriff auf einen Konfigurationsspeicher“ und das Ausführen von”” Fast Register“-Befehlen über den VME-Bus sowie das Auslesen <strong>eines</strong> Spy FIFO“”zur Datenübertragung und zum Moni<strong>to</strong>ring des GANDALF-Moduls. Darüber hinauswerden verschiedene Taktsignale aus dem 40 MHz Takt des CDCE949 Taktgeberchips(siehe Abschnitt 4.1.2) generiert, die im CPLD Interface zum Einsatz kommen,aber auch für die anwendungsspezifische <strong>FPGA</strong> Firmware zur Verfügung stehen. ImFolgenden wird auf die für dieses Projekt wichtigen Funktionen eingegangen. Einevollständige Beschreibung des CPLD Interface liefert [19]. Die Firmware selbst istunter http://hadron.physik.uni-freiburg.de/gandalf zu finden.Der Konfigurationsspeicher ist ein True-Dual-Port RAM mit unabhängigem LeseundSchreibzugriff einerseits vom CPLD und andererseits von der Logik des DSP-<strong>FPGA</strong> aus. Auf diese Weise ist eine flexible Konfiguration des GANDALF-Modulssowie die Kommunikation zwischen den Schnittstellen und der <strong>FPGA</strong> Logik möglich.Jeweils 256x32 Bit der Speicherkapazität des Konfigurationsspeichers sind fürdie beiden Aufsteckkarten reserviert. Die verbleibenden 512x32 Bit stehen für dasGANDALF-Modul selbst zur Verfügung. Die Belegung der einzelnen Speicherplätzeist in [39] spezifiziert. Mit dem sogenannten vme write“-Befehl kann über die”VME64x-Schnittstelle vom Speicher gelesen oder auf selbigen geschrieben werden.Beim Laden der <strong>FPGA</strong> Firmware werden die Speicherplätze mit Standardwerten belegt.Beispielsweise dient die Source ID in den S-LINK Headerworten der Zuordnungder Datenpakete zu einem bestimmten GANDALF-Modul (siehe Abschnitt 7.7.1).Sie muss nach der Konfiguration des GANDALF-Moduls frei wählbar sein und wirdvon der TDC-Logik aus dem Konfigurationsspeicher gelesen. Ebenso verhält es sichmit den beiden in Abschnitt 7.4 beschriebenen Parametern Trigger Latency“ und”Trigger Window“. Darüber hinaus wird der Si5326 Clock Multiplier Chip, der das”TDC-Taktsignal liefert, mit Parametern aus dem Konfigurationsspeicher programmiert.Eine weitere Funktion, die das CPLD Interface bereitstellt, ist das sogenannte FastRegister. Hierbei handelt es sich um einen 256 Bit breiten Signalbus, dessen Zuständemit einem weiteren vme write-Befehl gesteuert werden. Es ist möglich, die FastRegister Signale konstant auf ”High“ oder ”Low“ zu setzen oder einen Puls für dieDauer der 40 MHz Taktperiode des CDCE949 Taktgeberchips zu übertragen. Damitlassen sich auf elegante Weise beliebige Prozessabläufe des <strong>FPGA</strong> Designs steuern.Beispielsweise wird mit den Fast Registern die Programmierung des Si5326 eingeleite<strong>to</strong>der ein Update der TDC-Parameter ”Trigger Window“ und ”Trigger Latency“durchgeführt. Über die Fast Register können auch die für die Datennahme wichtigen


4.3. Software 35Spillstruktursignale BOS und EOS aus Abschnitt 4.3.2 sowie externe Triggersignalebei der Verwendung des GANDALF Portable übertragen werden.Zudem sind im CPLD Interface der sogenannte Spy FIFO und eine Resetlogikenthalten. Um Daten über die VME64x- oder die USB2.0-Schnittstelle auszulesen,werden diese zunächst im Spy FIFO zwischengespeichert. Der FIFO hat standardmäßigeine Speichertiefe von 32k Worten und wird durch Kaskadierung mehrererBlock RAM Elemente implementiert. Die dreistufige Resetlogik des CPLD Interfacezeigt in den ersten beiden Stufen den Status der internen PLL an. Das dritte Resetsignalüberwacht die Konfiguration des Si5326 und der TDC-Logik sowie den Statusder PLL zur Generierung der TDC-Taktsignale.4.3.2 Das TCS InterfaceDas Trigger Control System (TCS) [33] dient zur synchronen Verteilung des Referenztaktes(38,88 MHz) und der Triggersignale auf alle Auslesemodule im COMPASS-II-Experiment. Es setzt sich aus einem TCS-Controller, der mit der Triggerlogik unddem Datennahmesystem verbunden ist, und einem TTCex-Modul [40], das die TCS-Informationen kodiert und in ein optisches Signal umwandelt, zusammen. Der TCS-Controller generiert zur Kennzeichnung jedes Events die Event- und Spillnummersowie die Eventlabel, die in den S-LINK Headern (Abschnitt 7.7) enthalten sind,sodass jedes Datenpaket einem bestimmten Event zugeordnet werden kann. Überoptische Fasern gelangt das TCS-Signal zur GIMLI-Aufsteckkarte im GANDALF-Modul, wo die Umwandlung des optischen in ein elektrisches Signal sowie die Taktrückgewinnungstattfindet (siehe Abschnitt 4.2). Das Referenztaktsignal steht inbeiden <strong>FPGA</strong> auf dem GANDALF-Modul zur Verfügung und speist den Clock MultiplierChip, der unter anderem das TDC-Taktsignal erzeugt (siehe Abschnitt 7.2).Damit der minimale Abstand zwischen zwei Triggern nicht von der Übertragungweiterer TCS-Informationen abhängt, sendet der TCS-Controller die Triggersignaleund Eventlabel in separaten Kanälen zum TTCex-Modul. Beide Kanäle werden ineinem speziellen Zeitmultiplexverfahren [40] zu einem seriellen Datenstrom zusammengeführt,bei dem abwechselnd die Informationen beider Kanäle mit der vierfachenFrequenz des Referenztaktes, also einer Datenrate von 155,52 Mbit/s, übertragenwerden. Die Aufgabe der TCS Interface Firmware ist es nun, aus dem seriellenTCS-Datenstrom die Triggersignale zu extrahieren sowie die Triggerinformationenzu dekodieren und für die Datenauslese bereitzustellen.Wie in Abschnitt 3.1 erläutert, hängt der Teilchenstrahlzyklus im COMPASS-II-Experiment vom Supercycle des SPS-Beschleunigers ab und ist in eine sogenannteOnspill-Zeit und eine Offspill-Zeit unterteilt. Nur in der Onspill-Zeit findet die Teilchenextraktionvom Beschleuniger statt. Sie wird durch das ”Begin-of-Spill“-Signal(BOS) und durch das ”End-of-Spill“-Signal (EOS) markiert. BOS- und EOS-Signalwerden zusammen mit der Spillnummer von einem sogenannten ”Broadcast Command“im TCS-Datenstrom übertragen. Das BOS-Signal wird beispielsweise dazuverwendet, die Clock Counter des TDC sowie die intern generierte Eventnummeraus Abschnitt 7.3 und 7.4 synchron zurückzusetzen. Ein Run bezeichnet die Datennahmeperiodezwischen Start und S<strong>to</strong>p des Datennahmesystems, innerhalb dessendie Spills von eins ausgehend nummeriert sind. Spezielle künstlich generierte Triggerkennzeichnen den Datennahmezyklus.


36 4. Das GANDALF FrameworkAngefangen mit dem ersten Trigger <strong>eines</strong> Runs (FER), werden Anfang und Endejedes Spills durch die ”FEC“- und ”LEC“-Events markiert, bis der Run schließlichvom ”LER“-Trigger abgeschlossen wird. Die künstlichen Trigger müssen von denphysikalischen Events der Triggerlogik und den von manchen Detek<strong>to</strong>ren benötigtenKalibrationstriggern unterschieden werden können. Dazu dienen die verschiedenenEventtypen, die zusammen mit der Eventnummer, die von eins ausgehend innerhalbjedes Spills hochgezählt wird, von zwei weiteren Broadcast Commands übertragenwerden. Die wichtigsten Eventtypen sind in Tabelle 4.1 angegeben. Die dekodiertenTCS-Informationen werden vom TCS Interface in einen FIFO geschrieben, sodassdiese Informationen zum Zeitpunkt der Datenauslese zur Verfügung stehen.Tabelle 4.1: Definition der EventlabelEventtypBeschreibung00000 Physikalisches Event00001 Kalibrationstrigger. .11011 Kalibrationstrigger11100 Erstes Event im Run (FER)11101 Letztes Event im Run (LER)11110 Erstes Event im Spill (FEC)11111 Letztes Event im Spill (LEC)


5. <strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> ConverterDie Aufgabe <strong>eines</strong> <strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converter (TDC) ist es, den Zeitpunkt der Zustandsänderung<strong>eines</strong> digitalen Signals möglichst genau zu bestimmen und den Messwertin digitaler Form auszugeben. Dazu wird das Signal in Schritten einer spezifischenQuantisierungsbreite (LSB 1 ) abgefragt, wodurch jedoch unweigerlich dieKenntnis über den genauen Zeitpunkt des Ereignisses verloren geht. Eine wichtigeKenngröße des TDC ist daher die Größe von LSB, auch TDC-Bin genannt.In vielen Fällen werden TDC dazu verwendet, kurze Zeitintervalle, definiert durchein Start- und S<strong>to</strong>ppsignal zu messen. Darüber hinaus ist es aber auch möglich, nurdie Zeitmarken der registrierten Zustandsänderungen auf dem Signal auszugeben.Dies wird im Allgemeinen angewendet, wenn die Ereignisse in undefinierten Zeitabständeneintreffen, und eine möglichst <strong>to</strong>tzeitfreie Verarbeitung angestrebt wird. Soauch in der Hochenergiephysik, wo die in Teilchendetek<strong>to</strong>ren registrierten physikalischenEreignisse für Flugzeitmessungen verwendet werden. Für gewöhnlich wirddazu das analoge Detek<strong>to</strong>rsignal in einen Diskrimina<strong>to</strong>r gegeben und dieses anschließendvon einem TDC gemessen, der die Zeitmarken der Ereignisse ausgibt. Späterkönnen dann, zusammen mit den Messwerten anderer Detek<strong>to</strong>ren, Teilchenspurenim Experiment rekonstruiert werden.1 Least Significant Bit


38 5. <strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converter5.1 KonzepteDie einfachste Methode, um Zeitintervalle oder Zeitmarken zu messen, ist dasSignal mit einem periodischen Taktsignal clk abzutasten und die Taktperioden zuzählen. Die Quantisierungseinheit (LSB) dieser Zählermethode ist gleich der PeriodeT clk des Taktes, alsoLSB = T clk = 1f clk. (5.1)Je größer die Taktfrequenz f clk , des<strong>to</strong> besser ist die Zeitauflösung der Messung.Die maximale Taktfrequenz für den in diesem Projekt verwendeten Xilinx Virtex-5<strong>FPGA</strong> liegt bei 500 MHz [41], was einem TDC-Bin von 2 ns entpricht. Für diemeisten Anwendungen, zum Beispiel Teilchenphysik-Detek<strong>to</strong>ren mit Zeitauflösungenvon ungefähr 100 ps, ist dies nicht ausreichend, weshalb im folgenden zwei Konzeptevorgestellt werden, um durch eine Unterteilung der Taktperiode die Genauigkeit zuerhöhen.Die erste hier vorgestellte Methode wird ”Delayed Data Sampling“ (DDS) genannt.Hierbei wird das zu messende Signal durch eine Reihe von k Verzögerungselementengeleitet und die verzögerten Signale jeweils auf Flipflop gegeben, die allemit demselben Taktsignal getaktet werden (siehe Abbildung 5.1). Die Summe derVerzögerungselemente τ Delay muss dabei der Periode des Taktsignals entsprechen:T clk = k · τ Delay .τ Delay τ Delay τ DelaySignal-DQ -- DQ -- D Q -- DQ - - D Q -- DQ ->DFF>DFF>DFF>>DFFTaktTDC-RegisterAbbildung 5.1: Delayed Data Sampling.Das Ergebnis dieser Vorgehensweise sind um einen konstanten Zeitbetrag τ Delayverschobene Kopien des ursprünglichen Signals. Aus der Ausgabe der Flipflop, dievon diesen Signalen gespeist werden, kann der Zeitpunkt <strong>eines</strong> Ereignisses mit einerGenauigkeit entsprechend der Größe des Zeitintervalls τ Delay = LSB = T clkbestimmtkwerden, da die absolute Verzögerungszeit der Signale hinreichend bekannt ist.Beim sogenannten ”Shifted Clock Sampling“ (SCS) wird hingegen die Phase ∆φdes Taktsignals in k äquidistanten Schritten phasenverschoben, sodass die Summealler Phasenverschiebungen 360 ◦ ergibt, beziehungsweise es gilt ∆φ = 2π k .


5.2. Kenngrößen 39TDC-RegisterSignal-D- DQ -- D Q -- DQ - - D Q -- DQ ->DFF>DFF>DFF>>DFFTakt(0) Takt(1) Takt(2) Takt(k)Takt<strong>Digital</strong> Clock Manager (DCM)Abbildung 5.2: Shifted Clock Sampling: Ein DCM generiert die phasenverschobenenTaktsignale Takt(i).Die k phasenverschobenen Taktsignale werden nun auf Flipflop gegeben, die alledasselbe Signal abtasten (siehe Abbildung 5.2).Im Grunde genommen ist eine Phasenverschiebung nichts anderes als eine Zeitverschiebungdes Taktsignals, sodass der erzielte Effekt prinzipiell derselbe ist wie beimDelayed Data Sampling. Der Zeitbetrag ist äquivalent zur Phasenverschiebung ∆φ,die in diesem Fall die Genauigkeit der Messung limitiert. Die Größe <strong>eines</strong> TDC-Binsbeträgt demnach für beide KonzepteLSB = T clkk . (5.2)Beide Konzepte haben ihre Vor- und Nachteile, wobei in der <strong>FPGA</strong> Implementierungder DDS-Methode die größte Schwierigkeit in der Bereitstellung von geeignetenVerzögerungselementen liegt. Bei der SCS-Methode muss hingegen eine möglichstgeringe Signallaufzeitdifferenz des zu messenden Signals zu den Flipflop des TDC-Registers gewährleistet sein. Die Umsetzung des TDC-Konzeptes wird ausführlichin Kapitel 7 beschrieben.5.2 KenngrößenDie wichtigste Kenngröße <strong>eines</strong> <strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converter ist seine Zeitauflösung,also die Genauigkeit, mit der Zeitintervalle oder auch Zeitmarken auf einem Signalgemessen werden können. Wird ein einzelnes Ereignis (Hit) auf dem Signal gemessen,so beträgt der Fehler gerade 1 LSB. Da der Hit zu beliebigen Zeiten imBezug zum TDC-Taktsignal auftreten kann, weist diese Messung eine rechteckförmigeWahrscheinlichkeitsdichte im Bereich von -LSB/2 bis +LSB/2 auf [42]. DieStandardabweichung σ, auch RMS 2 -Fehler genannt, beträgt in diesem Fallσ = LSB √12. (5.3)2 Root Mean Square


40 5. <strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> ConverterJedoch erst durch Kombination zweier Zeitmarken erhält diese Messung eine physikalischeAussagekraft. Durch quadratische Addition der RMS-Fehler der beidenEinzelmessungen erhält man schließlich eine Standardabweichung vonσ = LSB √6. (5.4)Diese Herleitung gilt jedoch nur, solange die beiden Messwerte unkorreliert zueinanderauftreten. Wird dagegen ein konstantes Zeitintervall auf dem Signal gemessen,so hängt das Ergebnis dieser Messung entscheidend von der Länge des Zeitintervallsab. Das heißt, die Start- und S<strong>to</strong>ppzeitmarken der Messung können nicht mehr alsunabhängig voneinander aufgefasst werden.Gehen wir zunächst davon aus, ein Zeitintervall würde mit der Zählermethode ausAbschnitt 5.1 gemessen, so ist der Wert T des Zeitintervalls bei einer Einzelmessungmit einer Genauigkeit von ±T clk bekannt. Das Zeitintervall lässt sich in ein VielfachesQ’ der Taktperiode und einen Rest F’ aufteilenT = Q ′ + F ′ . (5.5)Wird diese Messung mehrmals durchgeführt, so können nur zwei verschiedeneMesswerte (Zählerstände) auftreten, nämlich T 1 < T und T 2 = T 1 + T clk (sieheAbbildung 5.3). Die Wahrscheinlichkeiten, mit der die beiden Messwerte T 1 und T 2auftreten, ist bestimmt durch den Bruchteil F = F ′T clkder Taktperiode T clk [43]:p (T 1 ) = 1 − F (5.6)q (T 2 ) = F. (5.7)Es handelt sich hierbei um eine Binomialverteilung, sodass unter der Voraussetzung,dass der Startpunkt des Zeitintervalls asynchron zum Taktsignal auftritt, derFehler oder die Zeitauflösung der Messung gegeben ist durch die Standardabweichungσ dieser Verteilung,σ = T clk√F (1 − F). (5.8)Dieses Ergebnis lässt sich leicht auf TDC, die nach der SCS- oder DDS-Methodeaus Abschnitt 5.1 arbeiten, erweitern [44], so dass man (5.8) auch verallgemeinertschreiben kann alsσ = LSB √ F (1 − F). (5.9)


5.2. Kenngrößen 41BT clk – F’AF’CLKQ’ = 2 * T clk F’Input (A)StartS<strong>to</strong>pCount (A)0 1 2 3Input (B)StartS<strong>to</strong>pCount(B)0 1 2Zeit tAbbildung 5.3: Ein Zeitintervall wird von einem TDC nach der Zählermethode(1-bin TDC) gemessen, wobei das Zeitintervall in das Vielfache Q’ einer Taktperiodeund einen Rest F’ zerlegt werden kann. Das Signal Input wird vom TaktsignalCLK auf jeder steigenden Taktflanke abgetastet und der Zähler Count inkrementiert,solange der Zustand des Signals ’1’ beträgt (Start bis S<strong>to</strong>p). Dabei können immernur die Zählerstände 2 oder 3 gemessen werden. Die Häufigkeit, mit der diese Wertejeweils auftreten, ist bestimmt durch die Startposition des Zeitintervalls innerhalbder Taktperiode. Liegt diese im Bereich F’ (A), so wird Count(A) = 3 gemessen(durchgezogene Linie), anderenfalls Count(B) = 2 (Strich-Punkt-Linie).Die Zeitauflösung hängt demnach vom gemessenen Zeitintervall ab und beträgtmaximal σ max = 0, 5 LSB für F = 0,5 (siehe Abbildung 5.4). Das periodische Verhaltender Zeitauflösung in Abhängigkeit der Länge des gemessenen Zeitintervallsweist Minima für Zeitintervalle, die einem Vielfachen von LSB entsprechen, undMaxima für halbzahlige Vielfache von LSB auf. Da in einem realen TDC die Binsnie exakt gleich sind, sollte die Zeitauflösung mindestens über die Länge einer Taktperiodegemessen werden, sodass die Charakteristik aller TDC-Bins berücksichtigtwird. Als Zeitauflösung <strong>eines</strong> TDC für eine Einzelmessung wird im Allgemeinen diemittlere Standardabweichung σ avg angegeben, die man durch Integration von (5.9)im Bereich 0 < F < 1 erhält:σ avg = π LSB ≈ 0, 39 LSB. (5.10)8Für viele Anwendungen ist die Zeitauflösung für Einzelmessungen (5.10) die wichtigsteKenngröße. Ist es möglich, dieselbe Messung mehrmals durchzuführen, so kanndie Genauigkeit durch Mittelwertbildung gesteigert werden [43].


42 5. <strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converter0.60.50.4σLSB0.30.20.100 0.2 0.4 0.6 0.8 1FAbbildung 5.4: Auf LSB normierte Standardabweichung σ (durchgezogene Linie) inAbhängigkeit von F (Gleichung 5.9) sowie mittlere Standardabweichung σ avg (Strich-Punkt-Linie) (Gleichung 5.10).Die Gesamtzahl einer solchen Messung sei N, wobei die beiden möglichen MesswerteT 1 = Q · LSB und T 2 = (Q + 1) · LSB gerade N 1 beziehungsweise N 2 malaufgetreten. Für den Mittelwert T finden wiroderTLSB = Q + 1 NN∑k i mit k i = 0, 1 (5.11)i=1TLSB = Q + N 2N . (5.12)Die Variablen k i treten mit den schon bekannten Wahrscheinlichkeiten p = 1 − Fund q = F auf, sodass wir mit der BinomialverteilungP F,N (N 2 ) =( NN 2)F N 2(1 − F) N−N 2(5.13)den Mittelwert N 2 = NF und die Standardabweichung σ N2 = √ NF (1 − F )erhalten. Eingesetzt in (5.12) ergibt dies


5.2. Kenngrößen 43T = T (5.14)undσ T = LSB √N√F (1 − F). (5.15)Eine wichtige Erkenntnis dieser Herleitung ist also, dass für eine große Anzahl vonMessungen der Mittelwert T gegen den wahren Wert T konvergiert. Der Fehler des1Mittelwerts ist ebenfalls im Vergleich zu einer Einzelmessung um den Fak<strong>to</strong>r √Nkleiner. Dadurch kann das Zeitintervall, abgesehen von systematischen Fehlerquellen,die bei diesem idealen TDC nicht berücksichtigt sind, beliebig genau gemessenwerden. Der maximale Fehler beträgtund der mittlere Fehlerσ Tmax = LSB2 √ N(5.16)σ Tavg ≈ 0, 39 LSB √N. (5.17)Weitere Kenngrößen <strong>eines</strong> <strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converter sind:• Dynamischer MessbereichDer dynamische Messbereich bezeichnet den maximalen Zeitbetrag in Einheitenvon LSB, die der TDC ausgeben kann. Begrenzt wird dies durch dieAnzahl der Bits, die zur Angabe der Zeitinformation verwendet werden. Miteinem 16-bit-Datenwort können zum Beispiel höchtens 2 16 Zahlen dargestelltwerden. Der dynamische Bereich oder auch ”Overroll“ beträgt in diesem Fall65535 · LSB. Der TDC kann nur die gemessene Zeit modulo dem dynamischenBereich verarbeiten. Für Zeitintervalle, die über den dynamischen Bereich hinausgehen,muss die Anzahl der Overrolls, die innerhalb des gemessenen Zeitintervallsliegen, bekannt sein.• DoppelpulsauflösungDie Doppelpulsauflösung bezeichnet die kleinstmögliche Zeitspanne zwischenzwei Zustandsänderungen (Hits) auf dem Signal, die der TDC noch getrenntmessen kann. Ist das Zeitintervall zwischen zwei Hits kleiner als die Doppelpulsauflösung,so ist ein Datenverlust die Folge.• Maximale HitrateDie Maximale Hitrate bezeichnet die Rate, mit der Hits auf dem Signal auftretenund vom TDC verarbeitet werden können. Im Gegensatz zur Doppelpulsauflösunghandelt es sich hier um eine mittlere Rate. Ein Datenverlust kanndabei aufgrund <strong>eines</strong> Speicherüberlaufs auftreten, da die gemessenen Zeitmarkenim Allgemeinen zwischengespeichert werden müssen, bevor sie zum Datennahmesystemgesendet werden.


44 5. <strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converter• Maximale TriggerrateViele TDC geben nicht alle gemessenen Zeitmarken aus, sondern reagierenauf ein sogenanntes Triggersignal, das die gespeicherten Messwerte unter gewissenGesichtspunkten vorselektiert, um die Datenrate zu reduzieren (sieheAbschnitt 7.4). Die maximale Rate, mit der die Triggersignale verarbeitet werdenkönnen, ist eine wichtige Kenngröße und unter anderem abhängig von derHitrate, den Speicherkapazitäten des TDC und der Bandbreite des Auslesesystems.• SpeicherkapazitätUm die Messwerte <strong>eines</strong> TDC weiterverarbeiten zu können, werden diese imTDC zwischengespeichert. Die Speichertiefe spielt eine entscheidende Rolle beider Verarbeitung von Triggersignalen und dient dazu, Datenverlust im Fallezeitweise hoher Hitraten zu vermeiden.5.3 Charakteristische FehlerBisher wurde ein idealer TDC beschrieben, der weder statistischen Unsicherheitennoch systematischen Fehlern unterworfen ist. In der Realität verhindern Jitter aufSignal und Referenztakt sowie Nichtlinearitäten in der Konvertierungscharakteristik,dass die theoretische Zeitauflösung (5.10) erreicht werden kann. Je kleiner dieDiskrepanz zwischen tatsächlicher und theoretischer Zeitauflösung, des<strong>to</strong> größer istdie Güte des TDC.• Differentielle Nichtlinearität (DNL)Die differentielle Nichtlinearität beschreibt die Abweichung jedes TDC-Binsvon seinem nominellen Wert. Bei der Shifted Clock Sampling Methode (Abschnitt5.1) kommt dies durch die Ungenauigkeit der Phasenverschiebungender Taktsignale sowie durch den sogenannten ”Routing Skew“, der die maximaleSignallaufzeitdifferenz des Datensignals zu den TDC-Flipflop beschreibt,zustande.Dagegen werden die Binbreiten beim Delayed Data Sampling vor allem durchmögliche Ungleichmäßigkeiten der Verzögerungselemente bestimmt. Für gewöhnlichwird die differentielle Nichtlinearität in einem Diagramm dargestellt,in dem die Nichtlinearität jedes einzelnen TDC-Bins in Einheiten von LSBaufgetragen ist. Als Kenngröße des TDC kann auch nur die maximale Nichtlinearitätangegeben werden.• Integrale Nichtlinearität (INL)Unter der integralen Nichtlinearität versteht man die Abweichung t INL,i derTransferfunktion von ihrem nominellen Wert nach dem i-ten Bin. Die integraleNichtlinearität wird wie die differentielle Nichtlinearität in Einheiten von LSBangegebent INL,i = t i − i · LSB. (5.18)


5.3. Charakteristische Fehler 45• Gain ErrorDer Gain Error bezeichnet die Abweichung der Steigung k der Transferfunktionvon ihrem nominellen Wert. Bei einem idealen TDC beträgt diesek = 1LSB . (5.19)Die Zeitinformation <strong>eines</strong> wie in Abschnitt 5.1 beschriebenen TDC wird ausder Ausgabe der TDC-Flipflop und dem Zählerstand <strong>eines</strong> sogenannten ”ClockCounters“, der die Taktperioden seit dem letzten Reset angibt, dekodiert. Aufgrundder Periodizität der Konvertierung und der im Allgemeinen geringenAnzahl der TDC-Bins ist es jedoch sinnvoller, statt dem Gain Error die integraleNichtlinearität zu betrachten.


46 5. <strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converter


6. Field Programmable GateArrayEin ”Field Programmable Gate Array“ (<strong>FPGA</strong>) bezeichnet einen aus programmierbarenLogikbausteinen aufgebauten Integrierten Schaltkreis (IC). Die einzelnen Komponentensind in einer regelmäßigen Struktur (Array) angeordnet und durch ein konfigurierbaresVerbindungsnetzwerk (Routing) miteinander verknüpft. Mithilfe einerHardwarebeschreibungssprache wie VHDL 1 oder Verilog 2 wird ein Programmcodeerstellt, der die anwendungsspezifische digitale Schaltung beschreibt. Von den sogenannten”Synthesewerkzeugen“ der <strong>FPGA</strong>-Hersteller wird dieser Programmcode ineine Schaltung auf Basis der Logikbausteine umgesetzt sowie die benötigten Komponentenim <strong>FPGA</strong> ausgewählt und das erforderliche Routing festgelegt. Am Endedieses Prozesses steht eine Konfigurationsdatei (Bitcode), mit der die Schaltung im<strong>FPGA</strong> realisiert werden kann.Elektronische Schaltungen werden gewöhnlich als anwendungsspezifische, integrierteSchaltkreise (ASIC 3 ) gefertigt. Dabei werden die Komponenten der Schaltungdirekt auf ein Halbleitersubstrat aufgebracht. Die Schaltung selbst kann dann zwarnicht mehr verändert werden, durch die Optimierung auf eine bestimmte Funktionliegt die Leistungsfähigkeit von ASICs jedoch bei weitem über der von programmierbarenLogikbausteinen. Durch die hohen <strong>Entwicklung</strong>skosten rechnet sich dieProduktion von ASICs nur bei sehr großen Stückzahlen. An dieser Stelle kommen<strong>FPGA</strong> ins Spiel, deren Vorteile vor allem in ihrer Rekonfigurierbarkeit liegen, sodassdie Schaltung beliebig modifiziert werden kann, ohne Einfluss auf die Hardware nehmenzu müssen. Durch die Modellierung mit Hardwarebeschreibungssprachen könnenzudem mit vergleichsweise geringem Zeitaufwand auch komplexe Algorithmenimplementiert und getestet werden. Oben genannte Gründe sowie die Kostenersparnisgegenüber ASICs bei kleinen und mittleren Stückzahlen macht den Einsatz von<strong>FPGA</strong> in Experimenten der Teilchenphysik interessant.1 Very High Speed Integrated Circuit Hardware Description Language2 Verifying Logic3 Application-specific integrated circuit


48 6. Field Programmable Gate Array6.1 Der Xilinx Virtex-5 <strong>FPGA</strong>In diesem Projekt wird der Virtex-5 SX95T <strong>FPGA</strong> der Firma Xilinx verwendet,der sich auf der Hauptplatine des GANDALF-Moduls befindet (siehe Abschnitt 4.1).Der Aufbau und für das Projekt wichtige Komponenten des <strong>FPGA</strong> werden in diesemAbschnitt beschrieben.6.1.1 Aufbau des <strong>FPGA</strong>Die Spezifikationen des Virtex-5 SX95T sind [23]:• 7360 Configurable Logic Block (CLB)• 14720 Vitex-5 Slice• 244 x 36-Kbit Block RAM• 640 DSP48E Slice• 640 User I/ODer Vitex-5 <strong>FPGA</strong> wird in 65nm CMOS-Prozesstechnik gefertigt. Die wichtigstenKomponenten sind die CLB, die in einer regelmäßigen Struktur von 160 Reihenund 46 Spalten im <strong>FPGA</strong> angeordnet sind. Die CLB selbst besteht wiederum auszwei ”Slice“-Elementen, die die sequentiellen sowie kombina<strong>to</strong>rischen Logikkomponentendes <strong>FPGA</strong> beeinhalten. Jeder Slice ist, wie in Abbildung 6.1 gezeigt, übereine sogenannte ”Switch Matrix“ mit dem Leitungsnetz (Routing Matrix) des <strong>FPGA</strong>verbunden. Zwar besteht zwischen beiden Slice-Elementen einer CLB keine Verbindung,jedoch ist jeder Slice mit seinem Pendant in der darüber- und darunterliegendenCLB über eine ”Carry Chain“ verknüpft, mit der sich mehrere Slice für dieImplementierung arithmetischer Operationen kaskadieren lassen. Die Position jedesSlice ist durch ein karthesisches Koordinatensystem definiert, dessen Ursprung beigewöhnlicher Betrachtung in der linken unteren Ecke des <strong>FPGA</strong> liegt. Man kannsich die Slice entsprechend dem Verlauf der Carry Chains in Spalten angeordnetvorstellen, wobei beide Slice-Elemente einer CLB dieselbe Y-Koordinate aufweisen(siehe Abbildung 6.1).Jeder Slice enthält unter anderem vier LUT 4 und vier Speicherelemente, die alsLatch oder taktflankengesteuertes D-Flipflop konfiguriert werden können. Die LUTsind Funktionsgenera<strong>to</strong>ren mit sechs Eingängen und zwei Ausgängen, die jede BoolscheFunktion mit sechs Variablen oder, solange dieselben Eingänge verwendet werden,auch zwei Funktionen mit je fünf Variablen darstellen können. Durch Verknüpfungder LUT <strong>eines</strong> Slice über dedizierte Multiplexer werden zudem Funktionsgenera<strong>to</strong>renmit sieben oder acht Eingängen realisiert. Darüber hinaus können beieinem Teil der Slice-Elemente (SLICEM) die Look Up Tables Speicherfunktionen(Distributed RAM) oder 32-bit-Schieberegister bereitstellen.Zur Datenspeicherung stehen im Virtex-5 neben dem Distributed RAM, der ausLogikbausteinen aufgebaut werden muss, als ”Block RAM“ bezeichnete Bausteine4 Look Up Table


X-Ref Target - Figure 5-2The Configurable Logic Blocks (CLBs) are the main logic resources for implementingsequential as well as combina<strong>to</strong>rial circuits. Each CLB element is connected <strong>to</strong> a switchmatrix for access <strong>to</strong> the general routing matrix (shown in Figure 5-1). A CLB elementcontains a pair of slices. These two slices do not have direct connections <strong>to</strong> each other, and6.1. Der Xilinx Virtex-5 Chapter <strong>FPGA</strong> 5: Configurable Logic Blocks (CLBs)49each slice is organized as a column. Each slice in a column has an independent carry chain.For each CLB, slices in the bot<strong>to</strong>m of the CLB are labeled as SLICE(0), and slices in the <strong>to</strong>pof the CLB are labeled as SLICE(1).X-Ref Target - Figure 5-1CLBCOUTCOUTCLBCOUTCOUTSliceX1Y1CLBCOUTCOUTSliceX3Y1Slice(1)SliceX0Y1SliceX2Y1SwitchMatrixSlice(0)CLBCINCOUTCINSliceX1Y0COUTCLBCINCOUTCINSliceX3Y0COUTCINCINSliceX0Y0SliceX2Y0UG190_5_01_122605UG190_5_02_122605Figure 5-1: Arrangement of Slices within the CLBFigure 5-2: Row and Column Relationship between CLBs and SlicesAbbildung 6.1: Der Configurable Logic Block (CLB) enthält zwei Slice, die übereine Switch Matrix mit anderen CLB verbunden sind (links). Die Carry ChainThe Xilinx <strong>to</strong>ols designate slices with the following definitions. Slice An Description “X” followed by anumber identifies the(CIN,COUT)position of each sliceschafftin a paireineas wellVerbindungas the column position of theEvery zwischen slice contains Slice-Elementen four logic-function genera<strong>to</strong>rs benachbarter (or look-up tables), CLB. four s<strong>to</strong>rageslice. The “X” number counts slices starting from the bot<strong>to</strong>m in sequence elements, 0, 1 (the wide-function first CLB multiplexers, and carry logic. These elements are used by all slicescolumn); 2, 3 (the second Jeder CLB Slice column); kann etc. durch A “Y” followed seine X,Y-Koordinaten by a number <strong>to</strong> provide identifies logic, a inarithmetic, row einem of andkarthesischenROM functions. In additionKoordinatensystemsthe identifiziert same within a CLB, werden but counts (rechts) up in two sequence [45]. additional from functions: one s<strong>to</strong>ring data using distributed RAM and shifting data with 32-bit<strong>to</strong> this, some slices supportslices. The number remainsCLB row <strong>to</strong> the next CLB row, starting from the bot<strong>to</strong>m. Figure 5-2 shows registers. four Slices CLBs that support these additional functions are called SLICEM; others arecalled SLICEL. SLICEM (shown in Figure 5-3) represents a superset of elements andlocated in the bot<strong>to</strong>m-left corner of the die.connections found in all slices. SLICEL is shown in Figure 5-4.mit je 36-Kbit Speicherkapazität zur Verfügung. Jeder Block RAM kann ferner inzwei unabhängige Einheiten zu je 18-Kbit aufgeteilt werden. In der ”True Dual-Port“-Variante wird auf zwei unabhängigen Ein- und Ausgängen auf den Speicherzugegriffen, wohingegen als ”Simple Dual-Port RAM“ entweder nur Schreib- oder Lesezugriffauf einem Anschluss erlaubt ist. Dafür kann die maximale Datenwortbreiteauf 72 Bit (36-Kbit Block RAM) beziehungsweise 36 Bit (18-Kbit Block RAM) verdoppeltwerden. Weiter ist es möglich, das Block-RAM-Element als FIFO 5 -Speicherzu verwenden. Um größere Speicherelemente zu erzeugen, können mehrere Block-RAM-Einheiten kaskadiert werden.de www.xilinx.com 17310Noch zu erwähnen bleiben die DSP 6 Slice Bausteine, mit denen vielfältige arithmetischeAufgaben wie Addieren, Multiplizieren oder bitweise logische Funktionen bishin zu Zählern und komplexen mathematischen Funktionen implementiert werdenkönnen, ohne auf die Logikresourcen des <strong>FPGA</strong> zugreifen zu müssen.6.1.2 Taktsignale im <strong>FPGA</strong>174 www.xilinx.com Virtex-5 <strong>FPGA</strong> User GuideUG190 (v5.3) May 17, 2010In einer synchronen digitalen Schaltung spielt das Taktsignal (Clock) eine entscheidendeRolle, da den Signalen der sequentiellen Logikbausteine (Flipflop, BlockRAM etc.) bei einem Taktflankenwechsel ihre neuen Werte zugewiesen werden. Umdie Funktionalität der Schaltung gewährleisten zu können, muss der Taktversatz(Skew) möglichst gering sein, das heißt die Signallaufzeit des Taksignals (Clock) zujedem Flipflop der Schaltung sollte gleich sein.Für eine optimale Taktverteilung ist der Vitex-5 <strong>FPGA</strong> in sogenannte ”ClockRegions“ aufgeteilt. Jede Clock Region ist 20 CLB breit und erstreckt sich über5 First In - First Out6 <strong>Digital</strong> Signal Processor


X-Ref Target - Figure 5-450 Chapter 5: Configurable Logic Blocks (CLBs) 6. Field Programmable Gate ArrayCOUTReset TypeSyncAsyncDMUXD6D5D4D3D2D1DXA6A5A4A3A2A1LUTROMO6O5DDXDCECKFFLATCHINIT1INIT0SRHIGHQSRLOWSR REVDDQCMUXC6C5C4C3C2C1CXA6A5A4A3A2A1LUTROMO6O5CCXDCECKFFLATCHINIT1INIT0SRHIGHQSRLOWSR REVCCQBMUXB6B5B4B3B2B1BXA6A5A4A3A2A1LUTROMO6O5BBXDCECKFFLATCHINIT1INIT0SRHIGHQSRLOWSR REVBBQAMUXA6A5A4A3A2A1AXSRCECLKA6A5A4A3A2A1LUTROMO6O50/1AAXDCECKFFLATCHINIT1INIT0SRHIGHQSRLOWSR REVAAQCINUG190_5_04_032606Figure 5-4:Diagram of SLICELAbbildung 6.2: Diagramm <strong>eines</strong> Virtex-5 Slice (SLICEL). A1-6 bis D1-6 stellen dieEach CLB can contain zero or one SLICEM. Every other CLB column contains a SLICEMs.In addition, the two CLB columns <strong>to</strong> the left of the DSP48E columns both contain a SLICELEingänge der vier Look Up Table (LUT) dar. Mit dem Inverter auf dem Taktsignaleingang(CLK) kann die sequentielle Logik des SLICEL auch auf der fallendenand a SLICEM.Taktflanke getaktet werden. Die vier Register werden über die Eingänge AX bis DXsowie den Ausgängen der LUT O5-6 angesprochen. Mittig befindet sich die CarryChain sowie vielfältige Multiplexerlogik, mit der sich die Logikbausteine kaskadierenlassen [45].176 www.xilinx.com Virtex-5 <strong>FPGA</strong> User GuideUG190 (v5.3) May 17, 2010die Hälfte des <strong>FPGA</strong> (siehe Abbildung 6.3). Die Taktsignale werden unterschiedenin ”Global“ und ”Regional“ Clocks und von den Takttreiberelementen BUFG undBUFR gespeist. Im Modell SX95T sind 32 BUFGs vorhanden, das heißt es könnenbis zu 32 Global Clocks betrieben werden, jedoch können innerhalb einer ClockRegion nur zehn dieser Taktsignale verwendet werden. Die BUFR-Bausteine treibendavon unabhängige regionale Taktnetze, die auf eine bestimmte Clock Regionbeschränkt sind.6.1.3 Clock Management TilesIn vielen Projekten ist es notwendig, das Eingangstaktsignal zu modifizieren, umbeispielsweise die Frequenz oder die Phase zu verändern, Verzögerungszeiten auszugleichen(Clock Deskew) oder um zusätzliche Takte zu erzeugen. Dazu stehen im<strong>FPGA</strong> die sogenannten ”Clock Management Tiles“ (CMT) zur Verfügung, die auszwei DLL 7 sowie einer PLL aufgebaut sind.7 Delay Locked Loop


Clock RegionsTaktsignalresourcen : CMTs, BUFGs, …6.1. Der Xilinx Virtex-5 <strong>FPGA</strong> 5120 CLBAbbildung 6.3: Der Virtex-5 SX95T <strong>FPGA</strong> ist aus 16 Clock Regions aufgebaut. JedeClock Region erstreckt sich über die Hälfte des <strong>FPGA</strong> und hat eine Breite von 20CLB.Eine DLL besitzt Eingänge für das Taktsignal und für ein Referenzsignal, genanntFeedback“, sowie im einfachsten Fall einen Taktsignalausgang. In der DLL befindensich Verzögerungselemente, mit der eine um einen fixen Zeitbetrag verzögerte”Kopie des ursprünglichen Taktsignals erzeugt wird. Eine Kontrolleinheit fügt nunsolange Verzögerungselemente in den Taktsignalpfad hinzu, bis die Taktflanken vonFeedback- und Eingangssignal übereinanderliegen, das heißt die Phasenverschiebung360 ◦ beträgt. Die DLL zeigt dies üblicherweise über ein Locked“-Signal an.”Verzögerungszeiten des Taktsignals, die beispielsweise durch die Takttreiberelemente(BUFG) enstehen, können mithilfe einer DLL ausgeglichen werden, indemdas Taktsignal nach dem Takttreiber als Feedback der DLL verwendet wird (sieheAbbildung 6.4). Dies spielt vor allem bei der Kommunikation des <strong>FPGA</strong> mit anderenHardwarekomponenten eine Rolle, wenn ein Timing Budget für die Laufzeiten vonTakt- und Datensignalen zwischen den Komponenten eingehalten werden muss.Die DLL des Virtex-5 stellt zusätzlich um 90 ◦ , 180 ◦ und 270 ◦ phasenverschobeneTaktsignale zur Verfügung. Die Phase dieser Takte kann zudem noch in Schrittenvon Taktperiode256variiert werden.


52 6. Field Programmable Gate ArrayTakteingangVariableVerzögerungsketteTaktausgangKontrollEinheitTaktnetzwerkPhasendetek<strong>to</strong>rFeedbacksignalAbbildung 6.4: Funktionsweise einer Delay Locked Loop (DLL).Eine PLL ist ähnlich aufgebaut wie eine DLL, besitzt jedoch statt den Verzögerungselementeneinen spannungsgesteuerten Oszilla<strong>to</strong>r (VCO 8 ), dessen Frequenzund Phase von der Kontrolleinheit modifiziert wird, bis sich Eingangs- und Feedbacksignalin Phase befinden. Über Zähler auf Signal- und Feedbackeingang, sowiein jedem der sechs Signalausgänge der Virtex-5 PLL, können Frequenz und Phaseder ausgegebenen Taktsignale in einem weiten Bereich variiert werden. Eine PLLdient daher vor allem zur Frequenzsynthese von Taktsignalen. Des weiteren reduziertdie PLL den Jitter auf dem Eingangssignal, sodass sie auch zur Aufbereitungvon Taktsignalen verwendet wird.6.2 EntwurfsablaufAm Anfang jedes <strong>FPGA</strong>-Designs steht der Entwurf der Schaltung, entweder miteinem graphischen Schaltplanedi<strong>to</strong>r (Schematic), bei dem die Schaltung mithilfevon Blockschaltbildern beschrieben wird, oder auf einer höheren Abstraktionsebenemit einer Hardwarebeschreibungssprache wie beispielsweise VHDL. Bei größerenProjekten ist dies der weitaus effektivere Weg, da sich der Entwickler nichtmehr um die Auswahl einzelner Elemente der Schaltung kümmern muss. Der zweiteSchritt besteht in der Entwurfssynthese (Synthesis), bei dem aus dem Programmcodeeine Netzliste erstellt wird. Darunter versteht man einen Schaltplan in Textform(NGC 9 -Datei), optimiert auf den verwendeten <strong>FPGA</strong> unter Berücksichtigung derEntwurfsvorgaben (Constraints) des Entwicklers.An dieser Stelle kann der Schaltungsentwurf mit einer Verhaltenssimulation aufBasis der Netzliste überprüft werden. Dabei wird jedoch nur die Logik der Schaltungsimuliert, tatsächliche Signallaufzeiten sowie Durchschaltzeiten der Komponentenkönnen hier noch nicht berücksichtigt werden. Im ersten Schritt der Implementierungdes <strong>FPGA</strong>-Designs (Translate) werden alle Netzlisten des Projektes sowie dieVorgaben für die weiteren Implementierungsschritte in einer sogenannten ”NGD 10 “-8 Voltage Controlled Oscilla<strong>to</strong>r10 Native Generic Database


ImplementierungVerifikation6.2. Entwurfsablauf 53VHDLSynthesisVerhaltenssimulation.NGC+ ConstraintsTranslate.NGDMap.NCDPlace & RouteStatic TimingAnalysisBitstreamAbbildung 6.5: Entwurfsablauf <strong>eines</strong> <strong>FPGA</strong>-Designs.Datei zusammengefasst. Darauf folgt die Übersetzung der Netzliste in Logikbausteinedes <strong>FPGA</strong> (Mapping), das heißt die Auswahl der benötigten Flipflop, LUT,Block RAM. Das Ergebnis wird in einer ”NCD 11 “-Datei gespeichert und im letztenImplementierungsschritt benötigt, bei dem die Komponenten der Schaltung unterBerücksichtigung der Entwurfsvorgaben im <strong>FPGA</strong> ausgewählt und untereinanderverdrahtet werden (Place & Route). Eine schematische Darstellung des <strong>Entwicklung</strong>sprozessesist in Abbildung 6.5 zu sehen.Für die korrekte Funktion der Schaltung ist es wichtig, dass zumindest die Taktperiodender verwendeten Takte spezifiziert werden, damit das Timing Budget (sieheAbbildung 6.6 und Gleichung 6.1) bei der Platzierung und Verdrahtung der Komponentenberücksichtigt werden kann. Mithilfe von Constraints können weitere Vorgabenan das Timing der Schaltung oder die Platzierung der Komponenten im <strong>FPGA</strong>gestellt werden.Abschließend wird eine Timinganalyse (Static Timing Analysis) durchgeführt, beider die Signallaufzeiten zwischen den Komponenten der Schaltung berechnet wer-11 Native Circuit Description


54 6. Field Programmable Gate Arrayt Clk<strong>to</strong>Outt SetupSignal- D Q -DFFkombina<strong>to</strong>rischeLogik- D Q -DFF>t DataPath>t ClkPathTaktAbbildung 6.6: Timing Budget einer digitalen Schaltung. Die Signallaufzeiten durchdie kombina<strong>to</strong>rische Logik zwischen den Flipflop müssen kleiner als die Taktperiodesein.den. Diese setzen sich zusammen aus der Zeit t Clk<strong>to</strong>Out , nach der das Signal amFlipflop-Ausgang nach Eintreffen einer Taktflanke zur Verfügung steht, sowie derLaufzeit t DataP ath des Signals durch die kombina<strong>to</strong>rische Logik bis zum nächstenFlipflop . Darüber hinaus muss die Setupzeit t Setup des Flipflop eingehalten werden,die spezifiziert, wie lange das Datensignal schon vor der nächsten Taktflanke amFlipflop anliegen muss. Schlussendlich kommt noch die Differenz der Laufzeiten desTaksignals t ClkP ath zwischen den Flipflop hinzu, sodass gelten musst Clk<strong>to</strong>Out + t DataPath + t Setup − t ClkPath < Taktperiode. (6.1)Mithilfe von (6.1) kann überprüft werden, ob die Schaltung mit der vorgegebenenTaktfrequenz betrieben werden kann. Ist dies nicht der Fall, so muss die Schaltungausgehend vom ”kritischen Pfad“, dem Signal mit der längster Laufzeit, modifiziertwerden. Durch Einfügen zusätzlicher Flipflop in den kombina<strong>to</strong>rischen Teil diesesSignals (Pipelining) kann die Timinganforderung oft nachträglich erfüllt werden.Eine andere Möglichkeit, den Place & Route-Vorgang für ein besseres Timing derSchaltung zu unterstützen, besteht darin, kritische Entwurfsteile in vorgegebene Bereichedes <strong>FPGA</strong> implementieren zu lassen (Floorplanning), um so unnötig langenSignallaufzeiten entgegen zu wirken. Die Ergebnisse dieses Abschnitts sowie weitere<strong>FPGA</strong>-Implementierungstechniken werden beim Entwurf des <strong>128</strong>-<strong>Kanal</strong>-TDC inKapitel 7 angewendet.


7. <strong>FPGA</strong>-Implementierung desM1-TDCZiel dieser Arbeit war die Implementierung <strong>eines</strong> <strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converter, genanntM1-TDC, in einen Xilinx Virtex-5 SX95T <strong>FPGA</strong> auf dem GANDALF-Modul. Mitje 64 Eingängen im LVDS-Signalstandard pro digitaler Aufsteckkarte können voneinem GANDALF-Modul insgesamt <strong>128</strong> Eingangssignale ausgelesen werden (sieheKapitel 4). Die Spezifikation des M1-TDC ist, <strong>128</strong> TDC-Kanäle für die Durchführungpräziser Flugzeitmessungen verarbeiten zu können. Dazu muss die Messgenauigkeitbesser als die Zeitauflösung der Spektrometerdetek<strong>to</strong>ren sein, weshalb eineTDC-Zeitauflösung besser als 100 ps angestrebt wird. Weiter soll der M1-TDC fürden Einsatz am COMPASS-II-Experiment über das S-LINK-Pro<strong>to</strong>koll ausgelesenwerden, für das im GANDALF-Modul eine passende Schnittstelle vorgesehen ist.Eine Herausforderung dieses Projektes liegt in der großen Anzahl der TDC-Kanäle,die in einem <strong>FPGA</strong> mit der geforderten Auflösung bis da<strong>to</strong> nicht implementiertwurde. Um die oben genannten Anforderungen zu erfüllen, wurde das Shifted ClockSampling (SCS) Konzept aus Abschnitt 5.1 angewendet. Die Umsetzung des SCS-Algorithmus, der Aufbau des M1-TDC sowie die Implementierung von <strong>128</strong> TDC-Kanälen in den DSP-<strong>FPGA</strong> auf dem GANDALF-Modul werden in diesem Kapitelerläutert.


56 7. <strong>FPGA</strong>-Implementierung des M1-TDC7.1 Das TDC-RegisterBei der Implementierung von <strong>128</strong> TDC-Kanälen stellt sich die Frage nach demResourcenverbrauch im <strong>FPGA</strong>. Die meisten in der Literatur beschriebenen TDC-<strong>FPGA</strong> verwenden das Delayed Data Sampling (DDS) Konzept aus Abschnitt 5.1.Zum Aufbau des TDC-Registers müssen möglichst homogene Verzögerungselementeim <strong>FPGA</strong> belegt werden. Dies wird für gewöhnlich durch die in Abschnitt 6.1.1beschriebene Carry Chain realisiert, die die einzige direkte Verbindung zwischenden Slice-Elementen benachbarter CLB darstellt. Die Signallaufzeiten zwischen denKomponenten ist somit vorgegeben und überwiegend homogen. Aufgrund der Durchschaltzeitder Carry Chain lässt sich ein Verzögerungselement von circa 30 ps [41]generieren, wobei die Summe aller Verzögerungselemente einer Taktperiode entsprechenmuss.Der Resourcenverbrauch <strong>eines</strong> TDC-Registers hängt bei dieser Methode von derverwendeten Taktfrequenz sowie der Anzahl der TDC-Flipflop pro Slice ab. Beieiner maximalen Taktfrequenz des vorliegenden <strong>FPGA</strong> von 500 MHz, was einerTaktperiode von 2 ns entspricht, besteht das TDC-Register aus 2 ns / 0,03 ns = 67Flipflop. Für dieses Projekt würden demnach 66 · <strong>128</strong> = 8448 Verzögerungselementegebraucht, wobei die maximal mögliche Taktfrequenz aufgrund des Timingbudgets(6.1) einer synchronen, digitalen Schaltung kaum erreicht werden kann. In der Literaturbeschriebene TDC-<strong>FPGA</strong>, die auf der DDS-Methode beruhen, verwendenTaktfrequenzen zwischen 200 MHz bis 400 MHz [46–48]. Berücksichtigt man denzusätzlichen Logikbedarf für weitere Datenverarbeitungsprozesse, so wäre die Umsetzungdieses Projektes mit dem DDS-Algorithmus nicht möglich. Für einen aufder Virtex-5 Carry Chain basierenden TDC (1 <strong>Kanal</strong>) wird beispielsweise ein Resourcenverbrauchvon 1208 Slice-Elementen [47] angegeben, während der SX95T nurüber 14720 Slice verfügt.Aufgrund der oben geführten Diskussion kommt in dieser Arbeit der Shifted ClockSampling (SCS) Algorithmus unter Verwendung von 16 phasenverschobenen Takten,was einem TDC-Register mit 16 Flipflop entspricht, zum Einsatz. Zwar liegtdie erzielte Zeitauflösung unter der mit TDC nach der DDS-Methode erreichtenGenauigkeit, jedoch ist der Resourcenverbrauch bei weitem geringer. Darüber hinauskann bei diesem Algorithmus die Taktfrequenz unabhängig von der Länge desTDC-Registers gewählt werden. Wie in Kapitel 5 beschrieben, ist die Genauigkeit<strong>eines</strong> TDC bestimmt durch die Binbreite (LSB), der kleinsten Einheit, mit der dieObservable Zeit digitalisiert wird. Die theoretische Zeitauflösung (5.10) kann in derRealität jedoch nicht erreicht werden, was den in Abschnitt 5.3 beschriebenen Nichtlinearitäten<strong>eines</strong> TDC geschuldet ist. Daher müssen alle Fak<strong>to</strong>ren, die die Linearitätder TDC-Bins bei der Umsetzung dieser Methode beeinflussen, berücksichtigt werden.Zum einen sind dies die Phasenfehler der Taktsignale, auf die wir im nächstenAbschnitt zu sprechen kommen. Zum anderen muss die weitaus schwieriger zu kontrollierendeLaufzeitdifferenz (Skew) des Datensignals zu den 16 Flipflop des TDC-Registers genannt werden. Dies stellte insofern eine große Herausforderung des Projektesdar, da die Implementierungssoftware dem Entwickler keine Handhabe zurVerfügung stellt, die Verdrahtung einzelner Komponenten im <strong>FPGA</strong> direkt auszu-


7.1. Das TDC-Register 57wählen, weil dies in gewöhnlichen <strong>FPGA</strong>-Entwürfen weder erwünscht noch notwendigist. Das Routing kann jedoch indirekt bei der Implementierung durch Timingconstraintsbeeinflusst werden, wobei sich das ”Maxskew Constraint“ [49] als dasgeeignetste herausstellte. Das Maxskew Contraint spezifiziert die maximal erlaubteLaufzeitdifferenz auf einem Signalnetz. Die Syntax dieses Constraints für eineUCF-Datei (User Constraint File) lautet [45]NET “net name” MAXSKEW = allowable skew [units];Anfangs wurden Studien für die Verdrahtung <strong>eines</strong> TDC-Registers mit acht Flipflopin Verbindung mit dem Maxskew Constraint durchgeführt. Die Ergebnisse, welcheallein mit diesem Constraint erzielt wurden, waren jedoch nicht zufriedenstellend(siehe Abbildungen 7.1 und 7.5 sowie Tabelle 7.1).SignaleingangAbbildung 7.1: Routing <strong>eines</strong> TDC-Registers bestehend aus 8 Flipflop, das sich alleinunter Verwendung des Maxskew Constraints ergab. Der Skew auf dem Signalnetzbeträgt 70 ps. Die Flipflop des TDC-Registers sind in blau gezeichnet und die SwitchBoxes der CLB in grau angedeutet.An die Verteilung der Taktsignale werden ähnliche Anforderungen wie an das Datensignaldes TDC gestellt, da sie einen möglichst geringen Taktversatz aufweisensollten. Dafür werden diese Signale über eine Art ”Baumstruktur“ zu den sequentiellenKomponenten der Schaltung geleitet, bei der sich das Signal, ausgehend voneinem zentralen Verteiler, immer weiter verzweigt. Ergebnis ist eine sehr geringeLaufzeitdifferenz auf dem Taktsignalnetz zu allen Komponenten im <strong>FPGA</strong>. Wäre


58 7. <strong>FPGA</strong>-Implementierung des M1-TDCdies nicht gewährleistet, so würde auch das Taktsignalrouting zur Nichtlinearitätder TDC-Bins beitragen. Dieser Ansatz sollte nun für das Datensignalrouting desTDC-Registers adaptiert werden.Um Verzweigungspunkte zu schaffen, wurden zusätzliche Slice-Elemente in dasDatensignalnetz eingebaut und das Maxskew Constraint sodann auf die neu entstandenenSignale angewendet (siehe Abbildung 7.2). Durch die erzwungene Verästelungdes Signals konnte der Skew auf dem Datensignal jedoch zunächst nicht weiter reduziertwerden. Die Ergebnisse für ein TDC-Register bestehend aus acht Flipflopkönnen Abbildung 7.2 und Tabelle 7.1 entnommen werden.TDC-FlipflopsVerzweigungspunkteV1SignaleingangSignaleingangV1V1TDC-FlipflopsAbbildung 7.2: Links: Schematische Darstellung des Datensignalroutings <strong>eines</strong> 8-binTDC-Registers mit zwei zusätzlichen Slice-Elementen zur Verzweigung des Signals.Rechts: Routing <strong>eines</strong> TDC-Registers bestehend aus 8 Flipflop entsprechend der schematischenDarstellung. Der maximale Skew auf den einzelnen Signalnetzen liegt imBereich zwischen 26 ps bis 87 ps.Das optimale Routing wurde durch die spezifische Platzierung der TDC-Flipflopund der Slice-Elemente zur Verzweigung des Datensignals im <strong>FPGA</strong> erreicht. Dazuwurden mit sogenannten ”Placement Constraints“ Vorgaben an die Bausteinplatzierungim Place & Route-Schritt (Abschnitt 6.2) der Implementierung gestellt.Dies kann einerseits durch absolute Location Constraints (LOC-Constraint [49]) bewerkstelligtwerden, bei denen die Position <strong>eines</strong> Slice sowie die gewünschte Slice-Komponente (BEL-Constraint [49]) über seine entsprechenden X,Y-Koordinaten(siehe Abschnitt 6.1.1) im <strong>FPGA</strong> spezifiziert wird. Andererseits kann auch nur dierelative Position (RPM-Constraint [49]) zwischen Elementen einer eingangs definiertenLogikgruppe der Schaltung festgelegt werden. Der Software bleibt dann immernoch überlassen, eine geeignete Position dieser Gruppe innerhalb des <strong>FPGA</strong> zu finden.Ein solches ”Relative Placement Macro“ wurde zur Vereinfachung zunächst fürein TDC-Register bestehend aus acht Flipflop sowie den zur Verzweigung des Signalsverwendeten Komponenten generiert. Das endgültige Datensignalrouting, beidem die Signalnetze einen optimalen Routingskew zwischen 20 ps - 23 ps aufweisen,


7.1. Das TDC-Register 59ergab sich aus Studien, bei denen vielfältige Konfigurationen der beteiligten Elementegetestet wurden und ist in Abbildung 7.3 zu sehen. Das beste Routing wurdenicht etwa bei einer symmetrischen Anordnung der Komponenten, bei der sich vermeintlichgleich lange Signalwege ergeben müssten, erreicht. Vielmehr fiel auf, dassdie besten Ergebnisse bei einer asymmetrischen Platzierung und einem dadurch im<strong>FPGA</strong> nach links propagierenden Signalverlauf erzielt wurden. Ein Grund dafür istsicherlich, dass sich die Switch Matrix (Abschnitt 6.1.1) auf der linken Seite einerCLB befindet und das Routingnetzwerk dieser Symmetrie folgt.TDC-FlipflopsV1TDC-FlipflopsVerzweigungspunkteV1SignaleingangSignaleingangV1V1Abbildung 7.3: Bestmögliches Routing <strong>eines</strong> TDC-Registers bestehend aus 8 Flipflop,das durch gezielte Anordnung der Verzweigungspunkte in einem Relative PlacementMacro erzielt werden konnte. Der maximale Skew auf den einzelnen Signalnetzenliegt im Bereich zwischen 20 ps bis 23 ps.In einem letzten Schritt konnte durch Einfügen einer zusätzlichen Signalverzweigungund Kopieren des 8-bin Flipflop Makros schließlich das finale 16-bin TDC-Register (Abbildung 7.4) erzeugt werden. Zum Vergleich zeigt Abbildung 7.5 einDatensignalrouting, wenn nur das Maxskew Constraint auf das 16-bin TDC-Registerangewendet wird. Um das Routing für das Design mit <strong>128</strong> Kanälen exportieren zukönnen, wurden die Routinginformationen in einem sogenannten ”Direct RoutingConstraint“ festgehalten. Alle zur Gewährleistung des optimalen Datensignalroutingsnotwendigen Constraints sind in Anhang A angegeben. Die Signallaufzeitenlassen sich mit der ”Static Timing Analysis“ (Abschnitt 6.2) analysieren. Ergebnissealler Routingstudien sind in Tabelle 7.1 zusammengefasst.


60 7. <strong>FPGA</strong>-Implementierung des M1-TDCTDC-FlipflopsTDC-FlipflopsV2V2VerzweigungspunkteV1V1V2V2V2V2SignaleingangSignaleingangV1V1V2V2Abbildung 7.4: Links: Schematische Darstellung der Datensignalverzweigung für ein16-bin TDC-Register. Rechts: Finales Routing des TDC-Registers bestehend aus 16Flipflop, das durch Einfügen einer zusätzlichen Signalverzweigung und Kopieren des8 Flipflop Makros aus Abbildung 7.3, entsprechend der schematischen Darstellung,erzeugt wurde. Der maximale Skew auf den einzelnen Signalnetzen liegt im Bereichzwischen 20 ps bis 27 ps.Tabelle 7.1: Ergebnisse für verschiedene Routingvarianten des TDC-DatensignalsAnzahl Flipflopim TDC-RegisterRoutingskewBeschreibung8 70 ps Maxskew Constraint8 26 ps - 87 ps Maxskew Constraint, Verzweigungspunkte8 20 ps - 23 ps16 170 ps Maxskew Constraint16 20 ps - 27 psMaxskew Constraint, VerzweigungspunkteRelative Placement MacrosMaxskew Constraint, Verzweigungspunkte,Relative Placement Macros


7.1. Das TDC-Register 61SignaleingangAbbildung 7.5: Routing <strong>eines</strong> TDC-Registers bestehend aus 16 Flipflop, das sich alleinunter Verwendung des Maxskew Constraint ergab. Der Skew auf dem Signalnetzbeträgt 170 ps.


62 7. <strong>FPGA</strong>-Implementierung des M1-TDC7.2 Generierung der TaktsignaleDer <strong>FPGA</strong> erhält ein externes, jitterarmes Taktsignal von einem Clock MultiplierChip (Si5326) auf dem GANDALF-Modul, der vom 155,52 MHz Takt desTCS-Systems gespeist wird. Der Si5326 besitzt eine interne PLL, mit der sich verschiedeneTaktfrequenzen im Verhältnis zur Eingangsfrequenz generieren lassen, sodasseine Frequenzsynthese im <strong>FPGA</strong> nicht notwendig ist. In diesem Projekt wirdder SCS-Algorithmus mit 16 phasenverschobenen Taktsignalen angewendet. Da lautAbschnitt 6.1.2 in einer Clock Region immer nur zehn verschiedene, von BUFGTakttreibern gespeiste Taktsignale verwendet werden können, werden zunächst achtTakte mit je 180 ◦ / 8 = 22,5 ◦ Phasenverschiebung erzeugt. Acht weitere Taktsignaleerhält man durch lokales Invertieren der Signale. Anders gesprochen werden achtFlipflop des TDC-Registers auf fallenden Taktflanken getaktet. Dazu wird das Taktsignaldurch einen Inverter gegeben, der sich am Takteingang jedes Slice befindet(siehe Abbildung 6.2).Um die phasenverschobenen Taktsignale zu erzeugen, bietet der <strong>FPGA</strong> zwei Möglichkeiten.Entweder man verwendet eine Delay Locked Loop (DLL) oder eine PhaseLocked Loop (PLL), deren Funktionsweise in Abschnitt 6.1.3 besprochen wurde. DieDLL verfügt über Ausgänge mit einer Phasenverschiebung von 0 ◦ , 90 ◦ , 180 ◦ und270 ◦ . Ferner können die Phasen dieser Signale noch in Schritten von T aktperiode zum256Eingangssignal verschoben werden. Da die Ausgänge immer eine Phasenverschiebungvon 90 ◦ zueinander aufweisen, können pro DLL nur zwei der acht Taktsignalegeneriert werden. Die PLL verfügt dagegen über sechs Ausgänge, deren Phasen unabhängigvoneinander gewählt werden können. Die kleinstmögliche Phasenverschiebungbeträgt ein Achtel der Frequenz des Voltage Controlled Oscilla<strong>to</strong>r (VCO).Damit lassen sich mit einer PLL vier der acht benötigten Takte erzeugen. Prinzipiellkönnen die phasenverschobenen Takte sowohl mit DLL als auch mit PLL generiertwerden, da hierzu aber statt vier DLL nur zwei PLL benötigt werden, fiel die Entscheidungauf die Anwendung der PLL-Variante. Zudem weisen die Ausgänge derDLL einen Jitter von bis zu 120 ps [41] auf, wodurch sich die Zeitauflösung des TDCerheblich verschlechtern würde.Je zwei DLL und eine PLL befinden sich in einer Clock Management Tile (CMT),die wiederum in der mittleren Spalte des <strong>FPGA</strong> angeordnet sind. Vier Takte mitden Phasen 0 ◦ , 22,5 ◦ , 45 ◦ und 67,5 ◦ werden von der ersten PLL, die Takte mit90 ◦ , 112,5 ◦ , 135 ◦ und 157,5 ◦ Phasenverschiebung von der zweiten PLL erzeugt (sieheAbbildung 7.6). Da sich die PLL in unterschiedlichen CMT befinden, muss einTaktversatz zwischen den beiden Taktsignalgruppen aufgrund der unterschiedlichenSignallaufzeiten des Eingangssignals berücksichtigt werden. Dies kann jedoch durchdie einstellbare Phase des Feedbackausgangs des VCOs korrigiert werden, was zueiner negativen Phasenverschiebung aller Ausgangssignale der PLL führt.7.3 16-bin TDC-EntwurfDie wichtigsten Bestandteile des M1-TDC, die phasenverschobenen Takte sowiedas TDC-Register und das Datensignalrouting, wurden in den beiden vorangehendenAbschnitten dargestellt. Hier soll ein Blick auf die Funktionsweise des 16-bin


7.3. 16-bin TDC-Entwurf 63PhaseShifter:1clk_SI_G_PrstibufgdsIOIBinst_CLKIN_IBUFGDSPLL_shiftedclks_1CLKIN_INCLKOUT0_OUTCLKOUT1_OUTCLKOUT2_OUTCLKOUT3_OUTRST_INLOCKED_OUTsampling_clk(7:0)0 °22,5 °45 °67,5 °Inst_PLL_shiftedclksclk_SI_G_NUnterschiedlicheSignallaufzeitenverursachen TaktversatzPLL_shiftedclks_2CLKIN_INCLKOUT0_OUTCLKOUT1_OUTCLKOUT2_OUTCLKOUT3_OUTRST_INLOCKED_OUT90 °112,5 °135 °157,5 °Inst_PLL_shiftedclks2and2I1I0Olockedlocked_imp_locked1inst_PhaseShifterAbbildung 7.6: Blockschaltbild der TDC-Taktsignal Generierung: Die acht phasenverschobenenTakte werden je zur Hälfte von zwei PLL im <strong>FPGA</strong> erzeugt. Da diePLL in unterschiedlichen CMT liegen, ist ein Taktversatz zwischen den beiden Taktsignalgruppenunvermeidbar. Der Taktversatz kann durch die einstellbare Phase desVCO-Feedbackausgangs (im Bild nicht sichtbar) kontrolliert werden.TDC sowie auf die Besonderheiten des SCS-Algorithmus geworfen werden. Zuallererstmuss besprochen werden, wie sich aus den Ausgängen des TDC-Registers dieZeitinformation über einen Signalzustandswechsel (Hit) extrahieren lässt.Das TDC-Register ist aus D-Flipflop aufgebaut, die über einen DatensignaleingangD sowie einen Taktsignaleingang CLK und einen Signalausgang Q verfügen. Zu jedersteigenden Taktflanke wird der momentane Zustand am Eingang D abgefragtund für die Dauer einer Taktperiode T clk am Ausgang Q gespeichert. Es handelt sichalso um ein einfaches Speicherelement. Pegeländerungen können nur korrekt erfasstwerden, wenn das Signal schon eine ”Setup-Zeit“ t setup vor der Taktflanke und mindestensfür die Dauer der ”Hold-Zeit“ t hold stabil am Flipflop Eingang anliegt. SindSetup- und/oder Hold-Zeit verletzt, befindet sich der Ausgang in einem metastabilenZustand, der von einem weiteren Flipflop sowohl als ’0’ oder ’1’ interpretiertwerden kann. Wenn mehrere Flipflop an den metastabilen Signalausgang oder direktan ein asynchrones Signal angeschlossen sind, kann dies zu einem unvorhersehbarenVerhalten der Schaltung führen. Asynchrone Signale müssen daher in einer digitalenSchaltung immer synchronisiert werden.


64 7. <strong>FPGA</strong>-Implementierung des M1-TDCGehen wir zuerst davon aus, dass der Zustand des Signals konstant ’0’ beträgt.In diesem Fall geben auch alle TDC-Flipflop denselben Wert aus. Findet nun einPegelwechsel statt, so zeigen ab einem bestimmten Zeitpunkt alle Flipflop des TDC-Registers den neuen Zustand des Signals ’1’ an. Aus der Position des Bitwechselsvon ’0’ auf ’1’ in der Ausgabe des TDC-Registers lässt sich der genaue Zeitpunktdes Hits innerhalb der Taktperiode bestimmen. Nun muss der sogenannte ”ThermometerCode“ des TDC-Registers in eine binäre Zahl dekodiert werden. Auf dieselbeWeise kann auch eine Pegeländerung von ’1’ auf ’0’, was einer fallenden Signalflankeentspricht, detektiert werden. Ob der TDC auf die fallende und/oder die steigendeFlanke des Datensignals reagiert, hängt nur davon ab, wie der Thermometer Codedes TDC-Registers dekodiert wird.Da die Flipflop des TDC-Registers mit unterschiedlichen Takten betrieben werden(Clock Domains), müssen die Ausgänge zuerst synchronisiert werden, um denThermometer Code analysieren zu können. Lesen wir beispielsweise alle Flipflop mitdem ersten Taktsignal des TDC-Registers aus, so würde das Timingbudget (sieheAbschnitt 6.2) zur Auslese des letzten Flipflop im TDC-Register nur noch ein Sechzehntelder Taktperiode betragen, da der Signalausgang dieses Flipflop erst nach derTaktflanke des zugehörigen Taktsignals abgefragt werden kann. Für Taktfrequenzenvon circa 400 MHz, mit der der TDC betrieben wird, ist es aber unmöglich, dasTiming auf diese Weise zu erfüllen. Bei einer Taktperiode von 2,5 ns beträgt das Timingbudgetwie oben erläutert nur etwa 156 ps. Liest man jedoch nur eine Hälfte derFlipflop mit dem ersten Taksignal aus, die andere Hälfte aber mit dem um 180 ◦ phasenverschobenenTakt, so lässt sich das Timingbudget auf eine halbe Taktperiodeerhöhen. Deshalb werden die Flipflop in mehrere Register, genannt ”Partitionen“,von unterschiedlichen Takten des TDC-Registers ausgelesen. In diesem Projekt werdenvier Partitionen verwendet, wobei jedes vierte Taksignal im TDC-Register einePartition taktet (siehe Abbildung 7.7).falling‐edge‐triggered4536271001723456rising‐edge‐triggeredAbbildung 7.7: Das TDC-Register wird mit vier Partitionen synchronisiert. Dienummerierten Kästchen repräsentieren die 16 Flipflop des TDC-Registers, wobeidie Zahlen die entsprechenden Taktsignale angeben. In blau und grün sind die Flipflopangegeben, die durch die steigenden bzw. fallenden Taktsignalflanken ausgelesenwerden. Jedes vierte Taktsignal taktet zusätzlich eine Partition.


7.3. 16-bin TDC-Entwurf 65Die Dekodierung des Thermometer Codes wird nun in jeder Partition separatvorgenommen. Ein Hit wird in einer Partition dadurch erkannt, dass sich der Zustandder gelesenen Flipflop ändert (siehe oben). Um keine Hits zu verlieren, die anden Partitionsgrenzen auftreten, werden von jeder Partition nicht nur vier, sondernfünf Flipflop gelesen. Dies bedeutet, dass das erste Flipflop einer jeden Partitionauch von der vorherigen gelesen wird. Sei zum Beispiel der Thermometer Code“0000111111111111“ des TDC-Registers gegeben, so würden die ersten beiden 4-bitPartitionen “0000“ bzw. “1111“ lauten, und der Hit würde nicht erkannt werden.Die 5-bit Partition löst dieses Problem, da die Partitionen hier mit “00001“ bzw.“11111“ gegeben sind.Bisher kann der TDC nur die Zeitinformation <strong>eines</strong> Hits innerhalb einer Taktperiodebestimmen. Um größere Zeitintervalle oder Zeitdifferenzen zwischen Zeitmarkenzu messen, wird ein Zähler gebraucht, der nach jeder Taktperiode inkrementiert wird(Clock Counter). Da für jeden TDC-<strong>Kanal</strong> ein Zähler benötigt wird, werden dieseresourcenschonend mit den DSP-Slice Elementen implementiert. Der Clock Counterzählt die Taktperioden des ersten Taktsignals im TDC-Register, sodass sich diegesamte Zeitinformation <strong>eines</strong> Hits in TDC-Bins folgendermaßen zusammensetzt:Zeitmarke = Zählerstand (cnt) · 16 + Partitionsnummer (part) · 4+ Position des Bitwechsels in der Partition (hitpos)Abbildung 7.8 verdeutlicht diesen Zusammenhang. Im Binärsystem ist die Multiplikationmit Zweierpotenzen besonders einfach. So wird die Multiplikation einerBinärzahl mit sechzehn durch Schieben nach links um vier Bit und die Multiplikationmit vier durch Schieben um zwei Bit erreicht. Der Messwert time wird in einemsechzehn Bit breiten Datenwort gespeichert, sodass sich dieser durch Verkettung ”&“der einzelnen Beiträge wie folgt berechnen lässt, wobei (a down<strong>to</strong> b) die Anzahl derBits angibt.time (15 down<strong>to</strong> 0) = cnt (11 down<strong>to</strong> 0) & part (1 down<strong>to</strong> 0) & hitpos (1 down<strong>to</strong> 0)Mit sechzehn Bit lassen sich 2 16 = 65536 Zahlen darstellen. Der dynamische Bereichdes TDC-Datenworts beträgt demnach maximal 65535·LSB. Bei einer Taktfrequenzvon 400 MHz, was einer Binbreite von : 16 = 156 ps entspricht, erhält1400 MHzman einen dynamischen Bereich von etwa 10, 2 µs. Ein Messwert des M1-TDC gibtdie Zeit seit dem letzten Überlauf des Clock Counters an, oder anders gesprochen dieZeit seit dem Start des Zählers modulo des dynamischen Bereichs. Der dynamischeBereich spielt auch insofern eine Rolle, da die korrekte Zeitdifferenz zwischen zweiHits nur bestimmt werden kann, wenn diese nicht weiter als der halbe dynamischeBereich des TDC auseinander liegen. Grund dafür ist ein möglicher Zählerüberlaufzwischen den beiden Hits, der nur detektiert werden kann, wenn die oben genannteBedingung erfüllt ist.


66 7. <strong>FPGA</strong>-Implementierung des M1-TDC“Hit” auf dem DatensignalDatensignalTaktsignalePart. 1Part. 2Part. 3“ Thermometer Code”der Partitionen:Part. 0 = “00000”Part. 1 = “11000”Part. 2 = “11111”Part. 3 = “11111”Part. 0TDC-RegisterPartitionen“Hit” in Partitiontime (LSB) = cnt x 16 + part x 4 + hitposAbbildung 7.8: Prozess zur Detektion <strong>eines</strong> Hits (hier steigende Flanke) auf demDatensignal. Der Thermometercode des TDC-Registers muss aufgrund der unterschiedlichenClock Domains mit vier Partitionen synchronisiert werden. Der Hitwird schließlich durch den Bitwechsel in der zweiten Partition detektiert. Die Zeitinformationberechnet sich aus dem Zählerstand des Clock Counters (cnt), der Partitionsnummer(part) und der Position des Bitwechsels in der Partition (hitpos).


7.4. Trigger Matching 67Um Daten von verschiedenen GANDALF-Modulen vergleichen zu können, müssendie Resetsignale der Zähler sowie das Taktsignal der TDC synchronisiert werden.Dies wird im COMPASS-II-Experiment vom TCS-System sichergestellt, welches dasTaktsignal sowie Triggersignale und spezifische, für die Datennahme relevante Informationenüber Glasfaserkabel synchron auf alle Module im Experiment verteilt.Wie in Kapitel 3 beschrieben, ist das COMPASS-II-Experiment in den Supercycledes SPS-Beschleunigers eingebunden, und erhält dadurch in regelmäßigen Abständeneinen Teilchenstrahl für die Dauer von circa zehn Sekunden. Der Anfang <strong>eines</strong>sogenannten ”Spills“ wird vom TCS-System über das ”Begin-of-Spill“-Signal (BOS)anzeigt (siehe Abschnitt4.3.2). Das BOS-Signal ist daher als Referenzzeitpunkt fürden TDC prädestiniert, sodass alle Zähler vor jedem Spill synchron zu diesem Signalgenullt werden. Die Dekodierung der TCS-Informationen sowie das TCS-Systemselbst sind Thema des Abschnitts 4.3.2.Es stellt sich nun die Frage, wie die TDC-Messwerte weiterverarbeitet werden. Dadie Hits auf dem Datensignal zeitlich unkontrolliert eintreffen, und um eine möglichst<strong>to</strong>tzeitfreie Verarbeitung garantieren zu können, werden die Messwerte zunächst im<strong>FPGA</strong> zwischengespeichert. Für jeden <strong>Kanal</strong> des TDC steht dazu ein sogenannterHitbuffer“ zur Verfügung. Um auch lange Trigger-Verzögerungen (siehe Abschnitt”7.4) bei maximalen Hitraten verarbeiten zu können, ist der Hitbuffer aus einem BlockRAM Element mit einer Speicherkapazität von 1024 Wörtern aufgebaut. Auch wirdder Block RAM in diesem Fall als Simple Dual Port RAM“ und nicht als FIFO”Speicher konfiguriert, was im nächsten Abschnitt noch näher erläutert wird.7.4 Trigger MatchingExperimente in der Teilchenphysik bestehen für gewöhnlich aus einer großen AnzahlDetek<strong>to</strong>ren. Jeder Detek<strong>to</strong>r setzt sich wiederum aus bis zu mehreren tausendKanälen zusammen. Im COMPASS-II-Experiment werden circa 250 k Detek<strong>to</strong>rkanäleverarbeitet, was einer Datenrate von bis zu 4 Gigabyte pro Spill entspricht. Da dieDatenspeicherung einen großen Kostenpunkt darstellt und der Rechenaufwand zurAnalyse dieser Datenmengen enorm ist, ist es wünschenswert, den Untergrund zuunterdrücken und nur die physikalisch relevanten Ereignisse aufzuzeichnen. Die inden Hitbuffern gespeicherten Messwerte werden dafür von einer ”Trigger MatchingEinheit“ vorselektiert, bevor sie zum Datennahmesystem gesendet werden.Um eine Entscheidung über die Relevanz der Daten treffen zu können, wird imCOMPASS-II-Experiment ein Triggersignal (siehe Abschnitt 3.4) erzeugt, das dieinteressanten Ereignisse vom Untergrund trennt und die Datenauslese aller Moduleim Experiment steuert. Zudem wird die Zeitmarke des Triggers (Event) selbst voneinem TDC gemessen und dient so als Referenzzeitpunkt (Mastertime) für alle zudiesem Ereignis gehörenden Hits. Die Differenz der Zeitmarken von Hit- und Triggersignal,abzüglich einer detek<strong>to</strong>rspezifischen Konstante (T 0 -Korrektur), erlaubtschließlich die Rekonstruktion der Teilchenspuren im Experiment. Da die Generierungdes Triggersignals Zeit braucht (typ. 500 ns), müssen die Daten in den Hitbuffernlange genug zwischengespeichert werden können, ohne dass der Speicherüberläuft. Entscheidend dafür ist neben der Speicherkapazität die Hitrate sowie diefür den Trigger Matching Prozess benötigte Zeit und damit die Triggerrate selbst.


write enable68 7. <strong>FPGA</strong>-Implementierung des M1-TDCDie Trigger Matching Einheit gibt nur die Zeitmarken der Hits, die innerhalb <strong>eines</strong>einstellbaren Zeitfensters (Trigger Window) um den Triggerzeitpunkt liegen (sieheAbbildung 7.11), an einen ”Output FIFO“ (Block RAM Element) weiter. Die Positiondes Zeitfensters relativ zum Triggerzeitpunkt ist durch die sogenannte ”TriggerLatency“ gegeben. Um anhand dieser beiden Parameter die Datenselektion vornehmenzu können, muss auch die Zeitmarke des Triggersignals (Triggerzeit) bekanntsein. Es ist jedoch ausreichend, die Triggerzeit (nicht zu verwechseln mit der Mastertime)mit einer Genauigkeit äquivalent der Taktperiode des TDC zu bestimmen.Dazu wird das Triggersignal zunächst über einen Flipflop synchronisiert, um möglichemetastabile Zustände (siehe Abschnitt 7.3) in der nachfolgenden Logik zu vermeiden.Anschließend wird eine einfache Signalflankenbestimmung durchgeführt, beider das synchronisierte Triggersignal von einem Flipflop getaktet wird, dessen Ausgangsowohl auf einen weiteren Flipflop als auch auf ein einfaches UND-Gatter gegebenwird. Der zweite Eingang des Gatters wird vom negierten Ausgang des zweitenFlipflop gespeist, sodass sowohl der Zustand des Triggersignals zum Zeitpunkt derletzten wie auch der inverse Zustand zur vorletzten steigenden Taktflanke am Gatteranliegt (siehe Abbildung 7.9). Die Triggerzeit ergibt sich aus dem Zählerstand<strong>eines</strong> weiteren Clock Counters zum Zeitpunkt der steigenden Triggersignalflanke,angezeigt vom Ausgang des UND-Gatters. Da die Triggersignale in kurzer Abfolgehintereinander eintreffen können, kann es sein, dass der Trigger Matching Prozessfür das letzte Event noch nicht beendet ist. Deswegen wird, um keine Trigger zuverlieren, die Triggerzeit in einem Block RAM Element, genannt ”Trigger FIFO“,zwischengespeichert.-DTriggersignal- D Q -- DQ - - D Q - Q -DFFDFFDFF>>>TaktClockCounterTrigger FIFOTriggerzeitAbbildung 7.9: Blockschema des Triggerzeitmoduls. Die Triggerzeit wird bestimmt,indem der Zählerstand des Clock Counters in den Trigger FIFO geschrieben wird,sobald ein Trigger über die Flankenerkennung detektiert wurde. Der Ausgang desUND-Gatters dient dabei als Schreibfreigabe (write enable).


7.4. Trigger Matching 69Das Trigger Matching wird im <strong>FPGA</strong> mit einem endlichen Zustandsau<strong>to</strong>maten(Finite State Machine (FSM)) realisiert. Endliche Zustandsau<strong>to</strong>maten sind Grundlagevieler digitaler Systeme, bei denen Funktionsabläufe durch zyklisches Durchlaufeneiner deterministischen Anzahl von Zuständen gesteuert werden [50, 51]. Zustandsau<strong>to</strong>matenwerden durch synchrone Schaltwerke realisiert. Der Unterschiedvon Schaltwerken und Schaltnetzen (kombina<strong>to</strong>rische Logik) besteht darin, dass inSchaltwerken zumindest ein Ausgang auf den Eingang rückgekoppelt wird, was einspeicherndes Verhalten (sequentielle Logik) der Schaltung voraussetzt. Im Gegensatzdazu hängt die Ausgabe von Schaltnetzen nur vom momentanen Wert der Eingangssignaleab.Eine FSM besteht aus einem Schaltwerk, das den aktuellen Zustand Z* des Au<strong>to</strong>matenaus der Menge Z seiner Zustände speichert und diesen auf die Funktionf(X, Z) rückkoppelt, die in Abhängigkeit des aktuellen Zustands Z* sowie der Mengeder Eingangssignale X den neuen Zustand des Au<strong>to</strong>maten berechnet. Ein weitererProzess steuert die Ausgabemenge Q der State Machine, die allein vom Zustand(Moore-Au<strong>to</strong>mat) g(Z) oder zusätzlich von den Eingangssignalen (Mealy-Au<strong>to</strong>mat)g(X,Z), abhängen kann (siehe Abbildung 7.10).-D- D Q -SchaltwerkZ*f(X,Z)Q -TaktEingängeX>g (Z) “Moore”oderg(X, Z) “Mealy”AusgängeQAbbildung 7.10: Funktionsweise <strong>eines</strong> Zustandsau<strong>to</strong>maten. Ein Schaltwerk speichertden aktuellen Zustand Z*. Folgezustand und Ausgabemenge Q werden von den Prozessenf(X,Z) bzw. g(Z)(Moore-Au<strong>to</strong>mat) oder g(X,Z) (Mealy-Au<strong>to</strong>mat) berechnet.Kommen wir nun zur Umsetzung des Trigger Matching Prozesses in einen Zustandsau<strong>to</strong>maten:Im Anfangszustand st requestTT der Trigger Matching FSM wird gewartet, bisüber ein Signal angezeigt wird, dass Triggerzeitmarken zur Abarbeitung bereitstehen.Dann wird aus der Ausgabe des Trigger FIFO die aktuelle Triggerzeit TT inTDC-Bins berechnet. Angenommen, für längere Zeit würde kein Triggersignal mehrempfangen, so würde entweder der Hitbuffer überlaufen, was einen Datenverlust zurFolge hat, oder der Trigger Matching Prozess für das nächste Event würde sehr langedauern, da erst die alten Zeitmarken aus dem Speicher gelöscht werden müssen. Deswegenwird, sobald der Trigger FIFO leer ist und die FSM wieder im Anfangszustandangelangt ist, ein Zähler hochgezählt. Wird währenddessen kein neues Triggersignalgesendet, so generiert die Logik, sobald der Zähler überläuft, ein internes Triggersignal.Für diesen künstlichen Trigger wird eine Triggerzeitmarke in den Trigger


70 7. <strong>FPGA</strong>-Implementierung des M1-TDCFIFO geschrieben, als würde es sich um einen echten Trigger handeln. Das höchstwertigeBit (MSB 1 ) der Triggerzeitmarke zeigt an, ob es sich um einen realen oderkünstlichen Trigger handelt.Für den Fall <strong>eines</strong> echten Triggers wird im nächsten Zustand st writeHeaderein sogenanntes ”Headerwort“ in den Output FIFO geschrieben, das die Daten verschiedenerEvents separiert. Um den TDC in das existierende Datennahmessystem(DAQ) redundant integrieren zu können, wurde das Datenformat [52] des momentanam Experiment eingesetzten F1-TDC Chips [53, 54] weitestgehend übernommen.Dies hat den Vorteil, dass die Decoding-Library der Datennahmesoftware DATE[55] nicht modifiziert werden musste, da die Daten nicht von denen <strong>eines</strong> F1 Chipsunterscheidbar sind. Das Headerwort kann durch das höchstwertige Bit von einemDatenwort unterschieden werden und ist für den Datensatz <strong>eines</strong> Events folgendermaßenaufgebaut:0 tbo event no.(6) TT(9) xor chip/chan. ID (6) port(4) PLL locked(4)Aufbau des TDC-HeaderwortsJeweils 32 der insgesamt <strong>128</strong> Eingangssignale des GANDALF TDC können eindeutigdurch die sechs Bit breite Chip/Channel-Identifikationsnummer unterschiedenwerden. Durch das Portlabel werden je 32 Kanäle zusammengefasst, wobei nur diePortnummern 0, 4, 8 und 12 verwendet werden. Weiter sind im Headerwort die schonerwähnte Triggerzeit (TT) sowie eine intern generierte Eventnummer, die die Anzahlder empfangenen Trigger im aktuellen Spill angibt, enthalten. Die PLL locked Bitssind für den M1-TDC nicht definiert und werden konstant auf ’1’ gesetzt. Dasselbegilt für die tbo und xor Bits, wobei diese standardmäßig auf ’0’ gesetzt werden.TriggerHits“Trigger Latency”“Trigger Window”alte Hits werdenvom Hitbuffergelöschtzum Output FIFOAbbildung 7.11: Der Trigger Matching Prozess: Nur Hits innerhalb <strong>eines</strong> einstellbarenZeitfensters um den Triggerzeitpunkt werden in den Output FIFO geschrieben.Messwerte älter als die Trigger Latency werden vom Hitbuffer gelöscht.1 Most Significant Bit


7.4. Trigger Matching 71Im Zustand st writeHeader werden auch die Startzeit T start = T T − Latencysowie die S<strong>to</strong>pzeit T s<strong>to</strong>p = T T − Latency + W indow aus der Triggerzeit und denbeiden oben erwähnten Parametern Trigger Latency und Trigger Window berechnet,anhand derer die Zeitmarken in den Hitbuffern selektiert werden. Da das Headerwortnur für jeden achten <strong>Kanal</strong> geschrieben werden muss, werden von jeder TriggerMatching Komponente insgesamt acht Kanäle des <strong>128</strong>-<strong>Kanal</strong>-TDC verarbeitet. Zujedem Event werden sukzessiv die relevanten Daten von allen acht Hitbuffern indenselben Output FIFO geschrieben.Im Zustand st nextchan wird deshalb der Lesezeiger read pointer der TriggerMatching Einheit mit der Speicheradresse Rdptr mem(chan id) des aktuellen Hitbuffers,auf der das letzte mal vom Speicher gelesen wurde, sowie der Schreibzeigerwrite pointer mit der aktuellen Speicheradresse, auf die der nächste Messwert geschriebenwird, abgeglichen. Im Zustand st hitsearch wird entschieden, ob dasDatenwort HitBuffer dout, das unter der aktuellen Leseadresse im Hitbuffer gespeichertist, in den Output FIFO geschrieben oder gelöscht wird. Es werden drei Fälleunterschieden:1. HitBuffer dout < T startIn diesem Fall wird die State Machine angewiesen, das nächsten Datenwort ausdem Speicher auszulesen, da die Zeitmarke vor dem Triggerfenster liegt und somitverworfen werden kann. Dazu wird der Lesezeiger inkrementiert und unterRdptr mem(chan id) abgespeichert, sodass die Datenselektion auf <strong>Kanal</strong>nummerchan id beim nächsten Event erst ab dieser Speicheradresse beginnt. Dieser Vorgangwiederholt sich solange, bis Lese- und Schreibzeiger übereinstimmen (read pointer= write pointer) oder eine der nächsten Bedingungen erfüllt ist. Handelt es sich umein künstliches Event, so wird der Trigger Matching Prozess an dieser Stelle abgebrochen.Der künstliche Trigger hat damit seinen Zweck erfüllt, da alle Hits, diedefinitiv nicht in das Zeitfenster nachfolgender Trigger passen, aus dem Speicher gelöschtwurden. Die State Machine wird dann direkt in den Zustand st writeTrailer,der unter 3. beschrieben wird, versetzt.2. T start ≤ HitBuffer dout ≤ T s<strong>to</strong>pDie Zeitmarke liegt innerhalb des Zeitfensters, sodass im nächsten Zustandst hitselect ein neues Datenwort in den Output FIFO geschrieben wird. Es enthältzu den schon vom Headerwort bekannten Informationen den sechzehn Bit breitenTDC-Messwert.1 0 chip/chan. ID(6) DATA(16) port(4) PLL locked(4)Aufbau des TDC-DatenwortsAnschließend wird die nächste Zeitmarke aus dem Hitbuffer gelesen. Da sich mehrereTriggerfenster überlappen können, wird die Variable Rdptr mem(chan id) nun


72 7. <strong>FPGA</strong>-Implementierung des M1-TDCnicht mehr überschrieben. Anderenfalls würden die Messwerte, die auch in das Zeitfensterdes nächsten Events passen, nicht gefunden. Auch hier muss überprüft werden,dass nicht von der aktueller Schreibadresse gelesen wird. In diesem Fall geht esim Zustand st writeTrailer weiter.3. HitBuffer dout > T s<strong>to</strong>pIst diese Bedingung erfüllt, so gelangt die FSM aus den in 1. und 2. beschriebenenZuständen in den Zustand st writeTrailer. Hier wird die <strong>Kanal</strong>nummerchan id inkrementiert, sodass der Trigger Matching Prozess für den nächsten Hitbufferdurchgeführt werden kann. Weil die Triggerzeit sowie die Parameter Latencyund Window unverändert bleiben, müssen nur die Lese- und Schreibzeiger der StateMachine mit denen des neuen Hitbuffers synchronisiert werden, weshalb im Zustandst nextchan gestartet werden kann. Handelt es sich jedoch um den letzten der achtKanäle, wird stattdessen ein ”Trailerwort“ in den Output FIFO geschrieben, das dieDaten von denen des nächsten Events trennt. Außer in der Chip/Channel Identifikationsnummerunterscheidet sich das Trailerwort nicht vom letzten Headerwort.Die State Machine wartet anschließend wieder im Zustand st requestTT , bis dasnächste Triggerevent verarbeitet werden kann.Es sei noch erwähnt, dass bei der Überprüfung der drei oben genannten Bedingungeneventuelle Zählerüberläufe berücksichtigt werden müssen. Dies kann zum einenzwischen Hit- und Triggerzeitmarke der Fall sein. Zum Anderen können Zählerüberläufebei der Berechnung der Start- und S<strong>to</strong>ppzeiten auftreten, da diese Zeiten jakeine negativen Werte annehmen können. Dies kann durch Erweiterung der Zählerbreiteder verwendeten Clock Counter um zwei zusätzliche Bit überprüft werden. Inden Hitbuffern werden daher eigentlich 18-bit-Datenwörter gespeichert, wobei nurdie sechzehn niederwertigsten Bits den TDC-Messwert darstellen. Im einfachstenFall hat kein Zählerüberlauf stattgefunden, sodass die beiden höchstwertigen Bitsvon Messwert sowie Start- und S<strong>to</strong>ppzeit übereinstimmen müssen. Dagegen hat einZählerüberlauf stattgefunden, wenn sich die Wörter im ersten Zusatzbit unterscheiden.Das zweite Bit ist notwendig, da nur mit dieser Information festzustellt werdenkann, ob beispielsweise die aktuelle Zeitmarke noch vor der Startzeit liegt, also dieerste Bedingung erfüllt ist. Auf dieselbe Weise lassen sich auch die beiden anderenBedingungen überprüfen. Hierbei wird auch die Notwendigkeit der oben erwähntenkünstlichen Trigger deutlich, da anderenfalls Zeitmarken, die zeitlich weiter als derdynamische Bereich von der Startzeit entfernt liegen, nicht mehr eindeutig zugeordnetwerden können.Die für den Trigger Matching Prozess benötigte Zeit limitiert die maximal möglichenHit- und Triggerraten, die der M1-TDC verarbeiten kann. Deshalb wurde derTrigger Matching Prozess für verschiedene Szenarien simuliert:• In jedem Hitbuffer der acht Kanäle, die von einer Trigger Matching Einheitverarbeitet werden, liegt ein gespeicherter Messwert vor, der zudem im aktuellenTrigger Window liegt. Die Zeit, bis das nächste Event verarbeitet werdenkann, beträgt in diesem Fall circa 470 ns.


7.5. Das S-LINK Interface 73• Für neun Hits in jedem Hitbuffer, wobei nur ein Hit jedes <strong>Kanal</strong>s im TriggerWindow liegt, beträgt die Verarbeitungszeit des Events circa 1780 ns.Die für den Trigger Matching Prozess benötigte Zeit ist des<strong>to</strong> kleiner, je wenigerHits im Trigger Window liegen, da diese verworfen werden können und nicht in denOutput FIFO geschrieben werden müssen.7.5 Das S-LINK InterfaceDie vom Trigger Matching Prozess aus den Hitbuffern von acht Kanälen selektiertenZeitmarken liegen im Output FIFO zur Datenauslese bereit und müsseneventweise zum Datennahmesystem gesendet werden. Das Datenformat der DATE-Datennahmesoftware verlangt jedoch, dass im DATE Headerwort (siehe Abschnitt7.7.1) die Größe des zu sendenden Datenpakets mitgeteilt wird. Dazu werden dieDaten <strong>eines</strong> Events von einer weiteren State Machine aus dem Output FIFO ausgelesen.Datenwörter verschiedener Events werden anhand des TDC Header- undTrailerworts unterschieden, die ebenso in den S-LINK FIFO geschrieben werden.Dabei wird die Anzahl der Datenwörter von einem Zähler erfasst. Sobald sich dasgesamte Event im S-LINK FIFO befindet, werden keine neuen Daten mehr aus demOutput FIFO gelesen und die State Machine zeigt der nachfolgenden Logik überein Steuersignal an, dass die Datenauslese (siehe Abschnitt 7.7) beginnen kann. Sobaldder S-LINK FIFO vollständig geleert ist, wird der Zähler zurückgesetzt und dieDaten für das nächste Event vorbereitet.7.6 Partitionierung und FloorplanningFür die Implementierung von <strong>128</strong> TDC-Kanälen muss der 16-bin TDC-Entwurf im<strong>FPGA</strong> vervielfältigt werden. Leider lässt sich ein Design dieser Größe aufgrund derhohen Taktfrequenzen nicht ohne weiteres implementieren. Würde man die Logikaller Kanäle auf einmal instanziieren, so könnte das Timingbudget (siehe Abschnitt6.2) der Schaltung nicht erfüllt werden, da die Implementierungsalgorithmen nichtkomplex genug sind, um eine geeignete Platzierung und Verdrahtung für alle Komponentenim <strong>FPGA</strong> zu finden. Es gibt jedoch Möglichkeiten, die Software beim Place& Route-Schritt dahingehend zu unterstützen.Als erstes muss mit Hilfe der Static Timing Analysis der kritische Pfad der Schaltunggefunden werden (siehe Abschnitt 6.2). Das Timing kann beispielsweise durchPipelining, bei dem zusätzliche Flipflop in die kombina<strong>to</strong>rische Logik des kritischenPfades eingebaut werden, verbessert werden. Nachteil dieser Methode ist der erhöhteResourcenbedarf. Eine weitere Möglichkeit besteht darin, die Flipflop der zeitkritischenPfade mit einem sogenannten ”Clock Enable“ Signal zu steuern. Dadurchwerden die Flipflop nur getaktet, wenn das Enable Signal zum Zeitpunkt der steigendenTaktflanke im Zustand ”high“ ist. Die effektive Taktfrequenz wird dadurch,abhängig von der Frequenz des Clock Enable Signals, zumindest halbiert. Außer zurErzeugung des Enable Signals wird keine weitere Logik gebraucht. Darüber hinauslässt sich diese Methode sehr leicht im VHDL Code der Schaltung umsetzen.


74 7. <strong>FPGA</strong>-Implementierung des M1-TDCAus schon in Abschnitt 7.3 erwähnten Gründen ist darauf zu achten, dass dasEnable Signal zum Taktsignal synchron ist. Zweck dieses sogenannten ”MulticycleConstraints“ ist die Erhöhung des Timingbudgets (6.1) des kritischen Pfades. Aufdiese Weise kann auch leicht das Timing ganzer Bereiche der Schaltung gesteuertwerden. Damit das zusätzliche Timingbudget auch genutzt werden kann, muss es derImplementierungssoftware in Form <strong>eines</strong> ”FROM-TO“ Constraints [49] mitgeteiltwerden. In der UCF-Datei wird das Constraint folgendermaßen deklariert:TIMESPEC “TSname” = FROM “src group” TO “dest group” value;“TSname” ist der Bezeichner des Constraints. “Src group” und “dest group” spezifizierendie Start- und Endpunkte der entsprechenden Signalpfade. Das neue Timingbudget”value“ zwischen den beiden Flipflopgruppen wird in Einheiten derursprünglichen Taktperiode angegeben. Mehrere Komponenten des TDC-Entwurfsmachen von diesem Constraint Gebrauch.Ohne weitere Vorgaben an die Implementierungssoftware werden die Bausteineeiner Schaltung jedoch über den gesamten <strong>FPGA</strong> verstreut instanziiert. Dadurchergeben sich zum Teil beträchtliche Signallaufzeiten zwischen den einzelnen Komponenten,was sich wiederum negativ auf die Performance des Designs auswirkt.Abhilfe kann das sogenannte ”Floorplanning“ schaffen.Dabei wird der Software ein Bereich im <strong>FPGA</strong> vorgegeben, in den die Logik des Designsimplementiert werden soll. Dadurch können zumeist optimale Signallaufzeitenfür eine maximale Performance des Designs erzielt werden. Der gewünschte Bereichwird über das Koordinatensystem, in dem auch die Slice sowie DSP und Block RAMBausteine angeordnet sind, spezifiziert. Mit dem ”AREA GROUP“ Constraint [49]kann der Floorplan und die Komponenten, die in diesen Bereich implementiert werdensollen, in der UCF-Datei des Designs festgelegt werden.AREA GROUP “groupname” RANGE = range;INST “comp name” AREA GROUP = groupname;Groupname“ ist der Bezeichner des Constraints. Mit range wird die Größe des”Floorplans angegeben und comp name“ spezifiziert die Logikgruppe, die in den”Floorplan implementiert werden soll.7.6.1 F1-BlockWie im vorherigen Abschnitt erläutert, ist es unumgänglich, für den <strong>FPGA</strong>-Entwurfdes <strong>128</strong>-<strong>Kanal</strong>-TDC einen Floorplan zu erstellen. Dazu muss das Design in einzelneBereiche aufgeteilt werden. Da eine Trigger Matching Komponente (Abschnitt7.4) acht Hitbuffer verarbeitet und die Daten in einen gemeinsamen S-LINK FIFOschreibt, ist es naheliegend, die gesamte Logik von je acht TDC-Kanälen zusammenzufassen.In Anlehnung an den F1-TDC Chip wird ein solcher Bereich ”F1-Block“genannt.


F1-BlockTDC channel 1TDC channel 87.6. Partitionierung und Floorplanning 75Der F1-Block setzt sich aus den TDC-Registern, Clock Countern, Partitionenund Hitbuffern von acht Kanälen sowie der Trigger Matching Komponente inklusivedes Output FIFO und einem S-LINK FIFO zusammen (siehe Abbildung 7.12).Der <strong>FPGA</strong> muss also in sechzehn äquivalente Bereiche für die F1-Blöcke aufgeteiltund die Datenauslese aller S-LINK FIFO von einem zentralen Interface koordiniertwerden (siehe Abschnitt 7.7). Der Virtex-5 SX95T <strong>FPGA</strong> ist in sechzehn Clock Regionsaufgeteilt (siehe Abbildung 6.3). Da auch der strukturelle Aufbau des <strong>FPGA</strong>dieser Symmetrie folgt, wird je einer Clock Region ein F1-Block zugeordnet. DerLogik jedes TDC-<strong>Kanal</strong>s <strong>eines</strong> F1-Blocks wird wiederum ein eigener Bereich innerhalbder Clock Region zugewiesen. Der UCF-Datei-Eintrag für den Floorplan <strong>eines</strong>F1-Blocks ist in Anhang B zu finden.TDC register(16 flip-flops)partition 1 partition 4Hit BufferRAMclockcounter8xTDC register(16 flip-flops)partition 1 partition 4Hit BufferRAMclockcounter<strong>128</strong> x DataTrigger MatchingOutput FIFOSLink FIFO16 x F1-blockDAQAbbildung 7.12: F1-Block: Zur Verarbeitung von <strong>128</strong> TDC Kanälen wird das <strong>FPGA</strong>-Design in 16 F1-Block Elemente aufgeteilt.Angenommen, ein F1-Block wurde erfolgreich implementiert, so ist es immer nochmöglich, dass durch Hinzufügen weiterer Logik, die Platzierung und Verdrahtung derKomponenten des F1-Blocks bei der nächsten Implementierung des <strong>FPGA</strong>-Entwurfsmodifiziert wird. Zwar bleibt der F1-Block auf seinen Floorplan beschränkt, jedochkann das Timing der Schaltung nicht mehr garantiert werden. Um die Implementierungsergebnissezeitkritischer Bereiche <strong>eines</strong> <strong>FPGA</strong>-Designs zu speichern und inweiteren Implenentierungsschritten wiederzuverwenden, kann die Technik der Partitionierung(Incremental Design Reuse) auf diese Komponenten angewendet werden.Dazu wird der <strong>FPGA</strong>-Entwurf zunächst wie gewohnt implementiert. Sobald dieTimingvorgaben erfüllt sind, werden die Informationen über die Platzierung undVerdrahtung der Logikbausteine in speziellen Dateien mit der Endung .prev abgelegtund können in weiteren Implementierungsschritten beliebig oft wiederverwendetwerden. In einer sogenannten ”PXML-Datei“ wird die Komponente, für die einePartition erstellt werden soll, spezifiziert. Wie eine Partition definiert wird, zeigt


76 7. <strong>FPGA</strong>-Implementierung des M1-TDCfolgendes Beispiel [56]:1 23 5 67 9 1011 13 1415 Die erste Zeile gibt die oberste Komponente (Top Level) in der Hierarchie des<strong>FPGA</strong>-Entwurfs an und muss in einer PXML-Datei standardmäßig angegeben werden.Danach folgen die unter Partition Name angegebenen Module des Designs, dieals Partitionen deklariert werden sollen.Eine Partition besitzt zwei mögliche Zustände (State). Implement sorgt dafür,dass die Komponente bei der Implementierung als Partition erkannt wird. In diesemFall werden die Implementierungsergebnisse für das Modul in den schon erwähnten.prev Dateien gespeichert. Dagegen kennzeichnet der Zustand Import eine Partition,für die die Implementierungsergebnisse aus den im Verzeichnis ImportLocation hinterlegtenDateien verwendet werden sollen. Das Schlüsselwort Preserve spezifiziertden Wiederverwendungsgrad der Partition. Bei routing werden hundert Prozent derPartition wiederverwendet, das heißt die Platzierung und Verdrahtung der Komponentenwird sozusagen eingefroren, wohingegen bei placement nur die Platzierungder Logikbausteine übernommen wird, die Verdrahtung jedoch modifiziert werdenkann. Über einen weiterer Parameter BoundaryOpt, können nachträglich Änderungenzugelassen werden, wenn beispielsweise unbenutzte oder konstante Eingänge ineiner Partition vorliegen. Die vollständige xpartition.pxml Datei des Designs liegt inAnhang C vor.In diesem Projekt wurde jeder F1-Block zunächst in einem separaten <strong>FPGA</strong>-Entwurf implementiert. Der F1-Block wird als Partition deklariert und die Implementierungsergebnissegespeichert. Um die Partition auch in anderen Projektenwiederverwenden zu können, muss eine Netzliste (NGC-Datei) des Moduls generiertwerden (siehe Abschnitt 6.2). Schlussendlich wurden alle sechzehn F1-Block Partitionenin einem <strong>128</strong>-<strong>Kanal</strong>-TDC-Entwurf zusammengeführt und gemeinsam mit derverbleibenden Logik implementiert (siehe Abbildung 7.13). Der <strong>128</strong>-<strong>Kanal</strong>-M1-TDCbenötigt circa 43 % der Flipflop, 27 % der LUT, 73 % der Block RAM und 22 % derDSP Slice des Virtex-5 SX95T <strong>FPGA</strong>.Die Timinganforderungen konnten durch das ”Einfrieren“ der zeitkritischen F1-Block Module für das gesamte Projekt sichergestellt werden. Die Vereinigung der


7.6. Partitionierung und Floorplanning 77Partitionen in einem einzigen <strong>FPGA</strong>-Design wird durch die separate Synthese derNetzlisten der F1-Block-Partitionen möglich. Das endgültige Design wird zunächs<strong>to</strong>hne Berücksichtigung der Logik der Partitionen synthetisiert, deren Netzlisten imTranslate-Schritt der Implementierung in Form der NGC-Dateien beigefügt werden.Von der Synthese ausgenommen werden Module durch die Deklaration als sogenannte”Black Box“. Das Black Box Constraint wird folgendermaßen im VHDL Code desDesigns angegeben, wobei component name durch den Instanznamen der Partitionersetzt wird.attribute “box type“ : string;attribute “box type“ of component name: component is “black box“ ;Somit können am Design beliebige Änderungen vorgenommen werden, ohne diePartitionen neu implementieren zu müssen. Eine Modifikation der F1-Block-Komponentenselbst macht jedoch die separate Reimplementierung aller Partitionen nötig.Abbildung 7.13: Schematische Ansicht des DSP-<strong>FPGA</strong>. Jeder F1-Block wird in einemseparaten <strong>FPGA</strong>-Entwurf implementiert und die Platzierung und Verdrahtungder Komponenten als Partition gespeichert (links). Im <strong>128</strong>-<strong>Kanal</strong>-TDC-Design werdenschließlich alle sechzehn F1-Block-Partitionen zusammengeführt und gemeinsammit der verbleibenden Logik implementiert (rechts).


78 7. <strong>FPGA</strong>-Implementierung des M1-TDC7.7 DatenausleseIn den Abschnitten 7.4 und 7.5 ging es um die Datenselektion durch den TriggerMatching Prozess und die Vorbereitung sowie Speicherung der Messwerte zurDatenauslese im S-LINK FIFO mithilfe des S-LINK Interface. Im vorherigen Abschnittwurde schließlich die Unterteilung und Implementierung des <strong>128</strong>-<strong>Kanal</strong>-TDC-Designs in sechzehn F1-Blöcke unter Verwendung der Patitionierungstechnik erläutert.Der <strong>FPGA</strong>-Entwurf muss nun noch um die Logik zur Steuerung der Datenübertragungzum Datennahmesystem erweitert werden. Die Auslese der sechzehnS-LINK FIFO kann über verschiedene Schnittstellen erfolgen, die hier beschriebenwerden sollen.7.7.1 Die S-LINK-AusleseDie Datenübertragung der TDC-Messwerte zum Datennahmesystem ist beispielsweiseüber das S-LINK-Pro<strong>to</strong>koll möglich, das unter anderem am COMPASS-II-Experiment eingesetzt wird und eine Datenübertragungsrate von bis zu 160 MB/sermöglicht. Die S-LINK Hardware sowie die Verbindung zum GANDALF-Modul undzum Datennahmesystem wurde in Abschnitt 4.1.1 beschrieben. Der Datentransfererfolgt synchron zu einem Taktsignal UCLK mit einer maximalen Frequenz von40 MHz, welches vom Benutzer selbst zur Verfügung gestellt werden muss (Sourcesynchronous).Das Taktsignal wird zusammen mit dem 32-bit Datenbus UD und denSteuersignalen auf die S-LINK Source Card“ (LSC) übertragen. Sobald das Signal”zur Steuerung der Schreibfreigabe UWEN# in den Zustand Low“ versetzt wird,”wird zu jeder steigenden Taktflanke ein Datenwort übertragen. Dies ist jedoch nursolange möglich, wie sich das Signal Link Full Flag“ (LFF#) der LSC im Zustand”High“ befindet. Anderenfalls können noch zwei Datenwörter übertragen werden,”bevor der Schreibevorgang unterbrochen werden muss. Der S-LINK-Datentransferist in Abbildung 7.14 dargestellt.Abbildung 7.14: Der S-LINK-Datentransfer [27].Für jedes Event erwartet die Datennahmesoftware ein Datenpaket. Am Anfangstehen drei S-LINK Headerworte, die in [52] definiert sind. Die Datennahme ist in


7.7. Datenauslese 79Spills, die den Strahlzyklus des SPS-Supercycle (siehe Kapitel 3) im Experimentkennzeichnen, und sogenannte Runs, die sich wiederum aus mehreren Spills zusammensetzen,unterteilt. Ein Event kann daher durch die Angabe seiner Eventnummer(event no.) sowie der entsprechenden Spillnummer (spill no.) eindeutig identifiziertwerden.err(1) ev. type(5) source ID(10) event size(16)stat(1) spill no.(11) event no.(20)format(8) #errorwords(8) tcs error(8) status(8)Aufbau der S-LINK HeaderworteAnhand <strong>eines</strong> Eventlabels (ev. type) können beispielsweise physikalische Triggervon Kalibrations- oder Moni<strong>to</strong>ringtriggern unterschieden werden. Darüber hinauskennzeichnen spezielle Events Anfang und Ende jedes Spills und Runs. Diese Informationengelangen vom TCS-System über optische Fasern zum GANDALF-Modulund werden im <strong>FPGA</strong> vom TCS Interface dekodiert (siehe Abschnitt 4.3.2). DurchAngabe einer Identifikationsnummer (source ID) können die Daten einem bestimmtenModul und somit einem Detek<strong>to</strong>r im Experiment zugeordnet werden. Die SourceID wird über den VME-Bus (siehe Abschnitt 4.1.1) eingestellt und über das CPLDInterface (siehe Abschnitt 4.3.1) ausgelesen. Die Größe des Events, inklusive der Headerworte(event size), berechnet sich aus der Anzahl der in den sechzehn S-LINKFIFO gespeicherten Datenwörtern. Für das erste Event <strong>eines</strong> Runs werden nochzusätzliche Headerworte geschrieben, auf die hier jedoch nicht weiter eingegangenwird. Sie sind ebenfalls in [52] spezifiziert.Der Datenübertragungsprozess wird von einer State Machine gesteuert, die, sobalddie Daten <strong>eines</strong> Events in den S-LINK FIFO und die Triggerinformationenvom TCS Interface vorliegen, die S-LINK Header auf den S-LINK Bus schreibt undanschließend sukzessive die sechzehn S-LINK FIFO ausliest. Jedes Datenpakets wirdvon zwei Kontrollwörtern eingerahmt, dem S-LINK Begin Marker (0x00000000) unddem S-LINK End Marker (0xCFED1200). Während des Schreibvorgangs der Markermuss das S-LINK Kontrollsignal UCTRL# auf ”Low“ gesetzt werden.7.7.2 Alternative SchnittstellenAlternativ kann die Datenauslese auch direkt über den VME-Bus oder die USB2.0-Schnittstelle erfolgen, die sich auf der Vorderseite des GANDALF-Moduls befindet,jedoch mit einer geringeren Datenrate (siehe Kapitel 4). Die Datenübertragung perUSB2.0 bietet sich vor allem an, wenn kein VME-Crate zur Verfügung steht. MitGANDALF Portable steht ein GANDALF-Modul mit eigenständiger Stromversorgungzur Verfügung, sodass über eine USB-Verbindung mit einem Desk<strong>to</strong>p PC einCrate-unabhängiges Datennahmesystem aufgebaut werden kann. Auf dem Desk<strong>to</strong>pPC wird die GANDALF Toolbox Software installiert, die eine graphische Benutzeroberflächebereitstellt und neben der Datenauslese auch die Konfiguration desGANDALF-Moduls über die USB-Schnittstelle erlaubt. In beiden Fällen werden dieDaten aus den S-LINK FIFO in einen sogenannten Spy FIFO geschrieben, dessenAuslese über das CPLD Interface (siehe Abschnitt 4.3.1) gesteuert wird.


80 7. <strong>FPGA</strong>-Implementierung des M1-TDC


8. VerifikationBei der Implementierung des M1-TDC wurde viel Wert auf die Minimierung etwaigerNichtlinearitäten bei der Umsetzung des Shifted Clock Sampling Algorithmusgelegt. Mit speziellen <strong>FPGA</strong>-Implementierungsverfahren konnte ein Datensignalroutingdes TDC-Registers mit minimalen Signallaufzeitdifferenzen gefunden werden.Aufgrund der unterschiedlichen Signallaufzeiten des Eingangstaktsignals zu den beidenPLL, mit denen die phasenverschobenen Taktsignale erzeugt werden, weisen diebeiden Taktsignalgruppen einen Taktversatz zueinander auf, der über die einstellbarePhase des internen Feedbackausgangs der PLL korrigiert werden kann (sieheauch Abbildung 7.6).Für die optimale Justierung der Feedbackphase muss die differentielle Nichtlinearität(DNL) des TDC gemessen werden. Die differentielle und die integrale Nichtlinearität(INL) sind wichtige Kenngrößen <strong>eines</strong> TDC und limitieren die theoretischdurch Quantisierungsfehler erreichbare Zeitauflösung. Deren Messung sowie die Bestimmungder Zeitauflösung werden in diesem Kapitel vorgestellt.Die Funktionalität des M1-TDC wurde mit einem unabhängigen Messgerät verifiziert,indem ein szintillierendes Faserhodoskop am COMPASS-II-Experiment, parallelzur existierenden Hardware, von einem M1-TDC ausgelesen wurde. Die Analysedieser Messung ist ebenfalls Gegenstand dieses Kapitels.


82 8. Verifikation8.1 Messung der differentiellen und integralen NichtlinearitätDie differentielle und integrale Nichtlinearität <strong>eines</strong> TDC wurden in Abschnitt 5.3vorgestellt. Die differentielle Nichtlinearität beschreibt die Abweichung der Größejedes TDC-Bins von seinem nominellen Wert, sprich LSB, wohingegen die integraleNichtlinearität die Abweichung von der idealen Transferfunktion des TDC nach demi-ten Bin angibt.Die INL wird durch Aufsummieren der differentiellen Nichtlinearitäten bis zumi-ten Bin berechnet:INL i =i∑DNL j , i = 0, 1, . . . , 15. (8.1)j=0Die DNL kann mit einem sogenannten ”Code Density Test“ gemessen werden. Dazuwurden mit einem ”Random Pulse Genera<strong>to</strong>r“ zum TDC-Taktsignal unkorreliertePulse erzeugt, die über einen Diskrimina<strong>to</strong>r auf den NIM-Eingang <strong>eines</strong> GANDALF-Moduls, bestückt mit digitalen Outputkarten (siehe Abschnitt 4.2), gegeben wurden.Vom DSP-<strong>FPGA</strong> wurde das Signal auf die insgesamt <strong>128</strong> Ausgänge des GANDALF-Moduls im LVDS-Signalstandard ausgegeben, sodass ein <strong>128</strong>-<strong>Kanal</strong>-Fanout für denM1-TDC zur Verfügung stand. Aufgrund der Signalaufzeit durch das Triggersystemund die optischen Fasern zum GANDALF-Modul konnte dasselbe Signal gleichzeitigals Trigger verwendet werden.Die Messungen wurden mit einer TDC-Taktfrequenz von 388,8 MHz durchgeführt,was der zehnfachen Referenztaktfrequenz des TCS-Systems entspricht. Die Größe1von LSB beträgt in diesem Fall : 16 ≈ 160 ps.388,8MHzJeder Messwert wird im M1-TDC durch ein sechzehn Bit breites Datenwort datarepräsentiert, das die Zeitmarke <strong>eines</strong> Hits in Einheiten von LSB angibt. Somitkann jedem Messwert eindeutig die Binnummer bin i zugeordnet werden, in dem derSignalzustandswechsel registriert wurde,bin i = data modulo 16. (8.2)Nun trägt man in einem His<strong>to</strong>gramm auf, wie oft jedes TDC-Bin getroffen wurde.Da die Hits auf dem Signal zeitlich unkorreliert auftreten, erwartet man für einenidealen TDC homogen gefüllte Bins. Die tatsächlichen Binbreiten <strong>eines</strong> TDC lassensich wie folgt bestimmen.Es sei die Gesamtzahl der Messungen N und die Anzahl n i der in jedem Bindes His<strong>to</strong>gramms gefundenen Einträge gegeben. Da die His<strong>to</strong>grammeinträge für denidealen TDC mit n ideal = N bekannt sind, ergibt sich die differentielle Nichtlinearität16in Einheiten von LSB durchDNL i =n in ideal− 1, i = 0, 1, . . . , 15. (8.3)


8.1. Messung der differentiellen und integralen Nichtlinearität 83DNL[LSB]10.80.60.40.20-0.2-0.4-0.6-0.8-10 2 4 6 8 10 12 14 16bin numberAbbildung 8.1: TDC-<strong>Kanal</strong> mit bester DNL.DNL[LSB]10.80.60.40.20-0.2-0.4-0.6-0.8-10 2 4 6 8 10 12 14 16bin numberAbbildung 8.2: TDC-<strong>Kanal</strong> mit schlechtester DNL.


84 8. VerifikationINL[LSB]10.80.60.40.20-0.2-0.4-0.6-0.8-10 2 4 6 8 10 12 14 16bin numberAbbildung 8.3: TDC-<strong>Kanal</strong> mit bester INL.INL[LSB]10.80.60.40.20-0.2-0.4-0.6-0.8-10 2 4 6 8 10 12 14 16bin numberAbbildung 8.4: TDC-<strong>Kanal</strong> mit schlechtester INL.


8.2. Zeitauflösung 85Es wurden 100 k TDC-Messungen auf allen <strong>128</strong> Kanälen parallel durchgeführt. Diemaximale differentielle Nichtlinearität beträgt bei diesen Messungen für den TDC-<strong>Kanal</strong> mit der kleinsten DNL etwa 19 % und für den TDC-<strong>Kanal</strong> mit der größtenDNL ungefähr 68 % von LSB (siehe Abbildung 8.1 und 8.2). Die DNLs der anderenKanäle liegen zwischen diesen Werten.Die Inhomogenität der TDC-Bins setzt sich aus den Phasenfehlern der Taktsignaleund den Signallaufzeitdifferenzen des Datensignals zu den Flipflop des TDC-Registers zusammen. Da alle TDC-Kanäle die selben Taktsignale verwenden und dasRouting des Datensignals, wie in Abschnitt 7.1 beschrieben, für alle Kanäle homogenimplementiert wurde, kann man davon ausgehen, dass die Varianz der DNLs auf dieLaufzeitdifferenzen der Taktsignale im <strong>FPGA</strong> zurückzuführen ist. Des weiteren kannanhand des Code Density Tests überprüft werden, ob auch jedes TDC-Bin getroffenwird. Ist dies nicht der Fall, die DNL also hundert Prozent, treten Messwerte,bei denen der Hit in <strong>eines</strong> dieser Bins fällt, gar nicht erst auf. Dieses Phänomenwird ”Missing Code“ genannt. Mit den oben gezeigten Messungen kann dies für denM1-TDC ausgeschlossen werden.Die integrale Nichtlinearität wird, wie in Gleichung 8.1 beschrieben, durch Aufsummierender DNL bestimmt. Hier weist der TDC-<strong>Kanal</strong> mit der kleinsten INLeinen maximalen Wert von 23 %, der TDC-<strong>Kanal</strong> mit der größten INL einen Maximalwertvon 68 %, auf (siehe Abbildung 8.3 und 8.4).Die INL liefert eine Abschätzung für die Linearität der Transferfunktion und damitfür die erreichbare Zeitauflösung des TDC (siehe Abschnitt 8.2). Da sich die Konvertierungscharakteristikperiodisch mit der Taktperiode wiederholt, hat die integraleNichtlinearität eine größere Aussagekraft als der in Abschnitt 5.3 beschriebene GainError.8.2 ZeitauflösungDie Zeitauflösung <strong>eines</strong> TDC kann aus der Standardabweichung (RMS) der Messwertefür ein fixes Zeitintervall bestimmt werden. Die Standardabweichung einersolchen Messung ist nach Abschnitt 5.2 von der Länge des gemessenen Zeitintervallsabhängig. Die Zeitauflösung ist minimal für Zeitintervalle, die einem ganzzahligenVielfachen von LSB entsprechen, und maximal für halbzahlige Vielfache vonLSB (siehe Abbildung 5.4). Um die gesamte Konvertierungscharakteristik des TDC-Registers zu berücksichtigen, muss die Zeitauflösung als Funktion des Zeitintervallsüber die Länge einer Taktperiode gemessen werden.Dazu wurde ein Zeitintervall, definiert durch zwei aufeinanderfolgende Hits, inSchritten von circa 20 ps gemessen. Für jeden Messpunkt wurden 10 k Ereignisse aufgezeichnet,sodass der statistische Fehler der Messung vernachlässigt werden kann.Die beiden Pulse wurden von einem AFG3252 [57] Funktionsgenera<strong>to</strong>r der FirmaTektronix generiert, und wie in Abschnitt 8.1 beschrieben, auf den NIM-Eingang<strong>eines</strong> GANDALF-Moduls mit digitalen Outputkarten gegeben. Anschließend wurdedas Signal über den DSP-<strong>FPGA</strong> auf die LVDS -Ausgänge der Aufsteckkarten ausgegeben,sodass sie vom M1-TDC gemessen werden konnten. Ein zum Datensignalkorreliertes Signal auf dem zweiten Ausgang des AFG3252 diente als Triggersignal


86 8. Verifikationund wurde in das TCS-System des Messaufbaus gegeben. Die Messungen wurdenwieder mit einer TDC-Taktfrequenz von 388,8 MHz durchgeführt. Der Jitter aufdem Zeitintervall betrug 20 ps.Die Zeitauflösung kann in solch kleinen Zeitabständen bestimmt werden, da derMittelwert einer TDC-Messung nach Abschnitt 5.2 mit der Anzahl der Messungengegen den tatsächlichen Wert des Zeitintervalls, unabhängig von der Zeitauflösungdes TDC, strebt. Der Verlauf der Standardabweichung als Funktion des gemessenenZeitintervalls ist für einen exemplarischen TDC-<strong>Kanal</strong> in Abbildung 8.5 dargestellt.Die Abbildung zeigt den nach Gleichung 5.9 erwarteten charakteristischen Verlaufmit Minima bei Zeitintervallen, die einem Vielfachen von LSB entsprechen, undMaxima für halbzahlige Vielfache von LSB. Im Gegensatz zum theoretischen Verlaufsind die Minima aufgrund der Nichtlinearitäten <strong>eines</strong> realen TDC weniger starkausgeprägt. Dieses Phänomen ist ausführlich in [58] beschrieben.RMS [LSB]0.60.50.40.30.20.10620 622 624 626 628 630 632 634 636 638Zeitintervall [LSB]Abbildung 8.5: Standardabweichung (RMS) als Funktion des gemessenen Zeitintervallsim Bereich einer Taktperiode für einen exemplarischen TDC-<strong>Kanal</strong>. DieFehlerbalken geben den statistischen Fehler an.Die Zeitauflösung <strong>eines</strong> TDC ist definiert als der quadratische Mittelwert der Standardabweichungals Funktion des gemessenen Zeitintervalls im Bereich einer Taktperiode[58]. Aus der Standardabweichung σ INL der integralen Nichtlinearität überalle TDC-Bins und der theoretischen Zeitauflösung σ theo = 0, 39 LSB kann die zuerwartende Zeitauflösung σ erw <strong>eines</strong> TDC abgeschätzt werden [59]:σ erw =√σ 2 theo + 2 · σ2 INL . (8.4)


8.2. Zeitauflösung 87Die resultierende Zeitauflösung des M1-TDC ist in Abbildung 8.6 zusammen mitσ erw für alle <strong>128</strong> TDC-Kanäle aufgetragen. σ INL wurde aus den Messungen in Abschnitt8.1 gewonnen.Die Zeitauflösung des M1-TDC liegt im besten Fall bei ungefähr 0, 42 LSB, wasnahe an der theoretischen Zeitauflösung von 0, 39 LSB liegt, sowie bei circa 0, 58 LSBfür den TDC-<strong>Kanal</strong> mit der schlechtesten Zeitauflösung. Der Mittelwert über alleKanäle beträgt 0, 48 LSB bei einer Standardabweichung von 0, 03 LSB. Die Differenzvon tatsächlicher und nach Gleichung 8.4 berechneter Zeitauflösung σ erw liegt imMittel bei −0, 002 LSB (siehe Abbildung 8.7).Zeitauflösung [LSB]0.60.550.50.450.40.350 20 40 60 80 100 120TDC-<strong>Kanal</strong>Abbildung 8.6: Zeitauflösung des M1-TDC (schwarz). Die Zeitauflösung wird ausdem quadratischen Mittelwert einer wie in Abbildung 8.5 dargestellten Messung bestimmt.In rot ist die nach Gleichung 8.4 berechnete Zeitauflösung σ erw aufgetragen.


88 8. Verifikation[LSB]Zeitaufösung - σ erw0.050.040.030.020.010-0.010 20 40 60 80 100 120TDC-<strong>Kanal</strong>Abbildung 8.7: Abweichung der tatsächlichen Zeitauflösung des M1-TDC von dernach Gleichung 8.4 berechneten Zeitauflösung σ erw . Die Y-Skaleneinteilung vonLSB entspricht 1,6 ps.1100


8.2. Zeitauflösung 89Bisher wurde die Zeitauflösung für die Messung von Zeitintervallen, definiert durchzwei Hits auf demselben <strong>Kanal</strong>, bestimmt. In vielen Anwendungen werden jedochZeitmarken aus verschiedenen Detek<strong>to</strong>rkanälen verglichen.Dazu wurde derselbe Versuchsaufbau wie zur Bestimmung der Zeitauflösung verwendet,jedoch die beiden Pulse des AFG3252 Funktionsgenera<strong>to</strong>rs auf verschiedeneNIM-Eingänge der DMC-Aufsteckkarte gegeben, sodass über den DSP-<strong>FPGA</strong> einPuls auf den LVDS-Ausgängen der ersten, der andere auf den LVDS-Ausgängen derzweiten Aufsteckkarte zum M1-TDC übertragen wird. Die Zeitauflösung wurde ausder Standardabweichung der Differenz zweier Zeitmarken, gemessen auf unterschiedlichenTDC-Kanälen, bestimmt.Um eine Abhängigkeit der Zeitauflösung von der Länge des gemessenen Zeitintervallsauszuschließen, wurde der Zeitabstand beider Pulse nach jeder Messung inSchritten von circa 150 ns erhöht, sodass ein Messbereich von 2,5 µs abgedeckt werdenkonnte. Das Ergebnis dieser Messung ist in Abbildung 8.8 dargestellt.Zeitauflösung [LSB]0.70.650.60.550.50.450.40.350.30 2000 4000 6000 8000 10000 12000 14000 16000Zeitintervall [LSB]Abbildung 8.8: Zeitauflösung für Zeitintervalle, definiert durch Hits auf unterschiedlichenKanälen. Jeder Messpunkt repräsentiert den Mittelwert sowie die Fehlerbalkendie Standardabweichung aller TDC-Kanäle. Der Messbereich beträgt 2,5 µs.Es zeigt sich ein homogener Verlauf der Zeitauflösung über den gesamten Messbereich.Die Zeitauflösung liegt im Mittel bei circa 0, 5 LSB, die Standardabweichungder einzelnen TDC-Kanäle bei ungefähr 0, 1 LSB. Die Zeitauflösung von Zeitintervallen,gemessen mit dem M1-TDC auf demselben <strong>Kanal</strong>, unterscheidet sich nurunwesentlich von einer Messung zweier Hits auf unterschiedlichen TDC-Kanälen.Eine Zusammenfassung der Messergebnisse ist in Tabelle 8.1 gegeben.


90 8. VerifikationTabelle 8.1: Charakterisierungsmerkmale des M1-TDCZeitauflösung fürZeitintervalle(Hits auf selbem K.)Zeitauflösung fürZeitintervalle(Hits auf untersch. K.)DNLINLMittelwert 77 ps 80 ps - -σ 5 ps 16 ps - -Max. 93 ps - 109 ps 109 psMin. 68 ps - 31 ps 37 ps8.3 Vergleichsmessung mit dem F1-TDC Chip amCOMPASS-II-ExperimentDer M1-TDC sollte mit einem unabhängigen Messgerät verglichen werden, um systematischeEffekte in der Konvertierungscharakteristik auszuschließen. Prädestiniertdafür ist der am COMPASS-II-Experiment eingesetzte F1-TDC [53, 54] Chip, der einevergleichbare Zeitauflösung aufweist und dessen Datenformat weitestgehend vomM1-TDC adapdiert wurde, sodass beide Messgeräte im selben Datennahmesystemeingesetzt werden können.Der F1-TDC Chip arbeitet nach dem in Abschnitt 5.1 vorgestellten Prinzip derTaktperiodenunterteilung zur Erzielung einer Zeitauflösung im Subnanosekundenbereich.Ein asynchroner Ringoszilla<strong>to</strong>r mit 19 spannungsgesteuerten Verzögerungselementengeneriert dazu äquidistant zeitverzögerte Kopien des Taktsignals, von denendie Flipflop des TDC-Registers getaktet werden (siehe Abbildung 8.9).Aus dem Thermometer Code des TDC-Registers lässt sich die Zeitinformationüber einen Zustandswechsel auf dem Eingangssignal verifizieren. Wie im M1-TDCerfolgt die Erweiterung des dynamischen Bereichs auf sechzehn Bit über einen ClockCounter. Die Frequenz des Ringoszilla<strong>to</strong>rs wird von einer Phase Locked Loop (PLL)gesteuert. Über das Verhältnis zweier Zähler M und N kann die Frequenz f PLLin Abhängigkeit der Referenztaktfrequenz f base (hier 38,88 MHz) eingestellt werden[53]:f PLL = 4 · M2 N · k mode · f base . (8.5)k mode ist eins im ”Normal Resolution Mode“ und zwei im ”High Resolution Mode“ .Im High Resolution Mode wird die Binbreite LSB F1 durch die Kombination zweierTDC-Kanäle halbiert und die Tiefe des Hitbuffers verdoppelt.Da die Flipflop des TDC-Registers auf der steigenden wie auf der fallenden Taktflankegetaktet werden, berechnet sich die TDC-Binbreite LSB F1 folgendermaßen:LSB F1 = T PLL2 · 19 = 2 N152 · M · k mode · f base. (8.6)


8.3. Vergleichsmessung mit dem F1-TDC Chip am COMPASS-II-Experiment 91externalreferenceclock ( )f ref.NPhasecompera<strong>to</strong>r. McontrolvoltageDQ DQ DQ DQ DQSignalInput123 . . .fine time encoder1819coarsecounter0time = 38 * fine_time + coarse_time15Abbildung 8.9: Funktionsweise des F1-TDC Chips. Das TDC-Register wird vonTaktsignalen aus einem 19 Verzögerungselemente umfassenden Ringoszilla<strong>to</strong>r getaktet.Das 16-bit-Datenwort enthält die Zeitinformation <strong>eines</strong> Hits, dekodiert ausder Ausgabe des TDC-Registers sowie dem Zählerstand des Coarse Counters.Die Messwerte des F1-TDC in Einheiten von LSB F1 werden durch 16-bit Datenwörterrepräsentiert. Um die Zeitinformation des F1-TDC mit dem Referenztakt zusynchronisieren, muss der dynamische Bereich einem ganzzahligen Vielfachen N Tbaseder Referenztaktperiode entsprechen. Der Overroll n roll,F1 < 2 16 ist daher gegebendurchn roll,F1 = N Tbase · 152 · M · k mode2 N . (8.7)Bei einer Binbreite des verwendeten F1-TDC Chips von circa 108 ps beträgt derOverroll mit M = 25 und N = 4 nach Gleichung 8.7n roll,F1 = 272 ·152 · 25 · 12 4 = 64600. (8.8)


Referenztakt +Trigger92 8. VerifikationZur Verifikation des M1-TDC wurden <strong>128</strong> Detek<strong>to</strong>rkanäle <strong>eines</strong> szintillierendenFaserhodoskops (SiFi) (siehe Abschnitt 3.3.1) des COMPASS-II-Spektrometers parallelzum F1-TDC Chip ausgelesen.Zur Bestimmung des Teilchenflusses des Myonenstrahls werden die Detek<strong>to</strong>rsignaleder SiFi auf CATCH-Module bestückt mit Zählerkarten gegeben [60]. Um parallel dieZeitmarken auf den Signalen zur Rekonstruktion der Teilchenspuren im Experimentmessen zu können, werden je 32 SiFi-Signale im LVDS-Signalstandard über eineSplitter-Platine aufgeteilt [61].Für die Vergleichsmessung mit dem F1-TDC wurden die Ausgänge der Splitter-Platinen mit den digitalen Aufsteckkarten <strong>eines</strong> GANDALF-Moduls anstelle derZählerkarten verbunden. Wie in Abschnitt 7.4 erläutert, dient die Zeitmarke desTriggersignals (Mastertime) als Referenzzeitpunkt für alle zu diesem Ereignis gehörendenHits. Da eine auf dem Detek<strong>to</strong>rsignal gemessene Zeitmarke alleine keineAussagekraft besitzt, wurde die Mastertime mit einem weiteren M1-TDC gemessen.Einen Überblick über den Messaufbau gibt Abbildung 8.10.CATCHMastertimeTriggerlogikM1-TDCTCS-SystemMastertimeM1-TDCσ D,M1SiFi-Detek<strong>to</strong>rSplitterDetek<strong>to</strong>rausleseCATCHσ D,F1Detek<strong>to</strong>rausleseAbbildung 8.10: Schematische Darstellung des Messaufbaus zur Auslese <strong>eines</strong> szintillierendenFaserhodoskops (SiFi) parallel zum F1-TDC Chip.


8.3. Vergleichsmessung mit dem F1-TDC Chip am COMPASS-II-Experiment 93Trägt man die um die Mastertime korrigierte Zeitinformation der gemessenen Hitsin einem His<strong>to</strong>gramm auf, kann die Zeitauflösung des Detek<strong>to</strong>rs gemessen werden.Dabei wurden nur die Events berücksichtigt, bei denen allein der Inner Trigger (sieheAbschnitt 3.4) aktiv war, um systematische Effekte durch die zeitliche Streuungder verschiedenen Triggerhodoskope auszuschließen. Abbildung 8.11 zeigt ein solchesHis<strong>to</strong>gramm für einen exemplarischen SiFi-<strong>Kanal</strong> gemessen mit dem M1-TDC,Abbildung 8.12 das Ergebnis desselben <strong>Kanal</strong>s für den F1-TDC.Die Messungen wurden bei einer Trigger Latency von 1, 45 µs und einem 100 nsbreiten Trigger Window durchgeführt. Mit einem Gaußfit des <strong>Time</strong>peaks wird dieDetek<strong>to</strong>rauflösung bestimmt. Sie beträgt für den M1-TDC 641 ± 24 ps und für denF1-TDC 640 ± 24 ps.160GT01X1_M1__time_50Entries 10634Mean -5671RMS 167.3140120100806040200×10-6.1 -6 -5.9 -5.8 -5.7 -5.6 -5.5 -5.4 -5.3 -5.2Zeit [M1_LSB]Abbildung 8.11: Zeitauflösung <strong>eines</strong> exemplarischen SiFi-<strong>Kanal</strong>s gemessen mit demM1-TDC.3


94 8. Verifikation100GT01X1_F1__time_50Entries 10397Mean-1.143e+04RMS 246.6806040200×10-12 -11.8 -11.6 -11.4 -11.2 -11 -10.8Zeit [F1_LSB]Abbildung 8.12: Zeitauflösung <strong>eines</strong> exemplarischen SiFi-<strong>Kanal</strong>s gemessen mit demF1-TDC.3


8.3. Vergleichsmessung mit dem F1-TDC Chip am COMPASS-II-Experiment 95Die Anzahl der Hits <strong>eines</strong> Events (Eventgröße) gibt Aufschluss über die Vergleichbarkeitder Trigger Matching Algorithmen von F1- und M1-TDC. Ein His<strong>to</strong>grammder Eventgrößen beider TDC ist in Abbildung 8.13 zu sehen, den zugehörigen Differenzplotzeigt Abbildung 8.14.7003×10F1_hitsEntries 4679755Mean 4.545RMS 3.399M1_hitsEntries 4679755Mean 4.59RMS 3.44760050040030020010000 5 10 15 20 25 30EventgrößeAbbildung 8.13: Eventgrößen der mit dem M1-TDC (blau) sowie F1-TDC (rot)aufgezeichneten Events.


96 8. Verifikation50-5-10F1 - M1 [%]-15-20-25-30-35-400 5 10 15 20 25 30EventgrößeAbbildung 8.14: Prozentuale Abweichung der Eventgrößen von denen des F1-TDC.


8.3. Vergleichsmessung mit dem F1-TDC Chip am COMPASS-II-Experiment 97Trägt man die Anzahl der Messwerte jedes TDC-<strong>Kanal</strong>s in einem His<strong>to</strong>gramm auf,kann das Profil des Myonenstrahls in der gemessenen Detek<strong>to</strong>rebene visualisiert werden.Abbildung 8.15 zeigt die <strong>Kanal</strong>verteilung von M1- und F1-TDC. Die Kanäle 0bis 95 sowie 96 bis 127 gehören jeweils zu einer Detek<strong>to</strong>rebene. Wegen der nicht exaktgleichen Trigger Windows von M1- und F1-TDC wurde ein <strong>Time</strong>-Cut um den Peakjedes <strong>Kanal</strong>s herum gesetzt. Die Differenz der von M1- und F1-TDC in Abhängigkeitder <strong>Kanal</strong>nummer gemessenen Hits ist in Abbildung 8.16 dargestellt. Der Mittelwertüber alle TDC-Kanäle beträgt -0,2 %, die zugehörige Standardabweichung 0,7 %.1403×10F1_chEntries 8539690Mean 52.02RMS 27.48M1_chEntries 8573074Mean 52.03RMS 27.43120100806040200 20 40 60 80 100 120TDC-<strong>Kanal</strong>Abbildung 8.15: <strong>Kanal</strong>verteilung der mit dem M1-TDC (blau) sowie F1-TDC (rot)gemessen Hits.


98 8. Verifikation32F1 - M1 Hits [%]10-1-2-30 20 40 60 80 100 120TDC-<strong>Kanal</strong>Abbildung 8.16: Prozentuale Abweichung der in Abhängigkeit der <strong>Kanal</strong>nummer gemessenenHits von denen des F1-TDC.


8.3. Vergleichsmessung mit dem F1-TDC Chip am COMPASS-II-Experiment 99Die Zeitauflösung von M1- und F1-TDC wurde verglichen, indem zuerst die Differenzder Zeitmarken aufeinanderfolgender Hits <strong>eines</strong> Events separat für jeden TDCberechnet wurde. Trägt man nun die Differenz der berechneten Zeitintervalle beiderTDC in einem His<strong>to</strong>gramm auf, so lässt sich aus der Standardabweichung dieserVerteilung die in Abschnitt 8.2 bestimmte Zeitauflösung des M1-TDC verifizieren.Abbildung 8.17 zeigt die Standardabweichung dieser Vergleichsmessung für alle <strong>128</strong>TDC-Kanäle. Der Mittelwert σ diff,avg liegt bei 123 ps, die Standardabweichung bei8 ps.RMS [ns]0.180.170.160.150.140.130.120.110.10.090.080 20 40 60 80 100 120TDC-<strong>Kanal</strong>Abbildung 8.17: Standardabweichung der Differenz der von F1- bzw. M1-TDC gemessenenZeitintervalle definiert durch aufeinanderfolgende Hits desselben Eventsin Abhängigkeit der <strong>Kanal</strong>nummer.Die erwartete Standardabweichung σ diff,erw der Differenz von M1- und F1-TDClässt sich folgendermaßen berechnen:σ diff,erw =√σ 2 F1 + σ2 M1 + σ2 Splitter , (8.9)wobei σF1 2 und σ2 M1 die Zeitauflösungen der TDC und σ2 Splitter den Jitterbeitragder verwendeten Splitter darstellt [61]. Die Größen der einzelnen Beiträge sind inTabelle 8.2 aufgelistet.Tabelle 8.2: Beiträge zur Vergleichsmessung von M1- und F1-TDC.BeitragGrößeσF1 2 89 ps [61]σM12 77 ps40 psσ 2 Splitter


100 8. VerifikationDie Standardabweichung σ diff,erw berechnet mit den Werten aus Tabelle 8.2 beträgt124 ps.Mit dem Ergebnis dieser Analyse ist die Zeitauflösung des M1-TDC verifiziert worden.Auch in der gemessenen Detek<strong>to</strong>rauflösung <strong>eines</strong> exemplarischen SiFi-<strong>Kanal</strong>szeigt sich keine signifikante Abweichung zum F1-TDC. Die Diskrepanz in der Anzahlder gemessenen Hits, die sich aus den Unterschieden in der Hitdetektion undder Trigger Matching Algorithmen von M1- und F1-TDC ergibt, liegt im Mittel bei0,2 %.


9. Zusammenfassung und AusblickZiel dieser Arbeit war die Implementierung <strong>eines</strong> <strong>128</strong>-<strong>Kanal</strong>-TDC in einen Virtex-5<strong>FPGA</strong> auf dem GANDALF-Modul. Aufgrund der begrenzten Logikresourcen des<strong>FPGA</strong> wird zur Zeitmessung ein Shifted Clock Sampling Algorithmus verwendet.Bei dieser Methode muss eine minimale Laufzeitdifferenz des Datensignals zu den16 Flipflop des TDC-Registers gewährleistet sein. Das Signalrouting kann bei derImplementierung des <strong>FPGA</strong>-Entwurfs nur indirekt beeinflusst werden.Das optimale Routing wurde durch die spezifische Platzierung der Komponentendes TDC-Registers in Verbindung mit der Anwendung von Timing Constraints imPlace & Route-Schritt der Implementierung, sowie der kontrollierten Verzweigungdes Datensignals durch den Einbau zusätzlicher Slice-Elemente in das Signalnetz, erzielt.Der maximale Skew auf den einzelnen Signalnetzen liegt im Bereich zwischen20 ps bis 27 ps. Das Datensignalrouting konnte für das Design mit <strong>128</strong> TDC-Kanälenexportiert werden, indem die Routinginformationen in einem Direct Routing Constraintfestgehalten wurden.Für die <strong>FPGA</strong>-Implementierung des M1-TDC war es aufgrund der vielen zeitkritischenBereiche des Designs unumgänglich, einen Floorplan zu erstellen. Dazu wurdedie gesamte Logik von je acht TDC-Kanälen in sogenannten F1-Blöcken zusammenzufasst.Anschließend wurde jeder F1-Block in einem separaten TDC-Entwurf in denentsprechenden Bereich des Floorplans implementiert und die Implementierungsergebnisseals Partitionen gespeichert. Schlussendlich konnten die Timinganforderungendes Designs erfüllt werden, indem alle sechzehn F1-Block-Partitionen in einem<strong>128</strong>-<strong>Kanal</strong>-TDC-Entwurf zusammengeführt und gemeinsam mit der verbleibendenLogik implementiert wurden.Die Kenngrößen des M1-TDC wurden in einem Versuchsaufbau gemessen, beidem ein GANDALF-Modul bestückt mit digitalen Outputkarten als <strong>128</strong>-<strong>Kanal</strong>-Fanout für den M1-TDC verwendet wurde. Die Messungen wurden bei einer TDC-Taktfrequenz von 388,8 MHz, der zehnfachen Referenztaktfrequenz des COMPASS-II-Experiments, durchgeführt. Die TDC-Binbreite beträgt in diesem Fall circa 160 ps.


102 9. Zusammenfassung und AusblickDie Kenngrößen des M1-TDC lauten:• Maximale differentielle Nichtlinearität: 109 ps.Minimale differentielle Nichtlinearität: 31 ps.• Maximale integrale Nichtlinearität: 109 ps.Minimale integrale Nichtlinearität: 37 ps.• Zeitauflösung für die Messung von Zeitintervallen: Der Mittelwert über alleTDC-Kanäle beträgt 77 ps bei einer Standardabweichung von 5 ps. Die Zeitauflösungfür den TDC-<strong>Kanal</strong> mit der schlechtesten Zeitauflösung beträgt 93 psund für den TDC-<strong>Kanal</strong> mit der besten Zeitauflösung 68 ps. Ein Zeitintervallist in diesem Fall durch aufeinanderfolgende Hits auf demselben <strong>Kanal</strong> definiert.Die Zeitauflösung für die Messung von Zeitintervallen, definiert durch Hits aufunterschiedlichen Kanälen, ist nur geringfügig schlechter und beträgt im Mittel80 ps bei einer Standardabweichung von 16 ps.Zusätzlich wurde die Funktion des Trigger Matching Algorithmus und die Zeitauflösungdes M1-TDC mit einem unabhängigen Messgerät verifiziert, indem am COM-PASS-II-Experiment parallel zum momentan eingesetzten F1-TDC Chip <strong>128</strong> Kanäle<strong>eines</strong> szintillierenden Faserhodoskops ausgelesen wurden. Da der M1-TDC für dieseMessung in das laufende Datennahmesystem integriert wurde, konnte darüberhinaus gezeigt werden, dass der M1-TDC die Anforderungen für den Einsatz amCOMPASS-II-Experiment erfüllt.Aufgrund des moderaten Resourcenverbrauchs des <strong>128</strong>-<strong>Kanal</strong>-TDC, der bei circa43 % der Flipflop, 27 % der LUT, 73 % der Block RAM und 22 % der DSP Slicedes Virtex-5 SX95T <strong>FPGA</strong> liegt, wird momentan an der Integration von Scaler-Einheiten für Ratenmessungen auf den <strong>128</strong> Eingangssignalen in denselben <strong>FPGA</strong>-Entwurf gearbeitet. Im Zuge davon wird die Datenauslese zukünftig über den MEM-<strong>FPGA</strong> erfolgen, um die Speicherkapazitäten auf der GANDALF-Hauptplatine nutzenzu können. Darüber hinaus können für die Verarbeitung noch höherer TriggerundHitraten Trigger Matching Komponenten für jeden TDC-<strong>Kanal</strong>, statt wie bisherfür je acht Kanäle, implementiert werden.<strong>FPGA</strong>-basierte <strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converter stellen aufgrund der Kostenersparnisgegenüber ASICs bei kleinen und mittleren Stückzahlen eine interessante Alternativefür den Einsatz in Teilchenphysik-Experimenten dar. In dieser Arbeit konntedie Implementierung <strong>eines</strong> Multikanal-TDC in einen <strong>FPGA</strong> aufgezeigt werden.Für die Zukunft ist die Übertragung des TDC-Konzepts auf kostengünstige <strong>FPGA</strong>für den Einsatz auf Frontend-Karten für die Gasdetek<strong>to</strong>r-Auslese im COMPASS-II-Experiment geplant.Teile dieser Arbeit wurden in Fachzeitschriften veröffentlicht [62, 63].


A. Constraints desDatensignalroutings <strong>eines</strong>TDC-RegistersAuszug aus der UCF-Datei des Designs: MAXSKEW spezifiziert den maximalenSkew auf den Signalen. RLOC legt die Anordnung der Komponenten relativ zueinanderfest. ROUTE gibt die gewünschte Verdrahtung der Komponenten an.1 #Maxskew C o n s t r a i n t s p e z i f i z i e r t den maximalen Skew a u f den S i g n a l e n :2 NET " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / s i g _ D a t a t o F F s _ * " MAXSKEW = 23 ps ;3 NET " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / s i g _ d a t a _ s p l i t * " MAXSKEW = 23 ps ;4 NET " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / s i g _ d a t a _ t o 8 b i n " MAXSKEW = 30 ps ;56 #Placement− und R o u t i n g C o n s t r a i n t s S i g n a l ” s i g d a t a t o 8 b i n ”:7 NET " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / s i g _ d a t a _ t o 8 b i n " ROUTE = " { 3 ; 1 ; 5 v s x 9 5 t f f 1 1 3 6 ; 9 1 a f 3 6 2 a! - 1 ; - 1 1 9 0 2 4 ; - 2 4 0 3 6 0 ; S ! 0 ; - 9 6 8 ; 1 2 7 7 ! 1 ; "8 " 1 3 2 5 ; 1 4 4 3 ! 1 ; - 1 5 1 3 ; - 3 9 0 9 ! 2 ; - 4 3 5 0 ; 2 9 1 2 ! 3 ; - 1 5 1 8 ; - 2 4 1 2 ! 4 ; 3 3 1 0 ; 1 0 1 6 ! 5 ; 3 3 1 6 ; "9 " - 1 1 0 8 ! 6 ; 8 4 3 ; 2 8 8 ; L ! 7 ; 8 4 3 ; 2 8 8 ; L ! } " ;10 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ L U T " U SET=i n s t T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;11 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ L U T " RLOC=X20Y8 ;12 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ L U T " BEL = D6LUT ;13 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ L U T _ s p l i t " BEL = D6LUT ;14 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ L U T _ s p l i t " BEL = D6LUT ;1516 #Placement− und R o u t i n g C o n s t r a i n t s S i g n a l ” s i g d a t a s p l i t [ 0 ] ”:17 NET " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / s i g _ d a t a _ s p l i t [ 0 ] " ROUTE = " { 3 ; 1 ; 5 v s x 9 5 t f f 1 1 3 6 ; d 1 9 f d d 0 c! - 1 ; - 1 1 8 8 6 4 ; - 2 4 6 1 9 2 ; S ! 0 ; - 8 4 3 ; - 8 2 4 ! 1 ; "18 " - 3 3 1 6 ; - 1 5 8 8 ! 1 ; - 3 3 1 0 ; 2 6 8 8 ! 2 ; 3 3 1 6 ; - 1 1 0 8 ! 3 ; 3 3 1 0 ; 1 0 1 6 ! 4 ; 8 4 3 ; 2 8 8 ; L ! 5 ; 8 4 3 ; 2 8 8 ; L "19 " ! } " ;20 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ L U T _ d i s t r i b u t e _ A " BEL = D6LUT ;21 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ L U T _ s p l i t " U SET=i n s t T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;22 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ L U T _ s p l i t " RLOC=X22Y4 ;23 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ L U T _ d i s t r i b u t e _ B " BEL = D6LUT ;2425 #Placement− und R o u t i n g C o n s t r a i n t s S i g n a l ” s i g d a t a s p l i t [ 1 ] ”:26 NET " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / s i g _ d a t a _ s p l i t [ 1 ] " ROUTE = " { 3 ; 1 ; 5 v s x 9 5 t f f 1 1 3 6 ; b 2 e 3 c 2 e c! - 1 ; - 1 1 8 8 6 4 ; - 2 3 3 3 9 2 ; S ! 0 ; - 8 4 3 ; - 8 2 4 ! 1 ; "27 " - 3 3 1 6 ; - 1 5 8 8 ! 1 ; - 4 3 6 5 ; 4 5 6 5 ! 2 ; 3 3 1 6 ; - 1 1 0 8 ! 3 ; 4 3 6 5 ; - 8 6 1 ! 4 ; 8 4 3 ; 2 8 8 ; L ! 5 ; 8 4 3 ; 2 8 8 ; L "28 " ! } " ;29 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ L U T _ d i s t r i b u t e _ A " BEL = D6LUT ;30 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ L U T _ s p l i t " U SET=i n s t T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;31 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ L U T _ s p l i t " RLOC=X22Y12 ;32 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ L U T _ d i s t r i b u t e _ B " BEL = D6LUT ;3334 #Placement− und R o u t i n g C o n s t r a i n t s S i g n a l ” s i g D a t a t o F F s A [ 0 ] ”:35 NET " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / s i g _ D a t a t o F F s _ A [ 0 ] " ROUTE = " { 3 ; 1 ; 5 v s x 9 5 t f f 1 1 3 6 ;a 9 5 e 6 6 c 3 ! - 1 ; - 1 1 8 8 6 4 ; - 2 4 9 3 9 2 ; S ! 0 ; - 8 4 3 ; - 8 2 4 ! 1 ; "36 " - 3 1 6 0 ; 1 5 9 6 ! 1 ; - 3 1 3 6 ; - 4 9 6 ! 2 ; - 1 3 9 6 ; - 9 0 0 ! 2 ; - 1 3 9 6 ; - 8 7 6 ! 3 ; - 1 4 2 0 ; - 2 0 0 8 ! 3 ; - 1 4 2 0 ; "37 " - 1 9 8 4 ! 4 ; 4 0 4 ; 8 ! 5 ; 4 0 4 ; 8 ! 6 ; 4 0 4 ; 8 ! 7 ; 4 0 4 ; 8 ! 8 ; 6 8 3 ; - 5 3 6 ; L ! 9 ; 8 4 3 ; 8 ; L ! 1 0 ; 6 8 3 ; - 5 3 6 ; "38 " L ! 1 1 ; 8 4 3 ; 8 ; L ! } " ;39 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ A [ 3 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;


104 A. Constraints des Datensignalroutings <strong>eines</strong> TDC-Registers40 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ A [ 3 ] . t d c _ F F / q "RPMGRID=GRID ;41 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ A [ 3 ] . t d c _ F F / q "RLOC=X16Y0 ;42 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ A [ 3 ] . t d c _ F F / q "BEL = DFF;43 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ A [ 1 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;44 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ A [ 1 ] . t d c _ F F / q "RLOC=X16Y2 ;45 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ A [ 1 ] . t d c _ F F / q "BEL = DFF;46 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ A [ 2 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;47 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ A [ 2 ] . t d c _ F F / q "RLOC=X18Y0 ;48 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ A [ 2 ] . t d c _ F F / q "BEL = DFF;49 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ A [ 0 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;50 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ A [ 0 ] . t d c _ F F / q "RLOC=X18Y2 ;51 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ A [ 0 ] . t d c _ F F / q "BEL = DFF;52 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ L U T _ d i s t r i b u t e _ A " U SET=i n s t T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;53 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ L U T _ d i s t r i b u t e _ A " RLOC=X22Y2 ;5455 #Placement− und R o u t i n g C o n s t r a i n t s S i g n a l ” s i g D a t a t o F F s A [ 1 ] ”:56 NET " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / s i g _ D a t a t o F F s _ A [ 1 ] " ROUTE = " { 3 ; 1 ; 5 v s x 9 5 t f f 1 1 3 6 ;d b d 2 0 3 4 9 ! - 1 ; - 1 1 8 8 6 4 ; - 2 3 6 5 9 2 ; S ! 0 ; - 8 4 3 ; - 8 2 4 ! 1 ; "57 " - 3 1 6 0 ; 1 5 9 6 ! 1 ; - 3 1 3 6 ; - 4 9 6 ! 2 ; - 1 3 9 6 ; - 9 0 0 ! 2 ; - 1 3 9 6 ; - 8 7 6 ! 3 ; - 1 4 2 0 ; - 2 0 0 8 ! 3 ; - 1 4 2 0 ; "58 " - 1 9 8 4 ! 4 ; 4 0 4 ; 8 ! 5 ; 4 0 4 ; 8 ! 6 ; 4 0 4 ; 8 ! 7 ; 4 0 4 ; 8 ! 8 ; 6 8 3 ; - 5 3 6 ; L ! 9 ; 8 4 3 ; 8 ; L ! 1 0 ; 6 8 3 ; - 5 3 6 ; "59 " L ! 1 1 ; 8 4 3 ; 8 ; L ! } " ;60 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ A [ 3 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;61 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ A [ 3 ] . t d c _ F F / q "RLOC=X16Y8 ;62 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ A [ 3 ] . t d c _ F F / q "BEL = DFF;63 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ A [ 1 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;64 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ A [ 1 ] . t d c _ F F / q "RLOC=X16Y10 ;65 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ A [ 1 ] . t d c _ F F / q "BEL = DFF;66 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ A [ 2 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;67 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ A [ 2 ] . t d c _ F F / q "RLOC=X18Y8 ;68 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ A [ 2 ] . t d c _ F F / q "BEL = DFF;69 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ A [ 0 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;70 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ A [ 0 ] . t d c _ F F / q "RLOC=X18Y10 ;71 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ A [ 0 ] . t d c _ F F / q "BEL = DFF;72 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ L U T _ d i s t r i b u t e _ A " U SET=i n s t T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;73 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ L U T _ d i s t r i b u t e _ A " RLOC=X22Y10 ;7475 #Placement− und R o u t i n g C o n s t r a i n t s S i g n a l ” s i g D a t a t o F F s B [ 0 ] ”:76 NET " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / s i g _ D a t a t o F F s _ B [ 0 ] " ROUTE = " { 3 ; 1 ; 5 v s x 9 5 t f f 1 1 3 6 ;c a f e a 9 b f ! - 1 ; - 1 1 8 8 6 4 ; - 2 4 2 9 9 2 ; S ! 0 ; - 8 4 3 ; - 8 2 4 ! 1 ; "77 " - 3 1 6 0 ; 1 5 9 6 ! 1 ; - 3 1 3 6 ; - 4 9 6 ! 2 ; - 1 3 9 6 ; - 9 0 0 ! 2 ; - 1 3 9 6 ; - 8 7 6 ! 3 ; - 1 4 2 0 ; - 2 0 0 8 ! 3 ; - 1 4 2 0 ; "78 " - 1 9 8 4 ! 4 ; 4 0 4 ; 8 ! 5 ; 4 0 4 ; 8 ! 6 ; 4 0 4 ; 8 ! 7 ; 4 0 4 ; 8 ! 8 ; 6 8 3 ; - 5 3 6 ; L ! 9 ; 8 4 3 ; 8 ; L ! 1 0 ; 6 8 3 ; - 5 3 6 ; "79 " L ! 1 1 ; 8 4 3 ; 8 ; L ! } " ;80 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ B [ 3 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;81 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ B [ 3 ] . t d c _ F F / q "RLOC=X16Y4 ;82 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ B [ 3 ] . t d c _ F F / q "BEL = DFF;83 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ B [ 1 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;84 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ B [ 1 ] . t d c _ F F / q "RLOC=X16Y6 ;85 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ B [ 1 ] . t d c _ F F / q "BEL = DFF;86 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ B [ 2 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;87 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ B [ 2 ] . t d c _ F F / q "RLOC=X18Y4 ;88 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ B [ 2 ] . t d c _ F F / q "BEL = DFF;89 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ B [ 0 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;90 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ B [ 0 ] . t d c _ F F / q "RLOC=X18Y6 ;91 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ p a r t 0 . I n s t _ T D C _ B [ 0 ] . t d c _ F F / q "BEL = DFF;92 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ L U T _ d i s t r i b u t e _ B " U SET=i n s t T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;93 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 0 ] . I n s t _ L U T _ d i s t r i b u t e _ B " RLOC=X22Y6 ;9495 #Placement− und R o u t i n g C o n s t r a i n t s S i g n a l ” s i g D a t a t o F F s B [ 1 ] ”:


96 NET " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / s i g _ D a t a t o F F s _ B [ 1 ] " ROUTE = " { 3 ; 1 ; 5 v s x 9 5 t f f 1 1 3 6 ;b f 1 9 b 0 7 c ! - 1 ; - 1 1 8 8 6 4 ; - 2 3 0 1 9 2 ; S ! 0 ; - 8 4 3 ; - 8 2 4 ! 1 ; "97 " - 3 1 6 0 ; 1 5 9 6 ! 1 ; - 3 1 3 6 ; - 4 9 6 ! 2 ; - 1 3 9 6 ; - 9 0 0 ! 2 ; - 1 3 9 6 ; - 8 7 6 ! 3 ; - 1 4 2 0 ; - 2 0 0 8 ! 3 ; - 1 4 2 0 ; "98 " - 1 9 8 4 ! 4 ; 4 0 4 ; 8 ! 5 ; 4 0 4 ; 8 ! 6 ; 4 0 4 ; 8 ! 7 ; 4 0 4 ; 8 ! 8 ; 6 8 3 ; - 5 3 6 ; L ! 9 ; 8 4 3 ; 8 ; L ! 1 0 ; 6 8 3 ; - 5 3 6 ; "99 " L ! 1 1 ; 8 4 3 ; 8 ; L ! } " ;100 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ B [ 3 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;101 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ B [ 3 ] . t d c _ F F / q "RLOC=X16Y12 ;102 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ B [ 3 ] . t d c _ F F / q "BEL = DFF;103 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ B [ 1 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;104 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ B [ 1 ] . t d c _ F F / q "RLOC=X16Y14 ;105 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ B [ 1 ] . t d c _ F F / q "BEL = DFF;106 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ B [ 2 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;107 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ B [ 2 ] . t d c _ F F / q "RLOC=X18Y12 ;108 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ B [ 2 ] . t d c _ F F / q "BEL = DFF;109 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ B [ 0 ] . t d c _ F F / q "U SET=inst T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;110 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ B [ 0 ] . t d c _ F F / q "RLOC=X18Y14 ;111 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ p a r t 1 . I n s t _ T D C _ B [ 0 ] . t d c _ F F / q "BEL = DFF;112 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ L U T _ d i s t r i b u t e _ B " U SET=i n s t T D C 8 c h a n 0 / sig Data<strong>to</strong>FFs A 0 ;113 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c / I n s t _ T D C s _ 8 b i n [ 1 ] . I n s t _ L U T _ d i s t r i b u t e _ B " RLOC=X22Y14 ;105


106 A. Constraints des Datensignalroutings <strong>eines</strong> TDC-Registers


B. FloorplanAuszug aus der UCF-Datei des Designs: Floorplan <strong>eines</strong> F1-Blocks.1 INST " i n s t _ T D C _ 8 c h a n _ 0 " AREAGROUP = " T D C _ F 1 _ g r o u p _ 0 " ;2 AREAGROUP " T D C _ F 1 _ g r o u p _ 0 " RANGE=SLICE X0Y0 : SLICE X47Y18 ;3 AREAGROUP " T D C _ F 1 _ g r o u p _ 0 " RANGE=DSP48 X0Y0 : DSP48 X5Y7 ;4 AREAGROUP " T D C _ F 1 _ g r o u p _ 0 " RANGE=RAMB36 X0Y0 : RAMB36 X3Y3 ;5 AREAGROUP " T D C _ F 1 _ g r o u p _ 0 " GROUP=CLOSED;67 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 0 ] . i n s t _ t d c " AREAGROUP = " T D C _ p r i m _ g r o u p 1 _ 0 " ;8 AREAGROUP " T D C _ p r i m _ g r o u p 1 _ 0 " RANGE=SLICE X2Y0 : SLICE X11Y9 ;9 AREAGROUP " T D C _ p r i m _ g r o u p 1 _ 0 " RANGE=DSP48 X0Y0 : DSP48 X0Y3 ;10 AREAGROUP " T D C _ p r i m _ g r o u p 1 _ 0 " RANGE=RAMB36 X0Y0 : RAMB36 X0Y1 ;11 AREAGROUP " T D C _ p r i m _ g r o u p 1 _ 0 " GROUP=CLOSED;1213 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 1 ] . i n s t _ t d c " AREAGROUP = " T D C _ p r i m _ g r o u p 2 _ 0 " ;14 AREAGROUP " T D C _ p r i m _ g r o u p 2 _ 0 " RANGE=SLICE X2Y10 : SLICE X11Y18 ;15 AREAGROUP " T D C _ p r i m _ g r o u p 2 _ 0 " RANGE=DSP48 X0Y4 : DSP48 X0Y7 ;16 AREAGROUP " T D C _ p r i m _ g r o u p 2 _ 0 " RANGE=RAMB36 X0Y2 : RAMB36 X0Y3 ;17 AREAGROUP " T D C _ p r i m _ g r o u p 2 _ 0 " GROUP=CLOSED;1819 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 2 ] . i n s t _ t d c " AREAGROUP = " T D C _ p r i m _ g r o u p 3 _ 0 " ;20 AREAGROUP " T D C _ p r i m _ g r o u p 3 _ 0 " RANGE=SLICE X14Y10 : SLICE X23Y18 ;21 AREAGROUP " T D C _ p r i m _ g r o u p 3 _ 0 " RANGE=DSP48 X1Y4 : DSP48 X1Y7 ;22 AREAGROUP " T D C _ p r i m _ g r o u p 3 _ 0 " RANGE=RAMB36 X1Y2 : RAMB36 X1Y3 ;23 AREAGROUP " T D C _ p r i m _ g r o u p 3 _ 0 " GROUP=CLOSED;2425 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 3 ] . i n s t _ t d c " AREAGROUP = " T D C _ p r i m _ g r o u p 4 _ 0 " ;26 AREAGROUP " T D C _ p r i m _ g r o u p 4 _ 0 " RANGE=SLICE X14Y0 : SLICE X23Y9 ;27 AREAGROUP " T D C _ p r i m _ g r o u p 4 _ 0 " RANGE=DSP48 X1Y0 : DSP48 X1Y3 ;28 AREAGROUP " T D C _ p r i m _ g r o u p 4 _ 0 " RANGE=RAMB36 X1Y0 : RAMB36 X1Y1 ;29 AREAGROUP " T D C _ p r i m _ g r o u p 4 _ 0 " GROUP=CLOSED;3031 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 4 ] . i n s t _ t d c " AREAGROUP = " T D C _ p r i m _ g r o u p 5 _ 0 " ;32 AREAGROUP " T D C _ p r i m _ g r o u p 5 _ 0 " RANGE=SLICE X26Y0 : SLICE X35Y9 ;33 AREAGROUP " T D C _ p r i m _ g r o u p 5 _ 0 " RANGE=DSP48 X3Y0 : DSP48 X3Y3 ;34 AREAGROUP " T D C _ p r i m _ g r o u p 5 _ 0 " RANGE=RAMB36 X2Y0 : RAMB36 X2Y1 ;35 AREAGROUP " T D C _ p r i m _ g r o u p 5 _ 0 " GROUP=CLOSED;3637 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 5 ] . i n s t _ t d c " AREAGROUP = " T D C _ p r i m _ g r o u p 6 _ 0 " ;38 AREAGROUP " T D C _ p r i m _ g r o u p 6 _ 0 " RANGE=SLICE X26Y10 : SLICE X35Y18 ;39 AREAGROUP " T D C _ p r i m _ g r o u p 6 _ 0 " RANGE=DSP48 X3Y4 : DSP48 X3Y7 ;40 AREAGROUP " T D C _ p r i m _ g r o u p 6 _ 0 " RANGE=RAMB36 X2Y2 : RAMB36 X2Y3 ;41 AREAGROUP " T D C _ p r i m _ g r o u p 6 _ 0 " GROUP=CLOSED;4243 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 6 ] . i n s t _ t d c " AREAGROUP = " T D C _ p r i m _ g r o u p 7 _ 0 " ;44 AREAGROUP " T D C _ p r i m _ g r o u p 7 _ 0 " RANGE=SLICE X38Y10 : SLICE X47Y18 ;45 AREAGROUP " T D C _ p r i m _ g r o u p 7 _ 0 " RANGE=DSP48 X5Y4 : DSP48 X5Y7 ;46 AREAGROUP " T D C _ p r i m _ g r o u p 7 _ 0 " RANGE=RAMB36 X3Y2 : RAMB36 X3Y3 ;47 AREAGROUP " T D C _ p r i m _ g r o u p 7 _ 0 " GROUP=CLOSED;4849 INST " i n s t _ T D C _ 8 c h a n _ 0 / i n s t _ F 1 [ 7 ] . i n s t _ t d c " AREAGROUP = " T D C _ p r i m _ g r o u p 8 _ 0 " ;50 AREAGROUP " T D C _ p r i m _ g r o u p 8 _ 0 " RANGE=SLICE X38Y0 : SLICE X47Y9 ;51 AREAGROUP " T D C _ p r i m _ g r o u p 8 _ 0 " RANGE=DSP48 X5Y0 : DSP48 X5Y3 ;52 AREAGROUP " T D C _ p r i m _ g r o u p 8 _ 0 " RANGE=RAMB36 X3Y0 : RAMB36 X3Y1 ;53 AREAGROUP " T D C _ p r i m _ g r o u p 8 _ 0 " GROUP=CLOSED;


108 B. Floorplan


C. PartitionenMit der xpartition.pxml Datei werden die Partitionen des <strong>FPGA</strong>-Entwurfs definiert.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37


Literaturverzeichnis[1] R. Frisch and O. Stern, “Über die magnetische Ablenkung vonWassers<strong>to</strong>ffmolekülen und das magnetische Moment des Pro<strong>to</strong>ns.”, Zeitschriftfür Physik 85 (1933) 4–16. doi:10.1007/BF01330773.[2] S. Kullander, “Highlights of the European muon collaboration”, NuclearPhysics A 518 (1990) no. 1-2, 262 – 296. doi:10.1016/0375-9474(90)90549-2.[3] F. Gautheron, “COMPASS-II Proposal”, Tech. Rep. CERN-SPSC-2010-014.SPSC-P-340, CERN, Geneva, May, 2010.[4] R. L. Jaffe und A. Manohar, “The g 1 Problem: Fact and Fantasy on the Spinof the Pro<strong>to</strong>n”, Nucl. Phys. B337 (1990) 509–546.doi:10.1016/0550-3213(90)90506-9.[5] The COMPASS Collaboration, “The deuteron spin-dependent structurefunction g d 1 and its first moment”, Phys. Lett. B647 (2007) 8–17.doi:10.1016/j.physletb.2006.12.076.[6] X. Ji, “Gauge-Invariant Decomposition of Nucleon Spin”, Phys. Rev. Lett. 78(Jan, 1997) 610–613. doi:10.1103/PhysRevLett.78.610.[7] M. Burkardt, A. Miller, and W. D. Nowak, “Spin-polarized high-energyscattering of charged lep<strong>to</strong>ns on nucleons”, Rep. Prog. Phys. 73 (2009) 016201,arXiv:0812.2208 [hep-ph].[8] R. Field, “Applications of perturbative QCD”, Frontiers in physics,Addison-Wesley, The Advanced Book Program, 1995.[9] F. Halzen and A. Martin, “Quarks & Lep<strong>to</strong>ns: An Introduc<strong>to</strong>ry Course inModern Particle Physics”, Wiley, 1984.[10] C. Amsler et al. Phys. Lett. B667 (2008) 194–201. http://pdg.lbl.gov.[11] B. Povh, K. Rith, C. Scholz, and F. Zetsche, “Teilchen und Kerne: EineEinführung in die physikalischen Konzepte.”, Springer-Lehrbuch, Springer,2004.[12] D. Müller et al., “Wave Functions, Evolution Equations and Evolution Kernelsfrom Light-Ray Opera<strong>to</strong>rs of QCD”, Fortsch. Phys. 42 (1998) 101,arXiv:hep-ph/9812448.


112 Literaturverzeichnis[13] A. V. Radyushkin, “Nonforward par<strong>to</strong>n distributions”, Phys. Rev. D 56 (Nov,1997) 5524–5557. doi:10.1103/PhysRevD.56.5524.[14] M. Burkardt, “Impact Parameter Space Interpretation for Generalized Par<strong>to</strong>nDistributions”, International Journal of Modern Physics A 18 (2003) 173.doi:10.1142/S0217751X03012370.[15] JLab, “Conceptual Design Report (CDR) for The Science and ExperimentalEquipment for The 12 GeV Upgrade of CEBAF”,.[16] P. Abbon et al., “The COMPASS experiment at CERN”, Nuclear Instrumentsand Methods in Physics Research Section A: Accelera<strong>to</strong>rs, Spectrometers,Detec<strong>to</strong>rs and Associated Equipment 577 (2007) no. 3, 455 – 518,arXiv:hep-ex/0703049.[17] P. Jasinski, “Private communications”, (2010) .[18] C. Bernet et al., “The COMPASS trigger system for muon scattering”, NuclearInstruments and Methods in Physics Research Section A: Accelera<strong>to</strong>rs,Spectrometers, Detec<strong>to</strong>rs and Associated Equipment 550 (2005) no. 1–2, 217 –240. doi:10.1016/j.nima.2005.05.043.[19] F. Herrmann, “Development and Verification of a High PerformanceElectronic Readout Framework for High Energy Physics”, Dissertation,Universität Freiburg, August, 2011.[20] S. Schopferer, “<strong>Entwicklung</strong> <strong>eines</strong> hochauflösenden Transientenrekorders”,Diplomarbeit, Universität Freiburg, Februar, 2009.[21] L. Lauser, “Einbindung <strong>eines</strong> Transientenrekorders in dasCOMPASS-Datennahmesystem”, Diplomarbeit, Universität Freiburg, April,2009.[22] J. Bieling, “<strong>Entwicklung</strong> <strong>eines</strong> ungetakteten 64-<strong>Kanal</strong>-Meantimers und einerKoinzidenzschaltung auf einem <strong>FPGA</strong>”, Diplomarbeit, Universität Bonn,Februar, 2010.[23] Xilinx Inc., DS100, “Virtex-5 Family Overview”, v5.0 ed., Feb, 2009.www.xilinx.com.[24] “Virtex-5 <strong>FPGA</strong> Packaging and Pinout Specification”. UG195, v4.8 ed.,December, 2010. www.xilinx.com.[25] Xilinx Inc., SP002, “Aurora Pro<strong>to</strong>col Specification”, v2.0 ed., September,2007. www.xilinx.com.[26] Quimonda, HYB18T2Gx02BF, “HYB18T2Gx02BF 4Gbit dual die DDR2RAM”, July, 2003. http://www.quimonda.com/.[27] R. M. Owen Boyle and E. van der Bij, “The S-LINK Interface Specification”.ECP Division, CERN, March, 1997. www.cern.ch/HSI/s-link/.


Literaturverzeichnis 113[28] Cypress, CY7C1515V18, “CY7C1515V18 72-Mbit QDR TM -II SRAM4-Word Burst Architecture”, August, 2004. http://www.cypress.com/.[29] Xilinx Inc., DS080, “System ACE CompactFlash Solution”. www.xilinx.com.[30] American National Standards Institute, Inc., “American National Standard forVME64 Extensions”, 1997. www.vita.com.[31] American National Standards Institute, Inc., “American National Standard forVXS VMEbus Switched Serial Standard”, 2006. www.vita.com.[32] Compaq Computer Corporation, Intel Corporation, Microsoft Corporation,NEC Corporation, “USB Implementers Forum. Universal serial busspecification revision 2.0.”, 2000. http://www.usb.org/.[33] B. Grube, “A Trigger Control System for COMPASS and a Measurement ofthe Transverse Polarization of Λ and Ξ Hyperons from Quasi-RealPho<strong>to</strong>-Production.”, Dissertation, Technische Universität München, 2006.[34] Silicon Labs, SI5326, “Any-frequency precision clock multiplier/jitterattenua<strong>to</strong>r”, rev. 1.0 9/10 ed., 2010. http://www.silabs.com/.[35] Texas Instruments, CDCE949, “Programmable 4-PLL VCXO ClockSynthesizer with 1.8V, 2.5V and 3.3V LVCMOS Outputs”, August, 2007.http://www.ti.com/.[36] HONDA TSUSHIN KOGYO Co., Ltd., HDRA-ED136LFZGT,“Right-angle SMT type female connec<strong>to</strong>r for PCBs”.http://www.hondaconnec<strong>to</strong>rshk.com.[37] Telcordia Technologies, “Synchronous Optical Net-work (SONET) TransportSystems: Common Generic Criteria”, 2005.[38] National Semiconduc<strong>to</strong>r, CLC016, “CLC016 Data Retiming PLL withAu<strong>to</strong>matic Rate Selection”, 2011. http://www.national.com/.[39] “GANDALF Framework User Guide”.http://hadron.physik.uni-freiburg.de/gandalf.[40] B. G. Taylor, “Timing distribution at the LHC”, 8th Workshop on Electronicsfor the LHC Experiments (September, 2002) .[41] Xilinx Inc., DS202, “Virtex-5 <strong>FPGA</strong> Data Sheet: DC and SwitchingCharacteristics”, v5.3 ed., May, 2010. www.xilinx.com.[42] LeCroy, AN-50, “Measurement Precision of the new LeCroy MTD132”, 1991.Application Note.[43] Hewlett Packard, Application Note 162-1, “<strong>Time</strong> Interval Averaging”,1970. Application Note.[44] J. Kalisz, “Review of methods for time interval measurements with picosecondresolution”, Metrologia 41 (2004) no. 1, 17.


114 Literaturverzeichnis[45] Xilinx Inc., UG190, “Virtex-5 <strong>FPGA</strong> User Guide”, v5.3 ed., May, 2010.www.xilinx.com.[46] E. Bayer and M. Traxler, “A High-Resolution ( < 10 ps RMS) 48-Channel<strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converter (TDC) Implemented in a Field ProgrammableGate Array (<strong>FPGA</strong>)”, IEEE Transactions on Nuclear Science 58 (August,2011) 1547 –1552. doi:10.1109/TNS.2011.2141684.[47] C. Favi and E. Charbon, “A 17 ps time-<strong>to</strong>-digital converter implemented in65 nm <strong>FPGA</strong> technology”, in Proceeding of the ACM/SIGDA InternationalSymposium on Field Programmable Gate Arrays, <strong>FPGA</strong> ’09, pp. 113–120.ACM, New York, NY, USA, 2009. doi:10.1145/1508<strong>128</strong>.1508145.[48] J. Wu and Z. Shi, “The 10-ps wave union TDC: Improving <strong>FPGA</strong> TDCresolution beyond its cell delay”, in Nuclear Science Symposium ConferenceRecord, 2008. NSS ’08. IEEE, pp. 3440 –3446. oct., 2008.[49] Xilinx Inc., UG625, “Constraints Guide”, v. 13.3 ed., Oct, 2011.www.xilinx.com.[50] F. Kesel and R. Bartholomä, “Entwurf von digitalen Schaltungen undSystemen mit HDLs und <strong>FPGA</strong>s”, Oldenbourg, 2006.[51] P. Ashenden, “<strong>Digital</strong> design: an embedded systems approach using VHDL”,Elsevier/Morgan Kaufmann Publishers, 2008.[52] H. Fischer et al., “The COMPASS Online Data Format - Version 3”,COMPASS note 2002-8, July, 2002.[53] ACAM, “High-performance 8-channel TDC 8 channels 120ps / 4 channels60ps, Functional description (scientific version)”, March, 2000.http://www.acam.com/.[54] G. Braun et al., “TDC chip and readout driver developments for COMPASSand LHC experiments”, arXiv:hep-ex/9810048.[55] “ALICE DATE V3.5 User’s Guide”, Tech. Rep. ALICE-INT-1999-46.CERN-ALICE-INT-1999-46, CERN, Geneva, 1999.[56] Xilinx Inc., UG748, “Hierarchical Design Methodology Guide”, v13.1 ed.,March, 2011. www.xilinx.com.[57] Tektronix Inc., “AFG 3011 / 3021B / 3022B / 3101 / 3102 / 3251 / 3252 DataSheet”, July, 2009. www.tek.com.[58] F. Baronti, L. Fanucci, D. Lunardini, R. Roncella, and R. Saletti, “On thedifferential nonlinearity of time-<strong>to</strong>-digital converters based ondelay-locked-loop delay lines”, IEEE Transactions on Nuclear Science 48 (Dec,2001) 2424 –2431.[59] A. Mäntyniemi, “An integrated CMOS high precision time-<strong>to</strong>-digital converterbased on stabilised three-stage delay line interpolation”, Phd thesis, Universityof Oulu, Finnland, 2004.


Literaturverzeichnis 115[60] M. Niebuhr, “<strong>Entwicklung</strong> <strong>eines</strong> 250 MHz Zählers mit <strong>to</strong>tzeitfreier Auslese fürdas COMPASS Experiment”, Diplomarbeit, Universität Freiburg, November,2000.[61] H. Wollny, “Bestimmung des Myonenflusses am COMPASS-Experiment”,Diplomarbeit, Universität Freiburg, März, 2007.[62] M. Büchele et al., “The GANDALF <strong>128</strong>-Channel <strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converter”,<strong>to</strong> be published in Physics Procedia (2011) , arXiv:1112.4291.[63] M. Büchele et al., “A <strong>128</strong>-channel <strong>Time</strong>-<strong>to</strong>-<strong>Digital</strong> Converter (TDC) inside aVirtex-5 <strong>FPGA</strong> on the GANDALF module”, <strong>to</strong> be published in JINST (2012) .


116 Literaturverzeichnis


DanksagungMein Dank gilt allen, die zum Gelingen dieser Arbeit beigetragen haben:• Prof. Horst Fischer für die Vergabe des interessanten Themas und seine umfassendeBetreuung.• Prof. Kay Königsmann für die freundliche Aufnahme in seine Abteilung.• Dr. Florian Herrmann, der mir jederzeit mit Rat und Tat zur Seite stand.• Sebastian Schopferer, der immer ein offenes Ohr für meine Fragen hatte.• Für das Korrekturlesen meiner Diplomarbeit: Dr. Florian Herrmann, SebastianSchopferer und Maria Büchele.• Allen Mitgliedern unserer Abteilung für die angenehme Atmosphäre und diekonstruktiven Diskussionen.• Meinen Eltern für die Unterstützung während m<strong>eines</strong> Studiums.• Nina für ihre aufmunternden Worte und ihre Motivation.ErklärungIch erkläre hiermit, dass ich die vorliegende Arbeit selbständig verfasst und keineanderen als die angegebenen Quellen und Hilfsmittel verwendet habe.Freiburg, den 25. Januar 2012

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!