toutes catégories

Chariot 0 article

Chariot 0 article

Partie MFR # Quantité
SOUMETTRE (0)

Choisir la langue

Langue courante

Français

  • English
  • Deutsch
  • Italia
  • Français
  • 한국의
  • русский
  • Svenska
  • Nederland
  • español
  • Português
  • polski
  • Suomi
  • Gaeilge
  • Slovenská
  • Slovenija
  • Čeština
  • Melayu
  • Magyarország
  • Hrvatska
  • Dansk
  • românesc
  • Indonesia
  • Ελλάδα
  • Български език
  • Afrikaans
  • IsiXhosa
  • isiZulu
  • lietuvių
  • Maori
  • Kongeriket
  • Монголулс
  • O'zbek
  • Tiếng Việt
  • हिंदी
  • اردو
  • Kurdî
  • Català
  • Bosna
  • Euskera
  • العربية
  • فارسی
  • Corsa
  • Chicheŵa
  • עִבְרִית
  • Latviešu
  • Hausa
  • Беларусь
  • አማርኛ
  • Republika e Shqipërisë
  • Eesti Vabariik
  • íslenska
  • မြန်မာ
  • Македонски
  • Lëtzebuergesch
  • საქართველო
  • Cambodia
  • Pilipino
  • Azərbaycan
  • ພາສາລາວ
  • বাংলা ভাষার
  • پښتو
  • malaɡasʲ
  • Кыргыз тили
  • Ayiti
  • Қазақша
  • Samoa
  • සිංහල
  • ภาษาไทย
  • Україна
  • Kiswahili
  • Cрпски
  • Galego
  • नेपाली
  • Sesotho
  • Тоҷикӣ
  • Türk dili
  • ગુજરાતી
  • ಕನ್ನಡkannaḍa
  • मराठी
AccueilBlogArchitecture et programmation de tableau logique programmable sur le terrain (FPGA)

COMPOSANTS ÉLECTRONIQUES EN STOCK.
CITATIONS RAPIDES.

Circuits intégrés, dispositifs de puissance et composants passifs
Assistance immédiate à l'approvisionnement

OBTENIR UN DEVIS MAINTENANT

Architecture et programmation de tableau logique programmable sur le terrain (FPGA)

Temps: 2026/07/21

Parcourir: 528

Un tableau logique programmable sur le terrain (FPGA) est un circuit intégré qui peut être configuré après fabrication pour effectuer des fonctions numériques personnalisées. Au lieu d'exécuter une séquence fixe d'instructions logicielles comme un CPU, un FPGA utilise des blocs de logique programmables et des chemins de routage pour construire un circuit matériel pour une tâche spécifique. De nombreuses opérations peuvent s'exécuter simultanément, offrant aux FPGA un débit élevé, une faible latence et une temporisation précise. La même puce peut également être reprogrammée lorsque le design doit être mis à jour ou modifié.

Catalogue

FPGA

Comment fonctionne un FPGA ?

Un FPGA fonctionne en utilisant des milliers de petits circuits programmables qui peuvent être connectés pour effectuer une fonction matérielle spécifique. Comme le montre l'image, les principales parties comprennent des blocs de logique configurables (CLB), une matrice de routage et des blocs d'entrée/sortie (E/S). Chaque CLB contient des tables de correspondance (LUT) pour exécuter des opérations logiques et des bascules (FF) pour stocker des données.

How Does an FPGA Work?

Lorsqu'un fichier de configuration, appelé bitstream, est chargé dans le FPGA, il définit la fonction des blocs de logique et les connexions entre eux. La matrice de routage transporte des signaux entre les différents blocs, tandis que les blocs E/S connectent le FPGA à des dispositifs externes. Étant donné que ces circuits fonctionnent directement en matériel, de nombreuses tâches peuvent s'exécuter simultanément, offrant des performances rapides et prévisibles. Le FPGA peut également être reprogrammé pour effectuer une fonction différente sans remplacer la puce physique.

Architecture FPGA et principaux composants

Un FPGA typique a une structure semblable à un tableau de portes composée de blocs de logique configurables (CLB), d'interconnexions programmables et de blocs d'entrée/sortie (IOB). Ces ressources sont répétées à travers la puce et peuvent être configurées pour construire un circuit numérique personnalisé.

FPGA Architecture and Main Components

Les CLB effectuent des opérations logiques et stockent de petites quantités de données en utilisant des tables de correspondance, des bascules et des circuits associés. L'interconnexion programmable agit comme un réseau de routage qui transporte des signaux entre les blocs de logique. Aux bords du FPGA, les blocs E/S connectent le circuit interne à des composants externes tels que des capteurs, des dispositifs de mémoire, des processeurs et des interfaces de communication.

Les FPGA modernes peuvent également inclure de la RAM de bloc, des circuits de gestion d'horloge, des blocs DSP, des transceivers haute vitesse, et parfois des processeurs embarqués. Ces composants dédiés améliorent les performances dans des applications telles que le traitement du signal, les communications, le contrôle industriel et l'intelligence artificielle.

Principaux types de FPGA

FPGA basé sur SRAM

SRAM-Based FPGAs

Les FPGA basés sur SRAM stockent leur configuration dans une mémoire volatile, ils doivent donc recharger le bitstream chaque fois que l'alimentation est appliquée. Comme le montre l'image, leur architecture comprend des éléments logiques, des blocs de mémoire, des éléments I/O et des interconnexions programmables. Ces FPGA peuvent être reprogrammés plusieurs fois et offrent de hautes performances pour des conceptions complexes. Le AMD Artix-7 XC7A35T est un FPGA basé sur SRAM couramment utilisé dans les systèmes embarqués, les communications et le prototypage.

FPGA basés sur Flash

Flash-Based FPGAs

Les FPGA basés sur Flash stockent leur configuration dans une mémoire non volatile, leur permettant de conserver leur conception sans alimentation et de démarrer rapidement. Comme le montre l'image, un FPGA basé sur Flash de Microchip comprend des VersaTiles, des blocs RAM/FIFO, des circuits d'horloge, FlashROM et des banques I/O. Ces dispositifs peuvent être effacés et reprogrammés. Le Microchip ProASIC3 A3P250 est un exemple utilisé dans des applications industrielles, de communications et de sécurité.

FPGA basés sur Antifuse

Antifuse-Based FPGAs

Les FPGA basés sur antifuse créent des connexions permanentes lors de la programmation, ce qui leur permet de conserver leur configuration sans alimentation mais ne peuvent être programmés qu'une seule fois. Comme le montre l'image, l'architecture RTAX contient des tuiles de cœur, des SuperClusters, des blocs RAM/FIFO et des structures I/O environnantes. Le Microchip RTAX2000S tolérant aux radiations est conçu pour les engins spatiaux et d'autres applications à haute fiabilité.

Comment un FPGA est-il programmé ?

Programmer un FPGA signifie configurer ses blocs logiques internes, ses chemins de routage, sa mémoire et ses connexions I/O pour créer un circuit numérique spécifique. Comme le montre l'image, le processus commence par la description du circuit en Verilog, VHDL, SystemVerilog ou un outil de conception basé sur des blocs. Le concepteur définit également les exigences en matière d'horloge et de synchronisation et attribue des signaux aux broches physiques correctes.

How is an FPGA Programmed?

La conception est d'abord testée par simulation fonctionnelle pour vérifier si sa logique fonctionne correctement. Un logiciel de synthèse la convertit ensuite en une netlist constituée de ressources FPGA. Pendant l'implémentation, les outils mappent la conception sur le dispositif sélectionné, placent ses éléments logiques et routent les connexions entre eux. La vérification temporelle vérifie si les signaux peuvent circuler dans le circuit dans les limites d'horloge requises. Une simulation post-implémentation optionnelle peut fournir une vérification supplémentaire en utilisant la conception implémentée.

Une fois que la conception a passé ces vérifications, le logiciel génère un fichier de configuration appelé bitstream. Ce fichier peut configurer le FPGA directement via JTAG ou être stocké dans une mémoire de configuration non volatile pour un chargement à l'alimentation. La conception terminée est ensuite testée sur la carte cible. Si vous pouvez trouver des problèmes fonctionnels ou temporels, corrigez la conception et répétez les étapes nécessaires.

Avantages et limitations des FPGA

Avantages des FPGA

Les FPGA peuvent être reprogrammés après fabrication, vous permettant de mettre à jour les fonctions, de corriger les erreurs de conception ou de réutiliser le même dispositif pour différentes applications. Contrairement à un CPU qui exécute généralement des instructions l'une après l'autre, un FPGA peut effectuer de nombreuses opérations matérielles en même temps. Ce traitement parallèle offre un débit élevé, une faible latence et un timing prévisible pour des tâches telles que le traitement des signaux, le contrôle industriel, le traitement vidéo et les communications.

Les FPGA permettent également de créer des interfaces personnalisées et des accélérateurs matériels sans fabriquer une nouvelle puce. Ils ont généralement des coûts de développement initiaux inférieurs et des temps de développement plus courts que les ASIC, les rendant pratiques pour les prototypes et les produits en faible à moyen volume. De nombreux FPGA modernes incluent également de la mémoire dédiée, des blocs DSP, des émetteurs-récepteurs haute vitesse et des cœurs de processeur.

Limitations des FPGA

Le développement de FPGA est plus complexe que le développement de logiciels ordinaire. Vous avez besoin de connaissances en logique numérique, langages de description matériels, gestion de domaine d'horloge, contraintes de timing et vérification. La synthèse et le placement-routage peuvent également prendre beaucoup de temps pour de grandes conceptions, tandis que le débogage des problèmes de timing matériel peut être difficile.

Par rapport aux ASIC, les FPGA consomment généralement plus d'énergie, coûtent plus cher par unité et offrent des performances maximales inférieures pour la même fonction spécialisée. Ils ont également des ressources logiques, de mémoire, de routage et I/O limitées, donc une conception doit s'intégrer dans le dispositif sélectionné. Les FPGA basés sur SRAM perdent leur configuration lorsque l'alimentation est coupée et nécessitent normalement que le bitstream soit rechargé lors du démarrage.

À quoi servent les FPGA ?

Télécommunications : Les FPGA traitent les paquets réseau, mettent en œuvre des protocoles de communication, effectuent la modulation de signal et soutiennent les stations de base 4G et 5G.

Automatisation industrielle : Ils fournissent un contrôle précis pour les moteurs, les robots, les équipements de production, les systèmes de vision par machine et les dispositifs de surveillance en temps réel.

Systèmes automobiles : Les FPGAs supportent les systèmes d’assistance au conducteur, le traitement radar, la fusion de capteurs, le réseau des véhicules, l’infodivertissement et le contrôle des moteurs électriques.

Aérospatial et défense : Les FPGAs tolérants aux radiations sont utilisés dans les satellites, le radar, la navigation, les communications sécurisées et les systèmes de guerre électronique.

Équipement médical : Ils traitent des données dans les machines à ultrasons, les systèmes d'imagerie médicale, les instruments de laboratoire et les équipements de surveillance des patients.

Traitement vidéo et image : Les FPGAs effectuent des filtrages en temps réel, le redimensionnement, l'encodage, le décodage, la détection d'objets et le traitement vidéo haute résolution.

Intelligence artificielle : Ils accélèrent l'inférence de l'apprentissage machine en exécutant simultanément de nombreuses opérations mathématiques avec une faible latence prévisible.

Centres de données : Les FPGAs accélèrent le réseautage, la compression des données, le chiffrement, les recherches dans les bases de données et d'autres charges de travail de calcul spécialisées.

Essai et mesure : Les oscilloscopes, analyseurs logiques, analyseurs de spectre et systèmes d'acquisition de données utilisent des FPGAs pour la capture et le traitement de signaux haute vitesse.

Électronique grand public : Les FPGAs supportent le contrôle d'affichage, le traitement de la caméra, le traitement audio et la connectivité personnalisée dans des produits électroniques spécialisés.

Prototypage ASIC : Vous pouvez utiliser de grands FPGAs pour tester et vérifier un design de puce personnalisé avant de vous engager dans la fabrication coûteuse d'ASIC.

Éducation et recherche : Les cartes de développement FPGA aident les étudiants et les chercheurs à construire des processeurs, des contrôleurs numériques, des systèmes de communication et des architectures informatiques expérimentales.

FPGA vs CPU vs GPU vs Microcontrôleur

Fonctionnalité
FPGA
CPU
GPU
Microcontrôleur
Fonctionnement de base
Matériel configurable exécutant une logique personnalisée
Les cœurs de processeur exécutent des instructions logicielles
De nombreux cœurs de traitement exécutent des opérations similaires en parallèle
Un processeur compact exécute des logiciels embarqués
Traitement parallèle
Élevé ; des opérations personnalisées peuvent s'exécuter simultanément
Modéré ; utilise plusieurs cœurs, fils et instructions vectorielles
Très élevé pour les charges de travail de données parallèles
Faible à modéré, en fonction de l'appareil
Latence
Très faible et prévisible lorsqu'il est correctement conçu
Modéré ; affecté par les logiciels et les systèmes d'exploitation
Débit élevé, mais les retards de transfert de données et de planification peuvent augmenter la latence
Faible et souvent prévisible pour les tâches de contrôle simples
Force de performance
Pipelines personnalisés, traitement en temps réel et accélération spécialisée
Tâches à usage général et décisionnelles complexes
Graphiques, formation d'IA, simulation et grandes charges de travail numériques
Capteurs, contrôle de base et tâches embarquées à faible puissance
Reprogrammabilité
La configuration matérielle peut être changée
Le logiciel peut être changé
Le logiciel et les noyaux de calcul peuvent être changés
Le firmware peut être changé
Consommation d'énergie
Modérée ; dépend fortement de la conception et de l'appareil
Modérée à élevée
Généralement élevée
Généralement très faible
Méthode de développement
Verilog, VHDL, SystemVerilog, HLS ou conception par blocs
C, C++, Python et d'autres langages logiciels
CUDA, OpenCL, SYCL et APIs graphiques
C, C++, assembleur ou outils du fournisseur
Difficulté de développement
Élevée ; nécessite des connaissances en conception numérique et en synchronisation
Faible à modérée
Modérée à élevée
Faible à modérée
Coût unitaire
Modéré à élevé
Varie d’un produit à l’autre
Modéré à très élevé
Généralement faible
Contrôle en temps réel
Excellente précision pour un timing au cycle près
Possible, surtout avec un système d'exploitation en temps réel
Généralement inadapté au contrôle déterministe direct
Excellent pour de nombreuses tâches de contrôle embarquées
Mieux adapté à
Traitement du signal, communications, interfaces personnalisées et accélération matérielle
Ordinateurs, serveurs, systèmes d'exploitation et applications générales
Graphiques, calcul scientifique et apprentissage machine
Appareils électroménagers, capteurs, contrôle de moteurs et dispositifs IoT

FPGA vs ASIC vs CPLD

FPGA vs ASIC

Un ASIC est une puce custom fabriquée pour effectuer une fonction fixe, tandis qu'un FPGA peut être configuré et reprogrammé après fabrication. Parce qu'un ASIC est optimisé pour une application spécifique, il offre généralement de meilleures performances, une consommation d'énergie réduite et une surface de puce plus petite qu'un FPGA accomplissant la même tâche.

Cependant, le développement d'un ASIC nécessite des coûts initiaux élevés, une vérification spécialisée et un long processus de fabrication. Les erreurs découvertes après la fabrication peuvent nécessiter une révision coûteuse de la puce.

FPGA vs CPLD

Un CPLD est un dispositif logique programmable conçu pour des circuits numériques plus petits et plus simples. Comparé à un FPGA, il a moins de ressources logiques, moins de mémoire et une capacité de traitement limitée. Les CPLD utilisent généralement une mémoire de configuration non volatile, ce qui leur permet de conserver leur conception sans alimentation et de fonctionner immédiatement au démarrage.

Les CPLD sont adaptés au décodage d'adresses, au contrôle de réinitialisation, aux machines à états simples, au pontage d'interfaces et à la logique de gestion de carte. Les FPGA sont meilleurs pour les systèmes complexes qui nécessitent une grande capacité logique, une mémoire étendue, des opérations DSP ou un traitement parallèle. Un CPLD est généralement le choix le plus pratique pour des fonctions de contrôle simples, tandis qu'un FPGA est préférable pour des conceptions plus grandes et plus exigeantes.

Comment choisir le bon FPGA

• Capacité logique : Assurez-vous que le FPGA dispose de suffisamment de tables de correspondance, de bascules et de ressources de routage, avec une capacité supplémentaire pour les modifications futures.

• Mémoire : Vérifiez la RAM bloc requise, la mémoire distribuée et le support pour la mémoire DDR externe.

• Ressources DSP : Choisissez suffisamment de blocs DSP pour le filtrage, le contrôle de moteur, le traitement d'image ou les calculs IA.

• Exigences I/O : Confirmez le nombre de broches, les normes de tension supportées et les interfaces requises.

• Vitesse de traitement : Vérifiez la fréquence d'horloge, les performances temporelles et les débits de données de transceiver haute vitesse.

• Consommation d'énergie : Estimez la puissance statique et dynamique et confirmez que le refroidissement et l'alimentation sont adaptés.

• Type de configuration : Sélectionnez la technologie SRAM, flash ou antifuse selon les besoins en démarrage, reprogrammation et sécurité.

• Emballage et taille : Assurez-vous que l'emballage s'adapte au PCB et peut être assemblé par le fabricant choisi.

• Outils de développement : Tenez compte du coût des logiciels, des langages de programmation supportés, des outils de débogage, des cœurs IP et de la documentation.

• Coût et disponibilité : Comparez le prix de l'appareil, le volume de production, le délai de livraison, l'état du cycle de vie et l'approvisionnement à long terme.

Fabricants FPGA populaires et outils de développement

Fabricant
Familles FPGA populaires
Outils de développement principaux
Focus typique
AMD (anciennement Xilinx)
Artix, Kintex, Virtex, Spartan et Zynq
Suite de conception Vivado et Vitis
Systèmes intégrés, communications, centres de données et traitement haute performance
Altera
Cyclone, Arria, Stratix et Agilex
Quartus Prime et Questa–Altera FPGA Edition
Systèmes industriels, communications, mise en réseau et accélération
Microchip
IGLOO2, PolarFire, SmartFusion2 et RTG4
Suite de conception Libero SoC
Applications à faible consommation d'énergie, de sécurité, industrielles, aérospatiales et tolérantes aux radiations
Lattice Semiconductor
Familles iCE40, MachXO, ECP et Nexus
Lattice Radiant, Lattice Diamond et Lattice Propel
Petites, basse consommation, applications intégrées et de périphérie
GOWIN Semiconductor
LittleBee, Arora et familles connexes
GOWIN EDA
Systèmes embarqués à faible coût, éducation et conceptions compactes

Tendances futures dans la technologie FPGA

La technologie FPGA future se concentrera sur des performances plus élevées, une consommation d'énergie plus faible et un développement plus facile. De nouveaux dispositifs combinent de plus en plus la logique programmable avec des cœurs de processeur, des moteurs IA, des transceivers haute vitesse, une mémoire avancée et un emballage basé sur des chiplets dans une seule plateforme. Les FPGA devraient également jouer un rôle plus important dans l'IA en périphérie, les systèmes autonomes, la 5G et les communications futures, les centres de données, la robotique et le traitement des capteurs en temps réel.

Une meilleure synthèse de haut niveau et des outils de conception assistée par IA permettront aux développeurs de créer du matériel FPGA en utilisant C, C++ et d'autres méthodes de haut niveau au lieu de se fier uniquement à Verilog ou VHDL. Une sécurité matérielle renforcée, une reconfiguration à distance et des architectures de dispositifs plus efficaces élargiront encore l'utilisation des FPGA dans les systèmes nécessitant une faible latence, flexibilité et longue durée de vie.






Questions fréquemment posées [FAQ]

1. Un FPGA peut-il exécuter un logiciel comme un CPU ?

Un FPGA n'exécute normalement pas d'instructions logicielles directement. Il est configuré pour créer un circuit matériel. Cependant, les concepteurs peuvent ajouter un processeur logiciel, tel que MicroBlaze ou Nios V, ou utiliser un FPGA SoC qui combine une logique programmable avec des cœurs de processeurs physiques.

2. Que se passe-t-il lorsqu'un FPGA manque de ressources de logique ou de routage ?

La conception peut échouer pendant la synthèse ou le placement et le routage, même si certaines ressources restent disponibles. La congestion du routage et les limites de temps peuvent empêcher une mise en œuvre réussie. Choisir un dispositif avec une logique, une mémoire, un DSP et une capacité de routage supplémentaires permet de prévoir des changements futurs.

3. Une partie d'un FPGA peut-elle être reprogrammée pendant que le reste continue de fonctionner ?

Certains FPGAs prennent en charge la reconfiguration partielle, ce qui permet de mettre à jour une région pendant que d'autres régions restent actives. Cela peut changer les fonctions matérielles sans arrêter tout le système, mais cela nécessite des dispositifs compatibles, une partition soigneuse et des outils de conception avancés.

4. Pourquoi une conception FPGA peut-elle fonctionner en simulation mais échouer sur une carte réelle ?

La simulation peut ne pas représenter pleinement les délais de synchronisation, les problèmes d'horloge, le comportement de réinitialisation, le bruit électrique ou les attributions de broches incorrectes. Les pannes matérielles peuvent également résulter d'une mauvaise distribution d'alimentation, de problèmes d'intégrité du signal ou d'instructions de timing manquantes.

5. Un FPGA basé sur SRAM a-t-il toujours besoin d'une mémoire flash externe ?

Non. Il peut être configuré directement via JTAG ou par un autre processeur. Cependant, la plupart des produits autonomes utilisent une mémoire non volatile externe afin que le FPGA puisse automatiquement recharger son bitstream chaque fois que l'alimentation est fournie.

6. Les FPGAs peuvent-ils être programmés en utilisant C ou C++ au lieu de HDL ?

Les outils de synthèse de haut niveau peuvent convertir des fonctions C ou C++ appropriées en matériel FPGA. Cela peut simplifier le développement, mais les concepteurs doivent toujours comprendre le parallélisme matériel, l'accès à la mémoire, le timing et l'utilisation des ressources pour obtenir de bons résultats.

7. Comment la sécurité de la conception FPGA est-elle protégée ?

La sécurité des FPGA peut inclure des bitstreams chiffrés, l'authentification, un démarrage sécurisé, un contrôle d'accès et des clés spécifiques au dispositif. Les dispositifs antifuse offrent une forte protection physique car leur configuration est permanente, tandis que de nombreux dispositifs basés sur SRAM et flash prennent en charge la programmation chiffrée.

8. Quand un FPGA ne devrait-il pas être utilisé ?

Un FPGA peut être inutile pour des tâches de contrôle simples qu'un microcontrôleur à bas coût peut gérer. Il peut également être inadapté pour des produits à très haut volume et stables où un ASIC peut offrir un coût unitaire et une consommation d'énergie inférieurs après le remboursement du coût initial de développement élevé.

Soumissions RFQ en ligne: Réponses rapides, meilleurs prix!

RFQ