+1 500 000 produits offerts

6000 colis expédiés chaque jour

+300 000 clients de 150 pays

Quick Buy Favoris
Panier

Circuits FPGA numériques programmables

Date de publication: 18-11-2025 🕒 10 min de lecture

Les dispositifs FPGA sont commercialement disponibles depuis de nombreuses années, mais malgré de nombreux avantages, on ne peut pas dire qu'ils soient populaires dans les applications. Les principales raisons sont le coût élevé de la solution et le manque de connaissances sur les applications. La première de ces caractéristiques affecte négativement le concepteur ou un autre décideur concernant les composants, tandis que la dernière affecte le plus souvent le programmeur ou le concepteur de systèmes embarqués, qui maîtrise les langages orientés objet mais ne comprend pas le langage de description matérielle. Dans ce texte, nous examinerons certaines caractéristiques pratiques des dispositifs FPGA et les comparerons à des microcontrôleurs beaucoup mieux connus et acceptés. Nous soulignerons également les applications où l'utilisation de FPGA est indispensable et celles où elle devient "excessive".

FPGA est le nom d'un groupe de circuits intégrés dérivés des premières lettres des mots Field-Programmable Gate Array. Ces dispositifs peuvent être programmés après leur production. Le processus de programmation des FPGA est appelé configuration, car il implique de créer des connexions entre des blocs fonctionnels prêts à l'intérieur de la structure. Contrairement aux circuits intégrés numériques typiques (portes, registres, bascules, compteurs, etc.) qui ont une fonctionnalité fixe, les FPGA peuvent être programmés plusieurs fois, offrant ainsi une flexibilité dans la conception et le test de différentes applications.

Acheter des dispositifs FPGA

Les FPGA se composent de blocs logiques programmables et d'interconnexions programmables entre eux. Ces dispositifs peuvent contenir non seulement des blocs numériques mais aussi des convertisseurs analogique-numérique, des convertisseurs numérique-analogique, des cœurs de processeur (à usage général ou DSP), des blocs d'interface permettant la coopération avec des dispositifs externes, ou même des unités de support AI connectées via Network-on-Chip (NoC), un réseau d'interconnexion embarqué transmettant des paquets de données entre les blocs et les composants du dispositif. Grâce à des fonctionnalités riches et des connexions flexibles, les dispositifs FPGA peuvent être configurés pour effectuer diverses fonctions, telles que le traitement de signaux, le contrôle de systèmes embarqués ou l'accélération du traitement de données.

Un des avantages les plus importants des FPGA est la vitesse de calcul. Ces dispositifs fonctionnent différemment d'un microprocesseur, qui récupère et exécute des instructions de manière séquentielle. Dans un FPGA, le résultat du traitement peut apparaître "immédiatement", retardé seulement par un petit temps de propagation. Il est également significatif que de nombreuses opérations peuvent être effectuées en parallèle, contrairement à un microcontrôleur, qui prend rarement en charge l'exécution simultanée de nombreuses instructions.

Chaque dispositif FPGA se compose de trois groupes de composants :

  1. Les blocs de construction de base de chaque FPGA sont des blocs logiques. Chacun contient un certain nombre de foncteurs logiques de base et de registres. Les foncteurs logiques effectuent des opérations logiques, tandis que les registres stockent des données.
  2. Les blocs logiques sont connectés par un bus de connexion. Cependant, ce terme ne doit pas être confondu avec, par exemple, un bus de données sur une carte mère d'ordinateur. Contrairement aux traces en cuivre avec une topologie fixe, ce sont des connexions programmables de manière flexible entre les blocs qui permettent de les connecter presque arbitrairement.
  3. L'ensemble de la configuration est stocké dans une mémoire de configuration non volatile. Dans la plupart des FPGA, il s'agit d'une mémoire Flash/EEPROM externe qui peut être effacée et écrite plusieurs fois. Certains dispositifs FPGA peuvent avoir une mémoire de configuration intégrée, mais cela est moins courant. Le FPGA charge la configuration au démarrage ou après un réinitialisation matérielle. La disponibilité de la mémoire de configuration permet de construire et de tester facilement des prototypes et, dans le cas d'un dispositif fini et opérationnel, de mettre à jour ou d'améliorer facilement la fonctionnalité. Cela est particulièrement précieux dans le matériel produit en petites séries, où l'utilisation de FPGA est significativement plus rentable que la conception et la production de circuits intégrés dédiés (ASIC).

Figure 1. Schéma bloc simplifié illustrant la structure d'un dispositif FPGA

Différences entre FPGA et CPLD

Les dispositifs CPLD (Complex Programmable Logic Device) étaient les précurseurs des dispositifs FPGA et (malgré une fonctionnalité moindre) sont proposés aujourd'hui pour des applications moins complexes. La plupart des principaux fournisseurs offrent une large gamme, à partir des versions les plus simples désignées comme PAL, contenant des éléments programmables et des parties fixes prédisposées à effectuer une certaine fonction logique. Cela permet d'utiliser un seul circuit intégré au lieu de plusieurs foncteurs logiques, mais ne fournit pas une grande flexibilité pour les applications.

Acheter des dispositifs CPLD

Comparés aux PAL, les dispositifs CPLD sont plus complexes. Ils contiennent plus de portes, sont équipés de mémoire non volatile et de RAM, ce qui les rend adaptés à des applications plus complexes. Par exemple, Intel® a placé de nombreux blocs PAL appelés macrocells dans un seul boîtier de circuit unifié, où toutes les entrées sont disponibles pour chaque cellule, et chaque macrocell peut contrôler n'importe quelle sortie. La structure de connexion est stockée dans une mémoire programmable électriquement appelée mémoire de configuration, tout comme dans les FPGA. Donc, si les CPLD ont des macrocells, un bus de connexion programmable et une mémoire de configuration, en quoi diffèrent-ils des FPGA ?

Comparés aux FPGA, les CPLD contiennent significativement moins d'éléments logiques et n'ont pas de tableaux LUT (look up tables). Ils ont une architecture plus intégrée, avec un nombre beaucoup plus petit de blocs logiques, et implémentent des fonctions logiques plus complexes dans chaque bloc. De nombreuses connexions entre les blocs dans les CPLD sont prédéfinies lors du processus de fabrication et ne peuvent pas être modifiées lors de la configuration du dispositif. Ils ne sont pas utilisés pour créer des applications aussi complexes que les FPGA, qui peuvent contenir des millions de foncteurs logiques. Pour illustrer, un FPGA peut modéliser un cœur de processeur, tandis qu'un CPLD est utile pour implémenter un décodeur d'adresse coopérant avec lui.

Figure 2. Macrocell du dispositif de la série MAX7000 (source : documentation du fabricant)

Dans la plupart des dispositifs FPGA, la configuration est stockée dans une mémoire externe, généralement connectée via une interface série. Les données de configuration sont copiées dans la RAM du FPGA à chaque démarrage ou réinitialisation matérielle. Cela crée un délai au démarrage du dispositif, plus important pour les FPGA plus complexes, ce qui n'est pas le cas avec les CPLD ayant la configuration stockée dans une mémoire EEPROM.

Un inconvénient des FPGA par rapport aux CPLD est le coût d'application plus élevé.

  • Les FPGA peuvent nécessiter un système d'alimentation spécial et efficace, dans lequel il est nécessaire de contrôler la séquence d'activation des différentes tensions et de réagir d'une manière spécifique en cas de défaillance.
  • La configuration stockée dans une mémoire externe est susceptible d'accès non autorisé, ce qui peut être important pour la sécurité des applications.
  • Les applications FPGA nécessitant beaucoup plus de composants externes sont beaucoup plus coûteuses.
  • Le prix élevé des FPGA élimine pratiquement les dispositifs plus complexes dans les applications populaires. Les CPLD ne sont pas aussi coûteux et peuvent être utilisés avec succès dans des dispositifs électroniques populaires, remplaçant plusieurs voire une douzaine de dispositifs logiques. Cependant, malgré de nombreux avantages, lorsqu'une fonction logique doit être implémentée, de nombreux concepteurs choisiront encore le microcontrôleur mieux connu...

Tableau 1. Comparaison de certains paramètres des dispositifs FPGA et CPLD

Caractéristique/paramètre CPLD FPGA
Flexibilité d'application Faible Élevée
Prix Faible Élevé ou très élevé
Sécurité de l'application Élevée Susceptible d'accès non autorisé
Vitesse de fonctionnement Élevée Élevée
Capacité/taille de l'application Faible Élevée ou très élevée
Application matérielle Simple Complexe ou très complexe
Programmation Dans des langages de configuration matérielle ou par schémas fonctionnels

Différences entre FPGA et microcontrôleur

Les blocs fonctionnels intégrés dans les FPGA, en particulier les convertisseurs A/D, convertisseurs D/A, ou les modules d'interface pour dispositifs externes, peuvent ressembler à l'environnement d'un cœur de microcontrôleur. Un FPGA peut avoir de la RAM intégrée et de la mémoire Flash non volatile, mais cette ressemblance est trompeuse.

Les dispositifs FPGA modernes et avancés sont fonctionnellement plus complexes que les microcontrôleurs avancés et complexes. Par exemple, la connexion des blocs fonctionnels à l'intérieur d'un FPGA peut utiliser la technologie NoC (Network on Chip), où, au sein de la structure du circuit intégré, des paquets de données sont transmis à l'aide de bus gérés par des commutateurs intégrés. Cela est utile pour le traitement et le conditionnement des signaux et pour les algorithmes utilisant l'apprentissage automatique et l'intelligence artificielle.

La vitesse de fonctionnement des FPGA par rapport à un microcontrôleur est vraiment étonnante. Cela est dû au fait qu'un cœur de microcontrôleur typique récupère et exécute des instructions une par une. Pour accélérer le traitement des données, il décharge certaines opérations vers des unités périphériques (par exemple, transmission de données vers et depuis la mémoire via DMA), mais cela ne change pas son rythme opérationnel. Dans les FPGA, selon la configuration, le FPGA transmet généralement la réponse immédiatement après avoir reçu des données et peut en outre exécuter de nombreux fils simultanément. Rappelons, par exemple, que l'évaluation d'un signal ne consiste pas à prendre un échantillon puis à l'évaluer dans l'étape suivante, mais fait référence à un certain schéma d'évaluation disponible sous forme de réseau de foncteurs logiques connectés, de sorte qu'il peut être disponible avec une précision allant jusqu'au temps de propagation du dispositif.

Un microcontrôleur contient un cœur de processeur, de la RAM, de la ROM, de la Flash et des périphériques, tels que des ports d'entrée/sortie, des minuteries, des convertisseurs A/D et D/A sur un seul circuit intégré. Il est conçu pour effectuer des tâches spécifiques. Bien que certains modules puissent être activés/désactivés pour économiser de l'énergie, leur fonctionnalité ne peut pas être redéfinie. Elle est fixe lors de la production, y compris le fonctionnement et la connexion des blocs. Un microcontrôleur est en quelque sorte comme un micro-ordinateur monté sur un petit circuit imprimé dans un seul boîtier. Changer sa configuration nécessite de modifier la carte, y compris les traces de circuit, le placement des composants et leurs interconnexions.

Un dispositif FPGA est construit à partir de blocs logiques programmables connectés par des interconnexions configurables. Les foncteurs peuvent être combinés en divers blocs fonctionnels capables d'effectuer différentes opérations logiques, et les dispositifs FPGA modernes et avancés utilisent des technologies de connexion très avancées telles que NoC.

La programmation des FPGA (et des CPLD) consiste à définir des connexions et des fonctions logiques à l'aide de langages de description matérielle (HDL) tels que VHDL ou Verilog. La configuration, en particulier pour les dispositifs plus simples, peut également être effectuée à l'aide d'un schéma logique, en plaçant et en connectant des composants logiques typiques. La configuration des FPGA nécessite des connaissances en conception de circuits numériques. La programmation d'un microcontrôleur utilise des langages de programmation structurels ou orientés objet. Aujourd'hui, la plupart des applications s'éloignent de l'assembleur de bas niveau vers des langages de haut niveau tels que C, C++, Java, et d'autres. La programmation des microcontrôleurs ressemble à la programmation d'ordinateurs "grands", ce qui la rend plus facile pour la plupart des programmeurs, qui manquent souvent de connaissances sur le fonctionnement et l'optimisation des blocs logiques. La mémoire de programme du FPGA stocke la configuration, tandis que la mémoire du microcontrôleur stocke les commandes et les paramètres.

Tableau 2. Comparaison de certains paramètres des microcontrôleurs et FPGA

Caractéristique/paramètre Microcontrôleur FPGA
Flexibilité d'application Élevée Élevée
Prix Faible ou moyen Élevé ou très élevé
Sécurité de l'application Susceptible d'accès non autorisé Susceptible d'accès non autorisé
Vitesse de fonctionnement Faible par rapport aux FPGA Élevée
Capacité mémoire / taille de l'application De très petite à très grande Élevée ou très élevée
Application matérielle Simple Complexe ou très complexe
Possibilité de fonctionnement analogique Aucune ou limitée
Programmation En assembleur ou en langages de haut niveau Dans des langages de configuration matérielle

Différences entre FPGA et ASIC

La caractéristique la plus importante des dispositifs ASIC, comme l'indique leur nom, est qu'ils sont conçus pour effectuer une tâche spécifique. Cela pourrait être, par exemple, la réception et le décodage d'un signal radio, le contrôle d'un modèle d'affichage spécifique, ou d'autres. Notez qu'un ASIC n'a pas nécessairement à être programmable, bien qu'il en existe des versions commercialement disponibles contenant un cœur de processeur pour lequel des applications peuvent être créées.

La frontière entre un circuit intégré typique et un dispositif ASIC est très fine. Ils sont principalement séparés par le volume de production ; les ASIC sont produits en plus petites quantités par rapport aux circuits intégrés produits en masse. De nombreux fabricants proposent des circuits intégrés sans indiquer s'ils sont produits en masse ou s'il s'agit d'ASIC.

L'architecture d'un ASIC est définie par le concepteur et ne peut pas être modifiée après la fabrication. En général, lorsque les ASIC ont un cœur de processeur, aucun développement de programme n'est requis, seulement le réglage de certains paramètres spécifiques. De même, le type de communication avec l'environnement et les formats de données sont définis lors de la conception, et même si le passage entre différents types est possible, des modifications ne peuvent pas être introduites.

Comparé à la configuration des FPGA, le processus de conception des ASIC est plus complexe et coûteux, nécessitant éventuellement des connaissances spécialisées au-delà de la conception de circuits numériques, mais le produit final est plus optimisé pour des applications spécifiques, des performances et une efficacité énergétique.

Les ASIC sont utilisés dans des applications nécessitant des performances élevées avec une faible consommation d'énergie et des dimensions miniatures. La spécialisation leur permet d'offrir d'excellents paramètres pratiques. De plus, les ASIC sont généralement prêts à l'emploi immédiatement après soudage ou placement dans un support et n'ont pas besoin de charger une configuration depuis une mémoire externe. Ils peuvent également avoir une fonctionnalité mixte ou être purement analogiques. Cela n'est pas possible avec les FPGA, qui offrent des performances très élevées par le traitement parallèle de données numériques, après conversion de l'analogique au numérique et vice versa.

Les ASIC prêts à l'emploi peuvent être plusieurs fois moins chers que les FPGA. Ils sont beaucoup plus coûteux et longs à concevoir, mais ces coûts sont amortis sur des volumes généralement importants. Cela se fait au détriment de la capacité de reconfiguration, mais cela n'est pas toujours nécessaire. De même que pour les microcontrôleurs, les FPGA peuvent être utilisés pour prototyper des ASIC, mais les ASIC ne peuvent pas modéliser le fonctionnement des FPGA. Bien sûr, ici nous parlons de modélisation qui permet d'enregistrer une configuration utile pour le FPGA, et non simplement d'atteindre une fonctionnalité similaire.

Tableau 3. Comparaison de certains paramètres des ASIC et FPGA

Caractéristique/paramètre ASIC FPGA
Flexibilité d'application Très faible Élevée
Prix Faible ou moyen Élevé ou très élevé
Sécurité de l'application Élevée Susceptible d'accès non autorisé
Vitesse de fonctionnement Élevée Élevée
Capacité/taille de l'application Faible ou nulle Élevée ou très élevée
Application matérielle Simple Complexe ou très complexe
Possibilité de fonctionnement analogique Dépend de la conception Aucune ou limitée
Programmation Capacité limitée ou non requise Dans des langages de configuration matérielle

Bibliographie :

  • Control Engineering Poland – FPGA dans l’automatisation - www.controlengineering.pl/uklady-fpga-w-automatyce-nowe-mozliwosci-i-zastosowania
  • Lattice Semiconductor – FPGA dans l’Industrie 4.0 - www.latticesemi.com/en/Blog/2022/12/20/23/00/2022-How-FPGAs-Can-Make-Industry-4-Work
  • Wikipédia – Quatrième révolution industrielle - www.pl.wikipedia.org/wiki/Czwarta_rewolucja_przemysłowa
  • Conception de systèmes embarqués dans des dispositifs FPGA - www.helion.pl/pobierz-fragment/projektowanie-systemow-wbudowanych-w-ukladach-fpga-valery-salauyou-adam-klimowicz,e_321i/pdf
  • La puissance de la mémoire – Elektronika Praktyczna - www.ep.com.pl/files//2012.pdf
  • Wikipédia – Réseau de portes programmable sur le terrain (FPGA) - www.pl.wikipedia.org/wiki/Bezpośrednio_programowalna_macierz_bramek
  • FPGA-Based System Design – Wayne Wolf - www.eeeforum.weebly.com/uploads/1/0/2/5/10254481/fpga1.pdf
  • « Real-Time Image Processing on FPGA » – SpringerLink - www.link.springer.com/chapter/10.1007/978-3-642-24106-2_18

Transfer Multisort Elektronik (TME) est l’un des plus grands distributeurs mondiaux de composants électroniques, de pièces électrotechniques, d’équipements d’atelier et d’automatisation industrielle. Le catalogue comprend plus de 1 500 000 de produits provenant de 1 300 fabricants leaders. Les centres logistiques modernes de TME à Łódź et Rzgów (Pologne), avec une superficie totale de plus de 40 000 m², expédient près de 6 000 colis par jour à des clients dans plus de 150 pays.

TME investit également dans le développement des connaissances et compétences des jeunes ingénieurs et passionnés d’électronique grâce au projet TME Education et soutient la communauté technologique en organisant la série d’événements TechMasterEvent, promouvant l’innovation et l’échange d’expériences.

rightColumnPicture rightColumnPicture

VOIR AUSSI