Les circuits logiques programmables
DEFINITION :
Un circuit logique programmable ou PLD (Programmable Logical
Device), est un circuit intégré logique qui peut être programmé après
sa fabrication.
Il se compose de nombreuses cellules logiques élémentaires
contenant des bascules logiques librement connectables. L'utilisateur
doit donc programmer le circuit avant de l'utiliser. Les différentes
logiques de programmation (unique, reprogrammable, etc...) et
d'architecture ont conduit à la création de sous-familles dont les plus
connues sont les FPGA et les CPLD.
Il existe différents types de PLD :
1. PAL:
Cette technologie est appelée "grille de portes logiques
programmables" (programmable array logic) ou plus simplement
"PAL".
Pour ce type des circuits intégrés, chaque entrée d'une porte est liée
à toutes les entrées du circuit intégré, via une grille de connexion.
L'utilisateur va alors supprimer toutes les connexions qui sont en
trop en les faisant littéralement fondre. Resteront que les
connexions qui lui sont utiles et qui assureront le bon
fonctionnement du circuit intégré.
Un PAL ne contient que 3 modules (le tout formant une "cellule" ) :
Un module d'entrée qui peut recevoir des bascules (comme le
module de sortie) et avec une option pour inverser les entrées
logiques via une porte non.
Un module "logique" contenant des portes ET et OU. C'est dans
ce module que l'on retrouve la grille d'interconnexion;
Un module de sortie alimenté par le module logique. Les sorties
du PAL sont directement connectées à ce module. Mais ce
module de sortie peut aussi être utilisé comme entrée du
module logique (rebouclage), via 3 sous-technologies :
connection directe, via une logique combinatoire dont la
succession des portes peut être de l'un des 3 types suivant :
H (high) : ET=> OU (sortie active à l'état haut)
L (low) : ET => OU => NON (sortie active à l'état bas)
C choix du type L ou H programmable
séquentielle (à registre) où la connection est réalisée via une
bascule couplée à une horloge. cette connection peut être de 3
types : synchrone (R), avec potentiellement un ou exclusif (X)
ou asynchrone (RA)
versatile (où le routage est réalisé par un registre
programmable), on parle alors de VPAL
La technologie PAL a ensuite évolué avec les :
GAL (Generic array logic, circuit logique re-programmable),
équivalent au PAL, mais reprogrammable (réversibilité des fusibles)
soit par exposition aux UV ou électriquement ;
EPLD (erasable programmable logic device, circuit logique
programmable et effaçable), circuit intégré regroupant des centaines
voire des milliers de GAL ;
CPLD (complex programmable logic device, circuit logique
programmable complexe), équivalent aux ELPD, mais dont la
programmation et l'interconnection des cellules (uniquement
constituées de portes logiques) sont plus complexes. C'est la
l'aboutissement actuel de la technologie PAL.
2. CPLD
Les CPLD (issus de la technologie PAL) ont :
-pour principaux avantages :
un temps de traitement borné, c'est à dire une forte prédictibilité du
temps de traitement, indépendamment de la programmation
effectuée (ce qui peut être essentiel lorsqu'on est amené à
synchroniser plusieurs systèmes)
Une robustesse de la programmation (enregistrée sur une EEPROM,
elle est non volatile), une fois programmée, le CPLD est
instantanément opérationnel à sa mise en marche.
La gestion d'entrées et sorties (I/O) potentiellement très nombreuses
une faible consommation
-pour principaux inconvénients:
un nombre de cellules assez limité (de l'ordre du millier)
des difficultés à effectuer des traitements complexes
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 %.
La chose la plus intéressante ce qui concerne les CPLD c'est qu'ils
sont effaçable(EPLD :Erasable Programmable Logic Device) soit:
Électriquement (EEPLD), appelés aussi des EECMOS : qui sont
des PLD qui adoptent la technologie CMOS.
On appelle CMOS, ou Complementary Metal Oxide
Semiconductor, une technologie de fabrication de composants
électroniques et, par extension, les composants fabriqués selon cette
technologie. Ce sont pour la plupart des circuits (NAND, NOR, etc.)
comme ceux de la famille Transistor-Transistor logic (TTL) mais, à la
différence de ces derniers, ils peuvent être aussi utilisés comme
résistance variable.
Dans ces circuits, un étage de sortie est composé d'un couple de
transistors MOSFET N et P placés de manière symétrique et réalisant
chacun la même fonction. Du fait de leur caractéristique de
fonctionnement inversée, un transistor est passant alors que l'autre
est bloquant1 (ils sont donc complémentaires, d'où l'appellation
complementary).
Par les U.V:effacés (et reprogrammés) par exposition aux
rayons ultra-violets(UVPROM).
Il y a un autre type des CPLD qui est les isp.
Un dispositif logique programmable complexe (CPLD) in system
programming (ISP) est un processus de programmation des
dispositifs CPLD qui sont déjà soudés dans un assemblage de carte de
circuit imprimé (PCBA).
3. GAL
Les G.A.L (fabriqué par LATTICE SEMI-CONDUCTOR) Ce qui signifie
Generic Array Logic ou encore réseau logique générique ce qui veut
dire pas grand chose mais qui sont aux P.A.L. ce que sont les
E.E.P.R.O.M aux P.R.O.M. Leur fonctionnement est identique aux
P.A.L. CMOS, ils sont programmables et effaçables électriquement.
4. FPGA
les FPGA (field-programmable gate array) ont été développés dans
les année 2000. Dans l'esprit, ce sont :
-des "CPLD" où les cellules peuvent contenir :
des portes logiques librement interconnectables entre elles
des fonctions élémentaires (bascules flip-flop, LUT,
Multiplexeurs, boucles à verrouillage de phase )
des fonctions de traitement "précablées" (DSP, protocoles de
communication comme le PCIe, voire des fonctionnalités de
microprocesseurs, de mémoire, etc...)
néanmoins, l'architecture et la conception interne des FPGA
diffèrent radicalement de celle des CPLD)
-des puces où la performance est un point important, aussi les
vitesses de traitement des FPGA (bande passante) surclassent les
CPLD. Ceci est notamment dû à l'utilisation de SRAM à la place
d'EEPROM comme mémoire interne)
-La technologie des FPGA fait que leur programmation est volatile et
doit dont d'être stockée dans une ROM ou mémoire flash. Un FGPA
doit donc charger son programme à chaque mise en route. Les
dernières puces intègrent désormais une ROM qui garde en mémoire
le programme à lancer à chaque démarrage.
Les FPGA peuvent être des FPGA ANTIFUSE/anti fusible qui
permettent une plus grande intégration de portes et ils ne sont pas
effaçables électriquement. Le nom anti-fusible vient de la
programmation des connexions qui s'effectue par fermeture de
circuits, comparé aux fusibles où l'on ouvre les circuits.
Comme on a mentionné avant les FPGA possèdent des SRAM(: Static
Random Access Memory):
La mémoire vive statique est un type de mémoire vive utilisant des
bascules pour mémoriser les données. Mais contrairement à la
mémoire dynamique, elle n'a pas besoin de rafraîchir
périodiquement son contenu. Comme la mémoire dynamique, elle
est volatile : elle ne peut se passer d'alimentation sous peine de voir
les informations effacées irrémédiablement.
Fabricants/constructeurs
Parmi les fabricants de tels circuits programmables, on trouve
Abound Logic, Achronix, Anlogic, Atmel, Cypress, Gowin, Intel PSG
(ex. Altera), Lattice Semiconductor, Microsemi (ex. Actel), Nallatech,
QuickLogic, SiliconBlue, Efinix, Tabula Inc., Tier Logic et Xilinx.