Accueil-Blog

FPGA et microcontrôleur : lequel est le mieux adapté à vos besoins ?

À propos du FPGA et microcontrôleur, Vous aimez créer vos systèmes interactifs et embarqués ?

Les FPGA et les microcontrôleurs sont deux des éléments les plus utilisés par les ingénieurs en électricité ou les amateurs. Tous deux peuvent être programmés pour exécuter certaines fonctions. Les possibilités sont infinies si vous connaissez les bases, et c’est ce que nous allons examiner ci-dessous. Cependant, avant de commencer, connaissez-vous les différences entre les deux ?

Il est essentiel de connaître les différences entre les FPGA, les microprocesseurs et les microcontrôleurs pour choisir celui qui convient à votre projet.

Nous avons préparé un guide approfondi axé sur les différences des différents composants afin que votre projet puisse réussir et se révéler efficace.

1、FPGA

1.1 FPGA et microcontrôleur Qu’est-ce qu’un FPGA ?

FPGA est l’abréviation de Field-Programmable Gate Array et est un type de circuit intégré. Un ingénieur ou un concepteur peut le programmer après la fabrication pour effectuer diverses tâches.

Les FPGA sont dotés de nombreux blocs logiques programmables et de cadres d’interconnexions qui peuvent être reconfigurés pour être recâblés. Les portes logiques peuvent être interconnectées à l’aide de différentes configurations, ce qui leur permet d’être câblées ensemble. Vous pouvez réaliser des fonctions combinatoires complexes en configurant les blocs logiques et les portes logiques sécurisées telles que XOR et AND.

Vous trouverez également des composants de mémoire dans un FPGA, tels que des blocs de mémoire complets et de simples flip-flops.

On trouve des FPGA dans les automobiles, les centres de données, les équipements médicaux, les outils de traitement d’images et de vidéos, les communications câblées, etc.

FPGA et microcontrôleur

Image 1 : FPGA et microcontrôleur

1.2 FPGA et microcontrôleur Programmation des FPGA

La programmation d’un FPGA est le processus de configuration ou de reconfiguration du circuit intégré à l’aide de langages descriptifs du matériel tels que VHDL et Verilog. Grâce à la programmation, les FPGA peuvent exécuter des fonctions spécifiques en connectant les blocs logiques et les interconnexions.

Langage de programmation FPGA

Le langage de programmation des FPGA est appelé langage de description du matériel.

Langage de description, car il est destiné à la conception ou à la description du matériel. Les deux langages couramment utilisés pour programmer les FPGA sont le VHDL et le Verilog HDL.

VHDL

Le ministère américain de la défense a développé le VHDL, un langage VHSIC (Very High Speed Integrated Circuits). Le ministère a fait des recherches sur ce langage dans les années 1980 pour créer des circuits à grande vitesse. Il a été adopté comme norme IEEE 1076 en 1987.

Il est largement utilisé pour concevoir des circuits de signaux analogiques mixtes et numériques.

Verilog HDL

D. Warmke, C.-L, a créé le langage. Huang, P. Goel, et P. Moorby pour effectuer des simulations et modéliser des portes en 1984 pour un simulateur logique. Cadence a repris le projet en 1990, et il a acquis la norme IEEE 1364 en 1995.

Il est utilisé pour valider et concevoir des circuits numériques ainsi que pour des circuits analogiques ou à signaux mixtes.

1.3 FPGA et microcontrôleur Carte FPGA

Les FPGA sont des circuits intégrés destinés à effectuer des tâches spécifiques. Vous pouvez acheter des FPGA en tant que produits autonomes ou opter pour des cartes FPGA utilisées à des fins d’émulation et de développement.

Les cartes FPGA vous facilitent la tâche et ne vous obligent pas à acheter des périphériques supplémentaires. Les panneaux disposent de certaines formes de stockage externe et sont dotés de RAM et de ROM pour effectuer des tâches. Vous pouvez également trouver des commutateurs, des LED, des têtes d’extension de broches, des bascules et les ports d’E/S nécessaires.

Il peut être plus économique d’acheter une carte FPGA que d’investir dans des pièces de matériel séparées.

1.4 FPGA et microcontrôleur Tutoriel FPGA

Il serait utile que vous compreniez la conception de la logique numérique et que vous soyez familier avec des concepts tels que les portes logiques et les circuits logiques séquentiels et combinatoires. Vous pourrez ensuite apprendre le langage de programmation Verilog ou VHDL pour configurer vos FPGA.

Si vous souhaitez obtenir de l’aide, vous pouvez utiliser de nombreuses vidéos en ligne pour obtenir des instructions étape par étape. Il existe également de nombreux guides et tutoriels disponibles sur Internet pour apprendre la programmation des FPGA.

Nous allons maintenant nous intéresser aux microcontrôleurs dans notre prochain chapitre.

2、Microcontrôleur

Les microcontrôleurs sont comme des ordinateurs avec leur RAM, leur ROM, leurs ports d’entrée/sortie et d’autres périphériques pour effectuer des tâches spécifiques. Vous pouvez trouver différents microcontrôleurs tels que le microcontrôleur Arduino et le microcontrôleur Pic.

Microcontrôleur

Image 2 : FPGA Vs. Microcontrôleur

Microcontrôleur PIC

Microchip Technology produit des microcontrôleurs PIC basés sur le PIC1650 développé par General Instrument. Les premières versions sont sorties en 1976, et la société a vendu plus de douze milliards de kits en 2013.

Microcontrôleurs peuvent être reprogrammés et utilisent la mémoire flash pour le stockage. Les microcontrôleurs existent en différents modèles, et les modernes utilisent des puces puissantes avec des instructions pour le traitement des signaux numériques.

Vous pouvez les acheter dans différentes combinaisons de broches, allant de 6 broches à 144 broches. Il comprend également des ports de communication, un port USB, des broches d’E/S et des modules ADC et DAC. Vous pouvez utiliser le logiciel fourni par l’entreprise pour programmer les microcontrôleurs.

Programmation des microcontrôleurs

Les microcontrôleurs peuvent être programmés à l’aide d’une variété de langages d’assemblage. Actuellement, de nombreux langages de programmation de haut niveau sont également utilisés, tels que JavaScript, Python et C. Certains langages ont été conçus en fonction de leur objectif, tandis que d’autres sont des langages de programmation généraux tels que C.

Les langages à usage général peuvent être assortis de certaines restrictions et de caractéristiques permettant de prendre en charge les capacités uniques d’un microcontrôleur. Les fabricants mettent également à la disposition des utilisateurs un environnement de programmation pour les aider dans leur développement.

Dans le prochain chapitre, nous verrons les différences entre les microprocesseurs et les microcontrôleurs.

3、Microprocesseur et microcontrôleur

Beaucoup de gens utilisent les termes microprocesseur et microcontrôleur de manière interchangeable, mais ce sont deux choses complètement différentes. Vous pouvez trouver certaines similitudes entre eux, et les deux sont conçus pour effectuer des activités en temps réel.

Les microprocesseurs et les microcontrôleurs ne peuvent pas être différenciés par un simple examen visuel et sont tous deux des types de circuits intégrés. Vous pouvez trouver différentes versions sur le marché, allant de 6 broches à 100 broches, en fonction de l’objectif et des caractéristiques.

 microcontrôleur

Image 3:FPGA Vs. Microcontrôleur

3.1 Différence entre microprocesseur et microcontrôleur

Les microprocesseurs sont des circuits intégrés qui contiennent un ordinateur ou une unité centrale de traitement et sont équipés d’une puissance de traitement. Les exemples peuvent être les Pentium 3, 4, i5, core two duos, et autres que l’on trouve dans les ordinateurs.

Vous ne trouverez pas de périphériques tels que la RAM ou la ROM sur la puce. Les périphériques sont fournis hors de la puce par le concepteur pour obtenir une fonctionnalité.

Le microcontrôleur lui-même est un ordinateur avec de la RAM, de la ROM, des temporisateurs, des ports E/S et d’autres périphériques intégrés. Pour cette raison, ils sont également connus sous le nom d’ordinateur sur une seule puce ou de mini-ordinateurs. Il existe de nombreux microcontrôleurs disponibles aujourd’hui, avec une variété de fonctionnalités dans différentes versions.

Les microprocesseurs sont encombrants en raison des périphériques externes, alors que les microcontrôleurs sont plus petits. Microprocesseurs constituent le cœur d’un système informatique tandis que les microcontrôleurs pilotent les systèmes embarqués.

Les microcontrôleurs sont conçus pour exécuter des tâches spécifiques pour lesquelles l’entrée et la sortie ont été définies.

Un certain traitement est effectué en fonction de la nature de l’application, et le travail est généré. La spécificité des tâches nécessite une utilisation nettement moindre des ports d’entrée/sortie, de la mémoire vive et de la mémoire morte, et peut être logée sur une seule puce.

Les avantages incluent des coûts réduits et peuvent être trouvés dans des dispositifs tels que les télécommandes, les mobiles, les claviers, les clés USB, les appareils photo numériques, etc.

On n’utilise pas les microprocesseurs pour des tâches spécifiques mais pour des tâches à facettes multiples telles que le développement de jeux, de logiciels, de sites web et le montage vidéo. La relation entre l’entrée et la sortie n’est pas définie dans ce cas.

Les microprocesseurs sont conçus pour gérer des tâches complexes et atteindre des vitesses d’horloge beaucoup plus élevées que les microcontrôleurs. Les microprocesseurs modernes peuvent aller au-delà de 1 GHz, tandis que les microcontrôleurs parviennent à atteindre un maximum de 30 à 50 MHz.

Une autre différence est liée au coût.

Vous pouvez acheter un microcontrôleur à un prix bien inférieur à celui d’un microprocesseur. Cependant, l’utilisation d’un microcontrôleur à la place d’un microprocesseur est inadaptée, tandis que l’utilisation d’un microprocesseur à la place d’un microcontrôleur rend l’application coûteuse.

Le coût est également moindre car les microcontrôleurs sont configurés à l’aide de la technologie CMOS. Les microprocesseurs nécessitent de nombreux composants externes pour fonctionner et deviennent coûteux à la fin.

Microcontrôleurs disposent d’un système d’économie d’énergie, alors que les microprocesseurs en sont dépourvus. Les microprocesseurs consomment également moins d’énergie que les microcontrôleurs car ils ne nécessitent pas la contribution de composants externes.

L’architecture Harvard est utilisée pour concevoir un microcontrôleur avec une mémoire d’information et une programmation spécifiques. Les microprocesseurs sont conçus avec une architecture de von-Neumann, où la mémoire est transférée à un module de mémoire équivalent.

Microprocesseurs n’ont pas besoin d’autant de registres que les microcontrôleurs. Les premiers ont des opérations basées sur la mémoire, et les seconds rendent les programmes plus accessibles à l’écriture.

Nous avons couvert les différences entre les microprocesseurs et les microcontrôleurs, et vous devriez maintenant avoir une bonne compréhension des deux. Nous allons maintenant explorer les différences entre les FPGA et les microcontrôleurs.

4、FPGA et microcontrôleur

Les microcontrôleurs et les FPGA sont les deux outils les plus essentiels utilisés par les amateurs et les ingénieurs électriciens. Il est nécessaire de passer par une discussion o FPGA vs microcontrôleur pour faire la distinction entre les deux.

Cependant, nous allons d’abord examiner les similitudes ! Les deux composants sont destinés à surveiller les valeurs de sortie et l’effet basé sur la valeur de sortie au sens large. Vous pouvez créer une architecture de microcontrôleur en utilisant un FPGA, mais l’inverse n’est pas possible.

FPGA et microcontrôleur

Image 4 : FPGA Vs. Microcontrôleur

4.1 FPGA et microcontrôleur Différence entre

Presque tous les dispositifs informatiques sont dotés d’un microcontrôleur intégré pour l’exécution des tâches et des interactions. Vous pouvez comparer la structure d’un microcontrôleur à celle d’un ordinateur, qui possède tous les périphériques nécessaires tels que la mémoire, les ports d’entrée-sortie et les temporisateurs. Il peut être programmé pour exécuter des tâches simples pour le compte d’autres matériels.

Le FPGA est un circuit intégré qui comporte des millions de portes logiques et qui peut être utilisé pour exécuter des tâches en programmant les portes logiques. Les FPGA ont besoin de périphériques externes tels que la RAM et la ROM pour leur application.

Le microcontrôleur utilise un programme logiciel pour exécuter les commandes consécutivement, tel que C, C++. La connexion de programmation du FPGA se trouve sur le circuit logique et utilise des solutions de programmation telles que VHDL et Verilog.

La puissance de traitement des microcontrôleurs est limitée dans le temps et repose sur la puissance cyclique de son processeur. Les FPGA sont limités en espace ; vous devez créer davantage de circuits logiques pour atteindre l’échelle de codage souhaitée.

Les FPGA sont plus polyvalents et plus flexibles en raison de leur nature.

Ils sont « programmables sur le terrain » : vous pouvez reprogrammer le FPGA pour qu’il exécute n’importe quelle tâche logique pouvant être réalisée par les portes logiques disponibles. Les portes logiques peuvent être recâblées autant de fois que nécessaire pour modifier le programme et effectuer une tâche différente.

Les microcontrôleurs peuvent effectuer des tâches limitées car ils sont livrés avec des instructions et leurs circuits. Un programmeur doit respecter les restrictions lors du développement du code.

Les deux se distinguent également par les méthodes utilisées pour traiter les instructions. Les microcontrôleurs lisent chaque ligne du programme de manière séquentielle ; cela signifie que les commandes sont également traitées en séquence. Les FPGA peuvent traiter les commandes simultanément et peuvent exécuter de nombreuses lignes de codes à un moment donné. Ils sont également câblés comme un circuit électrique, de sorte que vous pouvez obtenir des circuits parallèles appropriés.

En revanche, dans les microcontrôleurs, le processeur passe d’un code à un autre pour atteindre un certain niveau de parallélisme. Il vous sera plus facile d’écrire les codes suivants sur des microcontrôleurs que sur des FPGA.

La capacité de traitement parallèle des FPGA vous permet de contrôler efficacement les interruptions en utilisant des machines à états finis (FSM). Dans le cas des microcontrôleurs, vous devez tenir compte du temps pris par l’ISR pour résoudre une interruption.

Vous pouvez facilement recâbler un FPGA en le reprogrammant.

La configuration d’un FPGA est chargée sur les cellules logiques configurables lors de la mise sous tension. Vous n’avez pas besoin de modifier le matériel pour reprogrammer le FPGA.

Les microcontrôleurs peuvent exécuter un programme et effectuer des tâches générales. Si vous souhaitez modifier le jeu d’instructions de la carte, vous devrez alors modifier la disposition du circuit intégré en silicium.

Les FPGA conviennent au traitement à grande vitesse de données parallèles et sont dotés d’un haut degré de personnalisation. Toutefois, ils présentent également les inconvénients d’un fonctionnement prototype et de la complexité de la configuration.

La création d’une fonction FPGA prend du temps, car vous devez compiler tous les codes à partir de zéro, puis les convertir en langage machine. Pour les microcontrôleurs, vous pouvez trouver des packages prêts à l’emploi pour effectuer des tâches spécifiques et les personnaliser en fonction de vos besoins.

Les microcontrôleurs sont simples à utiliser et à configurer et peuvent traiter des données séquentielles à grande vitesse. Cependant, ils ne possèdent pas certaines des caractéristiques des FPGA. Les microcontrôleurs sont plus souples en matière de programmation mais ne peuvent pas être personnalisés avec précision par le biais du matériel.

Vous serez également confronté à une courbe d’apprentissage abrupte lors de la programmation des FPGA. Vous pouvez adapter la méthode d’essai et d’erreur et tester vos développements à l’aide de microcontrôleurs.

Lorsque vous abordez les différences entre microcontrôleur et FPGA, vous devez également tenir compte de la consommation d’énergie. Nous aborderons ce sujet dans le prochain chapitre.

5、FPGA et microcontrôleur Consommation d’énergie

Les FPGA sont connus pour consommer plus d’énergie que les microcontrôleurs pour diverses raisons. Cela peut poser un défi aux ingénieurs qui cherchent à faire des systèmes de puissance efficace. Les FPGA peuvent dépasser les limites de puissance d’un système embarqué et ne sont pas forcément adaptés à tous les usages.

Les FPGA ont été utilisés pour l’émulation et le prototypage, mais ils ne sont pas aussi efficaces que d’autres composants tels que les ASIC. Vous pouvez reprogrammer un FPGA, mais cela présente l’inconvénient de l’inefficacité, car l’utilisation de la logique devient faible en raison des contraintes de placement et de routage.

Il consomme également beaucoup d’énergie en raison des transistors inutilisés. Les arbres d’horloge inefficaces et les chemins de signaux étendus contribuent également à l’augmentation de la consommation d’énergie.

Les FPGA pour les tâches à grande vitesse dépassant les capacités des microcontrôleurs. Pour cette raison, les FPGA ne sont pas optimisés pour la consommation d’énergie. Les microcontrôleurs ont des vitesses de traitement de quelques MHz seulement et consomment beaucoup moins d’énergie que les FPGA.

Vous pouvez également trouver des modes de veille ou d’économie d’énergie sur les microcontrôleurs, ce qui en fait un choix durable dans de nombreux cas. Certains d’entre eux présentent des courants de veille inférieurs à 1 µA et peuvent fonctionner à quelques µA pendant les fréquences d’horloge lentes.

Vous ne trouverez pas sur le marché de FPGA ayant des exigences aussi faibles en matière de puissance. C’est pourquoi de nombreux systèmes FPGA utilisent un microcontrôleur sur la carte pour augmenter l’efficacité énergétique.

Consommation d'énergie

Image 5 : FPGA Vs. Microcontrôleur

6、Conclusion

Nous pouvons vous aider à acheter des circuits intégrés et à fabriquer des cartes en suivant vos spécifications précises et vos préférences.

Si vous avez d’autres questions sur la fabrication et l’assemblage de circuits imprimés, n’hésitez pas à nous contacter ; nous serons toujours heureux de vous aider.

Hommer Zhao
Bonjour, je suis Hommer Zhao, le fondateur de WellPCB. À ce jour, nous avons plus de 4 000 clients dans le monde. Pour toute question, n'hésitez pas à me contacter. Merci d'avance.

Prestations de service