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