1 / 43

Evaluation d’un cœur IP TDC

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

jacob-gross
Download Presentation

Evaluation d’un cœur IP TDC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Evaluation d’un cœur IP TDC Shu ZHANG INF-ECA-PST-3013

  2. Evaluation du « TDC CORE » Étude et analyse du projet « TDC CORE » Intégration du projet sur une plateforme du commerce Premiers tests et mesures Adaptations du projet au besoin Evaluation INF-ECA-PST-3013

  3. Étude et analyse du projet « TDC CORE » Architectures Principe de mesure utilisé Réalisation de mesure Spécifications du cœur IP TDC INF-ECA-PST-3013

  4. 1. Étude et analyse du projet « TDC CORE » LatticeSemiconductor Corporation Milkymist SoC Architectures Spartan 6 FPGA Design architecture Interpréteur ligne de commande pour communication avec l’UART CPU LM32 Maîtres WISHBONE • 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 Arbitrage du bus partagé WISHBONE bus BRAM CSRBridge  TDC SRAM Esclaves WISHBONE CSR (Control Status Registre) bus UART GPIO Timer0 Timer1 Esclaves CSR Bridge UART USB PC INF-ECA-PST-3013

  5. 1. Étude et analyse du projet « TDC CORE » • Architecture de la périphérique TDC Architecture du top TDC Host interface pour le cœur TDC WISHBONE bus TDC WB TDC CORE Hostif_tdc .vhd INF-ECA-PST-3013

  6. 1. Étude et analyse du projet « TDC CORE » Principe de mesure utilisé t0 : TDC armé t1 t2 Tclk t1 = N1*Tclk – T1 t2 = N2*Tclk – T2 N1 : Mesure grossière de t1 N2 : Mesure grossière de t2 T1 : Mesure fine de t1 T2 : Mesure fine de t2 INF-ECA-PST-3013

  7. 1. Étude et analyse du projet « TDC CORE » Principe de mesure utilisé Architecture du cœur TDC • 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 INF-ECA-PST-3013

  8. 1. Étude et analyse du projet « TDC CORE » Mesure fine Signal d’entrée Bin N-1 Bin 3 Bin 2 Bin 1 Bin 0 Architecture de CARRY 4 Horloge Système N-1 4 3 2 1 0 Architecture de la ligne à retard INF-ECA-PST-3013

  9. 1. Étude et analyse du projet « TDC CORE » Mesure fine • Auto-calibration • Startup calibration (histogramme) et online calibration (LUT) Codage de temps Signal Calib Tclk horloge système Nbin Compensation température Nbin0 Nbin1 Nbin2 hits Codage de temps LUT finale LUT brut histogramme Tclk Tclk Nbin Nbin Nbin1 Nbin2 Nbin0 INF-ECA-PST-3013

  10. 1. Étude et analyse du projet « TDC CORE » Réalisation de mesure « TDC CORE » Architecture du cœur TDC Mise sous tension Signal de calibration startup calibration LUT mis à jour LUT online calibration mesure INF-ECA-PST-3013

  11. 1. Étude et analyse du projet « TDC CORE » 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 (« coarsecounter ») • 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 « coarsecounter » 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 INF-ECA-PST-3013

  12. Intégration du projet sur une plateforme du commerce Choix de la plateforme d’évaluation Installation de l’environnement Mise en œuvre du projet sur la plateforme INF-ECA-PST-3013

  13. 2. Intégration du projet sur une plateforme du commerce 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 INF-ECA-PST-3013

  14. 2. Intégration du projet sur une plateforme du commerce 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) INF-ECA-PST-3013

  15. 2. Intégration du projet sur une plateforme du commerce Définition des critères de choix • 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… INF-ECA-PST-3013

  16. 2. Intégration du projet sur une plateforme du commerce Cartes candidats SPEC FMC DIO 5CH Atlys SP605 INF-ECA-PST-3013

  17. 2. Intégration du projet sur une plateforme du commerce Etude comparative de ces cartes puis décision finale • Xilinx SP605 INF-ECA-PST-3013

  18. 2. Intégration du projet sur une plateforme du commerce 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. INF-ECA-PST-3013

  19. .a, .o • 2. Intégration du projet sur une plateforme du commerce .bit Préparation des fichiers .ngc .bin .c, .h, makefile ToolChain GNU, lm32 Compilations des sources software ToolChain lm32 Génération des fichiers binaires exécutables .vhd, .v Xilinx ISE 13.2 Synthèse .ucf  Xilinx ISE 13.2 Implémentation du design Xilinx ISE 13.2 (iMPACT) Programmation FPGA Mise en œuvre du projet sur la plateforme INF-ECA-PST-3013

  20. Premiers tests et mesures Qualification de l’horloge Auto-calibration à 125MHz Linéarité de la calibration Stabilité de la startup calibration Compensation température – online calibration Plage de la fréquence d’horloge master Temps mort host Précision du système de mesure Première évaluation INF-ECA-PST-3013

  21. 3. Premiers tests et mesures Qualification de l’horloge INF-ECA-PST-3013

  22. 3. Premiers tests et mesures 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 Ring osc Oscilloscope ch0 125MHz ch1 125MHz LVDS_25 T125MHz = 8 ns AWG5004B Tmin Tmax SP605 Histogramme générée par l’oscilloscope INF-ECA-PST-3013

  23. 3. Premiers tests et mesures • 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 : Auto-calibration à 125MHz Nb de hits Discontinuités de mesure (1 BIN sur 2 environ) • Toujours même endroits à 0 N° du BIN Rappel de la mesure effectué à l’oscilloscope horloge système : 125 MHz NLD TDC NLI TDC NLD TDC NLI TDC T125MHz = 8 ns INF-ECA-PST-3013

  24. 3. Premiers tests et mesures 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 INF-ECA-PST-3013

  25. 3. Premiers tests et mesures Auto-calibration à 125MHz • Compensation température – online calibration • FPGA travail dans une température vers 40°C Température du FPGA Température de la plateforme INF-ECA-PST-3013

  26. 3. Premiers tests et mesures Auto-calibration à 125MHz • Compensation température – online calibration • Variation de LUT par rapport à la température • 30°C -> 45 °C : ~1% différence (15°C chauffé) Variation de LUT LUT généré (clk : 125MHz) Variation de LUT (125MHz, 30°C -> 45 °C ) INF-ECA-PST-3013

  27. 3. Premiers tests et mesures Plage de la fréquence d’horloge master Plan d’occupation (floor plan) des cellules logiques élémentaires sur le FPGA (en jaune les 2 lignes à retard) • 108Mhz (LAR : 496) ~ 138,946MHz (synthétiseur) Rapport de synthèse INF-ECA-PST-3013

  28. 3. Premiers tests et mesures 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 INF-ECA-PST-3013

  29. 3. Premiers tests et mesures Précision du système de mesure Résultats de la mesure différentielle par l’oscilloscope • 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 Différence du temps (ps) CH0 Générateur d’impulsions TTL CH1 Câbles de différentlongueur Principe 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 INF-ECA-PST-3013

  30. 3. Premiers tests et mesures 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 INF-ECA-PST-3013

  31. Adaptations du projet au besoin Calculs Remplacement d’horloge Mesures de temps INF-ECA-PST-3013

  32. 4. Adaptations du projet au besoin 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 INF-ECA-PST-3013

  33. 4. Adaptations du projet au besoin t*5 6 fois t>>7 division left shift quotient and reminder • 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)) Registre t 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 * 5 Du 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; Calcul de l’opération *5⁶ Calcul de l’opération /27 Calcul de l’opération /Master_Clk_Freq(MHz) rq[2] Master_Clk_Freq t(th&ts) INF-ECA-PST-3013

  34. 4. Adaptations du projet au besoin • Remplacement de l’horloge externe par la source sur carte • Oscillateurs en boitier DIL8 sur le marché INF-ECA-PST-3013

  35. 4. Adaptations du projet au besoin • 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 clockenable input .D0(1'b1), // 1-bit data input (associatedwith C0) .D1(1'b0), // 1-bit data input (associatedwith C1) .R(1'b0), // 1-bit reset input .S(1'b0) // 1-bit set input ); INF-ECA-PST-3013

  36. 4. Adaptations du projet au besoin • JitterTIE (Time IntervalError) de l’horloge générée par DCM: • 1M mesures INF-ECA-PST-3013

  37. 4. Adaptations du projet au besoin Mesures de 50ps à 50ns Avec l’horloge générée par AWG • 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 Erreurs Avec l’horloge générée par DCM Mesures de 500ps à 1us INF-ECA-PST-3013

  38. 4. Adaptations du projet au besoin ps CH0 CH0 relectures CH1 CH1 • Mesures avec l’horloge fournie par AWG5004B • Comparaison des mesures du TDC avec celles d’un intervallomètre ps relectures Relectures (Zoom 50ps -> 1ns) erreurs Diff_intervallo_TDC 50ps->100us : constante 1ms->200ms : linaire Tdélais varie : de 50ps à 200ms Câbles de même longueur erreurs Générateur de délais TTL CH0 CH1 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 Plages de mesure : 50ps -> 1ms Plages de mesure : 1ms -> 200ms INF-ECA-PST-3013

  39. Evaluation Comparaisons système TDC+SPEC vs TDC+SP605 Etude comparative des TDCs INF-ECA-PST-3013

  40. 5. Evaluation Comparaisons système TDC+SPEC versus TDC+SP605  INF-ECA-PST-3013

  41. Annexe INF-ECA-PST-3013

  42. Architecture du µP LM32 • CPU : lm32 (LatticeMico32) • 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. Digital Delay Generator T560 HyperTerminal Carte d’évaluation Xilinx SP605 CH1 CH0 USB communication Programmation Xilinx ISE Design Suite 13.2 PC iMPACT Horloge système (LVDS) Signal à analyser Digital PhosphorOscillator Tektronix DPO 7254 ArbitraryWaveformGenerator Tektronix AWG5004B INF-ECA-PST-3013

More Related