Fonctionnement et Architecture des FPGA

Principe fondamental des FPGA

Un FPGA (Field-Programmable Gate Array) est un circuit intégré reconfigurable permettant d'implémenter des fonctions numériques personnalisées. Sa programmation modifie les interconnexions internes et le comportement des éléments logiques sans modification physique.

Structure de base

L'élément central est la table de consultation (LUT) qui émule des fonctions logiques. Une LUT à n entrées agit comme une mémoire contenant 2n valeurs, configurable pour reproduire toute fonction combinatoire.

Exemple de LUT à 2 entrées

Fonction ET :
| Entrée A | Entrée B | Sortie |
|----------|----------|--------|
| 0        | 0        | 0      |
| 0        | 1        | 0      |
| 1        | 0        | 0      |
| 1        | 1        | 1      |

Matrice d'interconnexion

Des multiplexeurs configurables forment un réseau routage dynamique. Chaque multiplexeur sélectionne un signal parmi plusieurs sources selon sa configuraton mémoire :

Sortie = Entrée[selection]
// Exemple 6:1 avec contrôle binaire
module Multiplexeur6v1 (
  input [5:0] donnees,
  input [2:0] choix,
  output reg resultat
);
always @(*) begin
  case(choix)
    3'b000: resultat = donnees[0];
    3'b001: resultat = donnees[1];
    // ... autres cas
    3'b101: resultat = donnees[5];
  endcase
end
endmodule

Blocs logiques configurables

Les CLB (Configurable Logic Blocks) regroupent des LUTs et registres. Chaque CLB contient typiquement :

  • 4 LUTs 6-entrées
  • 8 bascules D
  • Circuits d'arithmétique (additionneurs)

Ressourcse spécialisées

Mémoire embarquée

Les BRAM (Block RAM) sont des blocs mémoires dédiés configurables en :

  • Mémoire simple/duale port
  • FIFO
  • Mémoire tampon

Gestion d'horloge

Les modules CMT (Clock Management Tiles) incluent :

  • PLL : Synthèse de fréquence
  • DLL : Correction de délai

Interfaces d'entrée/sortie

Les IOB (Input/Output Blocks) offrent :

  • Adaptation électrique (LVDS, LVCMOS)
  • Contrôle d'impédance
  • Registres dédiés pour la synchronisation

Avantages comparatifs

Technologie Latence Flexibilité Consommation
FPGA Nanoseconde Reconfiguration dynamique Élevée
Microcontrôleur Microseconde Logicielle uniquement Modérée
ASIC Picoseconde Nulle Optimisée

Applications typiques

  • Traitement signal temps réel (SDR)
  • Prototypage accéléré
  • Contrôleurs haute vitesse (PCIe, Ethernet)

Étiquettes: FPGA LUT CLB ArchitectureMatrice Interconnexions

Publié le 6 juillet à 19h21