Un réseau de portes programmables sur le terrain (souvent raccourci en FPGA) est un composant électronique utilisé pour construire des circuits numériques reconfigurables. Cela signifie qu'un FPGA est différent d'une porte logique, car une porte logique a une fonction fixe. En revanche, un FPGA a une fonction indéfinie au moment de sa fabrication. Avant que le FPGA puisse être utilisé dans un circuit, il doit être programmé, c'est-à-dire reconfiguré.

Les FPGA sont des circuits intégrés appartenant à la catégorie des dispositifs logiques programmables ou PLD. Les FPGA sont les plus performants, les plus flexibles et aussi les plus chers des types de PLD. Un inconvénient des FPGA par rapport aux autres PLD est qu'ils ne se souviennent pas de leur conception lorsque l'alimentation est coupée. Un FPGA a donc besoin d'une puce de mémoire de configuration séparée qui contient la conception du FPGA. Lorsque l'alimentation est rétablie au FPGA, une partie fixe du FPGA lit la configuration de la puce de mémoire de configuration. Une fois que le FPGA est configuré, il est capable de remplir la fonction qui lui a été attribuée par sa conception.

Un FPGA est différent d'un microprocesseur ou d'un microcontrôleur. Dans sa forme de base, un FPGA n'est pas capable d'exécuter un logiciel. Ce n'est que lorsque le FPGA reçoit une configuration qui contient une architecture de processeur qu'il peut exécuter des logiciels.

Les fabricants de FPGA fournissent des logiciels d'ingénierie pour Windows et parfois aussi pour Linux, afin de développer des conceptions pour les FPGA. La conception est généralement écrite dans des fichiers informatiques lisibles par l'homme appelés "Hardware Description Language" (HDL). Les plus populaires sont VHDL et Verilog. Les langages de description du matériel sont fortement comparables aux langages de programmation. Mais l'intention des HDL est de concevoir des circuits logiques numériques tandis que les langages de programmation conçoivent des logiciels.

Le logiciel d'ingénierie du FPGA doit traduire le code HDL abstrait en éléments logiques disponibles dans le FPGA sélectionné. C'est ce qu'on appelle la synthèse logique. Ensuite, un processus de placement et d'acheminement est effectué pour positionner les éléments logiques dans le FPGA. Le résultat est un fichier binaire qui peut être programmé dans le FPGA ou dans la mémoire de configuration. Cela se fait généralement à l'aide d'un programmateur USB connecté au port JTAG du FPGA.

Comme le FPGA est un circuit intégré, un fabricant de FPGA peut décider d'ajouter d'autres composants de circuit intégré couramment utilisés. Ces parties fixes sont appelées "noyaux". Il s'agit par exemple de contrôleurs Ethernet ou même d'une architecture processeur complète. Pour différents segments de marché tels que la défense, le médical, les communications et la robotique, le fabricant de FPGA essaie d'ajouter l'ensemble le plus précieux de ces cœurs supplémentaires.