Un FPGA est une puce intégrée composée principalement de circuits numériques, appartenant à un type de dispositif logique programmable (PLD); Le FPGA est apparu comme un circuit semi - personnalisé dans le domaine des circuits intégrés spécialisés (ASIC), qui non seulement résout les inconvénients des circuits personnalisés, mais surmonte également les limitations du nombre de circuits de porte programmables dans le dispositif programmable d'origine. Il se caractérise par sa flexibilité et sa reconfigurabilité et est largement utilisé dans des domaines tels que les communications, le traitement du signal numérique et les systèmes embarqués. Il s'agit d'un dispositif logique programmable constitué d'une unité logique programmable et de ressources d'interconnexion programmables.
Un microcontrôleur est une puce de circuit intégré qui utilise la technologie de circuit intégré à très grande échelle pour intégrer des capacités de traitement de données telles que l'unité centrale de traitement (CPU), la mémoire vive (RAM), la mémoire morte (ROM), divers ports d'E / s et les systèmes d'interruption sur une puce de silicium, un petit système informatique intégré composé de fonctions telles que des minuteries / compteurs (qui peuvent également inclure des circuits de commande d'affichage, des circuits de modulation de largeur d'impulsion, des multiplexeurs analogiques, des convertisseurs A / D, etc.), largement utilisé dans le domaine du contrôle industriel.
Différence entre FPGA et microcontrôleur (microcontrôleur vs FPGA)
1) Performance
Lors de la comparaison des performances d'un FPGA et d'un microcontrôleur, il est nécessaire de tenir compte de la nature des tâches qu'ils sont conçus pour effectuer. Les FPGA sont spécialisés dans le traitement parallèle des tâches, tandis que les microcontrôleurs sont optimisés pour le traitement séquentiel.
Le FPGA peut effectuer plusieurs opérations simultanément. Ce parallélisme permet aux FPGA d'atteindre des performances élevées dans des applications nécessitant un traitement simultané, telles que le traitement du signal numérique, le traitement d'image et la cryptographie. Par exemple, un FPGA peut traiter plusieurs flux de données en parallèle, permettant le traitement en temps réel de signaux à large bande passante ou d’images haute résolution.
Les microcontrôleurs sont conçus pour le traitement séquentiel des tâches. Leurs performances dépendent de facteurs tels que la vitesse d'horloge du CPU, l'architecture et le jeu d'instructions.
2) consommation énergétique
La consommation d'énergie est un facteur clé à prendre en compte lors de la comparaison d'un FPGA et d'un microcontrôleur, car elle affecte l'efficacité globale du système, la durée de vie de la batterie et la gestion thermique.
Un FPGA consomme généralement plus d'énergie qu'un microcontrôleur. La consommation d'énergie d'un FPGA dépend de facteurs tels que le nombre de composants logiques actifs, la fréquence de commutation des interconnexions et l'activité d'E / S. Dans les applications nécessitant un traitement parallèle haute performance, les avantages de performance offerts par les FPGA peuvent augmenter leur consommation d'énergie.
Les microcontrôleurs consomment généralement moins d'énergie que les FPGA. Leur consommation d'énergie dépend principalement de facteurs tels que la vitesse d'horloge du CPU, l'activité des périphériques et les fonctions de gestion de l'alimentation mises en œuvre dans l'appareil. De nombreux microcontrôleurs comprennent des fonctions avancées de gestion de l'alimentation, telles que le mode veille et la régulation dynamique de la tension, qui peuvent réduire davantage la consommation d'énergie pendant les périodes de faible activité.
3) flexibilité et personnalisation
Les FPGA sont hautement flexibles et personnalisables grâce à leur architecture programmable, permettant aux concepteurs de créer des circuits numériques personnalisés en fonction de leurs besoins spécifiques. Les blocs logiques, les interconnexions et les blocs d'E / s au sein d'un FPGA peuvent être configurés pour implémenter diverses fonctions numériques, allant de simples portes logiques à des algorithmes complexes de traitement du signal numérique.
4) temps de développement et complexité
Le développement de FPGA est plus complexe et prend plus de temps. Le processus de développement d'un FPGA implique généralement l'écriture de code en utilisant un langage de description de matériel (Hdl) (tel que VHDL ou verilog).
Il existe une grande variété de microcontrôleurs, chacun optimisé pour un but spécifique, qui peuvent aider les entreprises à réduire leurs coûts. Par exemple, si vous avez besoin d'un convertisseur analogique - numérique (ADC), de deux ports USB et d'au moins 30 broches d'entrée / sortie universelles (GPIO), vous pouvez choisir un microcontrôleur qui répond parfaitement à ces besoins. Si une seule interface USB est requise, un autre microcontrôleur conforme à cette spécification peut être utilisé. Cette polyvalence permet aux organisations d'économiser de l'argent en choisissant les microcontrôleurs les moins chers sans avoir à payer pour des fonctionnalités inutiles.
En revanche, les FPGA sont beaucoup plus polyvalents. Avec un seul FPGA, vous pouvez configurer cinq interfaces ADC sans interface USB ou trois interfaces USB sans interface ADC. Un FPGA est comme une feuille de papier blanc, avec de nombreuses lignes internes (c’est - à - dire des itinéraires) pour prendre en charge une variété de besoins d’application différents, mais cela augmente également le coût et la complexité. Dans la plupart des cas, les organisations n'ont pas à payer pour les fonctionnalités supplémentaires et la flexibilité inutilisées.
La quantité est également un facteur clé du coût. L'achat de 10 millions de microcontrôleurs coûte beaucoup moins cher que l'achat de 100 000 FPGA, un phénomène courant dans l'électronique grand public. Les FPGA sont généralement fabriqués et vendus en petites quantités, de sorte que leur prix unitaire est plus élevé. Cela constitue un cycle: si le nombre de FPGA augmente, le prix peut baisser, mais l’augmentation du nombre exige que le prix baisse. Alors, si le coût d'un FPGA est comparable à celui d'un microcontrôleur, utiliserait - on plus de FPGA? C'est possible, mais les FPGA sont beaucoup plus difficiles à utiliser, ce qui ne favorise pas la popularité des FPGA.
Parce que les microcontrôleurs sont conçus à des fins spécifiques, ils sont relativement faciles à configurer et peuvent généralement être configurés et opérationnels en quelques heures. D’autre part, un FPGA nécessite la programmation de tous ses composants internes, ce qui prend beaucoup de temps. Bien qu'il existe des modules IP durs prêts à l'emploi, la plupart des appareils sont programmables, c'est - à - dire qu'ils doivent être conçus en interne. Écrire du Code en verilog ou VHDL prend plus de temps qu'en C, qui est souvent le langage de prédilection pour l'écriture de programmes pour microcontrôleurs, car il permet d'écrire du Code à un niveau supérieur, avec une seule ligne de code qui peut faire plus. En revanche, la programmation de bas niveau avec verilog et VHDL nécessite la création manuelle de circuits de porte et de câblage distincts, ce qui augmente la complexité et le coût. Les ingénieurs ont souvent tendance à choisir la solution la plus simple et, dans la plupart des cas, les microcontrôleurs sont plus simples que les FPGA.
En outre, la consommation d'énergie de l'appareil est également un facteur à prendre en compte. De nombreux appareils électroniques dépendent de l'alimentation par batterie, il est donc essentiel de réduire la consommation d'énergie de l'appareil pour prolonger son utilisation. Plus la consommation d'énergie est élevée, plus la fréquence de remplacement de la batterie est élevée, ce que l'utilisateur ne veut pas. Le microcontrôleur étant conçu pour un usage spécifique, il peut être optimisé pour une très faible consommation d'énergie. Par exemple, une seule pile AAA peut alimenter une souris Bluetooth pendant des mois. D'autre part, un FPGA nécessite un routage entre toutes les ressources dont la consommation d'énergie ne peut pas correspondre à celle d'un microcontrôleur. Cela ne signifie pas que les FPGA ne peuvent pas être utilisés dans des applications alimentées par batterie, mais les microcontrôleurs ont généralement un avantage en termes de consommation d'énergie.
Les microcontrôleurs ont généralement un processus de développement plus simple et plus rapide, car ils peuvent être programmés en utilisant des langages de programmation de haut niveau et des environnements de développement plus familiers aux développeurs de logiciels. L'utilisation de langages, de bibliothèques et de Frameworks avancés simplifie le processus de développement et réduit le temps nécessaire pour implémenter et tester les fonctionnalités requises.
Un FPGA est un circuit intégré très polyvalent qui permet aux utilisateurs de créer des circuits numériques personnalisés en les programmant au niveau matériel. Ils offrent une grande flexibilité et sont parfaits pour les applications complexes nécessitant un prototypage rapide et une reconfigurabilité. Les microcontrôleurs, d'autre part, sont des circuits intégrés compacts qui combinent un cœur de processeur, une mémoire et divers périphériques en une seule puce. Ils sont conçus pour des tâches spécifiques et offrent des solutions rentables pour des applications simples à modérément complexes.