evaluation d’un cœur ip tdc
DESCRIPTION
Evaluation d’un cœur IP TDC. Shu ZHANG. Evaluation du « TDC CORE ». Étude et analyse du projet « TDC CORE » Intégration du projet sur une plateforme du commerce Premiers t ests et mesures Adaptations du projet au besoin Evaluation. Étude et analyse du projet « TDC CORE ». Architectures - PowerPoint PPT PresentationTRANSCRIPT
INF-ECA-PST-3013
1
Evaluation d’un cœur IP TDCShu ZHANG
INF-ECA-PST-3013
2
Evaluation du « TDC CORE » 1. Étude et analyse du projet « TDC CORE »2. Intégration du projet sur une plateforme du commerce3. Premiers tests et mesures 4. Adaptations du projet au besoin5. Evaluation
INF-ECA-PST-3013
3
Étude et analyse du projet « TDC CORE »Architectures Principe de mesure utiliséRéalisation de mesureSpécifications du cœur IP TDC
INF-ECA-PST-3013
4
Architectures
•Architecture globale du projet de démonstration
▫ Un SoC (system on chip)
▫ Il fait appel à un cœur LM32 microprocesseur et un cœur bus de communication wishbone tous deux open source
CPU LM32
WISHBONE bus
Arbitrage du bus partagé
BRAM
SRAM CSR
Bridge TDC
CSR (Control Status Registre) bus
UART GPIO Timer0 Timer1
MaîtresWISHBONE
Esclaves WISHBONE
Esclaves CSR
1. Étude et analyse du projet « TDC CORE »
Spartan 6 FPGA Design architecture
Interpréteur ligne de commande pour communication avec l’UART
Milkymist SoCLattice Semiconductor Corporation
BridgeUART USB
PC
INF-ECA-PST-3013
5
TDC CORE
Host interface pour le cœur
TDC
Hostif_tdc .vhd
TDC WB
WIS
HB
ON
E b
us
• Architecture de la périphérique TDCArchitecture du top TDC
1. Étude et analyse du projet « TDC CORE »
INF-ECA-PST-3013
6
Principe de mesure utilisé
t1 = N1*Tclk – T1t2 = N2*Tclk – T2
N1 :Mesure grossière de t1
Tclk
T1 :Mesure fine de t1
T2 :Mesure fine de t2
t0 : TDC armé t1 t2
N2 :Mesure grossière de t2
1. Étude et analyse du projet « TDC CORE »
INF-ECA-PST-3013
7
Principe de mesure utilisé
•Mesure grossière : ▫ Partie entière du
résultat (nb. de périodes de l’horloge système)
▫ Partagée
•Mesure fine : ▫ Partie fraction du
résultat (fraction de période de l’horloge système)
▫ Pour chaque canal
TDC CORE
Architecture du cœur TDC
1. Étude et analyse du projet « TDC CORE »
INF-ECA-PST-3013
8
Signal d’entrée
Architecture de la ligne à retard
Architecture de CARRY 4
Bin 1Bin 3 Bin 2 Bin 0Bin N-1
Horloge Système
N-1 4 3 2 1 0
Port Direction Width
Function configuration
O Output 4 Carry chain XOR general data out
Open
CO Output 4 Carry-out of each stage of the carry chain
Outputs
DI Input 4 Carry-MUX data input « 0000 »
S Input 4 Carry-MUX select line « 1111 »
CYINIT Input 1 Carry-in initialization input
Input signal
CI Input 1 Carry cascade input Cascade input signal
Mesure fine
1. Étude et analyse du projet « TDC CORE »
INF-ECA-PST-3013
9
Mesure fine•Auto-calibration
▫ Startup calibration (histogramme) et online calibration (LUT)
horlogesystème
Signal Calib
Nbin0 Nbin1 Nbin2
histogramme
hits
NbinNbin0Nbin2Nbin1
Tclk
Tclk
Compensation température
LUT brut
Nbin
Codage de temps
Tclk
LUT finale
Nbin
Codage de temps
1. Étude et analyse du projet « TDC CORE »
INF-ECA-PST-3013
10
Réalisation de mesure « TDC CORE »Architecture du cœur TDC
startup calibratio
n
Mise sous tension
online calibratio
nLUT
mesure
LUT mis à jour
1. Étude et analyse du projet « TDC CORE »
Signal de calibration
INF-ECA-PST-3013
11
Spécifications du cœur IP TDC
▫ Précision attendue: 50-100ps (pic à pic)▫ Sortie en point fixé :
Partie entière est le nombre d’horloge master FPGA (« coarse counter ») 13-bit partie fractionnelle (configurable avec un VHDL « generic ») Avec une horloge master 125MHz, LSB correspond à 0.98ps
▫ Dynamique typique : 268ms (en utilisant une valeur de 12bits ([15:13]-bit) à 125MHz) nombre des bits du « coarse counter » configurable avec un VHDL
« generic »▫ Latence : 6 cycles, soit 48ns à 125MHz (host interface module non
incluant)▫ Multiple canaux :
Configurable avec un VHDL « generic », configuré actuellement à 2 canaux
Logique calibration partagée entre canaux▫ Rapports des deux fronts montant et descendant du signal
d’entrée
1. Étude et analyse du projet « TDC CORE »
INF-ECA-PST-3013
12
Intégration du projet sur une plateforme du commerceChoix de la plateforme d’évaluationInstallation de l’environnementMise en œuvre du projet sur la plateforme
INF-ECA-PST-3013
13
Choix de la plateforme hardware
d’évaluation• Etude des cartes SPEC et FMC DIO CH5
(développées sur l’OHWR)• Définition des critères de choix puis pré sélection
de cartes d’évaluation du marché • Comparaisons critiques des cartes à choisir• Décision finale et commande
2. Intégration du projet sur une plateforme du commerce
INF-ECA-PST-3013
14
• Etude des cartes SPEC et FMC DIO CH5
• Ce cœur a été implémenté et testé par S. Bourdeauducq sur la carte SPEC (carte mère PCIe) équipée d’une carte fille FMC (FPGA Mezzanine Carrier: standard VITA 57) DIO 5-channel (carte fille). Ces cartes étant également issus de projets de l’OHWR.
• Carte SPEC : ▫ Format PCIe (x4 Lane PCI Express to Local Bridge : GN4124) non utilisé
pour TDC Core▫ FPGA Spartan-6 (XC6SLX45T-FGG484-3)▫ Synthétiseur d’horloge de précision (CDCM61004RHBT, +/-10ppm)▫ Port USB (Virtual COM Port (VCP) driver : communication série via une
interface type HyperTerminal)▫ Un capteur 1-wire placé sur la carte SPEC pour mesurer la température du
FPGA (DS18B20U: Programmable Resolution 1-Wire Digital Thermometer )▫ Filtre d’alimentation sur le 3,3V pour les oscillateurs et le synthétiseur
d’horloge
• La FMC DIO dispose 5 canaux TTL bidirectionnels (connecteurs LEMO). Elle à pour fonction de réaliser une passerelle entre le format TTL et les formats compatibles FPGA (LVDS, LVCMOS)
2. Intégration du projet sur une plateforme du commerce
INF-ECA-PST-3013
15
• Cartes ayant la même référence de FPGA que SPEC • Stabilité de l’horloge du FPGA
▫ +/- 10 ppm sur SPEC• Le nombre d'entrées/sorties
▫ 2 CLKs + 22 I/Os• Connecteurs
▫ Ethernet, FMC, USB etc…• Format électrique des IOs
▫ TTL, LVTTL, LVCMOS, LVPECL, LVDS etc.• La mesure de température
▫ Une puce avec un fil combiné au FPGA sur SPEC• Stabilité des alimentations
▫ Propre alim P3V3_CLEAN (isolée avec les autres alims) pour le générateur d’horloge sur SPEC
• Prix, délais etc…
• Définition des critères de choix
2. Intégration du projet sur une plateforme du commerce
INF-ECA-PST-3013
16
• Cartes candidats
SPEC FMC DIO 5CH
SP605
Atlys
2. Intégration du projet sur une plateforme du commerce
INF-ECA-PST-3013
17
Xilinx SP605
• Etude comparative de ces cartes puis décision finale
Critères SPEC SP605 Atlys
FPGA XC6SLX45T-FGG484-3
XC6SLX45T-FGG484-3C XC6SLX45-CSG324-3C
Sources d’horloge
Générateur d’horloge (+/- 10ppm)
3 sources disponibles: Osci 200MHz (+/- 50ppm) Osci socket (avec un osci de
27MHz expédié) Horloge externe (via SMA)
1 seule source :Osci 100MHz (+/-50ppm ~ +/-100ppm), source externe impossible
Connecteurs USB, FMC USB, Ethernet, FMC USB, Ethernet, VHDCI
Format électrique des IOs
Aucun IO électrique SMAs permettent d’entrer les signaux en format de LVDS_25 ou LVCMOS25
Aucun IO électrique
Mesure de température
Une puce avec capteur spécifiée
Indisponible Indisponible
Alimentation isolée pour l’horloge
Un filtre d’alimentation Indisponible Indisponible
Prix (€) - 620€ 280€
Délai - Immédiatement Immédiatement
2. Intégration du projet sur une plateforme du commerce
INF-ECA-PST-3013
18
Installation de l’environnement
•Instruments•OS et logiciels
▫Linux Ubuntu-vbox 2.6.38 (ubuntu 11.04) ToolChain lm32, ToolChain GNU etc.
▫Windows Xilinx ISE 13.2, Python 2.7, HyperTerminal
etc.
2. Intégration du projet sur une plateforme du commerce
INF-ECA-PST-3013
19
Mise en œuvre du projet sur la plateforme .vhd, .v
Compilations des sources software
ToolChain GNU, lm32
Génération des fichiers
binaires exécutables
ToolChain lm32
.c, .h, makefile
.a, .o
Synthèse Xilinx ISE 13.2
.bin
Implémentation du design
Xilinx ISE 13.2
.ngc
Programmation FPGA
Xilinx ISE 13.2 (iMPACT)
.bit
.ucf
Préparation des fichiers
2. Intégration du projet sur une plateforme du commerce
INF-ECA-PST-3013
20
Premiers tests et mesures Qualification de l’horlogeAuto-calibration à 125MHz
• Linéarité de la calibration • Stabilité de la startup calibration • Compensation température – online calibration
Plage de la fréquence d’horloge masterTemps mort host Précision du système de mesure Première évaluation
INF-ECA-PST-3013
21
Qualification de l’horloge
3. Premiers tests et mesures
INF-ECA-PST-3013
22
Histogramme générée par l’oscilloscope
Qualification de l’horloge
• Histogramme générée par l’oscilloscope▫ Horloge Système : 125 MHz▫ Population de mesures : 262197▫ Résolution (Nb de BIN) : pleine échelle 10ns, 20ps/BIN
Mesure de skew
T125MHz = 8 ns
Oscilloscope
SP605
ch0
ch1125MHz
Ring osc
AWG5004B125MHzLVDS_25 Tmin Tmax
3. Premiers tests et mesures
INF-ECA-PST-3013
23
• Linéarité de la calibration• Population de mesures : 218 soit 262144• Résolution (Nb de BIN) : pleine échelle 8ns, 18ps/BIN en moyen
• NLD & NLI(rappeler les formules de calcul de ces 2 grandeurs)
• La NLD (non linéarité différentielle) est directement obtenue par :
• La NLI (non linéarité intégrale) est calculée en intégrant la NLD :
horloge système : 125 MHz1 41 81 121161201241281321361401441481
0
500
1000
1500
2000
2500
3000
3500
N° du BIN
Nb de hits
Auto-calibration à 125MHz
Discontinuités de mesure (1 BIN sur 2 environ)
Rappel de la mesure effectué à l’oscilloscope
T125MHz = 8 ns
M
MNNLD i
i
ji
iij NLDNLI
0
NLD TDC NLI TDC
Toujours même endroits à 0
NLD TDC NLI TDC
3. Premiers tests et mesures
INF-ECA-PST-3013
24
Auto-calibration à 125MHz• Stabilité de la start up calibration
▫ Avec le FPGA en équilibre thermique après quelques minutes de pré chauffage suivant le téléchargement du bitstream, la startup calibration a été lancé deux fois
3. Premiers tests et mesures
INF-ECA-PST-3013
25
Auto-calibration à 125MHz
Température du FPGA
Température de la plateforme
• Compensation température – online calibration ▫FPGA travail dans une température vers 40°C
3. Premiers tests et mesures
INF-ECA-PST-3013
26
•Compensation température – online calibration ▫Variation de LUT par rapport à la
température 30°C -> 45 °C : ~1% différence (15°C chauffé)
LUT généré (clk : 125MHz) Variation de LUT (125MHz, 30°C -> 45 °C )
Auto-calibration à 125MHz
Variation de LUT
3. Premiers tests et mesures
INF-ECA-PST-3013
27
Plage de la fréquence d’horloge master
• 108Mhz (LAR : 496) ~ 138,946MHz (synthétiseur)Plan d’occupation (floor plan) des cellules logiques élémentaires sur le FPGA (en jaune les 2 lignes à retard)
Rapport de synthèse
3. Premiers tests et mesures
INF-ECA-PST-3013
28
Temps mort host
•Temps mort initial très élevé ▫Lié à la méthode de collecte des données: 1
mesure 1 transmission vers l’UART.▫Temps mort vers 3ms
•D’où la nécessité d’optimiser : ▫n (100) mesures transmission vers l’UART▫Temps mort optimisé à vers 3us, soit 1000
fois plus rapide
3. Premiers tests et mesures
INF-ECA-PST-3013
29
Précision du système de mesure
CH0Générateur d’impulsions
TTL
CH1
Câbles de différent longueurPrincipe de mesure : le même signal injecté
sur les 2 voies CH0 et CH1, le TDC mesure l’écart entre les 2 fronts descendants de CH0 et CH1
Différence du temps (ps)
Résultats de la mesure différentielle
• Inter-channels
▫ Polarity: falling edge ▫ Samples: 15000 ▫ Mean: 1935ps ▫ P-p: 210ps▫ Std. dev.: 25ps ▫ Precision: ±50ps
• Single channel▫ Suppose jitter/ch independent,
Gaussian distribution▫ Std. dev.: 18ps. ▫ Precision: ±36ps
Résultats de la mesure différentielle par l’oscilloscope
3. Premiers tests et mesures
INF-ECA-PST-3013
30
Première évaluation ▫ Avantages :
Portabilité, flexibilité Temps de développement réduit Moins couteux sur des projet de petite série (sinon ASIC
moins cher, plus les coûts de développement de l’architecture TDC ASIC)
▫ Inconvénients : Sensible (vrai pour tous les systèmes TDCs)
Horloge, tension, température… Fréquence master très limitée NLD grand Difficile à déboguer :
sans logiciel de débogue du LM32 Temps de compilation long: 8mins
3. Premiers tests et mesures
INF-ECA-PST-3013
31
Adaptations du projet au besoinCalculsRemplacement d’horlogeMesures de temps
INF-ECA-PST-3013
32
Adaptations au besoin et mesures•Calcul du temps exprimé en picoseconde
à la base des données brutes fournies par « TDC CORE »
•Remplacement de l’horloge externe fournie par le générateur par une source embarquée sur la carte▫Cherche des Oscillateurs en boitier DIL8
sur le marché▫Génération d’horloge avec DCM du FPGA à
la base d’horloge 200MHz sur carte
4. Adaptations du projet au besoin
INF-ECA-PST-3013
33
• Calcul du temps exprimé en picoseconde à la base des données brutes fournies par « TDC CORE »▫ La version du compilateur n’accepte pas les types de données « long int » (64bits) et « float » (la
librairie associée n’étant pas disponible). La difficulté est de traiter un registre codé sur 38bits avec des types 32bits entiers.
▫ Programmation d’une fonction en C réalisant un algorithme du calcul du timestamp en picosecondes au lieu de l’unité LSB
▫ Données brutes fournies par TDC CORE, registre “t” 38 bits decomposé en 2 registres:th (6 bits MSB), ts (32 bits LSB), t= th*2³²+ts, t s’exprime en nombre de LSB (par exemple si Master_Clk_Freq = 125MHz alors LSB = 0,98ps)
LSB = Master_Clk_Period (ps)/213 = 1000000*Master_Clk_Period (ns)/2¹³ =1000000/(2¹³*Master_Clk_Freq(MHz)) Timestamp =t*LSB = (th*2³²+ts)*5⁶/(2⁷*Master_Clk_Freq(MHz))
Mesure grossière (25 bits): nb de périodes d’horloge Mesure fine (13 bits): nb de LSB
th (6 bits MSB)
ts (32 bits LSB)
37
32
31
13
12
0
Supposant que : ts = 0x33333333 * quot + reminder; ts*5 = carry * 0x100000000 + Ts’;ts*5 = (0x33333333 * quot + reminder) * 5 = 0xffffffff * quot + reminder * 5 = (0x100000000-1) * quot + reminder * 5 = quot * 0x100000000 - quot + reminder * 5Du coup : carry = quot; ts’ = reminder * 5 – quot t*5 = (th * 2³² + ts) * 5 = (th * 5 + quot) + (reminder * 5 – quot)Après 1 fois de multiplication : th’= th * 5 + quot; ts’ = reminder * 5 – quot;
rq[2]Master_Clk_Freq t(th&ts)
Registre t
Calcul de l’opération *5⁶
Calcul de l’opération /27
Calcul de l’opération /Master_Clk_Freq(MHz)
t*56 fois
t>>7
division
left shift quotient and
reminder
4. Adaptations du projet au besoin
INF-ECA-PST-3013
34
• Remplacement de l’horloge externe par la source sur carte▫ Oscillateurs en boitier DIL8 sur le marché
Manufacturer Pays Distributeur Nom Stabilité
(ppm) Ref. Contact prix QTE min délais
temexpress FrQEN4 15 QEN4 BH J LQ 15 125.000MHZ http://www.temexpress.com/en/contact/?l=temex
15.40€ 25 6-7 semQEV4 15 QEV4 BH 50 LQ 15 125.000MHZ
matel Fr
XE-11&21 25 XE-21BD00S 125MHz
http://www.matel-piezo.fr/article.php3?id_article=6
Indisponibles en petite quantitéXOQ-E5&3 25 XOQ-E3 A2CT 125MHz ?
AXE135M 20 AXE135M-3-H/P-10-0C – 125.000 MHz
96,30€-107,52€ 10 8 sem
pericom USAS131 25
http://www.pericom.com/contact/ST131 25ST413 25
dove USAMMD-MVBH 10 MVBH?3010 A??-125MHz http://
www.doveonline.com/sales/danielle-broker-disty.phpMMD-MBH 10 MBH?3010 ? - 125MHz -?
oscilent USA20 CO-320 http://www.oscilent.com/company/information.html20 vcxo551
abracon USA farnell ACHL Series 20 farnell
andhra electronics USA Cxo100
CXo300
axtal Ge elexo/matel
AXE135M 10~50 http://www.axtal.com/http://www.elexo.fr/index.php?g=3&s=1&l=siegeAXE135 0,5~5,0 AXLE135-3-H/P-05-0A-125,000MHz 83€-107€ 10 10 sem
MEC Taiwan 25 http://www.mecxtal-europe.com/contact.html
statek USA 5 http://www.statek.com/contactus.php
euroquartz UKEM8GT 1~2,5
http://www.euroquartz.co.uk/contact_us.aspxEQXO-2000 15
crystek USA S33xx 10
BFC USA B500 series 10 B500T EB3125,0 http://www.bfc-inc.com/quote2.html
4. Adaptations du projet au besoin
INF-ECA-PST-3013
35
•Remplacement de l’horloge externe par la source sur carte• Génération d’horloge avec DCM du FPGA à la base
d’horloge 200MHz sur carte ▫ DCM_CLKGEN :
CLKFX_MULTIPLY => 5 CLKFX_DIVIDE => 8
▫ Sortie d’horloge : ODDR2 (Dual Data Rate Output D Flip-Flop) ODDR2 #(
.DDR_ALIGNMENT("C0"), // Sets output alignment to "NONE", "C0" or "C1"
.INIT(1'b0), // Sets initial state of the Q output to 1'b0 or 1'b1
.SRTYPE("ASYNC") // Specifies "SYNC" or "ASYNC" set/reset ) ODDR2_inst (
.Q(clk125out), // 1-bit DDR output data
.C0(clk125), // 1-bit clock input
.C1(~clk125), // 1-bit clock input
.CE(1'b1), // 1-bit clock enable input
.D0(1'b1), // 1-bit data input (associated with C0)
.D1(1'b0), // 1-bit data input (associated with C1)
.R(1'b0), // 1-bit reset input
.S(1'b0) // 1-bit set input);
4. Adaptations du projet au besoin
INF-ECA-PST-3013
36
• Jitter TIE (Time Interval Error) de l’horloge générée par DCM:▫ 1M mesures
4. Adaptations du projet au besoin
INF-ECA-PST-3013
37
• Histogramme générée par l’oscilloscope▫ 218 (soit 262144) mesures pour
générer l’histogramme de la Delayline
• Mesures▫ Ne sait pas faire la mesure fine▫ Mesures au delà de 1us : non
effectués
• Idée abandonnée
Mesures de 50ps à 50ns
Avec l’horloge générée par DCM
Mesures de 500ps à 1us
Erreurs
Avec l’horloge générée par AWG
4. Adaptations du projet au besoin
INF-ECA-PST-3013
38
• Mesures avec l’horloge fournie par AWG5004B▫ Comparaison des mesures du TDC avec celles d’un
intervallomètre
Plages de mesure : 50ps -> 1ms Plages de mesure : 1ms -> 200ms
CH0Générateur de délais TTL CH1
Câbles de même longueur
Principe de mesure : deux canaux de signaux avec un délais programmable entre les deux injectés sur les 2 voies CH0 et CH1 du TDC, le TDC mesure l’écart entre les 2 fronts descendants de CH0 et CH1
CH0
CH1
Tdélais varie :de 50ps à 200ms
CH1
CH0
erreurs
relectures
relectures
erreurs
Diff_intervallo_TDC50ps->100us : constante1ms->200ms : linaire
Relectures (Zoom 50ps -> 1ns)
ps
ps
4. Adaptations du projet au besoin
INF-ECA-PST-3013
39
EvaluationComparaisons système TDC+SPEC vs TDC+SP605Etude comparative des TDCs
INF-ECA-PST-3013
40
• Comparaisons système TDC+SPEC versus TDC+SP605
5. Evaluation
Performances TDC+SP605 TDC+SPEC
Précision±36ps pour Single-channel mode; ±50ps pour Single-start-single-stop mode
±52ps pour Single-channel mode; ±74ps pour Single-start-single-stop mode
Dynamique typique
268ms (configurable niveau code VHDL ou Verilog)
268ms (configurable niveau VHDL ou Verilog)
Résolution double pulse
3us actuel, configurable niveau code C Non testé
Nombre de canaux
2 pour Single-channel mode; 1 + start commun pour Single-start-single-stop mode
2 pour Single-channel mode; 1 + start commun pour Single-start-single-stop mode
Non linéarité différentielle
1.5LSB ou ±50ps Non testé
Non linéarité intégrale
4LSB ou -30ps~150ps Non testé
Résolution 36.5ps en moyen Non testé
INF-ECA-PST-3013
41
Annexe
INF-ECA-PST-3013
42
Architecture du µP LM32
•CPU : lm32 (Lattice Mico32)▫ RISC CPU▫ 32 bits (data & instructions)▫ 32 registres générales▫ 32 interruptions maximum▫ I/D caches optionnels▫ Double wishbone
interfaces de mémoire (I & D)
INF-ECA-PST-3013
43
Horloge système(LVDS)
CH1 CH0
Programmation
iMPACTPC
USB communication
Signal à analyser
Digital Delay GeneratorT560
Arbitrary Waveform GeneratorTektronix AWG5004B
Digital Phosphor OscillatorTektronix DPO 7254
Carte d’évaluationXilinx SP605
HyperTerminal
Xilinx ISE Design Suite 13.2