This website requires JavaScript.
Bons Plans Installer Maintenant
Expédier à
Blog

Introduction à l'Architecture FPGA : Comment Fonctionnent les FPGA et Pourquoi Ils Sont Importants

Publié initialement Mar 25, 2026, mis à jour Mar 25, 2026

8 min

Table des matières
  • 1. Blocs Logiques Configurables (CLBs)
  • 2. Fabrication de l'Interconnexion / Réseau de Routage
  • 3. Blocs I/O (IOBs)
  • 4. Tranches DSP (Unités de Traitement de Signal Numérique)
  • 5. Mémoire Bloc RAM (BRAM)
  • 6. Blocs de Gestion d'Horloge
  • 7. Cœurs IP Durs
  • 8. Mémoire de Configuration
  • Conclusion:

Les circuits numériques sont généralement implémentés à l'aide de circuits intégrés (ICs) basés sur des ASIC ou des réseaux de portes. Mais il existe un autre type de circuit fonctionnel programmable qui peut implémenter n'importe quelle logique simplement en étant programmé : ce sont les PLD (Dispositifs Logiques Programmables). Il en existe plusieurs types, mais aujourd'hui, nous nous concentrons principalement sur les FPGA (Field-Programmable Gate Arrays). Contrairement aux circuits intégrés à fonction fixe, les FPGA permettent aux ingénieurs de reconfigurer le matériel après sa fabrication. Avec un FPGA, il est possible de réaliser différents types de circuits allant du traitement du signal à l'apprentissage automatique et aux systèmes embarqués. Mais que contient exactement un FPGA, et en quoi est-il différent des autres circuits intégrés ? Pour répondre à cette question, il est essentiel d'examiner l'architecture interne des FPGA. Ce guide se concentre sur les composants clés de l'architecture FPGA, les éléments qui permettent d'implémenter des systèmes numériques personnalisés.

1. Blocs Logiques Configurables (CLBs)

Au cœur de chaque FPGA se trouvent les Blocs Logiques Configurables (CLBs). Ce sont les unités fondamentales où la logique numérique est implémentée. À l'intérieur d'un CLB, on trouve :

- Tables de Recherche (LUTs) : Ce sont de petites structures mémoires utilisées pour implémenter des fonctions logiques. Une LUT à 4 entrées peut représenter n'importe quelle table de vérité avec 4 entrées.

- Flip-Flops/Registres : Utilisés pour stocker des données à un bit et créer des circuits séquentiels.

- Multiplexeurs : Ils acheminent les signaux au sein du CLB ; utilisés pour sélectionner une entrée parmi différentes LUTs.

Chaque CLB peut être configuré pour effectuer des opérations logiques de base (AND, OR, XOR). Presque toutes les fonctions combinatoires et séquentielles complexes peuvent être implémentées ici. En combinant des milliers de CLBs, les concepteurs peuvent créer des circuits numériques personnalisés comme des additionneurs, des multiplexeurs et des compteurs.

2. Fabrication de l'Interconnexion / Réseau de Routage

Un FPGA serait inutile si les CLBs étaient isolés. Le réseau d'interconnexion relie les CLBs, les blocs I/O, la mémoire et d'autres composants. Il existe des interrupteurs programmables et des canaux de câblage, ainsi que de la logique programmable (CLB). Ces interconnexions sont également programmées dans le code, ce qui permet de connecter les différents blocs internes du FPGA. Cette flexibilité de l'interconnexion est ce qui rend les FPGA si puissants. C'est un peu comme un réseau autoroutier à l'intérieur de la puce, reconfiguré dynamiquement selon la conception.

3. Blocs I/O (IOBs)

Puisque les FPGA sont montés sur des PCB et doivent communiquer avec le monde extérieur, les Blocs I/O (Input/Output) gèrent cette tâche. Ces cellules sont utilisées pour envoyer les données calculées vers des dispositifs externes et pour recevoir des données des capteurs. Chaque bloc I/O est programmable et prend en charge plusieurs normes de tension (par exemple, LVCMOS, LVTTL, LVDS). Ces blocs I/O sont différenciés en fonction de la force de sortie, du taux de variation et des résistances de tirage (pull-up/pull-down). Certains FPGAs modernes incluent également des transceivers haute vitesse pour PCIe ou Ethernet. Les blocs I/O rendent les FPGA très flexibles dans des environnements mixtes, leur permettant de s'interfacer avec des systèmes hérités.

4. Tranches DSP (Unités de Traitement de Signal Numérique)

Les FPGAs modernes intègrent des tranches DSP dédiées pour accélérer les opérations arithmétiques. Elles comprennent des unités de multiplication et d'accumulation (MAC) pour effectuer des calculs rapidement. Un FPGA avec des capacités DSP peut effectuer des opérations à virgule fixe et à virgule flottante.

Au lieu d'utiliser des LUTs (qui sont plus lents et moins efficaces), les blocs DSP sont des unités matérielles conçues pour la vitesse. Par exemple, dans les pipelines de traitement audio ou vidéo, les blocs DSP gèrent des filtrages et des transformations à haute vitesse.

5. Mémoire Bloc RAM (BRAM)

Un autre élément essentiel est la mémoire interne, couramment appelée Block RAM (BRAM). Elle est distribuée dans le réseau FPGA et peut être configurée en mémoire à port unique ou double. Sa taille varie de quelques kilooctets à plusieurs mégaoctets, selon la famille du FPGA. Elle est très utile pour la mise en tampon de données, le stockage de tables de recherche ou la mise en œuvre de FIFOs. Pour des applications telles que le stockage d'images, la gestion de protocoles ou des filtres numériques, le BRAM offre une mémoire à faible latence beaucoup plus proche de la logique que la DRAM externe.

6. Blocs de Gestion d'Horloge

Pour garantir que tout fonctionne de manière synchrone à l'intérieur du FPGA, la gestion de l'horloge est cruciale. C'est pourquoi les FPGA intègrent un circuit de gestion d'horloge comprenant des boucles à verrouillage de phase (PLLs) pour la stabilité de fréquence, des gestionnaires d'horloge en mode mixte (MMCMs) pour la division et la multiplication des fréquences, et un réseau de distribution d'horloge pour minimiser les décalages. Les FPGA nécessitent souvent plusieurs horloges pour différents sous-systèmes (une horloge pour le cœur du CPU, une autre pour les I/O haute vitesse). Les blocs de gestion d'horloge rendent tout cela possible.

7. Cœurs IP Durs

Alors que la plupart des ressources FPGA sont reconfigurables, les FPGAs modernes intègrent également des cœurs IP durs. Ce sont des blocs à fonction fixe optimisés pour des tâches courantes.

Exemples de cœurs IP durs :

- Transceivers haute vitesse (SerDes).

- Contrôleurs de mémoire DDR.

- Interfaces PCI Express.

- MACs Ethernet.

- Moteurs cryptographiques.

Plutôt que d'implémenter ces fonctions dans des LUTs (ce qui consommerait trop de ressources), les cœurs IP durs offrent de meilleures performances et une consommation d'énergie plus faible car ils sont entièrement optimisés. Ces cœurs IP sont largement utilisés dans la conception numérique pour des fonctions comme l'I2C, le UART ou le SPI, qui sont déjà disponibles dans le FPGA sous forme de cœurs IP.

8. Mémoire de Configuration

Enfin, ce qui rend un FPGA reprogrammable, c'est sa mémoire de configuration. La plupart des FPGAs utilisent une configuration basée sur la SRAM. Lors de la mise sous tension, le FPGA est vierge et doit charger un fichier bitstream à partir d'une mémoire flash externe ou d'un processeur hôte. Le bitstream définit :

- La fonctionnalité des CLB.

- Les chemins de routage.

- La configuration des I/O.

- L'utilisation des DSP/BRAM.

Récapitulons les composants de l'architecture FPGA :

- CLBs (Blocs Logiques Configurables) → Fonctions logiques programmables.
- Interconnect Fabric (Réseau de Routage) → Autoroutes de câblage.
- IOBs (Blocs I/O) → Communication externe.
- DSP Blocks (Blocs DSP) → Unités de calcul haute vitesse.
- BRAM (Mémoire Bloc) → Mémoire locale.
- Clock Managers (Gestionnaires d'Horloge) → Synchronisation et timing stable.
- Hard IP Cores (Cœurs IP Durs) → Accélérateurs à fonction fixe.
- Configuration Memory (Mémoire de Configuration) → Définie tout le reste.

Avec ces éléments constitutifs, les ingénieurs peuvent implémenter tout, depuis des compteurs simples jusqu'à des CPU complets et des accélérateurs AI, le tout sur une seule puce FPGA.

Conclusion:

Les FPGA ne se limitent pas aux circuits VLSI, ils jouent également un rôle crucial dans la conception de systèmes de traitement de signal numérique (DSP) et de circuits intégrés de puissance. Vous pouvez créer n'importe quel type de contrôleur à l'intérieur d'un FPGA grâce à leur reconfigurabilité et leur parallélisme. Les FPGA permettent aux concepteurs de créer des architectures matérielles personnalisées, tandis que les microcontrôleurs sont limités à un traitement séquentiel des instructions. Pour les débutants, comprendre l'architecture FPGA commence par les huit composants listés ci-dessus. Chacun joue un rôle unique, et ensemble, ils forment un terrain de jeu numérique flexible pour les ingénieurs. Les FPGA permettent de combler l'écart entre la flexibilité de la prototypage et les performances de niveau ASIC.

Continuez à apprendre