Options de programmation relatives aux instruments conçus par logiciels

Contenu

Qu'est-ce qu'un instrument conçu par logiciel ?

Les instruments conçus par logiciel permettent aux instruments d'atteindre des niveaux de performances sans pareil, par le biais de FPGA programmables par les utilisateurs. Les instruments modulaires standard et ceux conçus par logiciel partagent la même architecture matérielle et effectuent des mesures de qualité comparable. Ils disposent tous de drivers d'instruments qui permettent la personnalisation logicielle sur leurs processeurs hôtes. Cette approche basée logiciel, appelée instrumentation virtuelle, est devenue un standard de facto dans le cadre du développement d'applications de test automatique. Les instruments conçus par logiciel repoussent davantage les limites de l'instrumentation virtuelle en mettant les performances de la technologie FPGA à disposition des utilisateurs. Les instruments conçus par logiciel disposent de toutes les fonctionnalités prêtes à l'emploi que l'on attend d'un instrument, mais celles-ci sont architecturées de telle sorte qu'elles peuvent être facilement étendues pour apporter des améliorations spécifiques à chaque application au niveau du FPGA.

 


Figure 1. Les instruments conçus par logiciel fournissent toutes les fonctionnalités prêtes à l'emploi que l'on attend d'un instrument, mais permettent des améliorations spécifiques à chaque application au niveau du FPGA.

 

Les FPGA sont des composants en silicium qui consituent le "cerveau" idéal des instruments modulaires. Comparé aux microprocesseurs, ils sont capables d'implémenter du traitement hautes performances déterministe et des prises de décision à faible latence. Bien que les circuits intégrés spécifiques (ASIC) puissent atteindre le même niveau de performances que les FPGA, ils ne peuvent pas être reprogrammés ; cela signifie que les fournisseurs ne peuvent ajouter aucune fonctionnalité ultérieurement, et surtout que les utilisateurs finaux ne peuvent pas personnaliser les ASIC en fonction de leurs besoins.

 


Figure 2. Les FPGA fournissent les performances et les fonctionnalités nécessaires pour supporter les instruments modernes.

 

Les FPGA sont constitués de plusieurs composants de base qui sont tous programmables. Les blocs logiques configurables (CLB en anglais) et les interconnexions programmables implémentent de la logique numérique arbitraire et permettent aux données de traverser le silicium du FPGA. Les blocs de mémoire RAM permettent le stockage de données temporaires pendant les opérations, et peuvent être partitionnés puis alloués en fonction des fonctionnalités requises. Les multiplicateurs du FPGA et les blocs DSP fournissent les éléments de calcul nécessaires au traitement du signal et aux mathématiques haut débit. Les blocs d'E/S flexibles permettent de s'interfacer avec d'autres composants électroniques en dehors du FPGA. Cela inclut les C A/N, les C N/A et les buffers numériques pour E/S d'instruments, les synthétiseurs d'horloge pour les opérations d'instruments synchrones à des fréquences spécifiques, des composants de mémoire DRAM pour un stockage grande profondeur sur l'instrument, et des bus d'interface pour transférer les données de mesures au processeur hôte.

 

Figure 3. Les composants FPGA programmables répondent aux besoins des instruments modernes.

 

Si les FPGA fournissent des performances encore inégalées, les programmer avec des langages traditionnels tels que VHDL s'avère difficile. Le module LabVIEW FPGA simplifie radicalement la programmation FPGA pour les matériels NI. Cet environnement de programmation graphique familier permet une saisie rapide, ce qui réduit le temps d'écriture du code. Les fonctions spécifiques au FPGA telles que les boucles cadencées à un cycle, les bibliothèques mathématiques haut débit, les nœuds de mémoire, les utilisaires de configuration d'horloges graphiques et les nœuds d'intégration d'IP tiers améliorent le langage LabVIEW et maximisent les performances sur les cibles FPGA. L'abstraction nécessaire pour accéder aux E/S d'instruments, l'interfaçage avec la mémoire DRAM sur l'instrument et les mouvements de données sur le bus simplifient grandement ces tâches complexes. Le flux de données intégré vous permet de développer, simuler et compiler du code FPGA depuis un environnement unique. Le LabVIEW FPGA Compile Cloud Service offre des possibilités de compilation hors site sur des machines dédiées hautes performances, ce qui réduit la charge du processeur sur votre machine de développement. Enfin, les instruments conçus par logiciel spécifiques, les bibliothèques d'IP – y compris les bibliothèques de conception d'instruments –, ainsi que les modèles de conception fournis avec les exemples de code vous donnent toutes les fonctionnalités que l'on peut attendre d'un instrument, directement prêtes à l'emploi.


Figure 4. LabVIEW FPGA simplifie radicalement la programmation FPGA pour les matériels NI.

Avantages des FPGA dans les applications de test

Les améliorations potentielles spécifiques à chaque application au niveau du FPGA sont uniquement limitées par les E/S de l'instrument, mais dans le cadre d'applications de test, elles peuvent être divisées en cinq grandes catégories. Ces dernières incluent les mesures sur FPGA et la génération de stimuli, les tests en boucle fermée ou de protocoles, les déclenchements et les réductions de données personnalisés, le contrôle des unités sous test (DUT en anglais) et l'exécution de test déterministe, ainsi que des personnalités spécifiques à une application ou à un DUT. Chacune de ces améliorations est destinée à réduire le coût total des tests en favorisant une cadence de test plus élevée, la réutilisation et la perrénisation de matériel, et en permettant des tests innovants jusque-là irréalisables.

Les mesures sur FPGA et la génération de stimuli déplacent en tout ou partie ces tâches du processeur hôte vers le FPGA. Une fois implémentées sur le processeur, les mesures et la génération de stimuli ne s'effectuent généralement pas en temps réel, étant donné que le temps nécessaire au calcul des mesures ou à la génération de formes d'ondes est plus long que les formes d'ondes elles-mêmes. Sur le FPGA, ces algorithmes peuvent être calculés en temps réel, et peuvent donc également être exécutés en continu et quasi instantanément. Cela permet d'augmenter les cadences de test en réduisant le temps de calcul des mesures, mais peut tout aussi bien favoriser de nouveaux types de tests en effectuant des mesures en continu sur une période de temps définie, ou en générant des formes d'onde non répétitives de longue durée. Parmi les exemples de ces types d'améliorations FPGA, citons les mesures spectrales RF, les calculs de taux d'erreur sur les bits, la génération de ton à phase continue, ou la dégradation intentionnelle de formes d'onde comme l'ajout de bruit ou la distorsion.

 


Figure 5. Génération de stimuli et mesures sur FPGA.

 

Les tests en boucle fermée ou de protocoles tirent parti du déterminisme et de la capacité de prise de décision à faible latence du FPGA pour intéragir avec le DUT en temps réel. Ils permettent de garantir une plus grande cadence de test en réduisant la charge sur le processeur hôte, et de faciliter l'évolution des protocoles de communication en favorisant la réutilisation du matériel ; ils peuvent également contribuer à de nouveaux types de test en boucle fermée temps réel, jusque-là irréalisables. Parmi ces améliorations FPGA, on peut citer l'émulation des conditions réelles de fonctionnement de DUT, notamment par le biais d'une émulation de voie ou en émulant le matériel qui peut interagir avec le DUT, ou encore en implémentant des protocoles de communication RF ou numériques sur le FPGA.

 


Figure 6. Test en boucle fermée ou de protocole.

 

La réduction de données et le déclenchement personnalisés ont pour but d'isoler la quantité minimale de données requise pour effectuer une mesure particulière, ce qui diminue la charge de traitement restante soit sur le FPGA, soit sur le processeur hôte. Ces opérations peuvent favoriser une cadence de test plus élevée en réduisant le temps de calcul des mesures, garantir la perrénisation du matériel en permettant l'ajout ultérieur de nouvelles fonctionnalités au niveau des instruments afin de pouvoir gérer de nouveaux types de signaux ; ils peuvent également permettre de nouvelles mesures innovantes en capturant des événements rares avec une fiabilité de 100 %. Parmi ces améliorations FPGA, citons les triggers de domaine fréquentiel, les triggers d'enveloppe de domaine temporel temps réel, les triggers d'impulsions et la décimation de domaines fréquentiels et temporels.

 


Figure 7. Réduction de données et déclenchement personnalisés.

 

Le contrôle de DUT et l'exécution de tests déterministes déplacent le séquencement et la prise de décision d'un logiciel séquenceur de test vers une logique matérielle, où ces deux opérations s'exécutent aussi vite que possible de manière totalement déterministe. Le contrôle de DUT implique de communiquer avec l'unité sous test en question par le biais d'un type de protocole numérique, afin de modifier son mode de fonctionnement au cours d'une séquence de test, si nécessaire. Une machine à états basée FPGA peut alors remplacer le logiciel séquenceur de test pour contrôler la génération et/ou l'acquisition de signal par l'instrument conçu par logiciel, le contrôle numérique du DUT, ou encore d'autres instruments présents dans le système PXI par l'intermédiaire des voies de déclenchement de fond de panier. Ce type d'améliorations FPGA est purement conçu pour favoriser des cadences de test plus élevée, avec des applications de test automatique de très grande série pour lesquelles la moindre milliseconde compte. Parmi les protocoles de contrôle de DUT numériques, citons I2C, SPI, JTAG et RFFE ; le séquenceur de test de matériels et l'IP du séquenceur d'instructions de DUT facilient l'exécution des tests sur matériel.

 


Figure 8. Contrôle de DUT et exécution de test déterministes.

 

Les personnalités de DUT ou spécifiques à une application combinent les diverses améliorations FPGA décrites plus haut, et offrent les fonctionnalités FPGA optimisées pour chaque type de DUT. Ces personnalités peuvent être reconfigurées au cours du test d'un dispositif, ou permutées lorsqu'un instrument est réassigné au test d'un dispositif différent. Le premier scénario est susceptible de se réaliser quand un instrument conçu par logiciel effectue à lui tout seul les tâches de plusieurs instruments traditionnels. Le second peut se réaliser fréquemment dans un environnement de test où plusieurs dispositifs se trouvent sur une même ligne d'assemblage, ou de manière plus ponctuelle dans les environnements où le matériel est réutilisé une fois que le dispositif précédemment testé est en fin de vie et n'est plus produit. Quoi qu'il en soit, la réutilisation du matériel réduit drastiquement le coût des tests, ce qui constitue un réel avantage. Parmi les exemples de ce type d'améliorations FPGA, citons la mise à jour du protocole numérique dans un test "protocol-aware", lorsque de nouvelles caractéristiques ou des performances améliorées sont ajoutées aux spécifications du protocole.

 


Figure 9. Personnalités spécifiques à une application ou à un DUT.

Options de programmation pour les instruments conçus par logiciels

Les instruments conçus par logiciel de NI présentent de nombreuses options de programmation, plus ou moins pertinentes selon les exigences de chaque application. Pour une compatibilité maximale avec le code et les paradigmes de test existants, les drivers d'instrument fournissent des API pour les standard de l'industrie afin de répondre aux besoins particuliers des applications. Pour une souplesse maximale, les bibliothèques de conception d'instruments NI et les exemples de projets LabVIEW fournissent des blocs de construction de bas niveau ainsi que des modèles d'architectures que vous pouvez intégralement personnaliser. Les extensions FPGA de drivers d'instruments constituent la méthode optimale et fournissent les API pour les standard de l'industrie tout en permettant l'ajout d'améliorations FPGA spécifiques à une application.

 

Figure 10. Options de programmation pour les instruments conçus par logiciels.

 

Les drivers d'instruments permettent une abstraction matérielle qui dépend de chaque type d'instrument. Le driver d'instrument NI-Scope supporte notamment tous les produits matériels de type oscilloscope modulaires de NI. Ces drivers favorisent le partage de code entre différentes versions de drivers, entre matériels, ou même entre produits de différents fournisseurs en supportant les instruments virtuels interchangeables (IVI). Ils offrent des API hôtes sous LabVIEW, ainsi qu'en C/C++ et en .NET. De plus, ils permettent la configuration de matériels sous NI Measurement and Automation Explorer (MAX) et l'usage interactif de faces-avant logicielles ; il contiennent également des exemples de programmes qui font démonstration des fonctionnalités complètes de l'API et du matériel, ainsi que d'une aide et de documentation intégrées.

Les extensions FPGA de driver d'instrument s'appuient sur les capacités des drivers d'instruments NI en apportant des améliorations FPGA spécifiques à une application. Lors de l'utilisation d'une personnalité FPGA d'instrument personnalisé – appelée bitstream ou bitfile –, le driver d'instrument agit de la même façon qu'avec la personnalité par défaut fournie par NI, et vous disposez de davantage de contrôle sur les fonctionnalités FPGA additionnelles par le biais de l'API NI-RIO de bas niveau.

 

Figure 11. Extensions FPGA pour driver d'instrument

 

Vous pouvez télécharger des personnalités FPGA personnalisées pré-construites sur ni.com, ou les obtenir des membres du programme NI Alliance Partner. Vous pouvez également construire les vôtres avec le module LabVIEW FPGA, actuellement inclus dans un programme d'accès en avant-première (ni.com/beta). Dans ce cas, vous débuterez avec le même code que celui utilisé pour construire la personnalité FPGA par défaut, avec toutes les IP nécessaires. Vous pourrez ensuite apporter vos propres modifications en fonction de votre application ainsi que des IP supplémentaires.

 

Figure 12. Les extensions FPGA pour drivers d'instruments fournissent aux instruments conçus par logiciel les fonctionnalités qui leurs sont essentielles, tout en apportant des améliorations spécifiques à chaque application au niveau du FPGA.

 

Pour apporter des modifications plus poussées au FPGA, les bibliothèques de conception d'instruments de NI fournissent les blocs de construction bas niveau des instruments, comme des modules de code FPGA et hôte désagrégés. La désagrégation facilite la suppression ou l'ajout de ces composants dans un programme donné, ce qui optimise les fonctionnalités des ressources FPGA restreintes et garantit une certaine souplesse architecturale.

 

Figure 13. Bibliothèques de conception d'instruments NI.

 

Outre les bibliothèques de conception d'instruments, NI fournit des exemples de projets LabVIEW pouvant servir de modèles d'architectures adaptés à différentes applications. Ils fournissent une copie du code FPGA et hôte pour permettre à l'utilisateur d'y apporter des modifications.

 


Figure 14. Les exemples de projets LabVIEW s'appuient sur les bibliothèques de conception d'instruments et constituent le point de départ d'un grand nombre d'applications. Cette image illustre une architecture de génération et d'acquisition pour transcepteurs de signaux vectoriels NI. Le code en bleu est prévu pour être modifié par l'utilisateur.

Choisir la bonne expérience logicielle

Pour pouvoir manipuler rapidement un nouvel instrument conçu par logiciel, les drivers d'instruments permettent une utilisation rapide pour effectuer les premières mesures dans les meilleurs délais. Si aucune amélioration FPGA n'est nécessaire, les drivers d'instruments NI comprenant la personnalité FPGA par défaut sont suffisants pour les applications de test automatique.

Pour les applications susceptibles de tirer parti des améliorations FPGA , les extensions FPGA pour drivers d'instruments fournissent une expérience logicielle optimale. Vous pouvez facilement migrer d'une application de driver d'instruments avec la personnalité FPGA par défaut aux extensions FPGA pour driver d'instruments en ajoutant simplement le code nécessaire au FPGA et à l'hôte, puis en re-compilant le programme FPGA. Pour utiliser une personnalité pré-compilée, il suffit d'ajouter le code à votre programme existant.

Dans le cas où des modifications plus importantes devraient être apportées à l'architecture FPGA, ou pour maximiser l'espace disponible pour l'IP FPGA, l'utilisation des exemples de projets LabVIEW comme points de départ garantit la meilleure souplesse possible. La transition d'une extension FPGA pour driver d'instruments à des exemples de projets reposant sur les bibliothèques de conception d'instruments NI peuvent réquérir d'importantes modifications du code d'application hôte ; c'est pourquoi il est plus efficace de faire un choix entre les extensions FPGA pour drivers d'instruments et les bibliothèques de conception d'instruments au début du développement de votre application.

Actuellement, tous les instruments conçus par logiciel ne supportent pas toutes les options de programmation. L'interface matérielle permettant de créer des instruments conçus par logiciel sera peut-être mise sur le marché avant que toutes les options ne soient disponibles, et le support architectural sera ajouté ultérieurement ou mis à disposition entre-temps par le biais d'un programme d'accès en avant-première. De plus, tous les instruments ne sont pas forcément adaptés au paradigme de drivers des instruments traditionnels. Les instruments série haute vitesse de NI ne disposent notamment d'aucun driver d'instrument existant adapté à l'utilisation à laquelle ils sont destinés.

 

Figure 15. Options de programmation actuellement supportées par les instruments conçus par logiciel de NI

Étapes suivantes

Pour en savoir plus sur les extensions FPGA pour drivers d'instruments, consultez l'article intitulé Introduction aux extensions FPGA pour drivers d'instruments dédiées aux instruments conçus par logiciel de NI. Pour en savoir plus sur les bibliothèques de conception d'instruments de NI, consultez l'article Introduction aux bibliothèques de conception d'instruments dédiées aux instruments conçus par logiciel de NI