Les réseaux de portes programmables in situ (FPGA) et les unités de microcontrôleur (MCU) sont deux types de circuits intégrés (CI) couramment utilisés dans les systèmes embarqués et la conception numérique. Les FPGA et les microcontrôleurs peuvent être considérés comme des « petits ordinateurs » qui peuvent être intégrés dans des appareils et des systèmes plus grands.
En tant que processeurs, la principale différence entre les FPGA et les microcontrôleurs réside dans la programmabilité et les capacités de traitement. Si les FPGA sont plus puissants et plus polyvalents, ils sont également plus chers. Les microcontrôleurs sont moins personnalisables, mais aussi moins coûteux. Dans de nombreuses applications, les microcontrôleurs sont exceptionnellement efficaces et rentables. Cependant, certaines applications exigeantes ou en développement, comme les applications nécessitant un traitement parallèle, nécessitent des FPGA.
Contrairement aux microcontrôleurs, les FPGA permettent une reprogrammabilité au niveau matériel. Leur conception unique permet aux utilisateurs de configurer et de reconfigurer l’architecture de la puce en fonction de la tâche. La conception des FPGA permet également de gérer des entrées parallèles simultanément, alors que les microcontrôleurs ne peuvent lire qu’une seule ligne de code à la fois. Un FPGA peut être programmé pour exécuter les fonctions d’un microcontrôleur. À l’inverse, un microcontrôleur ne peut pas être reprogrammé pour fonctionner comme un FPGA.
Introduits pour la première fois par le fabricant Xilinx en 1985, les FPGA sont très appréciés pour leur polyvalence et leur puissance de traitement. Par conséquent, ils constituent un choix privilégié dans de nombreuses applications de calcul haute performance (HPC), de traitement numérique du signal (DSP) et de prototypage.
Contrairement aux circuits intégrés spécifiques à une application (ASIC) traditionnels, les FPGA sont conçus pour être configurés (et reconfigurés) « sur le terrain » une fois le processus de fabrication initial terminé. Bien que les possibilités de personnalisation constituent la plus grande valeur ajoutée des FPGA, il convient de préciser qu’ils ne permettent pas seulement la programmabilité, ils l’exigent. Contrairement aux ASIC, les FPGA ne sont pas des solutions prêtes à l’emploi, et ils doivent être configurés avant d’être utilisés avec un langage de description de matériel (HDL), comme verilog ou VHDL. La programmation d’un FPGA nécessite des connaissances spécialisées, ce qui peut augmenter les coûts et retarder les déploiements. Bien que certains FPGA offrent une mémoire non volatile qui peut conserver les instructions de programmation même hors tension, ils doivent généralement être configurés au démarrage.
Malgré ces défis, les FPGA trouvent une utilité dans les applications requérant de hautes performances, une faible latence et une flexibilité en temps réel. Ils sont particulièrement bien adaptés aux applications nécessitant les éléments suivants :
Pour assurer la reconfigurabilité, les FPGA sont composés d’un ensemble de blocs logiques programmables interconnectés par un réseau de routage programmable. Voici les principaux composants d’un FPGA typique :
Polyvalents par nature, les FPGA sont fréquemment employés dans un grand nombre de secteurs et d’applications :
Les microcontrôleurs sont un type d’ASIC compact, prêt à l’emploi, contenant un (ou plusieurs) cœur(s) de processeur, de la mémoire (RAM) et de la mémoire morte programmable effaçable (EPROM) pour stocker les programmes personnalisés qui s’exécutent sur le microcontrôleur. Connus sous le nom de « systèmes sur puce (SoC) », les microcontrôleurs sont essentiellement de petits ordinateurs intégrés dans un seul élément matériel qui peut être utilisé de manière indépendante ou dans des systèmes intégrés plus importants.
Les microcontrôleurs grand public, tels que le kit de démarrage Arduino ou le PIC de Microchip Technology, peuvent être configurés à l’aide du langage d’assemblage ou de langages de programmation standard (C, C++), et ils sont privilégiés par les passionnés et les éducateurs en raison de leur accessibilité à moindre coût. Les microcontrôleurs sont également capables de gérer des tâches plus complexes et critiques et sont courants dans les applications industrielles. Toutefois, la puissance de traitement et les ressources de mémoire réduites peuvent limiter l’efficacité du microcontrôleur dans des conditions d’utilisation plus exigeantes.
Malgré leurs limites, les microcontrôleurs offrent de nombreux avantages, notamment :
Lorsque la reprogrammabilité n’est pas une priorité, les microcontrôleurs autonomes représentent une alternative compacte et performante. Voici les principaux composants d’un microcontrôleur :
Contrairement aux FPGA, les microcontrôleurs de petite taille, abordables et non volatiles sont omniprésents dans l’électronique moderne et sont fréquemment déployés pour des tâches spécifiques, notamment dans les domaines suivants :
Pour comparer les FPGA et les microcontrôleurs, il est important de tenir compte d’un certain nombre de différences clés, notamment l’architecture matérielle, les capacités de traitement, la consommation d’énergie et les exigences des développeurs.
Que vous soyez à la recherche d’un processeur FPGA polyvalent et puissant ou d’un microcontrôleur compact et rentable, étudiez comment IBM peut vous aider à faire passer votre entreprise à la vitesse supérieure grâce à des solutions d’infrastructure de pointe. Le nouveau IBM FlashSystem 5300 améliore les performances et la cyber-résilience. Le nouveau IBM Storage Assurance simplifie la propriété du stockage et vous aide à relever les défis du cycle de vie informatique.
Découvrir IBM Storage FlashSystem