Les cartes d`acquisition avec DSP et/ou FPGA intégrés
Transcription
Les cartes d`acquisition avec DSP et/ou FPGA intégrés
G uide d’achat Hunt E nginee ring ACQUISITION DE DONNÉES En matière de cartes intelligentes,les solutions figées sont assez peu répandues.Les cartes sont souvent conçues autour d’une architecture modulaire comme c’est le cas ici.Cette carte au format PCI long peut accueillir jusqu’à 5 modules comprenant au choix,un ensemble de CAN,un ensemble de DSP ou un FPGA.Un bus propriétaire ultra-rapide à 400 Mo/s relie tous les modules. I l y a à peine quatre ans cet article n’aurait pas eu de raison d’être.A l’époque, on aurait certes pu trouver sur le marché quelques cartes d’acquisition avec DSP intégrés, mais pour les cartes avec FPGA, on serait peut-être rentré bredouille de la cueillette… Il faut dire que depuis quelques années le domaine a fortement évolué : à titre d’exemple, on L’essentiel peut lire dans un article de Mesures de Les cartes d’acquisition juin 2001 déjà consaavec DSP ou FPGA permetcré au sujet qu’à tent de faire du traitement numérique du signal en l’époque le plus cours d’acquisition et “gros” FPGA comconviennent bien aux portait environ un applications temps réel million de portes. L’offre en cartes sur étagèAujourd’hui, on re est de plus en plus atteint allègrement les conséquente 8 millions de portes Les caractéristiques, les voire plus pour les avantages et les inconvénients des DSP et des FPGA modèles hauts de sont passés en revue gamme. Le “bon Les architectures mixtes et vieux FPGA à papa” modulaires mêlant DSP et qui permettait de faiFPGA sont de plus en plus re de la logique prorépandues grammable de base a 56 Les cartes d’acquisition avec DSP et/ou FPGA intégrés ▼ Certaines applications d’acquisition de signaux nécessitent de traiter les échantillons en temps réel, c’est-à-dire en cours d’acquisition, afin de réduire immédiatement après conversion analogique-numérique le flot de données à transmettre. Il s’agit de soulager la charge de calcul du processeur central en lui communiquant une information déjà prétraitée, beaucoup moins volumineuse. On connaissait les cartes d’acquisition avec DSP intégrés mais beaucoup moins les cartes avec FPGA intégrés. Cet article s’efforce de faire le point sur ce domaine complexe en forte évolution. laissé la place à un monstre de puissance capable d’intégrer dans son “sein de silicium” des cœurs de processeurs entiers et de réaliser des tâches de traitement du signal très évoluées. Le FPGA vient marcher sur les plates-bandes du DSP dans certaines applications de traitement du signal. Pour preuve de cette tendance forte, Patrick Méchin, fondateur de Techway, a fait le pari de créer son entreprise spécialisée dans l’expertise, la vente et la prestation de service autour du FPGA. « A l’heure actuelle, les développeurs connaissent bien les DSP et savent programmer avec.La tendance est à l’utilisation de plus en plus massive des FPGA pour le traitement du signal.Les ingénieurs de conception savent faire de la logique programmable avec les FPGA mais pour le traitement du signal,les compétences en programmation sont encore rares et recherchées.C’est sur cette analyse que nous misons pour l’avenir de Techway », explique M. Méchin. Dans cet article nous nous intéressons aux cartes d’acquisition, c’est-à-dire de conversion analogique-numérique, intégrant un ou plusieurs DSP, un ou plusieurs FPGA, voire les deux technologies. Nous avons présenté dans nos deux tableaux un aperçu non exhaustif de l’offre de différents fournisseurs présents en France en mentionnant les différents formats disponibles (PCI, PMC,VME, cPCI). Il faudra, avant de faire son choix, être attentif à l’éternelle question de la conversion analogique-numérique régulièrement MESURES 763 - MARS 2004 Guide d’achat évoquée dans nos colonnes. Il conviendra en effet de veiller aux paramètres traditionnels des cartes d’acquisition : nombre de voies, fréquence d’échantillonnage, multiplexage des voies, résolution numérique, mémoire d’acquisition… Mais l’objectif est ici, avant tout, de fournir des éléments de réponse à celui qui serait susceptible de se lancer dans l’intégration de cartes intelligentes de traitement numérique du signal. Force est de constater que pour l’utilisateur de solutions d’acquisition de données traditionnelles, ces cartes peuvent paraître complexes à utiliser et surtout à programmer. Pourquoi choisir une carte d’acquisition intelligente ? Les raisons sont évidemment très diverses mais l’on peut citer quelques généralités. Une chaîne d’acquisition traditionnelle sur PC par exemple procède de la façon suivante : restitution du signal par les capteurs ou les sondes, conversion analogique-numérique par les cartes, transfert des échantillons via le bus PCI (ou ISA) et traitement des données par le processeur du PC. Cette façon de procéder, notamment avec l’augmentation des fréquences d’échantillonnage, a quelques inconvénients qui se comprennent aisément. D’une part, le bus interne du PC (qu’il soit de type PCI ou autre) est un goulot d’étranglement lorsque le flux d’échantillons est trop élevé. Le bus classique PCI 32 bits/33 MHz par exemple ne dépasse pas les 132 Mo/s théoriques (en pratique 80 Mo/s, voire moins). Lorsque l’on numérise en continu à plus de 100 Méch./s sur 14 bits (même sur une seule voie), celui-ci ne sera pas assez rapide. On pourra donc perdre des échantillons (à plus forte raison encore, si on a d’autres transferts sur le bus de type “son, Internet, accès disque dur” ou autres)… D’autre part, dans cette architecture, le processeur du PC est utilisé pour le calcul et le traitement des données. Or celui-ci a déjà son “travail de processeur” à faire : les nom- UEI MESURES 763 - MARS 2004 breuses tâches généralistes des applications tournant sur le PC. Il résulte de l’ensemble “bus de transfert, processeur PC, système d’exploitation” une absence de déterminisme bien connue. Opter pour une carte d’acquisition intelligente, c’est à la fois soulager le flux d’information vers le bus de transfert et soulager la charge de calcul du processeur. De manière générale, les cartes avec DSP et FPGA permettent de faire un traitement ou un prétraitement du signal immédiatement après la conversion analogique-numérique (FFT, décimation, corrélation, intégration…) afin d’envoyer vers le contrôleur une information plus pertinente pour l’utilisateur que les données brutes. Il faut faire le parallèle avec les “cartes son” et les cartes graphiques des PC bureautiques. Celles-ci soulagent le processeur central en effectuant les algorithmes spécifiques à l’affichage et au son. L’implémentation de cartes intelligentes permet surtout de réaliser des systèmes où l’information est traitée en temps réel pendant le cours de l’acquisition. « Celui qui n’a pas de contraintes de temps réel n’a pas besoin de s’embarrasser la vie avec des FPGA, ni même des DSP », assure Patrick Delrue, président d’Horizon Technologies, société spécialisée dans l’acquisition de données. «Très souvent,ceux qui choisissent de telles cartes ont besoin d’acquérir une information,de la traiter dans le laps de temps imposé par l’application et de générer une consigne », poursuit M. Delrue. Digital Signal Processor Les DSP ou “Digital Signal Processors” sont, comme leur nom l’indique, des processeurs dédiés au traitement du signal. Cela signifie qu’au lieu d’avoir un jeu d’instructions généralistes comme les processeurs classiques, ils comportent un certain nombre d’instructions dédiées au calcul mathématique binaire. « Les DSP comprennent par exemple les instructions dites “MAC” pour Multiply and Accumulate. Ces instructions permettent,en un seul cycle d’horloge,de faire une multiplication et une addition. Un processeur classique nécessitera deux cycles d’horloge pour faire la même opé- Il existe désormais des cartes avec DSP intégrés au format PXI/cPCI 3U.Cette carte distribuée par Acquisys en France dispose de drivers originaux pour Linux,RT Linux et QNX. Les modules au format PMC (PCI Mezzanine Card) avec CAN et FPGA intégrés sont très appréciés puisqu’ils peuvent se greffer à la fois sur des cartes VME et sur des cartes cPCI. Pentek ration », explique Hervé Brouchery, ingénieur système chez Texas Instruments. Les DSP se programment en langage C/C++ ou en assembleur, plus proche du langage machine. Le langage C/C++ sera ensuite compilé afin d’être compréhensible par le processeur. « La majeure partie de la programmation peut être effectué en C ou en C++ mais pour disposer d’un code optimisé, il faut parfois coder certaines parties en assembleur », précise M. Brouchery. Le marché du DSP est phagocyté par les deux poids lourds que sont Texas Instruments avec sa gamme de DSP C6X et Analog Devices avec la famille Sharc. On trouvera ensuite Motorola avec les familles G4 et G5 à cheval entre le DSP et le processeur RISC. Les deux grands du domaine proposent tous deux des environnements de développement intégrés (IDE, Integrated Development Environnement) dédiés à la programmation des DSP : Code Composer Studio pour Texas Instruments et VisualDSP++ pour Analog Devices. Ces environnements de programmation comprennent des compilateurs C et C++ spécifiques aux instructions des familles de DSP. Ils intègrent également des simulateurs permettant de programmer et de déboguer sans la présence physique du DSP, des émulateurs permettant de télécharger le code compilé sur le DSP et de déboguer sur le matériel, des profilers pour la caractérisation des temps d’exécution du code. Sans oublier les nombreuses bibliothèques de fonctions déjà écrites… Ces environnements ne sont pas fournis avec les cartes et l’on doit se les procurer chez le fournisseur du DSP. Les critères de choix d’un DSP sont similaires à celui d’un processeur : en premier lieu, on trouve la fréquence d’horloge du processeur et le nombre de bits des données (en majorité sur 16 bits ou 32 bits).Toutefois, comme pour les processeurs conventionnels, il ne faut pas prendre au pied de la lettre ces caractéristiques : un DSP moins performant 57 Guide d’achat Les cartes de conversion analogique-numérique avec DSP intégrés Fabricant (Représentant) Référence Format Nombre de voies Fréquence Échantillonnage Résolution DSP Mémoire Embarquée Système d’exploitation Observations Exacq (SM2I) Série CM PCI, cPCI 8,16,32 16 bits Windows Linux FPGA non programmable PCI, cPCI 2-8 1 DSP TM-1300 32 bits 143 MHz virgule fixe ou flottante (Philips) 16 Mo Série CH 1 Méch./s multiplexé 20 Méch./s par voie Goldammer de (SM2I) MultiChoice Quattro PCI 32 1 Méch./s multiplexé 12 ou 16 bits 1 DSP56311 150 MHz (Motorola) 1,5 Mo de RAM Windows 98/2000/XP Coprocesseur de filtrage intégré Hunt Engineering (Horizon Technologies) HEPC9 + HEGD1 + C6X HEPC9 + IO2V + C6X HEPC9 + HEGD12 + C6X PCI, cPCI 4 à12 40 Méch./s par voie 12 bits 21 25 Méch./s par voie 12 bits Système modulaire Heart/Heron FPGA optionnel ou intégré Bus à 400 Mo/s PCI, cPCI 8 à 16 2,5 Méch./s par voie 16 bits 32 Mo de SDRAM + Flash 32 Mo de SDRAM Flash 32 Mo de SDRAM Flash Windows Linux VxWorks PCI, cPCI 1 à 3 DSP C6203 et/ou C6701 virgule fixe ou flottante (TI) DSP C6203/C6701 32 bits virgule fixe ou flottante (TI) DSP C6203/C6701 32 bits virgule fixe ou flottante (TI) Conejo cConejo Delphin PCI,cPCI 4 14 bits Windows 32 Quixote cPCI 2 DSP C6711 virgule flottante (TI) DSP C6711 virgule flottante (TI) DSP C6416 virgule fixe (TI) 32 Mo PCI 10 Méch./s par voie 192 Kéch./s parvoie 105 Méch./s parvoie 4 sorties DAC 64 E/S numériques 6 sorties DAC 64 E/S numériques 2 sorties DAC 32 E/S numériques ADWIN-L16PCI PCI 8 100 Kéch./s multiplexé 16 bits ADWIN-L16cPCI cPCI 8 100 Kéch./s multiplexé 16 bits M70 M- Module 4,8,16 200 éch./s 20 bits M59 M-Module 4 100 Kéch./s 16 bits iDSC 1816 PCI 8 153,6 Kéch./s par voie 16 bits DSP56303 100 MHz (Motorola) NI PCI-4551 PCI 2 NI PCI-4552 PCI 4 204,8 Kéch./s par voie 204,8 Kéch./s 16 bits 32 bits 16 bits 4293 VME 4 14 bits 4294 VME 4 105 Méch./s par voie 105 Méch./s 4205 VME 4 105 Méch./s Transtech-DSP (Techway) Pack I/O QuadTigerSharc VME, PCI, cPCI 1à8 65 Méch./s à 210 Méch./s UEI (Acquisys) PD2-MF PCI Jusqu’à 64 PDXI-MF cPCI/PXI Jusqu’à 64 Jusqu’à 2,2 Méch./s multiplexé Jusqu’à 2,2 Méch./s multiplexé Innovative Integration (Acquisys) Jaeger (Keithley Instruments) Men Mikro Elektronik Microstar Laboratories (SM2I) National Instruments Pentek (Vsystems) 58 12 bits 24 bits 14 bits 1 ADSP21062 32 bits virgule flottante (Analog Devices) 1 ADSP21062 32 bits virgule flottante (Analog Devices) 1 ADSP2181 (Analog Devices) 2 ADSP2181 (Analog Devices) 16 Mo 32 Mo 32 Mo + 8 Mo 8 Mo DRAM Adbasic 8 Mo DRAM VxWorks Linux Windows Acquisition de température Synchronisation possible 16 Mo Windows 98/2000/XP Filtrage hautes performances 1 DSP Sharc (Analog Devices) nc nc Analyse en mode FFT, dynamique de 90 dB 8 DSP C’6203 virgule fixe (TI) 4 DSP G4 virgule flottante (Motorola) 4 DSP G5 virgule flottante (Motorola) 172 Mo nc FPGA et cœurs IP en option 580 Mo VxWorks Linux 8 à 14 bits 4 TigerSharc virgule flottante (Analog Devices) 256 Mo de SRAM 4 Mo de Flash VxWorks Windows Linux Architecture modulaire, FPGA Virtex II intégré Jusqu’à 16 bits DSP 56301 (Motorola) Jusqu’à 64 Ko Jusqu’à 16 bits DSP 56301 (Motorola) Jusqu’à 64 Ko Windows Linux RT Linux QNX 2 sorties analogiques 32 E/S numériques 3 compteurs 14 bits par voie 14 bits par voie 80 Ko 160 Ko 544 Mo MESURES 763 - MARS 2004 Guide d’achat sur le papier qu’un autre pourra s’avérer moins efficace pour une application particulière. Le tout réside dans la nature des opérations qui composent son jeu d’instruction. Le monde des DSP se partage en deux : les processeurs à virgule fixe (“fixed point” en anglais, généralement sur 16 bits) et les processeurs à virgule flottante (généralement sur 32 bits). Les premiers sont rapides, peu onéreux et de faible consommation. Ils sont cependant plus délicats à programmer. Les seconds permettent de développer des applications plus rapidement mais ils sont en général plus chers et consomment plus que les DSP à virgule fixe. L’analyse de la mémoire du DSP a également son importance. Il faut distinguer les DSP qui ont une mémoire très proche du processeur, des DSP qui ont une mémoire “éloignée”. « Dans le premier cas,la mémoire est accessible en un seul cycle d’horloge à la manière d’un registre processeur.Dans le second cas, il faudra plusieurs cycles d’horloges pour faire une opération. Le temps d’accès du DSP à ses mémoires a, comme pour le processeur classique, une influence sur la rapidité d’exécution des tâches », développe Nicolas Dechesne, chef de projet chez Texas Instruments. Autre point important : certains constructeurs fournissent avec leurs cartes d’acquisition avec DSP, des outils de programmation et de configuration de la carte permettant de s’affranchir de la programmation en C/C++ du DSP. C’est le cas de Goldammer qui intègre dans son interface de configuration de la carte des fonctions comme la FFT, le PID ou certains filtrages. L’avantage est que l’on peut gagner du temps sur la programmation de la carte. Revers de la médaille, toutes les fonc- tions ne sont pas disponibles ; cet outil ne permet pas la souplesse d’une programmation spécifique. Field Programmable Gate Array FPGA ou Field Programmable Gate Array se traduit en français par circuit prédiffusé programmable. Sans entrer dans les détails (que nous laissons bien volontiers à nos confrères des revues d’électronique !), il faut considérer un FPGA comme un “champ de silicium” contenant un certain nombre de portes logiques élémentaires pouvant être reliées entre elles par programmation pour réaliser des fonctions plus évoluées. Ici, plus question de parler de processeurs, ni de compilateur comme pour le DSP. Reprogrammable à volonté, le FPGA n’est pas un composant électronique dédié. On peut le programmer Les cartes de conversion analogique-numérique avec FPGA intégrés (1) Fabricant (Représentant) Référence Format Nombre de voies Fréquence Échantillonnage Résolution FPGA Système d’exploitation Observations Acqiris AP235 PCI 2 8 bits AP240 PCI 2 0,5 Géch./s sur 2 voies 1 Géch./s sur 1 voie 1 Géch./s sur 2 voies 2 Géch./s sur 1 voie 2 Virtex-II, 3 M de portes, (Xilinx) 2 Virtex-II, 3 M de portes, (Xilinx) Windows VxWorks Linux Options de firmware : - moyennage - séquentiel Alpha Data (Vsystems) ADM-XPL PMC, PCI VME,cPCI 2 105 Méch./s par voie 14 bits Virtex-II, PRO 7, 20 et 30, (Xilinx) VxWorks Windows Linux Rocket IO FPDP DSP Research (Antycip) ADC364 TIM, PCI, VME, cPCI TIM, PCI VME, cPCI 4 105 Méch./s 14 bits Linux Windows 2 105 Méch./s 14 bits 1 XC2V1000, 1 M de portes, (Xilinx) 1 XC2V1000, 1 M de portes, (Xilinx) Architecture modulaire 2 sorties 16 bits 300 Méch./s Spartan 200K ou Virtex-II à 1, 3, 6 ou 8 M de portes (Xilinx) Spartan ou Virtex-II 1 M de portes (Xilinx) Windows Linux VxWorks Système autonome Bus à 400 Mo/s Mémoire 256 ou 512 Mo 2 sorties DAC 14 bits. Carte embarquable Bus à 400 Mo/s Mémoire 256 ou 512 Mo ADC-DAC370 Hunt Engineering (Horizon Technologies) Innovative Integration (Acquisys) Lyrtech (The Mathworks) 8 bits HEPPC9 + IO2V + Heart/Heron BaseIO + IO2V PCI, cPCI 2à6 Jusqu’à 125 Méch./s par voie 12 bits 12x6 cm 2 Jusqu’à 125 Méch./s par voie 12 bits HEPPC9 + IO2V + Heart/Heron PCI, cPCI 8 à 24 Jusqu’à 2,5 Méch./s par voie 16 bits Spartan 200K ou Virtex-II à 1, 3, 6 ou 8 M de portes (Xilinx) Windows VxWorks Linux Quixote cPCI 2 105 Méch./s 14 bits Windows M62/67-CF cM62/67-CF PCI, cPCI 2 65 Méch./s 12 bits 1 Virtex-II, 6 M de portes (Xilinx) 1 XCV300E, 300 000 portes (Xilinx) M62/67-HSA PCI, cPCI cM62/67-HSA 2 65 Méch./s 14 bits 1 Virtex, 2 M de portes (Xilinx) HS-ADC-16 cPCI 16 Jusqu’à 10 Méch./s 14 bits HS-ADC-16 cPCI 16 Jusqu’à 105 Méch./s 14 bits 1 Virtex-II, 1 M de portes, (Xilinx) 1 Virtex-II, 3 M de portes, (Xilinx) MESURES 763 - MARS 2004 Site PMC StarFabric DSP C6x 2 sorties analogiques 32 E/S numériques Windows Bus FPDP 59 Guide d’achat * La programmation des premiers FPGA était réalisée en faisant fondre (“claquer”) des fusibles noyés dans le silicium.A l’époque, ces composants n’étaient pas reprogrammables.Aujourd’hui, ils le sont à volonté mais le vocable “claquer”est resté… pour réaliser n’importe quelle fonction électronique, de la plus simple à la plus compliquée : portes logiques élémentaires, compteurs, multiplicateurs, additionneurs, horloges mais aussi processeurs, mémoires… Le FPGA est un peu l’auberge espagnole du composant électronique : il permet de vraiment tout faire (sauf la cuisine évidemment…). L’intérêt est donc de l’utiliser pour réaliser des fonctions bien spécifiques de traitement du signal qui seront implémentées de manière matérielle et non logicielle. Par exemple, on peut imaginer un FPGA recevant sur ses entrées les bits d’un signal physique et qui sur ses sorties restituerait un certain nombre de bits représentant le spectre du signal d’entrée (“FFTtizeur”). L’exemple de la FFT n’est peut-être pas le meilleur car il existe sur le marché des composants dédiés à cette fonction. Mais il faut voir que l’on peut imaginer n’importe quel algorithme exotique de traitement du signal pouvant être “claqué*” dans le silicium. Le gros avan- tage du FPGA par rapport à un composant électronique ordinaire est qu’il est reprogrammable, il permet donc une certaine évolutivité de l’application. Il offre la possibilité de s’affranchir des couches logicielles tout en autorisant une certaine souplesse d’utilisation. Les plus gros modèles permettent de réaliser des architectures dotées d’une puissance et d’une rapidité de calcul considérables. Un FPGA, quelle que soit sa marque, se programme généralement en langage VHDL (Very high speed circuit Hardware Description Language). Ce langage normalisé par l’IEEE est un outil puissant de conception, de simulation, de spécification et de synthèse logique mais il peut paraître complexe pour le néophyte. Il est à l’heure actuelle encore réservé à une minorité de spécialistes… C’est sur ce point que misent actuellement beaucoup de sociétés comme Antycip, HSP, Techway ou VSystems qui proposent leur expertise sous forme de prestations de service. Pour programmer un FPGA, il faut également disposer des environnements de programmations intégrés (IDE) du fournisseur de FPGA. A l’heure actuelle, les deux monstres du secteur sont les Américains Altera et Xilinx (ce dernier est d’ailleurs à l’origine du FPGA). Xilinx propose par exemple l’environnement de développement ISE qui permet de programmer en VHDL, de faire de la simulation du code et de “claquer*” le FPGA, c’est-à-dire de “télécharger” le code dans le FPGA. Comme dans le cas du DSP, ces environnements de développement sont en général assez onéreux et ne sont pas fournis avec les cartes. Il faut se les procurer chez le fournisseur du FPGA. A noter également l’introduction récente de la première carte d’acquisition avec FPGA intégré de National Instruments programmable avec le langage LabVIEW. Celle-ci ne permet pas de réaliser des algorithmes de calcul complexes : le FPGA se destine plutôt à la configuration des entrées/sorties de la carte et aux tâches de Les cartes de conversion analogique-numérique avec FPGA intégrés (2) Fabricant (Représentant) Référence Format Nombre de voies Fréquence Échantillonnage Résolution FPGA Système d’exploitation Observations National Instruments PXI-7831R PXI, cPCI 3U 8 232 Kéch./s par voie 16 bits 1 XC2V1000, 1 M de portes, (Xilinx) Windows Programmable par LabView Pentek (Vsystems) 7131 PMC, PCI 2 105 Méch./s par voie 14 bits VIM 4 105 Méch./s par voie 14 bits VxWorks Windows Linux Cœurs FPGA sur étagère en option 6230 6821 VME 1 210 Méch./s 12 bits Virtex 1, II et 3, plusieurs M de portes (Xilinx) Virtex 1, II et 3, plusieurs M de portes (Xilinx) Virtex-II, PRO 20 et 50 (Xilinx) VxWorks FPDP EPMC-2ADC PMC 2 80 Méch./s 14 bits TM1-3300 PRO-3100 TM1-3350 PRO-3100 cPCI 4 80 Méch./s 14 bits VxWorks embarqué sur la carte Bus LVDS Solano Bus RapidIO cPCI 2 212 Méch./s 12 bits 1 XCV300 300 000 portes (Xilinx) 4 XC2V6000 (Xilinx) 6 M de portes 4 XC2V6000 6 M de portes (Xilinx) ECDR-212210-PMC ECDR-GC314 -PMC-FS Pack I/OFPGA02 Pack I/OFPGA03 Pack I/OFPGA02 Pack I/OFPGA03 PMC 2 210 Méch./s 12 bits Stratix (Altera) VxWorks Windows Bus Race++ Bus PCI 64 bits PMC 3 105 Méch./s 14 bits Stratix (Altera) VME De 1 à 8 65 à 210 Méch./s 8 à 14 bits Virtex-II (Xilinx) VME De 1 à 8 65 à 210 Méch./s 8 à 14 bits Virtex PRO (Xilinx) VxWorks Windows Linux PCI De 1 à 8 65 à 210 Méch./s 8 à 14 bits Virtex-II (Xilinx) Architecture modulaire Bus PCI 64 bits Rocket IO LVDS FPDP PCI De 1 à 8 65 à 210 Méch./s 8 à 14 bits Virtex PRO (Xilinx) Spectrum Signal Processing (Antycip) Transtech-DSP (Techway) 60 MESURES 763 - MARS 2004 Guide d’achat synchronisation. Selon NI, cette carte est la première d’une longue série… Malgré tout, il ne s’agit pas de réinventer la poudre à chaque fois que l’on démarre une nouvelle programmation de FPGA. Il existe sur le marché de nombreux “cœurs IP” (IP Core en anglais) appelés aussi “cœurs FPGA” qui sont des modules logiciels prêts à l’emploi destinés à être intégrés dans une architecture FPGA. IP signifie ici, non pas “Internet Protocol” mais “Intellectual Property”, soit propriété intellectuelle. Ces composants sont tout simplement des parties de code qui permettent de programmer des fonctions bien spécifiques, comme par exemple un processeur (on trouve par exemple des cœurs de PowerPC), une mémoire, un calculateur spécifique. On trouvera même des cœurs de DSP, ce qui ne facilite pas notre débat actuel ! Par ailleurs, les FPGA les plus gros intègrent également des unités arithmétiques déjà programmées et figées. Les fournisseurs de cœurs IP sont relativement nombreux et comptent déjà parmi eux les fournisseurs de FPGA. Certains distributeurs de cartes cités dans les tableaux sont également susceptibles de fournir des cœurs FPGA. Certains constructeurs comme Acqiris proposent des options de firmware de traitement du signal permettant de configurer leurs cartes pour leur donner une coloration particulière. DSP ou FPGA ? Il serait caricatural de répondre de manière générale à cette question. Dans ce domaine comme dans beaucoup d’autres, c’est le règne des compromis. Des compromis à faire entre des critères comme la puissance de calcul, les contraintes de temps réel, le prix des cartes et des composants, le coût de développement logiciel et la souplesse de reprogrammation… Il est certain que le coût d’un FPGA est nettement supérieur à celui d’un DSP mais « dans certains cas un FPGA pourra remplacer avantageusement plusieurs DSP en parallèle », témoigne M. Méchin (Techway). Selon Fabrice Chauviré, chef de produit chez Vsystems, « l’exécution d’une FFT sur l’un de nos cœurs IP de chez Pentek avec un FPGA Xilinx sera environ dix fois plus rapide que sur les plus puissants Transtech-DSP MESURES 763 - MARS 2004 Pour en savoir plus Acqiris Tél. : 01 46 02 04 83 [email protected] National Instruments Tél. : 01 48 14 24 24 - Fax : 01 48 14 24 14 [email protected] Acquisys Tél. : 01 34 52 40 90 - Fax : 01 34 52 40 91 [email protected] SAIS Tél. : 01 30 47 45 86 - Fax : 01 30 47 93 37 [email protected] Antycip Tél. : 01 39 61 14 14 - Fax : 01 30 76 29 73 [email protected] SM2I Tél. : 01 34 89 78 78 - Fax : 01 34 89 54 53 [email protected] Horizon Technologies Tél. : 01 60 92 10 10 - Fax : 01 64 46 21 46 [email protected] Techway Tél. : 01 64 86 52 95 - Fax : 01 64 86 18 19 [email protected] HSP Tél. : 01 30 57 31 13 - Fax : 01 30 80 49 79 [email protected] The Mathworks Tél. : 01 41 14 67 14 - Fax : 01 41 14 67 15 [email protected] Keithley Instruments Tél. : 01 64 53 20 20 - Fax : 01 60 11 77 26 [email protected] Vsystems Tél : 01 30 07 00 60 - Fax : 01 30 07 00 69 [email protected] Men Mikro Elektronik Tél. : 04 50 95 53 12 - Fax : 04 50 95 52 11 [email protected] DSP .C’est un ordre de grandeur :parfois ce sera plus et parfois moins…». La société dispose pourtant d’une offre en cartes avec DSP sur étagère. Pour M. Delrue (Horizon Technologies), « il ne faut pas être trop catégorique et considérer les besoins de chaque application », même si celui-ci reconnaît volontiers que « les FPGA sont très rapides ». En terme de souplesse de reprogrammation, les DSP seront cependant avantageux… Le débat a d’ailleurs de moins en moins d’intérêt puisque l’on assiste de plus en plus à un mélange des deux technologies. Certaines cartes intègrent à la fois un FPGA et un ou plusieurs DSP. On trouvera d’ailleurs assez peu de cartes figées comprenant ces composants de manière native : la plupart des acteurs du domaine comme Hunt Engineering, Pentek, Spectrum Signal Processing, Transtech-DSP, proposent des architectures modulaires basées sur des cartes mezzanines. On trouvera donc des petits modules intégrant uniquement un FPGA ou un ou plusieurs DSP qui pourront se greffer Voici un exemple de cartes mezzanines PMC (pouvant intégrer n’importe quel composant : CAN,DSP,FPGA…) sur carte porteuse VME ou cPCI. sur des cartes porteuses de plus grandes tailles de tous les formats (PCI,VME, cPCI…). Pour faire communiquer les différents modules, les cartes d’accueil disposent d’interfaces de données à grande vitesse propriétaires ou standardisées (comme LVDS ou FPDP). Pour M. Chauviré (Vsystems), « on a tout intérêt à utiliser les FPGA pour réaliser des tâches systématiques tandis qu’on pourra tirer parti des DSP pour les tâches plus aléatoires ».Actuellement, de l’avis de tous, les architectures incorporent de plus en plus de FPGA en aval des convertisseurs analogiques-numériques rapides. Ces FPGA permettent de réduire le flot de données en réalisant un pré-traitement avant de les transférer vers des DSP pour le calcul final. Les FPGA sont en effet capables de traiter de gros flux d’échantillons à haute vitesse. Ceci est particulièrement vrai dans le domaine des radiocommunications, un secteur qui tire actuellement ces technologies vers le haut. « Les FPGA sont utilisés pour faire de la démodulation numérique.Ils peuvent,grâce à certains outils de haut niveau, être reconfigurés en temps réel pour passer d’une modulation à une autre,passer de la FM par exemple au DAB par exemple », constate Christophe André, ingénieur d’affaires chez Antycip. Toutefois, on l’aura compris, ces composants, d’une souplesse et d’une puissance sans précédent, peuvent dans l’avenir coloniser beaucoup d’applications industrielles. Bertrand Braux 61