Exemples d’applications avec la carte Flex RIO de...

Post on 27-Mar-2018

217 views 2 download

Transcript of Exemples d’applications avec la carte Flex RIO de...

15/11/2011 1/73Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Exemples d’applications avec la carte Flex RIO de NI Des exemples simples … pour réaliser des projets plus complexes …

Utilisation en port d’entrée / sortie

Génération d’une horloge Quelques Mhz à 200 MHz

Génération d’une impulsion de largeur paramétrable 5 ns à 20,5 s

Mesure de la largeur d’une impulsion 5 ns à 20,5 s

Comptage d’impulsions … de 5 ns « de large » …

Accès DMA – Accès SRAM FPGA

Génération de pattern

Sérialisation

25 Démos … ~ 10 seront présentées

Source des démos fournis

Groupe PICSEL - IPHC : Physics with Integrated Cmos Sensors and ELectron machines

Module NI32 I/O LVDS – 200 (300) MHz

Carte Flex RIOPXIe 7962R

Châssis Flex RIO - PXIe

15/11/2011 2/73Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Le but de cette présentation …Présenter brièvement le groupe PICSEL et ses besoins en DAQ

PICSEL = Physics with Integrated Cmos Sensors and ELectron machines

Présentation complète Réunion Réseau Electroniciens 23/11/2010

Réaliser ET Evaluer des « briques de base » avec la carte FlexRIO

Se constituer une boîte à outils Faciliter les développements plus complexes

Génération / Acquisition - Mesure de signaux

Montrer – durant ce talk - comment développer ces applications

Software (LabVIEW) - Firmware (LabVIEW FPGA – VHDL )

HardwareMesure des performances

3/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

IPHC ( Strasbourg )Département de Recherches Subatomiques

Groupe Capteurs CMOS ( Marc WINTER )

R&D Capteurs monolithiques à pixels MAPSDonnent la position d’impact des particules ( x, y )

Plus de 30 capteurs conçus et validés depuis 1999Simple matrice de pixels à lecture analogique

MAPS numériques à suppression de zéros intégrée

L’organisation du groupe Définition des projets 5 Chercheurs

Conception Microélectronique 10 Ingénieurs

Caractérisation des capteurs 5 IngénieursConception des bancs de test & Caractérisation

Etudiants 7 Doctorants

Présentation groupe : Qui sommes nous ?

Le groupe Capteurs CMOS Le capteur : C’est une matrice de pixels• MAPS analogique Lecture analogique série

• MAPS numérique Discriminateur / colonne

• MAPS « intelligent » Suppression de zéros intégrée

SF

Futurs Détecteurs de vertex : STAR – ILC – CBM

120

mm

250 mm

Exemple : ILC

~ 300 106 pixels

Pitch 20-10 µm

Temps de lecture 25-200 µs

50 KRad/an1011 neq/cm²/an

Détecteur de Vertex ILC : 5 Couches de MAPS ~ 300 106 pixels

Les Applications des capteurs

~ 21 mm

~10

mm

En 10 ans de R & D …

• Surface x 100 : ~ 4 mm² 4 cm²

• Temps lecture / 10 : ~ 1 ms 0,1 ms

• Tolérance aux radiations x ~ 10

• Amincissement / 10 : ~ 500 µm 50 µm

1999 - Mimosa 16,5 mm² - 600 images / s

2008 - Mimosa 264 cm² - 10 000 images / s

2,56 mm

2,56

m

m

15/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

5/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Présentation groupe : Caractérisation Calibration & Test en Faisceau

5/21

Calibration au laboratoireBanc de test Source Fe55

Gain [µV/e-] – Collection de charge [%]

Mesure des performances de détection au CERN & DESYTélescope de Faisceau π, e-

Résolution spaciale [µm] – Efficacité de détection [%]

MAPS sur PCB

Fe55 Source

MAPS

X-Ray Photons

Hits

Off-line analysis

Calibration peak5,9 keV

On-line monitoring

Ces Bancs de Test nécessitent des systèmes d’acquisition de données Ressources Développement DAQ

X Photons

4 Plans de référenceCoordonnées x, y particules

( Resoltiuon ~1 µm )Beam(π, 120 GeV)

MAPS à caractériser

X1, Y1

X2, Y2

X3, Y3X4, Y4

Plane n° 1

Plane n° 2

Plane n° 3

Plane n° 4v

u

Scintillateur(trigger)

Scintillateur 4 mm x 4 mm( trigger )

Faisceau

Pions

Plans de référence

Largeur du MAPS = 21 mm

Scintillateur = 4 mm

On-line monitoring

MAPS & Source Fe55

Courtesy from M.Gélin

Single point resolution

σ (X Maps – X Telescope)Mimosa 26 – Pixels 18,4 µm pitch σx ~ σy ~ 4 – 4,5 µm

Off-line analysis

6/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

DAQ pour capteurs numériques Protocoles propriétaires

Liens série 40 MHz à 160 MHz – 20 à 40 MB/s / capteur

A partir de 2009 – Migration cartes DAQ Numériques

Développement cartes au labo National Instrument

Présentation groupe : Besoins DAQ – Réalisations DAQ

Protocole Propriétaire de lecture de Mimosa 26

Télescope de faisceau EUDET

DAQ pour les Applications de nos capteurs

Projet réalisé Télescope de faisceau EUDET

Collaboration Européenne - Projet FP6

6 x Mimosa 26 - 12 liens @ 80 MHz – Max ~ 120 MB/s

Développement d’un « Tool Kit » DAQ Mimosa 26

Transfert & Formation collaborateurs

Projets en cours Demande = x 10 sur performances

AIDA – FP7 72 Mimosa 26 – 144 liens @ 80 MHz – 1440 MB/s

SALAT 3 x 4 Mimosa 28 – 24 liens @ 160 MHz – 456 MB/s

Télescope de faisceau EUDET 6 x Mimosa 26

EUDET European Union project (FP6) 2006-201031 Institutes - 12 countriesDetectors R&D towards the International Linear ColliderJRA1 Test Beam InfrastructureJRA2 Infrastructure for Tracking DetectorsJRA3 Infrastructure for Calorimeters

Web www.eudet.org

12 Liens série

7/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Présentation groupe : Réalisations DAQ

PXIe Link x 4

6 x Mimosa 26

Clock out 80 MHz

Start

2 Data links / Mi26Synchro

Clo

ck in

80

MH

zPXIe Crate

RAID Disk - 3 TBHDD 8264

NI PXIe Link x 4 = 4 x 200 MB/s Mesuré PXIe x 1 à ~ 195 MB/s

MXI Link ~ 600 MB/sMesuré à ~ 600 MB/s

EUDET JRA1 SWRun ctrl & Monitoring

LVDS front endPXI 6585

Flex RIO boardPXIe 7962R

CPUPXIe 8130

PXIe / MXI interfaceNI 8262

Ethernet link1 Gb/s ~ 100 MB/s

Il faut pouvoir soutenir 120 MB/sde la carte vers le disque

EUDET 6 x Mimosa 26 1 Carte Flex RIO & 1 Châssis

Débit No 1 Flex = D1 CPU

Débit No 2 Flex = D2 CPU Disque

Débit Flex Disque en “séquentiel” = Pire cas !(D1 x D2) / (D1+ D2) = 147 MB/s > 120 MB/s

DAQ Réalisés & Validés

• 8 x Mimosa 26 – 16 liens @ 80 MHz 160 MB/s

• 6 x Ultimate – 12 liens @ 160 MHz 230 MB/s

8/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Les personnes impliquées dans les tests … Photo en 2009Développement bancs de test … Tests & Caractérisation … Transfert - Collaborations

Mathieu GOFFE

* Guy DOZIEREMarie GELIN

Caractérisation MAPS Analyses données faisceau

Matthieu SPECHT

Gilles CLAUS

Conception de Cartes d’Acquisition Cartes de Test des MAPS *

* Wojciech Dulinski

Slow Control - Développement FW Conception – Caractérisation

PLL – Liens Série Rapides

Montage & Test CartesDéveloppement HW & SW

Emulation ASIC

Kimmo JAASKELAINEN

Définition des bancs de Test - CoordinationDéveloppement SW DAQ & Monitoring

* Les micro-électroniciens directement impliqués dans les tests

Test de SUZE

Caractérisation des ADC

* Nicolas PILLET

Développement FWDAQ Test en faisceau

Cayetano SANTOS

* Andrei DOROKHOV

Michal KOZIEL

Caractérisation MAPS & Tests d’irradiationConception SW Analyse

Sans oublier les physiciens qui analysent les données faisceau J.Baudot, M.Gélin, R.De Masi, CDritsa …

Michael DEVEAUX

Collaboration IPHC / IRFU ( CEA )Conception MAPS Numériques

STAR Upgrade VTx

EUDET Télescope faisceau

Michal SZELEZNIAKCaractérisation MAPS

Intégration / STAR

Antonio BULGHERONICaractérisation MAPS

Conception SW analyse faisceau

9/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Forte implication du Groupe Micro-Techniques dans nos activités

Activités Micro-Techniques

Routage des cartes

Montage des cartes

Bonding des Capteurs

Tests sous pointes

Montage échelles de capteursPlacement composants sur cartes

Soudure cartes - Four

Bonding capteurs

Assemblage d’échelles de capteursTests sous pointes des capteurs

10/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Seconde partie …

un peu de Technique …

juste de quoi s’amuser …

Démos firmware carte FlexRIO

11/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Châssis + CPU + Flex RIO + Module I/O Total ~ 15 K€

Pas de Flex RIO PCI pour PC Pas de solution Flex RIO « Low cost »

Mais l’architecture « Châssis » a ses avantages

Modularité et scalabilité Augmenter le nombre de cartes

Puissance CPU disponible

Emission des données via Ethernet

Sauvegarde des données Interface vers RAID

Architecture PXIe Flex RIO : Similaire aux systèmes VME

Système RIO FPGA « low cost »Quelques K€

Compact RIO

Single board RIO

Châssis PXIe

Carte CPU

Carte vers RAID

Carte vers Flex RIO( dans le châssis)

Module I/O pour Flex RIO

12/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Ressources sur la carte Flex RIO

1 Virtex 5

Deux blocs de DRAM bus 64 bits - 512 MB chacun

Bus PXIe vers le CPU BW annoncée ~ 800 MB/s

Interface vers le monde extérieur (via module LVDS 6585)

Deux ports DDCA et DDCB – Sur chacun :

1 x horloge en entrée DDC Clock In

1 x horloge en sortie DDC Clock Out

4 x lignes d’usage général (Synchro, trigger, etc …) PFI 1,2,3,4

Un bus 16 bits DDC 00..15

Fréquence d’horloge maximale

200 MHz en SDR = Single Data Rate

300 MHz en DDR = Double Data rate

Génération sur les deux fronts d’horloge

Carte Flex RIO + Interface Module 6585 : En résumé …

DDCA

Module NI32 I/O LVDS – 200 (300) MHz

Carte Flex RIOPXIe 7962R

DDCB

Setup utilisé pour réaliser les démos

13/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Software SW

Est exécuté par le CPU

Souplesse / Facilité Développement & Upgrades LabVIEW – C, Pascal, etc …

Efficacité modérée « Mauvais pour » …

Réponse temps réel

Traitement en ligne de flux de données élevé

Traitement parallèles

Firmware FWS’exécute dans un FPGA

Difficulté / Lourdeur Développement & Upgrades

Efficacité élevée « Très bon pour »

Réponse en temps réel

Traitement de flux de données élevés

Traitement parallèles

Firmware / Software : LabVIEW - C / LabVIEW FPGA - VHDL

Si il fallait conclure …

Software & Firmware Complémentaires Faire le bon compromis entre SW et FW

CPU

FPGA

14/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Intro No 1 : Génération d’un pulse de 1 ms par SW

BilanLa largeur du pulse varie

Largeur moyenne 1 ms

Jiiter 88 µs peak/peak

Jiiter = 8,8 % largeur

Jiiter peut atteindre 80 % …

Largeur d’impulsion – SW LabVIEW « seul »

Largeur d’impulsion – Avec SW « perturbateur »

15/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Intro No 1 : Génération d’un pulse de 1 ms par FW

BilanLa largeur du pulse constante

Largeur moyenne 1 ms

Plus de jiiter

Max 5 ns dans notre cas

Le SW ne génère pas le pulse

Il ordonne au FW de le faire

Largeur d’impulsion – Avec SW « Perturbateur »

16/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Intro No 2 : Génération d’une horloge 500 Hz par SW

BilanLa fréquence varie !

Même avec les outils « ad-hoc »

Time loop LabVIEW

Si on regarde « une fois » – OK

Si on regarde longtemps – Jiiter Inutilisable

17/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

BilanFréquence constante

Dérivée d’horloge mère

5 MHz / 8192 = 610 Hz

Jitter = Lié à l’horloge mère

Le SW ne génère pas l’horloge

Il ordonne au FW de le faire

Intro No 2 : Génération d’une horloge 610 Hz par FW

Horloge générée – Malgré SW « Perturbateur »

18/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 1 : Comment ça marche ?

Software LabVIEW

Firmware LabVIEW FPGA

Deux FAV & DiagrammesSW LabVIEW

FW LabVIEW FPGA

LabVIEW FPGA VHDL Netlist

Compilation = Outils Xilinx

Explorateur de projet

19/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 1 : Fréquence maximale

Fréquence maximale Timed LoopTime Loop vide Difficile de faire mieux

500 MHz Max

Limites HW FPGA

Limites de l’implémentation du code

20/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 2 : Ecriture / Lecture d’un registre - Le SW

But ?SW écrit dans registre (32 bits) du FW

SW relit contenu du registre

SW sensé relire ce qu’il a écrit ;-)

Evaluer la fréquence maximale W/R

21/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 2 : Ecriture / Lecture d’un registre - Le FW

Fréquence maximale W/R ?Côté FW Compilation Max 250 MHz

Mais aucune info sur F Max côté SW

Accès à 250 MHz ? … peu probable …

Pas de moyen de mesure … pour l’instantVoir démo No X

22/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 3 : Pilotage d’un signal HW - Le SW

But ?Générer un pulse sur PFI1

Evaluer le temps d’accès (SW + HW)Mini ~ 200 ns

Maxi ~ 1 µs

Fréquence équivalente 1 à 5 MHz

23/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 3 : Pilotage d’un signal HW - Le FW

Comment ça marche ?La FAV contient un contrôle « DDCA PFI1 State » Registre qui fixe l’état de PFI1

Le diagramme contient une « Timed loop » @ 200 MHz

Elle lit le registre

Fixe la direction du signal PFI1 WE = Write Enable

Ecrit l’état du registre sur le port de sortie

24/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 3 : Pilotage d’un signal HW - Comparaison / USB & Port //

Temps d’accès - Bus PXIe ?Mesure du temps d’accès (SW + HW)

Mini ~ 200 ns - Maxi ~ 1 µs

Fréquence équivalente 1 à 5 MHz

Même démo avec module I/O USB 2.0 …Mesure du temps d’accès (SW + HW)

Mini ~ 80 µs - Maxi ~ 200 µs

Fréquence équivalente 5 à 12,5 KHz

En principe accès par multiples de 125 µs (micro-frame)

80 µs

200 µs

Même démo avec Port // PC ?Mesure du temps d’accès (SW + HW)

Mini ~ 1 µs - Maxi ~ 2 µs

Fréquence équivalente 0,5 à 1 MHz

25/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 4 : Temps d’écriture dans un registre - Le SW

400 ns / div – Min ~ 250 ns – Max ~2,25 µs

But ?Mesurer temps W registre 32 bits

Utilise PFI1 pour visualiser ce tempsSet PFI1 – Write – Reset PFI1

Temps d’accès

250 ns à 2,25 µs

Pour mémoire PFI1 seul 200 ns à 1 µs

Point de vue BP ?Accès 32 bits 4 octets

Débit > 1,7 MB/s à 15 MB/s

Bon pour un accès registreA opposer à un mode bloc

26/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 4 : Temps d’écriture dans un registre - Le FW

Comment ça marche ?La FAV contient deux contrôles L’etat de PFI1 et le Registre 32 bits

Le diagramme contient

Une phase d’initialisation qui fixe la direction des I/O

Une « Timed loop » @ 200 MHzPilote PFI1

Lit le registre U32 et positionne PFI2 à 1 si U32 <> 0

27/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 5, 6, 7 : Les temps d’accès à un registre

Bilan de quelques mesures

Ecriture U32 sans accès au GUI250 ns à 2,5 µs Débit ~ 1,7 MB/s à 15 MB/s

• Ecriture U32 avec lecture valeur depuis GUIMini ~ 300 ns ( ~ 250 ns sans accès GUI Influence faible )

Lecture registre U32 sans accès au GUI2 à 2,5 µs Débit ~ 1,5 MB/s à 2 MB/s

Inférieur à débit en écriture

Ecriture et lecture U32 sans accès au GUI

2 à 3 µs Débit ~ 1,3 MB/s à 2 MB/s

Chiffres à ne pas prendre à la lettre … Le but est d’avoir un ordre de grandeur en tête !

Latence d’accès au bus PXIe faible ~ n x 1 µs

Débit raisonnable ( Bien que ne soit pas le but des registres ! )

28/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 8 : Lecture d’une entrée - Le SW

But ?Lire l’état de l’entrée PFI2

L’afficher dans le GUI sur une « led »

Faire l’opération toutes les 10 ms

29/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 8 : Lecture d’une entrée - Le FW

Comment ça marche ?

La FAV contient un indicateur L’etat de PFI2

Le diagramme contient une « Timed loop » @ 200 MHz

Elle fixe PFI2 en entrée ( pourrait être effectué hors de la Timed loop )

Elle lit l’état de l’entrée PFI2 et l’écrit dans le registre « DDCA PFI2 State »

30/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 9 : Pilotage sortie & Lecture entrée - Le SW

But ?Piloter la sortie PFI1 par SW

Lire l’entrée PFI2 par SW

PF1 reliée à PFI2 pour la démo

PFI1 mise à 0 PFI1 mise à 1

31/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 9 : Pilotage sortie & Lecture entrée - Le FW

Comment ça marche ?

La FAV contient un contrôle ( la valeur de PFI1 ) et un indicateur ( l’état de PFI2 )

Le diagramme contient une « Timed loop » @ 200 MHz

Elle fixe PFI1 en sortie et PFI2 en entrée ( pourrait être effectué hors de la Timed loop )

Elle copie l’état du contrôle (registre) « DDCA PFI1 Out Sate » sur PFI1

Elle lit l’état de l’entrée PFI2 et l’écrit dans l’indicateur (registre) « DDCA PFI2 State »

32/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 10 : Copie d’un signal par SW … Hérésie - Le SW

But ?Acquérir l’entrée PFI2 par SW

La recopier sur PFI1 par SW

Evaluer la fréquence maximaleCa décroche à partir de 10 KHz

33/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 10 : Copie d’un signal par SW … Hérésie - Le FW

Comment ça marche ?

La FAV contient un contrôle ( la valeur de PFI1 ) et un indicateur ( l’état de PFI2 )

Le diagramme contient une « Timed loop » @ 200 MHz = Démo No 9

Elle fixe PFI1 en sortie et PFI2 en entrée ( pourrait être effectué hors de la Timed loop )

Elle copie l’état du contrôle (registre) « DDCA PFI1 Out Sate » sur PFI1

Elle lit l’état de l’entrée PFI2 et l’écrit dans l’indicateur (registre) « DDCA PFI2 State »

34/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 11 : Copie d’un signal par FW - Le SW

But ?Recopier PFI2 sur PFI1 par FW

Le SW n’intervient pas

Evaluer la fréquence maximaleHorloge FW 200 MHz

Test jusqu’à 15 MHz

35/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 11 : Copie d’un signal par FW - Le FW

Comment ça marche ?

La FAV contient rien Aucun contrôle ni indicateur

Le diagramme contient une « Timed loop » @ 200 MHz ( 5 ns période )

Elle fixe PFI1 en sortie et PFI2 en entrée ( pourrait être effectué hors de la Timed loop )

Elle lit l’état de l’entrée PFI2 et le mémorise ( Feedback node )

Copie l’état sur la sortie PFI au coup d’horloge suivant 5 ns de latence

36/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 12 : Diviseur d’horloge - Le SW

But ?Générer une horloge sur PFI1

Fréquence paramétrable par SW

Fréquence = 200 MHz / 2n

Le SW « ne fait rien »Configure le FW

Clock divider config

Diviseur par 2 100 MHz

Diviseur par 16 12,5 MHz

Diviseur par 128 1,56 MHz

Horloge mère 200 MHz

Horloge mère 200 MHz

Horloge mère 200 MHz

37/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 12 : Diviseur d’horloge - Le FW

Comment ça marche ?La FAV contient un contrôle Le rapport de division ( registre U32 )

Le diagramme contient

Une phase d’initialisation Fixe PFI1 en sortie – Autorise sortie horloge mère sur DDCA Clock out

Une « Timed loop » @ 200 MHzIncrémente un compteur 32 bits « Reset automatique lorsqu’il déborde »

Extrait un bit du compteur (Division par 2n ) et « le sort » sur PFI1

38/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 13 : Horloge DDR - Le SW

« Diviseur par 1 » 200 MHz

Horloge mère 200 MHz

But ?Générer une horloge sur PFI1

Fmax PFI1 = Fmère / 2Donc 100 MHz ( Fmère 200 MHz )

Sauf si on pilote sur les deux frontsDDR = Double Data Rate

Grâce au mode DDROn pilote PFI1 sur

Front montant de l’horloge mère

Front descendant de l’horloge mère

Fmax PFI1 = Fmère !

39/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 13 : Horloge DDR - Le FW

Comment ça marche ?La FAV ne contient rien

Le diagramme contient une « Timed loop » @ 200 MHz

Elle fixe PFI1 en sortie et autorise la sortie de l’horloge mère sur DDCA Clock out

Elle met PFI1 à 0 sur front descendant de l’horloge

Elle met PFI1 à 1 sur front montant de l’horloge

40/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 14 : Générateur d’impulsion - Le SW

But ?Générer une impulsion sur PFI2

Horloge FW = 200 MHzLargeur mini = 5 ns

Compteur 32 bitsLargeur maxi = 21,5 s

Impulsion de 5 ns

Impulsion de 1 ms

Rôle du SWConfigure la largeur d’impulsion

Donne l’ordre de générer l’impulsionBouton « Pulse Request »

41/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 14 : Générateur d’impulsion - Le FW 1/3

Comment ça marche ?La FAV contient deux contrôles Largeur d’impulsion – La commande pour générer l’impulsion

Le diagramme contient

Une phase d’initialisation Fixe la direction des I/O

Une « Timed loop » @ 200 MHzQui génère l’impulsion

42/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 14 : Générateur d’impulsion - Le FW 2/3

Fonctionnement étape par étapeDétection d’un front montant sur « Pulse request » Chargement du compteur & Set de PFI2

Tant que le compteur > 0 On le décrémente

43/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 14 : Générateur d’impulsion - Le FW 3/3

Fonctionnement étape par étapeLe compteur atteint 0 On le transmet sans le décrémenter & Reset de PFI2

44/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 15 : Générateur d’impulsion - Firmware plus simple !

Impulsion de 10 ns

FW plus simple que démo 14 Un seul niveau

Mais performances réduites F max = 125 MHz

FW compilé horloge 100 MHz (max 125 MHz)

Largeur mini impulsion = 10 ns !

Démo 14 F max = 250 MHz

45/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 16 : Générateur d’impulsion avec Trigger HW - Le SW

But ?Sur front montant de PFI1

Générer une impulsion sur PFI2

Horloge FW = 200 MHzLargeur 5 ns à 21,5 s

PFI2 Impulsion de 100 ns

PFI1 = Trigger

Délai ?L’impulsion est en retard / Trigger

Retard de 56,8 ns causé parLes câbles de la manip (5 ns/m)

Les buffers ( manip + Flex RIO )

La latence de détection trigger ( 5 ns )

46/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 16 : Générateur d’impulsion avec Trigger HW - Le FW

Comment ça marche ?La FAV contient deux contrôles Largeur d’impulsion – Autorisation trigger

Le diagramme contient

Une phase d’initialisation Fixe la direction des I/O

Une « Timed loop » @ 200 MHzQui détecte le trigger et génère l’impulsion ( sur le même principe que Démo 14 )

47/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 17 : Mesure largeur d’impulsion - Le SW

But ?Mesurer la largeur d’une impulsion sur PFI4

Dynamique 5 ns à 21,5 s

Pour testerOn génère une horloge 2 MHz sur PFI3

Elle déclenche un générateur d’impulsionTriggé sur PFI1 – Génère pulse sur PFI2

Ce générateur de pulse attaque PFI4

Impulsion de 5 ns- Générée sur PFI2- Mesurée sur PFI4

48/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 17 : Mesure largeur d’impulsion - Le FW 1/2

Fonctionnement étape par étape ?Génération d’une horloge 2 MHz sur PFI3

Générateur d’impulsion ( cf Démo 16 ) déclenché par l’horloge ( PFI1 = Trigger – PFI2 = Sortie )

Tout ceci sert uniquement à tester le module de mesure de largeur d’impulsion

49/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 17 : Mesure largeur d’impulsion - Le FW 2/2

Fonctionnement étape par étape ?Si front montant sur PFI4 Reset compteur

Tant que PFI4 = 1 Incrémente compteur

Si front descendant sur PFI4 Capture du résultat ( registre Pulse width )

50/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 18 : Génération et Comptage d’impulsions - Le SW

But ?Générer des impulsions sur PFI1, 2

Largeur 5 ns à 20,5 s FW

Cadencement (salve) SW

Compter ces impulsions sur PFI 3, 4Dynamique 5 ns à 21,5 s

51/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 18 : Génération et Comptage d’impulsions - Le FW 1/2

Comment ça marche ?La FAV contient

La configuration de la largeur d’impulsion générée

Les commandes : Reset compteurs, Démarrage comptage, Génération de l’impulsion

Le résultat des deux compteurs d’impulsions

Le diagramme contient deux « Timed loop »

Une pour générer une impulsion (la salve pilotée par SW) Cf Démo 14

Une pour compter les impulsions

52/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 18 : Génération et Comptage d’impulsions - Le FW 2/2

Comptage des impulsionsReset des compteurs effectué par SW « Reset Cmd »

Démarrage / Arrêt du comptage par SW « Count Cmd »

Front montant sur entrée Incrémenter compteur

Mise à jour des registres résultats à chaque coup d’horloge – Sauf si « Count Cmd » = 0 Capture

53/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 19 : Ecriture DMA Fifo 42 Bytes ;-) - Le SW

But ?Transfert de données haut débit ???

Canal DMA du CPU vers le FPGA

Mesurer le débitTemps d’écriture côté CPU via PFI1

Temps de lecture côté FPGA via PFI2

Influence de la taille de la FifoCôté PC 2048 U16 (4096 Bytes)

Côté FPGA 21 U16 (42 Bytes)

54/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 19 : Ecriture DMA Fifo 42 Bytes ;-) - Débit ?

Calcul du débitFifo 2048 U16 4096 Bytes

Côté CPU transfert en 26 µsSoit 4 KB / 26 µs = 150 MB/s

Côté FPGA lecture fifo en 250 µsSoit 4 KB / 250 µs = 15 MB/s !!!

Ce n’est pas plus rapide que le mode registre !!!

Demo 4 – Write U16 1,7 à 15 MB/sCause = Fifo trop petite

Côté FPGA 21 U16

Le FW dépile 21 U16 @ 200 MHz = 105 ns

Ensuite le FW attend l’accès au busLatence 250 ns à 2,25 µs (Demo 4)

Latence dans notre exemple 1,75 µs

Importance : Taille fifo – Latence accès busL’importance de comprendre ce qu’on fait …

PFI1 = Temps d’écriture côté PC

PFI2 = Temps lecture fifo côté FPGA

250 µs

1,75 µs

Lecture de 21 U16 ~ 100 ns

55/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 19 : Ecriture DMA Fifo 42 Bytes ;-) - Le FW

Comment ça marche ?Une « Timed loop » @ 200 MHz

Teste si qqch a lire dans la fifo

Si oui Lit un U16

Set PFI2 durant la lecturePour mesurer le temps de lecture

Met à jour PFI 1 (contrôlé par SW)

56/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 20 : Ecriture DMA Fifo 4106 Bytes - Le SW

But ?Transfert de données haut débit

Canal DMA du CPU vers le FPGA

Mesurer le débitTemps d’écriture côté CPU via PFI1

Temps de lecture côté FPGA via PFI2

Influence de la taille de la FifoCôté PC 2048 U16 (4096 Bytes)

Côté FPGA 2053 U16 (4106 Bytes)

57/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 20 : Ecriture DMA Fifo 4106 Bytes - Débit ?

Calcul du débitFifo 2048 U16 4096 Bytes

Côté CPU transfert en 27 µsSoit 4 KB / 27 µs = 145 MB/s

Côté FPGA lecture fifo en 20,5 µsSoit 4 KB / 20,5 µs = 190 MB/s

C’est ce qu’on attend d’in transfert DMA

A comparer à la démo précédante 15 MB/sCause = Fifo bien dimentionnée

Côté FPGA 2053 U16

Le FW dépile 2053 U16 @ 100 MHz = 20,5 µs

Ensuite le FW attend l’accès au busLatence 250 ns à 2,25 µs (Demo 4)

Latence dans notre exemple 1,75 µs

Importance : Taille fifo – Latence accès busL’importance de comprendre ce qu’on fait …

PFI1 = Temps d’écriture côté PC

PFI2 = Temps lecture fifo côté FPGA

58/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 20 : Ecriture DMA Fifo 4106 Bytes - Le FW

Comment ça marche ?Une « Timed loop » @ 100 MHz

Teste si qqch a lire dans la fifo

Si oui Lit un U16

Set PFI2 durant la lecturePour mesurer le temps de lecture

Met à jour PFI 1 (contrôlé par SW)

RemarqueLa compilation à 200 MHz échoue

Raison de la « Timed loop » @ 100 MHz

59/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 21 : Ecriture 2 x Fifo DMA // - Le SWBut ?

Transfert de données très haut débitCanal DMA du CPU vers le FPGA

Mesurer le débitTemps d’écriture côté CPU via PFI1

Temps de lecture côté FPGA via PFI2, PFI3

Influence de la taille de la FifoCôté PC 2048 U16 (4096 Bytes)

Côté FPGA 2053 U16 (4106 Bytes)

60/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 21 : Ecriture 2 x Fifo DMA // - Débit ?

Calcul du débitFifo 2048 U16 4096 Bytes

Côté CPU transfert en 42 µsSoit 4 KB / 42 µs = 93 MB/s

Côté FPGA lecture une fifo en 20,5 µsSoit 4 KB / 20,5 µs = 190 MB/s / fifo

Côté FPFA les deux fifos lues en 28 µsSoit 8 KB / 28 µs = 280 MB/s Total

Bilan

Deux fifos // Débit x 1,5 En théorie … on pourrait espérer … Débit x 2 …

PFI1 = Temps d’écriture côté PC

PFI2 = Temps lecture fifo No 1 côté FPGA

PFI3 = Temps lecture fifo No 1 côté FPGA

28 µs

Débit côté CPU < côté FPGA ?Ou est la fuite dans le tuyau ;-)

C’est forcément le SW !La création du tableau (Allocation, cast, copie)

Des recopies de données

Cette démo n’est pas optimisée côté SWUtiliser U32 plutôt que U16, etc …

61/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Comment ça marche ?Une « Timed loop » @ 100 MHz

Teste si qqch a lire dans les fifos

Si oui Lit un U16

Set PFI2 (fifo No 1) ou PFI3 (fifo No 2) durant lecturePour mesurer le temps de lecture

Met à jour PFI 1 (contrôlé par SW)

Même code pour chaque fifoS’exécute en //

RemarqueLa compilation à 200 MHz échoue

Raison de la « Timed loop » @ 100 MHz

Démo No 21 : Ecriture 2 x DMA Fifo // - Le FW

62/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 22 : Lecture Fifo DMA 4094 Bytes - Le SW

But ?Transfert de données haut débit

Canal DMA du FPGA vers le CPU

Mesurer le débitTemps de lecture côté CPU via PFI1

Temps d’écriture côté FPGA via PFI2

Influence de la taille de la FifoCôté PC 2048 U16 (4096 Bytes)

Côté FPGA 2047 U16 (4094 Bytes)

63/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 22 : Lecture Fifo DMA 4094 Bytes - Débit ?

Calcul du débitFifo 2048 U16 4096 Bytes

Côté CPU transfert en 21 µsSoit 4 KB / 42 µs = 186 MB/s

Côté FPGA lecture une fifo en 20,5 µsSoit 4 KB / 20,5 µs = 190 MB/s / fifo

PFI1 = Temps de lecture côté PC

PFI2 = Temps d’écriture fifo côté FPGA

64/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Comment ça marche ?Une « Timed loop » @ 100 MHz

Teste si il y a de la place libre dans la fifo

Si oui Ecrit un U16

Set PFI2 durant l’écriturePour mesurer le temps de lecture

Met à jour PFI 1 (contrôlé par SW)

RemarqueLa compilation à 200 MHz échoue

Raison de la « Timed loop » @ 100 MHz

Démo No 22 : Lecture Fifo DMA 4094 Bytes - Le FW

65/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 23 : Utilisation SRAM FPGA - Le SW

But ?Ecriture / Lecture de la SRAM FPGA

Demo simple Pas d’accès SWEcriture Boucle FW, écrit 0,1,2 ... N

Lecture Boucle FW, sort U16 sur DDCAVérification fonctionnement au scop

A quoi sert le SW ?A charger et démarrer le FW

PFI2 = Sortie premier vecteur

Bit 0 rampe 0, 1, 2 ...

Bit 1 rampe 0,2,4 ...

66/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Comment ça marche ?

Initialise la SRAM avec la rampe

Lit la SRAM en boucle et la sort sur DDCA

Démo No 23 : Utilisation SRAM FPGA - Le FW

67/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 24 : Générateur de pattern - Le SW

But ?Dérouler une table de vecteurs sur DDCA

La table configurée par SW est stockée en SRAM

Utilise les démos précédentesAccès port PFIx, DDCA

Transfert DMA

Ecriture / Lecture SRAM

Exemple de table de vecteursTable de 8 vecteurs générée sur DDCA

Les 4 premiers vecteurs contiennent une rampe

Les 4 vecteurs suivants sont à 0

PFI 4 est mis à 1 sur le premier vecteur

PFI4 = Sortie premier vecteur

Bit 0 rampe 0, 1, 2 ...

Bit 1 rampe 0, 2, 4 ...

68/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 24 : Générateur de pattern - Le SW

Le softwareMérite quelques commentaires … ;-)

69/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 24 : Générateur de pattern - Le FW

Le firmware

Mérite quelques commentaires … lui aussi !

70/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 25 : Sérialiser - Le SW

But ?Générer un lien série

Horloge 200 MHz

Synchro début mot = PFI2

Sortie série = PFI1

Sérialisation LSB first

Un seul mot configuréRegiste Pas de DMA

Trois exemples de données $ 0001

$ 0005

$ 8001

PFI2 = Synchro

PFI1 = Sortie série

Horloge 200 MHz

5

71/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Démo No 25 : Sérialiser - Le SW

Rôle du SW ?Configure la donnée

Donne l’ordre de sérialiser

72/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Comment ça marche ?Une « Timed loop » @ 200 MHz

Charge la donnée à sérialiser

Génère un masque pour extraire les bits

Sort Data AND Mask sur PFI1

Set PFI2 lors de la sortie du premier bit

Démo No 25 : Sérialiser - Le FW

73/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 gilles.claus@ires.in2p3.fr

Conclusion

Ce que je n’ai pas traité … par manque de temps …L’accès à la DRAM ( Deux blocs 512 MB « on board » )

L’intégration de code VHDL HDL Interface Node & User defined CLIP (Component Level IP)

Ce que je ne dis pas !Qu’on peut se passer de développeurs FW expérimentés (Full Time Job) Non !

Que tout FW peut être écrit en LabVIEW FPGA = Oublier le VHDL Non !

• Ce que je dis = LabVIEW FPGA peut permettreA des électroniciens « Non experts VHDL » de s’impliquer dans le développement FW

De décharger les experts VHDL des développements « simples »Pour des projets simples on peut se passer d’experts

De séparer les grands projets entreL’architecture générale et les I/O LabVIEW FPGA

Des parties plus complexes / Critiques en temps d’exécution VHDL

L’idée Augmenter les personnes impliquées dans le développement