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

73
15/11/2011 1/73 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected] 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 NI 32 I/O LVDS – 200 (300) MHz Carte Flex RIO PXIe 7962R Châssis Flex RIO - PXIe

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

Page 1: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

15/11/2011 1/73Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 2: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

15/11/2011 2/73Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 3: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

3/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 4: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

15/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

Page 5: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

5/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 6: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

6/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 7: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

7/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 8: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

8/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 9: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

9/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 10: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

10/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

Seconde partie …

un peu de Technique …

juste de quoi s’amuser …

Démos firmware carte FlexRIO

Page 11: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

11/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 12: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

12/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 13: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

13/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 14: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

14/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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 »

Page 15: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

15/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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 »

Page 16: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

16/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 17: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

17/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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 »

Page 18: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

18/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 19: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

19/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 20: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

20/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 21: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

21/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 22: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

22/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 23: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

23/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 24: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

24/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 25: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

25/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 26: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

26/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 27: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

27/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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 ! )

Page 28: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

28/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 29: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

29/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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 »

Page 30: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

30/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 31: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

31/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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 »

Page 32: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

32/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 33: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

33/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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 »

Page 34: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

34/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 35: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

35/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 36: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

36/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 37: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

37/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 38: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

38/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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 !

Page 39: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

39/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 40: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

40/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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 »

Page 41: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

41/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 42: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

42/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 43: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

43/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 44: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

44/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 45: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

45/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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 )

Page 46: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

46/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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 )

Page 47: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

47/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 48: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

48/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 49: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

49/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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 )

Page 50: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

50/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 51: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

51/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 52: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

52/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 53: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

53/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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)

Page 54: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

54/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 55: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

55/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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)

Page 56: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

56/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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)

Page 57: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

57/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 58: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

58/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 59: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

59/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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)

Page 60: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

60/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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 …

Page 61: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

61/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 62: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

62/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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)

Page 63: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

63/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 64: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

64/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 65: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

65/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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 ...

Page 66: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

66/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 67: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

67/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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 ...

Page 68: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

68/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Le softwareMérite quelques commentaires … ;-)

Page 69: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

69/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Le firmware

Mérite quelques commentaires … lui aussi !

Page 70: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

70/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 71: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

71/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Rôle du SW ?Configure la donnée

Donne l’ordre de sérialiser

Page 72: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

72/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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

Page 73: Exemples d’applications avec la carte Flex RIO de NIelectroniciens.alsace.cnrs.fr/IMG/pdf/GC__strasbourg_reseau... · * Wojciech Dulinski Slow Control - Développement FW Conception

73/7315/11/2011 Réseau des électroniciens CNRS - Strasbourg – 15 Novembre 2011 - V1.0 [email protected]

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