Sie sind auf Seite 1von 5

24/07/2018 Circuit logique programmable — Wikipédia

Circuit logique programmable


Un circuit logique programmable, ou réseau logique
programmable, est un circuit intégré logique qui peut être reprogrammé
après sa fabrication. Notons qu'il serait impropre de parler de
programmation au sens logiciel (contrairement à un microprocesseur, il
n'exécute aucune ligne de code). Ici, mieux vaudrait parler de
« reconfiguration » plutôt que de reprogrammation (on modifie des
connexions ou le comportement du composant, on connecte des portes
logiques entre elles, etc.). Le verbe programmer est toutefois le plus
fréquent, mais au sens de personnaliser. Il s'agit bel et bien de réseaux
logiques reconfigurables et modifiables.

Il est composé de nombreuses cellules logiques élémentaires et bascules FPGA de Xilinx (modèle Spartan
logiques librement connectables (c'est justement la reconfiguration, ou 1
XC3S400) avec 400 000 portes .
programmation, du composant qui définit les connexions faites entre
portes logiques).

Ce type de composant électronique est communément désigné par différents sigles anglais dont :

FPGA (field-programmable gate array, réseau de portes programmables in situ) ;


PLD (programmable logic device, circuit logique programmable) ;
EPLD (erasable programmable logic device, circuit logique programmable et effaçable) ;
CPLD (complex programmable logic device, circuit logique programmable complexe) ;
PAL (programmable array logic, réseau logique programmable) ;
PLA (programmable logic array, réseau logique programmable).
Bien que fondamentalement synonymes, ces termes ne sont généralement pas interchangeables dans le vocabulaire
commercial des fabricants : FPGA désigne plutôt des composants à technologie RAM, EPLD des composants à
technologie FLASH, PAL des composants à technologie fusible (voir § procédés technologiques).

Les premiers brevets pour de tels composants datent des années 1980 à 1990 mais c'est au début des années 1990
qu'ils se sont généralisés. [réf. nécessaire]

https://fr.wikipedia.org/wiki/Circuit_logique_programmable 1/5
24/07/2018 Circuit logique programmable — Wikipédia

Sommaire
Architecture matérielle
FPGA
CPLD
Applications
Conception du schéma logique
Procédés technologiques
Fabricants
Voir aussi
Notes et références
Articles connexes
Liens externes

Architecture matérielle
Les réseaux logiques programmables sont des circuits composés de nombreuses cellules logiques élémentaires
librement assemblables.

Celles-ci sont connectées de manière définitive ou réversible par programmation, afin de réaliser la ou les fonctions
numériques voulues. L'intérêt est qu'une même puce peut être utilisée dans de nombreux systèmes électroniques
différents.

Certains modèles peuvent aussi comporter : de la mémoire d'usage général, des blocs « DSP » câblés, des boucles à
verrouillage de phase pour la génération d'horloge.

FPGA
La plupart des grands FPGA modernes sont fondés sur des cellules SRAM aussi bien pour le routage du circuit que
pour les blocs logiques à interconnecter.

Un bloc logique est de manière générale constitué d'une table de correspondance (LUT ou Look-Up-Table) et d'une
bascule (Flip-Flop en anglais). La LUT sert à implémenter des équations logiques ayant généralement 4 à 6 entrées et
une sortie. Elle peut toutefois être considérée comme une petite mémoire, un multiplexeur ou un registre à décalage.
Le registre permet de mémoriser un état (machine séquentielle) ou de synchroniser un signal (pipeline).

Les blocs logiques, présents en grand nombre sur la puce (de quelques milliers à quelques millions en 2007) sont
connectés entre eux par une matrice de routage configurable. Ceci permet la reconfiguration à volonté du composant,
mais occupe une place importante sur le silicium et justifie le coût élevé des composants FPGA. La topologie est dite
« Manhattan », en référence aux rues à angle droit de ce quartier de New York.

Les densités actuelles ne permettent plus un routage manuel, c'est donc un outil de placement-routage automatique
qui fait correspondre le schéma logique voulu par le concepteur et les ressources matérielles de la puce. Comme les
temps de propagation dépendent de la longueur des liaisons entre cellules logiques, et que les algorithmes
d'optimisation des placeurs-routeurs ne sont pas déterministes, les performances (fréquence max.) obtenues dans un
FPGA sont variables d'un design à l'autre. L'utilisation des ressources est par contre très bonne, et des taux
d'occupation des blocs logiques supérieures à 90 % sont possibles.

https://fr.wikipedia.org/wiki/Circuit_logique_programmable 2/5
24/07/2018 Circuit logique programmable — Wikipédia

Comme la configuration (routage et LUT) est faite par des points mémoire volatils, il est nécessaire de sauvegarder le
design du FPGA dans une mémoire non volatile externe, généralement une mémoire Flash série, compatible
« JTAG ». Certains fabricants se distinguent toutefois par l'utilisation de cellules EEPROM pour la configuration,
éliminant le recours à une mémoire externe, ou par une configuration par anti-fusibles (la programmation par une
tension élevée fait « claquer » un diélectrique, créant un contact). Cette dernière technologie n'est toutefois pas
reconfigurable.

Quelques fonctionnalités particulières disponibles sur certains composants :

blocs de mémoire supplémentaires (hors des LUT), souvent double-port, parfois avec mécanisme de FIFO ;
multiplieurs câblés (coûteux à implémenter en LUT), voire blocs multiplieur-accumulateur pour traitements
DSP ;
cœur de microprocesseur enfoui (dit hard core) comme des architectures PowerPC ou ARM ;
blocs PLL pour synthétiser ou resynchroniser les horloges ;
reconfiguration partielle, même en cours de fonctionnement ;
chiffrement des données de configuration ;
sérialiseurs/désérialiseurs dans les entrées-sorties, permettant des liaisons série haut-débit ;
impédance contrôlée numériquement dans les entrées-sorties, évitant de nombreux composants passifs sur la
carte ;
couche MAC Ethernet ;
couches matérielles.

CPLD
Les PAL, GAL, CPLD et EPLD, de conception plus ancienne, utilisent des « macrocellules » logiques, composées d'un
réseau combinatoire de portes ET et OU afin d'implémenter des équations logiques. Des bascules sont disponibles
seulement dans les blocs d'entrée-sortie. Un composant contient de quelques dizaines à quelques centaines de
macrocellules.

Comme le routage est fixe, les temps de propagation sont bornés et permettent une fréquence de fonctionnement
élevée et indépendante de la conception. Par contre, l'utilisation des ressources n'est pas optimale (tout terme non
utilisé dans une équation logique équivaut à des portes perdues), avec des taux d'utilisation d'environ 25 %.

On distingue les CPLD des autres PLD car ils contiennent l'équivalent de plusieurs composants PLD, reliés par une
matrice d'interconnexion.

Applications
Les FPGA sont utilisés dans diverses applications nécessitant de l'électronique numérique (télécommunications,
aéronautique, transports…). Ils sont également utilisés pour le prototypage d'ASIC.

Les FPGA sont généralement plus lents, plus chers à l'unité et consomment davantage d'énergie que leur équivalent en
ASIC (Application Specific Integrated Circuit). Cependant, ils ont plusieurs avantages :

délai de mise sur le marché plus court, car ce sont des composants standards,
temps de conception plus court, car on réutilise des fonctions de base dont la reconfiguration autorise une
validation préalable moins stricte,
coût inférieur pour de petites séries (moins de 10 000 unités). Avec l'évolution technologique, cette quantité
tend à augmenter : en effet, le prix d'une puce est proportionnel à sa surface, qui diminue avec la finesse de
gravure, tandis que les coûts initiaux pour fabriquer un ASIC (conception, tests, masques de gravure) sont en
forte augmentation.
Il est parfois possible de transformer directement un FPGA en une version ASIC plus rapide, moins chère et
consommant moins (car les matrices de routage sont remplacées par une couche de métallisation fixe).

https://fr.wikipedia.org/wiki/Circuit_logique_programmable 3/5
24/07/2018 Circuit logique programmable — Wikipédia

Plusieurs FPGA modernes possèdent la possibilité d'être reconfigurés (on parle de configuration lorsqu'il s'agit de
programmation du matériel) partiellement à la volée. Ceci permet d'obtenir des systèmes reconfigurables - par
exemple une unité centrale dont les instructions changent dynamiquement en fonction des besoins.

Les FPGA modernes sont assez vastes et contiennent suffisamment de mémoire pour être configurés pour héberger un
cœur de processeur ou un DSP, afin d'exécuter un logiciel. On parle dans ce cas de processeur softcore, par opposition
aux microprocesseurs hard-core enfouis dans le silicium. Aujourd'hui, les fabricants de FPGA intègrent même un ou
plusieurs cœurs de processeur « hard-core » sur un même composant afin de conserver les ressources logiques
configurables du composant. Ceci n'exclut pas l'utilisation de processeur softcore possédant de nombreux avantages.
On tend donc vers des « Systems On Chip », comme pour le microcontrôleur il y a quelques décennies, avec en plus de
la logique configurable selon l'utilisateur. La mémoire des tout derniers FPGA est encore insuffisante pour exécuter
des logiciels embarqués un peu complexes et on doit avoir recours à des mémoires externe (ROM, RAM). Cependant,
la loi de Moore n'est pas encore à bout de souffle et celles-ci devraient être intégrées dans quelques années et suffiront
à une grande partie des applications embarquées.

Conception du schéma logique


Afin de pouvoir finaliser un FPGA, il est nécessaire d'utiliser un langage de description matériel ou bien un outil de
saisie graphique. Après compilation de cette description, on obtient un fichier de configuration pour le FPGA choisi.
VHDL et Verilog sont les deux langages de description les plus répandus.

Procédés technologiques
Les procédés technologiques de base pour les composants programmables sont les suivants :

SRAM - (Static Random Access Memory). Programmables à volonté et in situ. Habituellement en technologie
CMOS.
EPROM (UVPROM) - (Erasable Programmable Read-Only Memory). Peuvent être effacés (et reprogrammés)
par exposition aux rayons ultra-violets. Technologie CMOS, en cours de disparition au profit de l'EEPROM.
EEPROM - (Electrically Erasable Programmable Read-Only Memory). Peuvent être effacés et reprogrammés à
volonté. Quelques-uns peuvent être programmés in situ (souvent par une connexion JTAG). Technologie
CMOS.
Flash - (Flash-erase EPROM). Mêmes propriétés qu'EEPROM mais avec une densité supérieure (donc avec
un coût inférieur pour une complexité donnée). Technologie CMOS.
Fusible - Programmables une seule fois. Technologie bipolaire.
Anti-fusible - Ne sont programmables qu'une seule fois. Technologie CMOS.
Dans le cas des technologies à mémoires (SRAM, EEPROM, flash), la mémoire est située à côté du circuit logique
proprement dit et chacun de ses bits pilote un interrupteur (un transistor) de configuration du réseau logique. Dans le
cas des technologies à (anti-)fusibles, ceux-ci sont directement dans le réseau logique et ont à la fois la fonction de
mémoire non-volatile et d'interrupteur.

Les FPGA haut de gamme sont à la pointe de la technologie : les sauts technologiques, comme la finesse de gravure,
sont souvent réalisés sur ces composants avant de passer aux microprocesseurs. En effet, la structure répétitive de la
matrice logique est propice au réglage des machines de gravure microélectronique. Ainsi, les premiers composants
gravés avec une finesse de 90 nm ont été les FPGA Spartan3 de Xilinx, en 2003. [réf. souhaitée]

Fabricants
Parmi les fabricants de tels circuits programmables, on trouve Abound Logic, Achronix, Microsemi (ex. Actel), Intel
PSG (ex. Altera), Atmel, Cypress, Lattice Semiconductor, Nallatech, QuickLogic, SiliconBlue, Tabula Inc., Tier Logic et
Xilinx. D'autres sociétés sont probablement encore à l'état de développement initial et n'ont pas publiquement
annoncé de produits.

https://fr.wikipedia.org/wiki/Circuit_logique_programmable 4/5
24/07/2018 Circuit logique programmable — Wikipédia

Voir aussi
Composants analogiques programmables (FPAA)
Sur les autres projets Wikimedia :

Notes et références Comment embarquer un processeur dans un


FPGA, sur Wikiversity
1. Xilinx, Spartan-3 FPGA devices data sheet (http://www.
xilinx.com/support/documentation/data_sheets/ds099.p
df).

Articles connexes
Circuit intégré numérique ;
Programmateur ;
VHDL, le langage de synthèse et de simulation de l'électronique numérique.
Verilog un autre langage de description de circuit (conception et simulation)

Liens externes
(fr) Introduction aux FPGA (http://proxacutor.free.fr/index.htm)
(en) FPGA tutorial (http://www.tutorial-reports.com/book/print/260)
(en) FPGA startups stare down giants and ghosts (http://eetimes.com/news/latest/showArticle.jhtml?articleID=2
18500007) (histoire ancienne et récente (2009) du marché des FPGA)
Applications :

Opencores : site de développement de hardware open-source en utilisant des FPGA (http://www.opencor


es.org/)
Fpga4Fun : divers projets FPGA (http://www.fpga4fun.com)
LEON3 processeur Sparc open-source produit en utilisant des FPGA (http://www.gaisler.com/products/leo
n3/leon3.html)

Ce document provient de « https://fr.wikipedia.org/w/index.php?


title=Circuit_logique_programmable&oldid=145649145 ».

La dernière modification de cette page a été faite le 19 février 2018 à 15:01.

Droit d'auteur : les textes sont disponibles sous licence Creative Commons attribution, partage dans les mêmes
conditions ; d’autres conditions peuvent s’appliquer. Voyez les conditions d’utilisation pour plus de détails, ainsi que
les crédits graphiques. En cas de réutilisation des textes de cette page, voyez comment citer les auteurs et
mentionner la licence.
Wikipedia® est une marque déposée de la Wikimedia Foundation, Inc., organisation de bienfaisance régie par le
paragraphe 501(c)(3) du code fiscal des États-Unis.

https://fr.wikipedia.org/wiki/Circuit_logique_programmable 5/5

Das könnte Ihnen auch gefallen