47
COMPRENDRE LES SPÉCIFICITÉS DU MATÉRIEL ET SA PROGRAMMATION DÉMYSTIFIER LA PROGRAMMATION AVEC LabVIEW FPGA NI DAYs 2014/ PARIS / 11/02/2014

Démystifier la programmation avec LabVIEW FPGA

Embed Size (px)

DESCRIPTION

Découvrez les principes liés à la programmation FPGA d'un point de vu matériel comme logiciel et lancer vous sans crainte dans le développement d'applications à l'aide de LabVIEW FPGA.

Citation preview

Page 1: Démystifier la programmation avec LabVIEW FPGA

C O M P R E N D R E L E S S P É C I F I C I T É S D U M A T É R I E L E T S A P R O G R A M M A T I O N

DÉMYSTIFIER LA PROGRAMMATION AVEC LabVIEW FPGA

NI DAYs 2014/ PARIS / 11/02/2014

Page 2: Démystifier la programmation avec LabVIEW FPGA

UNE ÉQUIPE, DES COMPÉTENCES

> Une équipe de développeurs certifiés LabVIEW

> Un partenariat fort avec National Instrument depuis 1990

Système distribué, Client-Serveur, Plug-

ins…

LabVIEW, RT, FPGA, TestStand

Mesure, Traitementdu Signal

Intégration d’équipement mesure

Système distribué, Client-Serveur, Plug-

ins…

Page 3: Démystifier la programmation avec LabVIEW FPGA

QUELS DOMAINES

Système distribué, Client-Serveur, Plug-

ins…

Applications sur mesure

Expertise

Formations

Toolkits LabVIEW

Page 4: Démystifier la programmation avec LabVIEW FPGA

INTRODUCTION

> Peur du FPGA ?

> Présentation du FPGA

> Utilisation du FPGA

> Programmation

> Conclusion

Page 5: Démystifier la programmation avec LabVIEW FPGA

PEUR DU FPGA ?

Page 6: Démystifier la programmation avec LabVIEW FPGA

INTERROGATIONS

Electronique

Peur du FPGA ?

VHDL

Bas niveauAssembleur

Et LabVIEW dans tout ça ?

FPGA

Composant

Mise au point difficile

Simulation

Page 7: Démystifier la programmation avec LabVIEW FPGA

PRÉSENTATION DU FPGAQ U ’ E S T - C E Q U ’ U N F P G A

Page 8: Démystifier la programmation avec LabVIEW FPGA

QU’EST-CE QUE LE FPGA ?

FPGA : Field Programmable Gate Array

Circuits intégrés reprogrammables inventés en 1985

Présentation du FPGA

Page 9: Démystifier la programmation avec LabVIEW FPGA

QU’EST-CE QUE LE FPGA ?

3 parties :

- Matrice de blocs logiques programmables

- Blocs d’entrées/sorties

- Interconnections programmables

Présentation du FPGA

Page 10: Démystifier la programmation avec LabVIEW FPGA

QU’EST-CE QUE LE FPGA ?

Le FPGA : composant entièrement programmable

Téléchargement possible d’une nouvelle application.

Modification

Mise à jour

Changement d’utilisation

Présentation du FPGA

Page 11: Démystifier la programmation avec LabVIEW FPGA

AVANTAGE DU FPGA

Cadencement matériel

Temps réel

Fiabilité

Temps de réponse rapide et stable.

Création de fonctionnalités personnalisées

Présentation du FPGA

Page 12: Démystifier la programmation avec LabVIEW FPGA

FPGA CHEZ NATIONAL INSTRUMENTS

Matériel

Présentation du FPGA

cRIOSingle board

Ethernet RIO

FlexRIO

PXI série R

CVS

Série R USB

Page 13: Démystifier la programmation avec LabVIEW FPGA

CHOIX DU MATÉRIEL

Présentation du FPGA

•Nombre•Type (tension, courant,…)•Conditionnement

Entrées/Sorties

•Fréquence•Précision

Acquisition

•Facture de forme•Environnement d’utilisation

Intégration

•TailleFPGA

Page 14: Démystifier la programmation avec LabVIEW FPGA

LANGAGE

Langage de programmation : VHDL (VHSIC (Very High Speed Integrated Circuits) Hardware Description Language)

Langage décrit par la norme IEEE-1607 daté de 1987 pour sa première version.

Présentation du FPGA

Page 15: Démystifier la programmation avec LabVIEW FPGA

LANGAGE

LabVIEW

Une philosophie différente

Bas niveau

Méthode identique aux habitudes (langage Graphique)

Présentation du FPGA

Page 16: Démystifier la programmation avec LabVIEW FPGA

UTILISATION DU FPGA

Page 17: Démystifier la programmation avec LabVIEW FPGA

QUE FAIRE AVEC UN FPGA

Utilisation du FPGA

•Acquisition / Génération•Analogique•Digitale

Acquisition de données

•Régulation•Filtrage•FFT

Traitement temps réel

•Tout ce que vous pouvez imaginerAutre

Page 18: Démystifier la programmation avec LabVIEW FPGA

QUELQUES EXEMPLES

•Carte multi-trigger•Fréquence variable•Filtrage

Acquisition spécifique

•FFT à 200MHz point par point (FlexRIO)

Acquisition rapide

•Analyse et comparaison d’images

Traitement vidéo

Utilisation du FPGA

Page 19: Démystifier la programmation avec LabVIEW FPGA

QUELQUES EXEMPLES

Utilisation du FPGA

Détection d’avalanche•Embarqué•Autonome•Robuste•Environnement sévère

Page 20: Démystifier la programmation avec LabVIEW FPGA

QUELQUES EXEMPLES

Utilisation du FPGA

Régulation rapide Pour tests de

freins•Acquisition•Filtrage•Régulation (1kHz pour un moteur de 450kW)•Sécurité

Page 21: Démystifier la programmation avec LabVIEW FPGA

QUELQUES EXEMPLES

Utilisation du FPGA

Régulation boucle ouverte

•2 voies 750kHz•Filtrage•Calculs•Génération 750kHz•Retard 2,6.10-6s

Page 22: Démystifier la programmation avec LabVIEW FPGA

QUELQUES EXEMPLES

Utilisation du FPGA

Communication

•16 voies RS422•Acquisition •Génération•Vitesses non standard•Maîtrise du temps

Page 23: Démystifier la programmation avec LabVIEW FPGA

CE QUE NE FAIT PAS LE FPGA

Utilisation du FPGA

•Limite en mémoireStockage de données

•Limite de place sur le FPGA

Post traitement

•Pas d’affichage direct

Affichage

Page 24: Démystifier la programmation avec LabVIEW FPGA

PROGRAMMATION

Page 25: Démystifier la programmation avec LabVIEW FPGA

PHILOSOPHIE

Le FPGA : composant électronique programmable.

Vous maîtrisez LabVIEW.

Oubliez ce que vous avez appris.

Programmation

Page 26: Démystifier la programmation avec LabVIEW FPGA

PHILOSOPHIE

•Pas de problème de système d’exploitation

Programmation bas niveau

•Pas de priorité d’exécution•Pas de partage de temps

Pas de CPU

•Période constanteDétermin

iste

Programmation

Page 27: Démystifier la programmation avec LabVIEW FPGA

PHILOSOPHIE

Programmation

•Changement•Modification•Evolutions

Composantreprogramma

ble

•Sans déphasage•Sans retard

Parallélisme

•Pipeline•Concaténation de données•Boucles non cadencées

Trucs et astuces

Page 28: Démystifier la programmation avec LabVIEW FPGA

LANGAGE

Programmer FPGA sans maîtrise du VHDL

Vous connaissez donc déjà le langage de programmation …

Un projet,

Des boucles

Des structures

Des conditions

Des fonctions

Des VIs

Des méthodes

Des propriétés

Etc.

Présentation du FPGA

Page 29: Démystifier la programmation avec LabVIEW FPGA

COMPARAISON D’ACQUISITION

Programmation

FPGA

Nécessitera une seconde

Application pour afficher la

Mesure sur l’écran du PC

DAQmx

Page 30: Démystifier la programmation avec LabVIEW FPGA

TEMPS DE COMPILATION

Une compilation en plusieurs phases :

Programmation

VI LabVIEW VHDL Bitfile

LabVIEW FPGA

Compilateur Xilinx

Cible

Page 31: Démystifier la programmation avec LabVIEW FPGA

TEMPS DE COMPILATION

• Quelques msDAQmx

• De quelques minutes à … FPGA

Programmation

→ Réfléchissez avant de compiler

Page 32: Démystifier la programmation avec LabVIEW FPGA

POUR RÉDUIRE LE TEMPS DE COMPILATION

• Serveur dédiéServeur de compilation

linux

• Plusieurs machines pour compiler plusieurs codes en parallèleFerme de PC

• Serveur National Instruments dédiéCloud

Programmation

Page 33: Démystifier la programmation avec LabVIEW FPGA

MISE AU POINT

Une fois compilé, l’utilisation des outils LabVIEW n’est plus possible !

Possibilités :

> Démarrer la face avant, indicateurs et contrôles sont accéssibles.

> Emuler le FPGA en activant le mode simulation sur les cartes.

Programmation

Page 34: Démystifier la programmation avec LabVIEW FPGA

LABVIEW

> L’utilisation de LabVIEW.

> Boucles

> Conditions

> Séquences

> Machines à états

> ….

> Palette limitée

> Des sous-palettes supplémentaires

> (FPGA Math & Analysis)

> Des sous-palettes en moins (chaînes de caractères)

Programmation

Page 35: Démystifier la programmation avec LabVIEW FPGA

LABVIEW

Cahier des charges :

> Acquisition à période variable de 10ms à 100s

> Déclenchement d’alarme en cas de dépassement de seuil

> Démarrage automatique du code

Organigramme :

Programmation

Page 36: Démystifier la programmation avec LabVIEW FPGA

PROJET

Programmation

Page 37: Démystifier la programmation avec LabVIEW FPGA

BOUCLE D’ACQUISITION ET DE TRAITEMENT

Programmation

L’acquisition est faite !

Il ne reste qu’à transférer les données…

Page 38: Démystifier la programmation avec LabVIEW FPGA

TRANSFERT DES DONNÉES

Objet de la face avant du FPGA

Programmation

FPGA

PC

Utilisable pour un faible volume de données à une fréquence faible

Page 39: Démystifier la programmation avec LabVIEW FPGA

PARALLÉLISME

Programmation

Page 40: Démystifier la programmation avec LabVIEW FPGA

PARALLÉLISME

Programmation

Page 41: Démystifier la programmation avec LabVIEW FPGA

EXEMPLE DE PARALLÉLISME

Acquisition sur 7 modules en parallèles à des fréquences potentiellement différentes de 10Hz à 10kHz

Chaque module gère ses anomalies

Programmation

Page 42: Démystifier la programmation avec LabVIEW FPGA

PIPELINE

Programmation

1

1

2

2

3

3

Durée : 1 + 2 + 3

Durée : Max (1 ; 2 ; 3)

Page 43: Démystifier la programmation avec LabVIEW FPGA

FIFO DMA

Programmation

Transfert vers PC

3 voies 750kHz 4,29 Mo/sI16

Page 44: Démystifier la programmation avec LabVIEW FPGA

CONCLUSION

Page 45: Démystifier la programmation avec LabVIEW FPGA

LABVIEW FPGA

Conclusion

• SimpleProgrammation

• Choisissez judicieusementMatériel

• Attention à ce qu’il ne sait pas faire Limites

Page 46: Démystifier la programmation avec LabVIEW FPGA

RESSOURCES

Site National Instruments

http://www.ni.com

Wikipedia

http://fr.wikipedia.org/wiki/FPGA

Formations

LabVIEW FPGA Module

High-Throughput LabVIEW FPGA

Conclusion